From de97010cfb47c31abd7502b2615586fd967ba962 Mon Sep 17 00:00:00 2001 From: proddy Date: Sun, 20 Nov 2022 18:48:36 +0100 Subject: [PATCH 1/3] package update --- interface/package-lock.json | 234 ++++++++++++++++++------------------ 1 file changed, 117 insertions(+), 117 deletions(-) diff --git a/interface/package-lock.json b/interface/package-lock.json index a08e99445..761cc2c6c 100644 --- a/interface/package-lock.json +++ b/interface/package-lock.json @@ -11,13 +11,13 @@ "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", "@msgpack/msgpack": "^2.8.0", - "@mui/icons-material": "^5.10.9", - "@mui/material": "^5.10.13", + "@mui/icons-material": "^5.10.14", + "@mui/material": "^5.10.14", "@table-library/react-table-library": "4.0.23", - "@types/lodash": "^4.14.188", + "@types/lodash": "^4.14.189", "@types/node": "^18.11.9", "@types/react": "^18.0.25", - "@types/react-dom": "^18.0.8", + "@types/react-dom": "^18.0.9", "@types/react-router-dom": "^5.3.3", "async-validator": "^4.2.5", "axios": "^1.1.3", @@ -35,7 +35,7 @@ "react-scripts": "5.0.1", "sockette": "^2.0.6", "typesafe-i18n": "^5.16.3", - "typescript": "^4.8.4" + "typescript": "^4.9.3" }, "devDependencies": { "nodemon": "^2.0.20", @@ -3091,14 +3091,14 @@ } }, "node_modules/@mui/base": { - "version": "5.0.0-alpha.105", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.105.tgz", - "integrity": "sha512-4IPBcJQIgVVXQvN6DQMoCHed52GBtwSqYs0jD0dDcMR3o76AodQtpEeWFz3p7mJoc6f/IHBl9U6jEfL1r/kM4g==", + "version": "5.0.0-alpha.106", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.106.tgz", + "integrity": "sha512-xJQQtwPCPwr6hGWTBdvDwHYwExn3Bw7nPQkN8Fuz8kHpZqoMVWQvvaFS557AIkkI2AFLV3DxVIMjbCvrIntBWg==", "dependencies": { - "@babel/runtime": "^7.19.0", + "@babel/runtime": "^7.20.1", "@emotion/is-prop-valid": "^1.2.0", - "@mui/types": "^7.2.0", - "@mui/utils": "^5.10.9", + "@mui/types": "^7.2.1", + "@mui/utils": "^5.10.14", "@popperjs/core": "^2.11.6", "clsx": "^1.2.1", "prop-types": "^15.8.1", @@ -3123,20 +3123,20 @@ } }, "node_modules/@mui/core-downloads-tracker": { - "version": "5.10.13", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.13.tgz", - "integrity": "sha512-zWkWPV/SaNdsIdxAWiuVGZ+Ue3BkfSIlU/BFIrJmuUcwiIa7gQsbI/DOpj1KzLvqZhdEe2wC1aG4nCHfzgc1Hg==", + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.14.tgz", + "integrity": "sha512-qLgIJNOR9Dre8JiZ/neVzOf4jf88J6YtOkQqugtMrleLjbfRVUSS4LWl9CSOjNq76quYdmYWnSDgfQqOooT2cQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/mui" } }, "node_modules/@mui/icons-material": { - "version": "5.10.9", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.9.tgz", - "integrity": "sha512-sqClXdEM39WKQJOQ0ZCPTptaZgqwibhj2EFV9N0v7BU1PO8y4OcX/a2wIQHn4fNuDjIZktJIBrmU23h7aqlGgg==", + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.14.tgz", + "integrity": "sha512-qtH60slQa+7MZRn6kyui8rKuoGDglPqaHX+pzBKNvd8JCOlrnfY5DmGGDdToTXyXl8xJ8nhANZbrbpg7UVKq/Q==", "dependencies": { - "@babel/runtime": "^7.19.0" + "@babel/runtime": "^7.20.1" }, "engines": { "node": ">=12.0.0" @@ -3157,16 +3157,16 @@ } }, "node_modules/@mui/material": { - "version": "5.10.13", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.13.tgz", - "integrity": "sha512-TkkT1rNc0/hhL4/+zv4gYcA6egNWBH/1Tz+azoTnQIUdZ32fgwFI2pFX2KVJNTt30xnLznxDWtTv7ilmJQ52xw==", + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.14.tgz", + "integrity": "sha512-HWzKVAykePMx54WtxVwZyL1W4k3xlHYIqwMw0CaXAvgB3UE9yjABZuuGr8vG5Z6CSNWamzd+s1x8u7pQPFl9og==", "dependencies": { - "@babel/runtime": "^7.19.0", - "@mui/base": "5.0.0-alpha.105", - "@mui/core-downloads-tracker": "^5.10.13", - "@mui/system": "^5.10.13", - "@mui/types": "^7.2.0", - "@mui/utils": "^5.10.9", + "@babel/runtime": "^7.20.1", + "@mui/base": "5.0.0-alpha.106", + "@mui/core-downloads-tracker": "^5.10.14", + "@mui/system": "^5.10.14", + "@mui/types": "^7.2.1", + "@mui/utils": "^5.10.14", "@types/react-transition-group": "^4.4.5", "clsx": "^1.2.1", "csstype": "^3.1.1", @@ -3201,12 +3201,12 @@ } }, "node_modules/@mui/private-theming": { - "version": "5.10.9", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.9.tgz", - "integrity": "sha512-BN7/CnsVPVyBaQpDTij4uV2xGYHHHhOgpdxeYLlIu+TqnsVM7wUeF+37kXvHovxM6xmL5qoaVUD98gDC0IZnHg==", + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.14.tgz", + "integrity": "sha512-3aIBe8WK65CwAPDY8nB11hYnzE1CZMymi76UnaFrA/DdGDwl5Y8F6uB+StKrkVmsqF1po7Mp2odqVkHj320gXw==", "dependencies": { - "@babel/runtime": "^7.19.0", - "@mui/utils": "^5.10.9", + "@babel/runtime": "^7.20.1", + "@mui/utils": "^5.10.14", "prop-types": "^15.8.1" }, "engines": { @@ -3227,12 +3227,12 @@ } }, "node_modules/@mui/styled-engine": { - "version": "5.10.8", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.8.tgz", - "integrity": "sha512-w+y8WI18EJV6zM/q41ug19cE70JTeO6sWFsQ7tgePQFpy6ToCVPh0YLrtqxUZXSoMStW5FMw0t9fHTFAqPbngw==", + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.14.tgz", + "integrity": "sha512-bgKdM57ExogWpIfhL/ngSlzF4FhbH00vYF+Y5VALTob4uslFqje0xzoWmbfcCn4cZt2NXxZJIwhsq4vzo5itlw==", "dependencies": { - "@babel/runtime": "^7.19.0", - "@emotion/cache": "^11.10.3", + "@babel/runtime": "^7.20.1", + "@emotion/cache": "^11.10.5", "csstype": "^3.1.1", "prop-types": "^15.8.1" }, @@ -3258,15 +3258,15 @@ } }, "node_modules/@mui/system": { - "version": "5.10.13", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.13.tgz", - "integrity": "sha512-Xzx26Asu5fVlm0ucm+gnJmeX4Y1isrpVDvqxX4yJaOT7Fzmd8Lfq9ih3QMfZajns5LMtUiOuCQlVFRtUG5IY7A==", + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.14.tgz", + "integrity": "sha512-2de7XCjRb1j8Od0Stmo0LwFMLpOMNT4wzfINuExXI1TVSuyxXIXUxiC5FEgJW3GMvf/a7SUR8VOiMoKlKWzukw==", "dependencies": { - "@babel/runtime": "^7.19.0", - "@mui/private-theming": "^5.10.9", - "@mui/styled-engine": "^5.10.8", - "@mui/types": "^7.2.0", - "@mui/utils": "^5.10.9", + "@babel/runtime": "^7.20.1", + "@mui/private-theming": "^5.10.14", + "@mui/styled-engine": "^5.10.14", + "@mui/types": "^7.2.1", + "@mui/utils": "^5.10.14", "clsx": "^1.2.1", "csstype": "^3.1.1", "prop-types": "^15.8.1" @@ -3297,9 +3297,9 @@ } }, "node_modules/@mui/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.0.tgz", - "integrity": "sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.1.tgz", + "integrity": "sha512-c5mSM7ivD8EsqK6HUi9hQPr5V7TJ/IRThUQ9nWNYPdhCGriTSQV4vL6DflT99LkM+wLiIS1rVjphpEWxERep7A==", "peerDependencies": { "@types/react": "*" }, @@ -3310,11 +3310,11 @@ } }, "node_modules/@mui/utils": { - "version": "5.10.9", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.9.tgz", - "integrity": "sha512-2tdHWrq3+WCy+G6TIIaFx3cg7PorXZ71P375ExuX61od1NOAJP1mK90VxQ8N4aqnj2vmO3AQDkV4oV2Ktvt4bA==", + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.14.tgz", + "integrity": "sha512-12p59+wDZpA++XVJmKwqsZmrA1nmUQ5d0a1yQWtcDjxNyER1EDzozYN/db+FY2i5ceQh2TynPTEwGms2mXDwFg==", "dependencies": { - "@babel/runtime": "^7.19.0", + "@babel/runtime": "^7.20.1", "@types/prop-types": "^15.7.5", "@types/react-is": "^16.7.1 || ^17.0.0", "prop-types": "^15.8.1", @@ -4007,9 +4007,9 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" }, "node_modules/@types/lodash": { - "version": "4.14.188", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.188.tgz", - "integrity": "sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w==" + "version": "4.14.189", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.189.tgz", + "integrity": "sha512-kb9/98N6X8gyME9Cf7YaqIMvYGnBSWqEci6tiettE6iJWH1XdJz/PO8LB0GtLCG7x8dU3KWhZT+lA1a35127tA==" }, "node_modules/@types/mime": { "version": "3.0.1", @@ -4062,9 +4062,9 @@ } }, "node_modules/@types/react-dom": { - "version": "18.0.8", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.8.tgz", - "integrity": "sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw==", + "version": "18.0.9", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.9.tgz", + "integrity": "sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==", "dependencies": { "@types/react": "*" } @@ -16422,9 +16422,9 @@ } }, "node_modules/typescript": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", - "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -19623,14 +19623,14 @@ "integrity": "sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==" }, "@mui/base": { - "version": "5.0.0-alpha.105", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.105.tgz", - "integrity": "sha512-4IPBcJQIgVVXQvN6DQMoCHed52GBtwSqYs0jD0dDcMR3o76AodQtpEeWFz3p7mJoc6f/IHBl9U6jEfL1r/kM4g==", + "version": "5.0.0-alpha.106", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.106.tgz", + "integrity": "sha512-xJQQtwPCPwr6hGWTBdvDwHYwExn3Bw7nPQkN8Fuz8kHpZqoMVWQvvaFS557AIkkI2AFLV3DxVIMjbCvrIntBWg==", "requires": { - "@babel/runtime": "^7.19.0", + "@babel/runtime": "^7.20.1", "@emotion/is-prop-valid": "^1.2.0", - "@mui/types": "^7.2.0", - "@mui/utils": "^5.10.9", + "@mui/types": "^7.2.1", + "@mui/utils": "^5.10.14", "@popperjs/core": "^2.11.6", "clsx": "^1.2.1", "prop-types": "^15.8.1", @@ -19638,29 +19638,29 @@ } }, "@mui/core-downloads-tracker": { - "version": "5.10.13", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.13.tgz", - "integrity": "sha512-zWkWPV/SaNdsIdxAWiuVGZ+Ue3BkfSIlU/BFIrJmuUcwiIa7gQsbI/DOpj1KzLvqZhdEe2wC1aG4nCHfzgc1Hg==" + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.14.tgz", + "integrity": "sha512-qLgIJNOR9Dre8JiZ/neVzOf4jf88J6YtOkQqugtMrleLjbfRVUSS4LWl9CSOjNq76quYdmYWnSDgfQqOooT2cQ==" }, "@mui/icons-material": { - "version": "5.10.9", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.9.tgz", - "integrity": "sha512-sqClXdEM39WKQJOQ0ZCPTptaZgqwibhj2EFV9N0v7BU1PO8y4OcX/a2wIQHn4fNuDjIZktJIBrmU23h7aqlGgg==", + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.14.tgz", + "integrity": "sha512-qtH60slQa+7MZRn6kyui8rKuoGDglPqaHX+pzBKNvd8JCOlrnfY5DmGGDdToTXyXl8xJ8nhANZbrbpg7UVKq/Q==", "requires": { - "@babel/runtime": "^7.19.0" + "@babel/runtime": "^7.20.1" } }, "@mui/material": { - "version": "5.10.13", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.13.tgz", - "integrity": "sha512-TkkT1rNc0/hhL4/+zv4gYcA6egNWBH/1Tz+azoTnQIUdZ32fgwFI2pFX2KVJNTt30xnLznxDWtTv7ilmJQ52xw==", + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.14.tgz", + "integrity": "sha512-HWzKVAykePMx54WtxVwZyL1W4k3xlHYIqwMw0CaXAvgB3UE9yjABZuuGr8vG5Z6CSNWamzd+s1x8u7pQPFl9og==", "requires": { - "@babel/runtime": "^7.19.0", - "@mui/base": "5.0.0-alpha.105", - "@mui/core-downloads-tracker": "^5.10.13", - "@mui/system": "^5.10.13", - "@mui/types": "^7.2.0", - "@mui/utils": "^5.10.9", + "@babel/runtime": "^7.20.1", + "@mui/base": "5.0.0-alpha.106", + "@mui/core-downloads-tracker": "^5.10.14", + "@mui/system": "^5.10.14", + "@mui/types": "^7.2.1", + "@mui/utils": "^5.10.14", "@types/react-transition-group": "^4.4.5", "clsx": "^1.2.1", "csstype": "^3.1.1", @@ -19670,53 +19670,53 @@ } }, "@mui/private-theming": { - "version": "5.10.9", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.9.tgz", - "integrity": "sha512-BN7/CnsVPVyBaQpDTij4uV2xGYHHHhOgpdxeYLlIu+TqnsVM7wUeF+37kXvHovxM6xmL5qoaVUD98gDC0IZnHg==", + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.14.tgz", + "integrity": "sha512-3aIBe8WK65CwAPDY8nB11hYnzE1CZMymi76UnaFrA/DdGDwl5Y8F6uB+StKrkVmsqF1po7Mp2odqVkHj320gXw==", "requires": { - "@babel/runtime": "^7.19.0", - "@mui/utils": "^5.10.9", + "@babel/runtime": "^7.20.1", + "@mui/utils": "^5.10.14", "prop-types": "^15.8.1" } }, "@mui/styled-engine": { - "version": "5.10.8", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.8.tgz", - "integrity": "sha512-w+y8WI18EJV6zM/q41ug19cE70JTeO6sWFsQ7tgePQFpy6ToCVPh0YLrtqxUZXSoMStW5FMw0t9fHTFAqPbngw==", + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.14.tgz", + "integrity": "sha512-bgKdM57ExogWpIfhL/ngSlzF4FhbH00vYF+Y5VALTob4uslFqje0xzoWmbfcCn4cZt2NXxZJIwhsq4vzo5itlw==", "requires": { - "@babel/runtime": "^7.19.0", - "@emotion/cache": "^11.10.3", + "@babel/runtime": "^7.20.1", + "@emotion/cache": "^11.10.5", "csstype": "^3.1.1", "prop-types": "^15.8.1" } }, "@mui/system": { - "version": "5.10.13", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.13.tgz", - "integrity": "sha512-Xzx26Asu5fVlm0ucm+gnJmeX4Y1isrpVDvqxX4yJaOT7Fzmd8Lfq9ih3QMfZajns5LMtUiOuCQlVFRtUG5IY7A==", + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.14.tgz", + "integrity": "sha512-2de7XCjRb1j8Od0Stmo0LwFMLpOMNT4wzfINuExXI1TVSuyxXIXUxiC5FEgJW3GMvf/a7SUR8VOiMoKlKWzukw==", "requires": { - "@babel/runtime": "^7.19.0", - "@mui/private-theming": "^5.10.9", - "@mui/styled-engine": "^5.10.8", - "@mui/types": "^7.2.0", - "@mui/utils": "^5.10.9", + "@babel/runtime": "^7.20.1", + "@mui/private-theming": "^5.10.14", + "@mui/styled-engine": "^5.10.14", + "@mui/types": "^7.2.1", + "@mui/utils": "^5.10.14", "clsx": "^1.2.1", "csstype": "^3.1.1", "prop-types": "^15.8.1" } }, "@mui/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.0.tgz", - "integrity": "sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.1.tgz", + "integrity": "sha512-c5mSM7ivD8EsqK6HUi9hQPr5V7TJ/IRThUQ9nWNYPdhCGriTSQV4vL6DflT99LkM+wLiIS1rVjphpEWxERep7A==", "requires": {} }, "@mui/utils": { - "version": "5.10.9", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.9.tgz", - "integrity": "sha512-2tdHWrq3+WCy+G6TIIaFx3cg7PorXZ71P375ExuX61od1NOAJP1mK90VxQ8N4aqnj2vmO3AQDkV4oV2Ktvt4bA==", + "version": "5.10.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.14.tgz", + "integrity": "sha512-12p59+wDZpA++XVJmKwqsZmrA1nmUQ5d0a1yQWtcDjxNyER1EDzozYN/db+FY2i5ceQh2TynPTEwGms2mXDwFg==", "requires": { - "@babel/runtime": "^7.19.0", + "@babel/runtime": "^7.20.1", "@types/prop-types": "^15.7.5", "@types/react-is": "^16.7.1 || ^17.0.0", "prop-types": "^15.8.1", @@ -20203,9 +20203,9 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" }, "@types/lodash": { - "version": "4.14.188", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.188.tgz", - "integrity": "sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w==" + "version": "4.14.189", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.189.tgz", + "integrity": "sha512-kb9/98N6X8gyME9Cf7YaqIMvYGnBSWqEci6tiettE6iJWH1XdJz/PO8LB0GtLCG7x8dU3KWhZT+lA1a35127tA==" }, "@types/mime": { "version": "3.0.1", @@ -20258,9 +20258,9 @@ } }, "@types/react-dom": { - "version": "18.0.8", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.8.tgz", - "integrity": "sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw==", + "version": "18.0.9", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.9.tgz", + "integrity": "sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==", "requires": { "@types/react": "*" } @@ -29085,9 +29085,9 @@ "requires": {} }, "typescript": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", - "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==" + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==" }, "unbox-primitive": { "version": "1.0.2", From 77860d9d05c580c2caf3ca473a20c3f17d36cb5b Mon Sep 17 00:00:00 2001 From: proddy Date: Sun, 20 Nov 2022 18:48:51 +0100 Subject: [PATCH 2/3] fix standalone compiling --- src/web/WebLogService.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/web/WebLogService.cpp b/src/web/WebLogService.cpp index f4d26a28f..5dd9f1ab9 100644 --- a/src/web/WebLogService.cpp +++ b/src/web/WebLogService.cpp @@ -110,10 +110,12 @@ WebLogService::QueuedLogMessage::QueuedLogMessage(unsigned long id, std::shared_ } void WebLogService::operator<<(std::shared_ptr message) { +#ifndef EMSESP_STANDALONE if (ESP.getMaxAllocHeap() < 20480) { maximum_log_messages(maximum_log_messages_ > 25 ? maximum_log_messages_ - 25 : 10); // EMSESP::logger().warning("Low memory: WebLog buffer reduced to %d entries", maximum_log_messages_); } +#endif if (log_messages_.size() >= maximum_log_messages_) { log_messages_.pop_front(); } From 6873e113bb004cc55c313c9fc29c81e6debe4b06 Mon Sep 17 00:00:00 2001 From: proddy Date: Sun, 20 Nov 2022 18:48:59 +0100 Subject: [PATCH 3/3] Change EMS-ESP device sensor types in Home Assistant #751 --- CHANGELOG_LATEST.md | 1 + src/emsdevicevalue.cpp | 41 ++++++++++++----------- src/emsdevicevalue.h | 45 +++++++++++++------------ src/mqtt.cpp | 76 +++++++++++++++++++++++------------------- src/version.h | 2 +- 5 files changed, 87 insertions(+), 78 deletions(-) diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index 1fcd7b198..1734c9f32 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -17,6 +17,7 @@ - Add min/max to customization table [#686](https://github.com/emsesp/EMS-ESP32/issues/686) - Add MD5 check [#637](https://github.com/emsesp/EMS-ESP32/issues/637) - Add more bus-ids [#673](https://github.com/emsesp/EMS-ESP32/issues/673) +- Use HA connectivity device class for Status [#751](https://github.com/emsesp/EMS-ESP32/issues/751) ## Fixed diff --git a/src/emsdevicevalue.cpp b/src/emsdevicevalue.cpp index 9fedd8c7a..1c07879e9 100644 --- a/src/emsdevicevalue.cpp +++ b/src/emsdevicevalue.cpp @@ -100,30 +100,31 @@ DeviceValue::DeviceValue(uint8_t device_type, #endif } -// mapping of UOM, to match order in DeviceValueUOM enum emsdevice.h +// mapping of UOM, to match order in DeviceValueUOM enum emsdevicevalue.h // also maps to DeviceValueUOM in interface/src/project/types.ts for the Web UI // must be an int of 4 bytes, 32bit aligned const char * DeviceValue::DeviceValueUOM_s[] = { - F_(uom_blank), - F_(uom_degrees), - F_(uom_degrees), - F_(uom_percent), - F_(uom_lmin), - F_(uom_kwh), - F_(uom_wh), - F_(uom_hours), - F_(uom_minutes), - F_(uom_ua), - F_(uom_bar), - F_(uom_kw), - F_(uom_w), - F_(uom_kb), - F_(uom_seconds), - F_(uom_dbm), - F_(uom_fahrenheit), - F_(uom_mv), - F_(uom_sqm) + F_(uom_blank), // + F_(uom_degrees), // + F_(uom_degrees), // + F_(uom_percent), // + F_(uom_lmin), // + F_(uom_kwh), // + F_(uom_wh), // + F_(uom_hours), // + F_(uom_minutes), // + F_(uom_ua), // + F_(uom_bar), // + F_(uom_kw), // + F_(uom_w), // + F_(uom_kb), // + F_(uom_seconds), // + F_(uom_dbm), // + F_(uom_fahrenheit), // + F_(uom_mv), // + F_(uom_sqm), // + F_(uom_blank) // connectivity }; diff --git a/src/emsdevicevalue.h b/src/emsdevicevalue.h index 8c4782377..638f7b714 100644 --- a/src/emsdevicevalue.h +++ b/src/emsdevicevalue.h @@ -44,30 +44,31 @@ class DeviceValue { CMD // special for commands only }; - // Unit Of Measurement mapping - maps to DeviceValueUOM_s in emsdevice.cpp. Sequence is important!! + // Unit Of Measurement mapping - maps to DeviceValueUOM_s in emsdevicevalue.cpp. Sequence is important!! // also used with HA as uom enum DeviceValueUOM : uint8_t { - NONE = 0, // 0 - DEGREES, // 1 - DEGREES_R, // 2 - PERCENT, // 3 - LMIN, // 4 - KWH, // 5 - WH, // 6 - HOURS, // 7 - MINUTES, // 8 - UA, // 9 - BAR, // 10 - KW, // 11 - W, // 12 - KB, // 13 - SECONDS, // 14 - DBM, // 15 - FAHRENHEIT, // 16 - MV, // 17 - SQM, // 18 squaremeter - M3, // 19 cubic meter - L // 20 + NONE = 0, // 0 + DEGREES, // 1 + DEGREES_R, // 2 + PERCENT, // 3 + LMIN, // 4 + KWH, // 5 + WH, // 6 + HOURS, // 7 + MINUTES, // 8 + UA, // 9 + BAR, // 10 + KW, // 11 + W, // 12 + KB, // 13 + SECONDS, // 14 + DBM, // 15 + FAHRENHEIT, // 16 + MV, // 17 + SQM, // 18 square meter + M3, // 19 cubic meter + L, // 20 + CONNECTIVITY // 21 - used in HA }; // TAG mapping - maps to DeviceValueTAG_s in emsdevice.cpp diff --git a/src/mqtt.cpp b/src/mqtt.cpp index 5d189006d..95e5e5d35 100644 --- a/src/mqtt.cpp +++ b/src/mqtt.cpp @@ -472,7 +472,7 @@ void Mqtt::start() { } }); - // create will_topic with the base prefixed. It has to be static because asyncmqttclient destroys the reference + // create last will topic with the base prefixed. It has to be static because asyncmqttclient destroys the reference static char will_topic[MQTT_TOPIC_MAX_SIZE]; snprintf(will_topic, MQTT_TOPIC_MAX_SIZE, "%s/status", mqtt_base_.c_str()); mqttClient_->setWill(will_topic, 1, true, "offline"); // with qos 1, retain true @@ -570,7 +570,8 @@ void Mqtt::on_connect() { // re-subscribe to all custom registered MQTT topics resubscribe(); - publish_retain("status", "online", true); // say we're alive to the Last Will topic, with retain on + // publish to the last will topic (see Mqtt::start() function) to say we're alive + publish_retain("status", "online", true); // with retain on mqtt_publish_fails_ = 0; // reset fail count to 0 @@ -594,11 +595,13 @@ void Mqtt::ha_status() { doc["~"] = mqtt_base_; // default ems-esp // doc["avty_t"] = "~/status"; // commented out, as it causes errors in HA sometimes // doc["json_attr_t"] = "~/heartbeat"; // store also as HA attributes - doc["stat_t"] = "~/heartbeat"; - doc["object_id"] = "ems_esp_status"; - doc["name"] = "EMS-ESP status"; - doc["ic"] = F_(icondevice); - doc["val_tpl"] = "{{value_json['bus_status']}}"; + doc["stat_t"] = "~/status"; + doc["object_id"] = "ems_esp_status"; + doc["name"] = "EMS-ESP status"; + doc["payload_on"] = "online"; + doc["payload_off"] = "offline"; + doc["state_class"] = "measurement"; + doc["device_class"] = "connectivity"; JsonObject dev = doc.createNestedObject("dev"); dev["name"] = "EMS-ESP"; @@ -609,25 +612,27 @@ void Mqtt::ha_status() { ids.add("ems-esp"); char topic[MQTT_TOPIC_MAX_SIZE]; - snprintf(topic, sizeof(topic), "sensor/%s/system/config", mqtt_basename_.c_str()); + snprintf(topic, sizeof(topic), "binary_sensor/%s/system/config", mqtt_basename_.c_str()); Mqtt::publish_ha(topic, doc.as()); // publish the config payload with retain flag // create the sensors - must match the MQTT payload keys + // these are all from the heartbeat MQTT topic if (!EMSESP::system_.ethernet_connected()) { - publish_system_ha_sensor_config(DeviceValueType::INT, ("WiFi RSSI"), ("rssi"), DeviceValueUOM::DBM); - publish_system_ha_sensor_config(DeviceValueType::INT, ("WiFi strength"), ("wifistrength"), DeviceValueUOM::PERCENT); + publish_system_ha_sensor_config(DeviceValueType::INT, "WiFi RSSI", "rssi", DeviceValueUOM::DBM); + publish_system_ha_sensor_config(DeviceValueType::INT, "WiFi strength", "wifistrength", DeviceValueUOM::PERCENT); } - publish_system_ha_sensor_config(DeviceValueType::INT, ("Uptime"), ("uptime"), DeviceValueUOM::NONE); - publish_system_ha_sensor_config(DeviceValueType::INT, ("Uptime (sec)"), ("uptime_sec"), DeviceValueUOM::SECONDS); - publish_system_ha_sensor_config(DeviceValueType::BOOL, ("NTP status"), ("ntp_status"), DeviceValueUOM::NONE); - publish_system_ha_sensor_config(DeviceValueType::INT, ("Free memory"), ("freemem"), DeviceValueUOM::KB); - publish_system_ha_sensor_config(DeviceValueType::INT, ("MQTT fails"), ("mqttfails"), DeviceValueUOM::NONE); - publish_system_ha_sensor_config(DeviceValueType::INT, ("Rx received"), ("rxreceived"), DeviceValueUOM::NONE); - publish_system_ha_sensor_config(DeviceValueType::INT, ("Rx fails"), ("rxfails"), DeviceValueUOM::NONE); - publish_system_ha_sensor_config(DeviceValueType::INT, ("Tx reads"), ("txreads"), DeviceValueUOM::NONE); - publish_system_ha_sensor_config(DeviceValueType::INT, ("Tx writes"), ("txwrites"), DeviceValueUOM::NONE); - publish_system_ha_sensor_config(DeviceValueType::INT, ("Tx fails"), ("txfails"), DeviceValueUOM::NONE); + publish_system_ha_sensor_config(DeviceValueType::STRING, "EMS Bus", "bus_status", DeviceValueUOM::NONE); + publish_system_ha_sensor_config(DeviceValueType::INT, "Uptime", "uptime", DeviceValueUOM::NONE); + publish_system_ha_sensor_config(DeviceValueType::INT, "Uptime (sec)", "uptime_sec", DeviceValueUOM::SECONDS); + publish_system_ha_sensor_config(DeviceValueType::BOOL, "NTP status", "ntp_status", DeviceValueUOM::CONNECTIVITY); + publish_system_ha_sensor_config(DeviceValueType::INT, "Free memory", "freemem", DeviceValueUOM::KB); + publish_system_ha_sensor_config(DeviceValueType::INT, "MQTT fails", "mqttfails", DeviceValueUOM::NONE); + publish_system_ha_sensor_config(DeviceValueType::INT, "Rx received", "rxreceived", DeviceValueUOM::NONE); + publish_system_ha_sensor_config(DeviceValueType::INT, "Rx fails", "rxfails", DeviceValueUOM::NONE); + publish_system_ha_sensor_config(DeviceValueType::INT, "Tx reads", "txreads", DeviceValueUOM::NONE); + publish_system_ha_sensor_config(DeviceValueType::INT, "Tx writes", "txwrites", DeviceValueUOM::NONE); + publish_system_ha_sensor_config(DeviceValueType::INT, "Tx fails", "txfails", DeviceValueUOM::NONE); } // add sub or pub task to the queue. @@ -926,10 +931,10 @@ void Mqtt::publish_system_ha_sensor_config(uint8_t type, const char * name, cons // MQTT discovery configs // entity must match the key/value pair in the *_data topic // note: some extra string copying done here, it looks messy but does help with heap fragmentation issues -void Mqtt::publish_ha_sensor_config(uint8_t type, // EMSdevice::DeviceValueType - uint8_t tag, // EMSdevice::DeviceValueTAG - const char * const fullname, // fullname, already translated - const char * const en_name, +void Mqtt::publish_ha_sensor_config(uint8_t type, // EMSdevice::DeviceValueType + uint8_t tag, // EMSdevice::DeviceValueTAG + const char * const fullname, // fullname, already translated + const char * const en_name, // original name const uint8_t device_type, // EMSdevice::DeviceType const char * const entity, // same as shortname const uint8_t uom, // EMSdevice::DeviceValueUOM (0=NONE) @@ -961,8 +966,7 @@ void Mqtt::publish_ha_sensor_config(uint8_t type, // EMSdevice snprintf(uniq, sizeof(uniq), "%s_%s", device_name, new_entity); Helpers::replace_char(uniq, '.', '_'); - // use_ha_sensor is true if we're using the Sensor Entity https://developers.home-assistant.io/docs/core/entity/sensor - bool use_ha_sensor = false; + bool set_ha_classes = false; // set to true if we want to set the state class and device class // create the topic, depending on the type and whether the device entity is writable (a command) // https://developers.home-assistant.io/docs/core/entity @@ -993,12 +997,13 @@ void Mqtt::publish_ha_sensor_config(uint8_t type, // EMSdevice break; } } else { + // these are Read only sensors. We can set the device class and state class + set_ha_classes = true; // plain old read only device entity if (type == DeviceValueType::BOOL) { - snprintf(topic, sizeof(topic), "binary_sensor/%s/%s/config", mqtt_basename_.c_str(), uniq); // binary sensor + snprintf(topic, sizeof(topic), "binary_sensor/%s/%s/config", mqtt_basename_.c_str(), uniq); // binary sensor (for booleans) } else { - use_ha_sensor = true; - snprintf(topic, sizeof(topic), "sensor/%s/%s/config", mqtt_basename_.c_str(), uniq); // normal HA sensor, not a boolean one + snprintf(topic, sizeof(topic), "sensor/%s/%s/config", mqtt_basename_.c_str(), uniq); // normal HA sensor } } @@ -1123,12 +1128,9 @@ void Mqtt::publish_ha_sensor_config(uint8_t type, // EMSdevice } } - // this next section is building using the Sensor Entity - // https://developers.home-assistant.io/docs/core/entity/sensor - // for read only sensors. It uses a device class to determine icon - // and state class - - if (use_ha_sensor) { + // this next section is adding the state class, device class and sometimes the icon + // used for Sensor and Binary Sensor Entities in HA + if (set_ha_classes) { const char * dc_ha = "device_class"; // device class switch (uom) { @@ -1187,6 +1189,10 @@ void Mqtt::publish_ha_sensor_config(uint8_t type, // EMSdevice doc[sc_ha] = F_(measurement); doc[dc_ha] = "signal_strength"; break; + case DeviceValueUOM::CONNECTIVITY: + doc[sc_ha] = F_(measurement); + doc[dc_ha] = "connectivity"; + break; case DeviceValueUOM::NONE: // for device entities which have numerical values, with no UOM if ((type != DeviceValueType::STRING) diff --git a/src/version.h b/src/version.h index 6da6a8cb1..76199a5b4 100644 --- a/src/version.h +++ b/src/version.h @@ -1,4 +1,4 @@ -#define EMSESP_APP_VERSION "3.5.0b9" +#define EMSESP_APP_VERSION "3.5.0b10" #if CONFIG_IDF_TARGET_ESP32C3 #define EMSESP_PLATFORM "ESP32-C3";