Merge branch 'dev2' of https://github.com/emsesp/EMS-ESP32 into dev2

This commit is contained in:
MichaelDvP
2023-07-12 07:11:10 +02:00
11 changed files with 155 additions and 184 deletions

View File

@@ -41,6 +41,7 @@
"@typescript-eslint/consistent-type-definitions": ["off", "type"],
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/no-unsafe-call": "off",
"@typescript-eslint/no-unsafe-enum-comparison": "off",
"@typescript-eslint/no-unsafe-assignment": "off",
"@typescript-eslint/no-unsafe-return": "off",
"@typescript-eslint/no-unsafe-member-access": "off",

View File

@@ -23,8 +23,8 @@
"@alova/scene-react": "^1.1.5",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@mui/icons-material": "^5.13.7",
"@mui/material": "^5.13.7",
"@mui/icons-material": "^5.14.0",
"@mui/material": "^5.14.0",
"@table-library/react-table-library": "4.1.4",
"@types/lodash-es": "^4.17.7",
"@types/node": "^20.4.1",
@@ -49,8 +49,8 @@
},
"devDependencies": {
"@types/mime-types": "^2",
"@typescript-eslint/eslint-plugin": "^5.61.0",
"@typescript-eslint/parser": "^5.61.0",
"@typescript-eslint/eslint-plugin": "^6.0.0",
"@typescript-eslint/parser": "^6.0.0",
"@vitejs/plugin-react-swc": "^3.3.2",
"eslint": "^8.44.0",
"eslint-config-airbnb": "^19.0.4",
@@ -67,8 +67,8 @@
"npm-run-all": "^4.1.5",
"prettier": "^3.0.0",
"rollup-plugin-visualizer": "^5.9.2",
"terser": "^5.18.2",
"vite": "^4.4.2",
"terser": "^5.19.0",
"vite": "^4.4.3",
"vite-plugin-svgr": "^3.2.0",
"vite-tsconfig-paths": "^4.2.0"
},

View File

@@ -4,6 +4,7 @@ import { ToastContainer, Slide } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.min.css';
import { localStorageDetector } from 'typesafe-i18n/detectors';
import { FeaturesLoader } from './contexts/features';
import type { FC } from 'react';
import AppRouting from 'AppRouting';
import CustomTheme from 'CustomTheme';
@@ -26,7 +27,9 @@ const App: FC = () => {
return (
<TypesafeI18n locale={detectedLocale}>
<CustomTheme>
<FeaturesLoader>
<AppRouting />
</FeaturesLoader>
<ToastContainer
position="bottom-left"
autoClose={3000}

View File

@@ -3,6 +3,7 @@ import { Box, Fab, Paper, Typography, Button } from '@mui/material';
import { useRequest } from 'alova';
import { useContext, useState } from 'react';
import { toast } from 'react-toastify';
import { FeaturesContext } from './contexts/features';
import type { ValidateFieldsError } from 'async-validator';
import type { Locales } from 'i18n/i18n-types';
@@ -33,6 +34,8 @@ const SignIn: FC = () => {
const { LL, setLocale, locale } = useContext(I18nContext);
const { features } = useContext(FeaturesContext);
const [signInRequest, setSignInRequest] = useState<SignInRequest>({
username: '',
password: ''
@@ -107,6 +110,7 @@ const SignIn: FC = () => {
})}
>
<Typography variant="h4">{PROJECT_NAME}</Typography>
<Typography variant="subtitle2">{features.version}</Typography>
<Box
mt={2}
mb={2}

View File

@@ -5,10 +5,9 @@ import type { FC } from 'react';
import type { RequiredChildrenProps } from 'utils';
import * as FeaturesApi from 'api/features';
import { ApplicationError, LoadingSpinner } from 'components';
const FeaturesLoader: FC<RequiredChildrenProps> = (props) => {
const { data: features, error } = useRequest(FeaturesApi.readFeatures);
const { data: features } = useRequest(FeaturesApi.readFeatures);
if (features) {
return (
@@ -21,12 +20,6 @@ const FeaturesLoader: FC<RequiredChildrenProps> = (props) => {
</FeaturesContext.Provider>
);
}
if (error) {
return <ApplicationError message={error?.message} />;
}
return <LoadingSpinner height="100vh" />;
};
export default FeaturesLoader;

View File

@@ -182,6 +182,7 @@ const MqttSettingsForm: FC = () => {
</Grid>
)}
</Grid>
<BlockFormControlLabel
control={<Checkbox name="clean_session" checked={data.clean_session} onChange={updateFormValue} />}
label={LL.MQTT_CLEAN_SESSION()}

View File

@@ -54,7 +54,7 @@ const UploadFileForm: FC = () => {
if (err.message === 'The user aborted a request') {
toast.warning(LL.UPLOAD() + ' ' + LL.ABORTED());
} else if (err.message === 'Network Error') {
toast.warning('Invalid file extension');
toast.warning('Invalid file extension or incompatible bin file');
} else {
toast.error(err.message);
}

View File

@@ -1,8 +1,4 @@
export interface Features {
project: boolean;
security: boolean;
mqtt: boolean;
ntp: boolean;
ota: boolean;
upload_firmware: boolean;
version: string;
platform: string; // "ESP32-C3" "ESP32-S2" "ESP32-S3" "ESP32"
}

View File

@@ -572,7 +572,7 @@ __metadata:
languageName: node
linkType: hard
"@eslint-community/eslint-utils@npm:^4.2.0":
"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.3.0":
version: 4.4.0
resolution: "@eslint-community/eslint-utils@npm:4.4.0"
dependencies:
@@ -583,7 +583,7 @@ __metadata:
languageName: node
linkType: hard
"@eslint-community/regexpp@npm:^4.4.0":
"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.5.0":
version: 4.5.1
resolution: "@eslint-community/regexpp@npm:4.5.1"
checksum: d79cbd99cc4dcfbb17e8dd30a30bb5aec5da9c60b9471043f886f116615bb15f0d417cb0ca638cefedba0b4c67c339e2011b53d88264a4540775f042a5879e01
@@ -712,9 +712,9 @@ __metadata:
languageName: node
linkType: hard
"@mui/base@npm:5.0.0-beta.6":
version: 5.0.0-beta.6
resolution: "@mui/base@npm:5.0.0-beta.6"
"@mui/base@npm:5.0.0-beta.7":
version: 5.0.0-beta.7
resolution: "@mui/base@npm:5.0.0-beta.7"
dependencies:
"@babel/runtime": ^7.22.5
"@emotion/is-prop-valid": ^1.2.1
@@ -731,20 +731,20 @@ __metadata:
peerDependenciesMeta:
"@types/react":
optional: true
checksum: 480895fa640865e70d928e54cebc9934f0152b0f5fea438b2238072f2bde5d67c7e4861d5645e94bb810459eb957ff305efab65a1cc26776d020bca06e20ed89
checksum: 31e0f319bedc6f89a57d1e8b82ba7a5138edeeabda8d9fac32ba68b0011dda4f05031a4fc8585e87bfbed35607d98a16e5aa0a99ec44bff0112a4ad33429c3e1
languageName: node
linkType: hard
"@mui/core-downloads-tracker@npm:^5.13.7":
version: 5.13.7
resolution: "@mui/core-downloads-tracker@npm:5.13.7"
checksum: ddf84bf0fede05717754a2fb7a151549d48e8dabaea5e4b38a65195aa0f148d28c1c6e7ff5bf4d83677860c0c2f2899f28400517f24dbac228b7e8f7be26fc3c
"@mui/core-downloads-tracker@npm:^5.14.0":
version: 5.14.0
resolution: "@mui/core-downloads-tracker@npm:5.14.0"
checksum: b25ca47667a45075d0ba5838e1be46f2f9768ed43154a815d922871f936a513284877637fdfaa44d0f2a1c8d7bc1af63002c27f5a6310eae217705f0004bb6ac
languageName: node
linkType: hard
"@mui/icons-material@npm:^5.13.7":
version: 5.13.7
resolution: "@mui/icons-material@npm:5.13.7"
"@mui/icons-material@npm:^5.14.0":
version: 5.14.0
resolution: "@mui/icons-material@npm:5.14.0"
dependencies:
"@babel/runtime": ^7.22.5
peerDependencies:
@@ -754,18 +754,18 @@ __metadata:
peerDependenciesMeta:
"@types/react":
optional: true
checksum: 37003114fc345d747406231cbe5d7257992912484923f3a56c9968754b3bfd94c6cc7314b2dea023a9f7aec0d449cb682201f455e42e9b587bd3e806d8f89ce7
checksum: bb82a34b318f1106dec039ccf9ed9d16a7b2d97ef2b87fa7e02acd0118a43573405568d75f78b1833fbbcf21f1ff3108ee7b4582092971335a60560d977279e5
languageName: node
linkType: hard
"@mui/material@npm:^5.13.7":
version: 5.13.7
resolution: "@mui/material@npm:5.13.7"
"@mui/material@npm:^5.14.0":
version: 5.14.0
resolution: "@mui/material@npm:5.14.0"
dependencies:
"@babel/runtime": ^7.22.5
"@mui/base": 5.0.0-beta.6
"@mui/core-downloads-tracker": ^5.13.7
"@mui/system": ^5.13.7
"@mui/base": 5.0.0-beta.7
"@mui/core-downloads-tracker": ^5.14.0
"@mui/system": ^5.14.0
"@mui/types": ^7.2.4
"@mui/utils": ^5.13.7
"@types/react-transition-group": ^4.4.6
@@ -787,7 +787,7 @@ __metadata:
optional: true
"@types/react":
optional: true
checksum: 360bc1fb0d9de0ee1438f44299cc7e463a2d02f2a263a7b9da2806ed8359be16174386a9cf54d24b22728c412c5a59c4ea333eb95c9058db8fa7b40fd4427c2d
checksum: 54d87a27c7ab36fc499d37f65556b469e545c50d0fa9ab15a5c10bfab4402ccd4a47e300d749205248fd712540b5fcae5ac0d6b4a00c92f931aba68f501228ea
languageName: node
linkType: hard
@@ -829,9 +829,9 @@ __metadata:
languageName: node
linkType: hard
"@mui/system@npm:^5.13.7":
version: 5.13.7
resolution: "@mui/system@npm:5.13.7"
"@mui/system@npm:^5.14.0":
version: 5.14.0
resolution: "@mui/system@npm:5.14.0"
dependencies:
"@babel/runtime": ^7.22.5
"@mui/private-theming": ^5.13.7
@@ -853,7 +853,7 @@ __metadata:
optional: true
"@types/react":
optional: true
checksum: 7031c0aca3eb6f72ef6c45195d54133cadd3d5bfe39b7f048f1ef38ee74a8f9402db07068230a02047b4a4623914e4c425e201b55e5349ab226f9f39d2d26096
checksum: df44fc84f52148109c216b5390d5bdc6bcdf84ad0c2e148bda8bf40b04823146eaaaab270c38801eea366677050360bb892ec2b8e2e84b02a98842feff1077f1
languageName: node
linkType: hard
@@ -1254,7 +1254,7 @@ __metadata:
languageName: node
linkType: hard
"@types/json-schema@npm:^7.0.9":
"@types/json-schema@npm:^7.0.11":
version: 7.0.12
resolution: "@types/json-schema@npm:7.0.12"
checksum: 2c39946ae321fe42d085c61a85872a81bbee70f9b2054ad344e8811dfc478fdbaf1ebf5f2989bb87c895ba2dfc3b1dcba85db11e467bbcdc023708814207791c
@@ -1385,124 +1385,128 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/eslint-plugin@npm:^5.61.0":
version: 5.61.0
resolution: "@typescript-eslint/eslint-plugin@npm:5.61.0"
"@typescript-eslint/eslint-plugin@npm:^6.0.0":
version: 6.0.0
resolution: "@typescript-eslint/eslint-plugin@npm:6.0.0"
dependencies:
"@eslint-community/regexpp": ^4.4.0
"@typescript-eslint/scope-manager": 5.61.0
"@typescript-eslint/type-utils": 5.61.0
"@typescript-eslint/utils": 5.61.0
"@eslint-community/regexpp": ^4.5.0
"@typescript-eslint/scope-manager": 6.0.0
"@typescript-eslint/type-utils": 6.0.0
"@typescript-eslint/utils": 6.0.0
"@typescript-eslint/visitor-keys": 6.0.0
debug: ^4.3.4
grapheme-splitter: ^1.0.4
graphemer: ^1.4.0
ignore: ^5.2.0
ignore: ^5.2.4
natural-compare: ^1.4.0
natural-compare-lite: ^1.4.0
semver: ^7.3.7
tsutils: ^3.21.0
semver: ^7.5.0
ts-api-utils: ^1.0.1
peerDependencies:
"@typescript-eslint/parser": ^5.0.0
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
"@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha
eslint: ^7.0.0 || ^8.0.0
peerDependenciesMeta:
typescript:
optional: true
checksum: 5ee13b7b776d7d910082cb1bc31efe6e94fcb22ee163636df28bcc49891d678c05632c8f0900b954ea82701270bd135d45cc1b8234caf4f97864e49b54c04799
checksum: 0928778c40fe632b3b4672e7d724d0f624724da36fa3c37fe831fc6e7b6e3f80bb860fc5e46457bd2e61ed863af3122dec3d75f843e81b866fe7bd6f7b4cbf7d
languageName: node
linkType: hard
"@typescript-eslint/parser@npm:^5.61.0":
version: 5.61.0
resolution: "@typescript-eslint/parser@npm:5.61.0"
"@typescript-eslint/parser@npm:^6.0.0":
version: 6.0.0
resolution: "@typescript-eslint/parser@npm:6.0.0"
dependencies:
"@typescript-eslint/scope-manager": 5.61.0
"@typescript-eslint/types": 5.61.0
"@typescript-eslint/typescript-estree": 5.61.0
"@typescript-eslint/scope-manager": 6.0.0
"@typescript-eslint/types": 6.0.0
"@typescript-eslint/typescript-estree": 6.0.0
"@typescript-eslint/visitor-keys": 6.0.0
debug: ^4.3.4
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
eslint: ^7.0.0 || ^8.0.0
peerDependenciesMeta:
typescript:
optional: true
checksum: 4fd5a589b0e27a931f32296cc020e7b6052337ceb8312008e5cacbbcd6706f12b2bc481398c40d6e8c482770929593564a6ed2a3b681e7a7634282bd9c12afc4
checksum: f4e4de103534378c7835bea95299282c2f997061c304a242f4fac7ccca3862f3b98b634ee0b3bb2627ac557f84fd012ab8478d6207849d6b4e6b389b02444efb
languageName: node
linkType: hard
"@typescript-eslint/scope-manager@npm:5.61.0":
version: 5.61.0
resolution: "@typescript-eslint/scope-manager@npm:5.61.0"
"@typescript-eslint/scope-manager@npm:6.0.0":
version: 6.0.0
resolution: "@typescript-eslint/scope-manager@npm:6.0.0"
dependencies:
"@typescript-eslint/types": 5.61.0
"@typescript-eslint/visitor-keys": 5.61.0
checksum: 3f4cc831094490d1d201ed1bdf4441eb807b3d6613898b0683ff989bb6dbaeef0311a6dd9d8deb2e4efa2a84d9c857de058edba2eb92abbaeb0385d1dd2ab564
"@typescript-eslint/types": 6.0.0
"@typescript-eslint/visitor-keys": 6.0.0
checksum: 0a4666f84775e335c985b1c118a15fd99b741316395d85e5d207ef2d6192f9aae91ed7771849f780b4c57772795868aecb60a2f1ace9f4f1202c183373a565a8
languageName: node
linkType: hard
"@typescript-eslint/type-utils@npm:5.61.0":
version: 5.61.0
resolution: "@typescript-eslint/type-utils@npm:5.61.0"
"@typescript-eslint/type-utils@npm:6.0.0":
version: 6.0.0
resolution: "@typescript-eslint/type-utils@npm:6.0.0"
dependencies:
"@typescript-eslint/typescript-estree": 5.61.0
"@typescript-eslint/utils": 5.61.0
"@typescript-eslint/typescript-estree": 6.0.0
"@typescript-eslint/utils": 6.0.0
debug: ^4.3.4
tsutils: ^3.21.0
ts-api-utils: ^1.0.1
peerDependencies:
eslint: "*"
eslint: ^7.0.0 || ^8.0.0
peerDependenciesMeta:
typescript:
optional: true
checksum: a99775baf0a6401bb937c9fdf4f1d23a16428c7ec96c39e549ed313af6ffff3274bad7684d9fc7f846e15c4ef7343a7372a6e6868f9e1ea4061ced7c67f50d9a
checksum: b655304feb7f1c8b641c312bec68e74243f408d24543af2e84bc591a14379814ed6c65f6fa061202b04dd39b02152f38c11cd50dd614967fa8027c5b831da3a5
languageName: node
linkType: hard
"@typescript-eslint/types@npm:5.61.0":
version: 5.61.0
resolution: "@typescript-eslint/types@npm:5.61.0"
checksum: f6aacd4ee3180d851463976696d9c43df2debf3bad2c3f26aeaf2a0cab30235152efb5f04e649863548bfc57f454d6c0a2f12f68508feb4771d7e6b1b72bc066
"@typescript-eslint/types@npm:6.0.0":
version: 6.0.0
resolution: "@typescript-eslint/types@npm:6.0.0"
checksum: 5183652b95cc8cabfb87e3e2acde9c0c72defc784419f8f45cbe650c4f7a17e3064696a9c35cda6819986da2793b054e027d59ab661862cb73beb58f62155b25
languageName: node
linkType: hard
"@typescript-eslint/typescript-estree@npm:5.61.0":
version: 5.61.0
resolution: "@typescript-eslint/typescript-estree@npm:5.61.0"
"@typescript-eslint/typescript-estree@npm:6.0.0":
version: 6.0.0
resolution: "@typescript-eslint/typescript-estree@npm:6.0.0"
dependencies:
"@typescript-eslint/types": 5.61.0
"@typescript-eslint/visitor-keys": 5.61.0
"@typescript-eslint/types": 6.0.0
"@typescript-eslint/visitor-keys": 6.0.0
debug: ^4.3.4
globby: ^11.1.0
is-glob: ^4.0.3
semver: ^7.3.7
tsutils: ^3.21.0
semver: ^7.5.0
ts-api-utils: ^1.0.1
peerDependenciesMeta:
typescript:
optional: true
checksum: 78f60103ad7c282840bd7623b38b785fdd46a75511354e1336589bae532daab7e7f297b1264814e7cd3191cf2e0608b1cc89fc599c0b03085b709a6490965233
checksum: 0845e6fd2d2dc4b7187b910b8ceda4bdb2d89090fbbcf294c8b8d36701ff5c81f1efc6424860db15c6a6367f4205d0f3c24a5293f1a6cc25a39ebbd52ef2b91d
languageName: node
linkType: hard
"@typescript-eslint/utils@npm:5.61.0":
version: 5.61.0
resolution: "@typescript-eslint/utils@npm:5.61.0"
"@typescript-eslint/utils@npm:6.0.0":
version: 6.0.0
resolution: "@typescript-eslint/utils@npm:6.0.0"
dependencies:
"@eslint-community/eslint-utils": ^4.2.0
"@types/json-schema": ^7.0.9
"@eslint-community/eslint-utils": ^4.3.0
"@types/json-schema": ^7.0.11
"@types/semver": ^7.3.12
"@typescript-eslint/scope-manager": 5.61.0
"@typescript-eslint/types": 5.61.0
"@typescript-eslint/typescript-estree": 5.61.0
"@typescript-eslint/scope-manager": 6.0.0
"@typescript-eslint/types": 6.0.0
"@typescript-eslint/typescript-estree": 6.0.0
eslint-scope: ^5.1.1
semver: ^7.3.7
semver: ^7.5.0
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
checksum: f55bc4a0637e5f529260a0240ae7ecca04b20fde69e1892991d1087b3e230fa02df1c46e671359b3789f15bcfb90cf9f47bb79fa5f48b41b92966706cc66f413
eslint: ^7.0.0 || ^8.0.0
checksum: 7027316300d337e0004b56db0de53bb74c71a06b508377d9ce3bce9a8698f33aaf9e4f1ddbaec2daf6f9bfcf2f6ee80dd9c35117858ab72e2ca17d7abfae9313
languageName: node
linkType: hard
"@typescript-eslint/visitor-keys@npm:5.61.0":
version: 5.61.0
resolution: "@typescript-eslint/visitor-keys@npm:5.61.0"
"@typescript-eslint/visitor-keys@npm:6.0.0":
version: 6.0.0
resolution: "@typescript-eslint/visitor-keys@npm:6.0.0"
dependencies:
"@typescript-eslint/types": 5.61.0
eslint-visitor-keys: ^3.3.0
checksum: f438b68b67e03fc39e39537a594259f5df64155f775ef7afb915507f7c364ba8a93567302080c3364d270001d5dd67ee0a0632a92d8d6f6fc776f97c082c130a
"@typescript-eslint/types": 6.0.0
eslint-visitor-keys: ^3.4.1
checksum: 389eee2b479d47b1afbf6c344fa8601e6a47499cce069acd9e94fc57bd85bc16af1c8583bb301b704076e33589b0eec9ee71e6977709c18b59e345f45e3a9277
languageName: node
linkType: hard
@@ -1525,8 +1529,8 @@ __metadata:
"@alova/scene-react": ^1.1.5
"@emotion/react": ^11.11.1
"@emotion/styled": ^11.11.0
"@mui/icons-material": ^5.13.7
"@mui/material": ^5.13.7
"@mui/icons-material": ^5.14.0
"@mui/material": ^5.14.0
"@table-library/react-table-library": 4.1.4
"@types/lodash-es": ^4.17.7
"@types/mime-types": ^2
@@ -1534,8 +1538,8 @@ __metadata:
"@types/react": ^18.2.14
"@types/react-dom": ^18.2.6
"@types/react-router-dom": ^5.3.3
"@typescript-eslint/eslint-plugin": ^5.61.0
"@typescript-eslint/parser": ^5.61.0
"@typescript-eslint/eslint-plugin": ^6.0.0
"@typescript-eslint/parser": ^6.0.0
"@vitejs/plugin-react-swc": ^3.3.2
alova: ^2.9.1
async-validator: ^4.2.5
@@ -1565,10 +1569,10 @@ __metadata:
react-toastify: ^9.1.3
rollup-plugin-visualizer: ^5.9.2
sockette: ^2.0.6
terser: ^5.18.2
terser: ^5.19.0
typesafe-i18n: ^5.24.4
typescript: ^5.1.6
vite: ^4.4.2
vite: ^4.4.3
vite-plugin-svgr: ^3.2.0
vite-tsconfig-paths: ^4.2.0
languageName: unknown
@@ -3378,6 +3382,13 @@ __metadata:
languageName: node
linkType: hard
"grapheme-splitter@npm:^1.0.4":
version: 1.0.4
resolution: "grapheme-splitter@npm:1.0.4"
checksum: 108415fb07ac913f17040dc336607772fcea68c7f495ef91887edddb0b0f5ff7bc1d1ab181b125ecb2f0505669ef12c9a178a3bbd2dd8e042d8c5f1d7c90331a
languageName: node
linkType: hard
"graphemer@npm:^1.4.0":
version: 1.4.0
resolution: "graphemer@npm:1.4.0"
@@ -4782,7 +4793,7 @@ __metadata:
languageName: node
linkType: hard
"postcss@npm:^8.4.24":
"postcss@npm:^8.4.25":
version: 8.4.25
resolution: "postcss@npm:8.4.25"
dependencies:
@@ -5241,7 +5252,7 @@ __metadata:
languageName: node
linkType: hard
"semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3":
"semver@npm:^7.3.5, semver@npm:^7.5.0, semver@npm:^7.5.3":
version: 7.5.4
resolution: "semver@npm:7.5.4"
dependencies:
@@ -5676,9 +5687,9 @@ __metadata:
languageName: node
linkType: hard
"terser@npm:^5.18.2":
version: 5.18.2
resolution: "terser@npm:5.18.2"
"terser@npm:^5.19.0":
version: 5.19.0
resolution: "terser@npm:5.19.0"
dependencies:
"@jridgewell/source-map": ^0.3.3
acorn: ^8.8.2
@@ -5686,7 +5697,7 @@ __metadata:
source-map-support: ~0.5.20
bin:
terser: bin/terser
checksum: 7a7203eceef379c6381f5b43aaed509d12381c7453baee28b320fcd968523347f1bf4ba297cd3155ec860e9604279a1c9bc7060b35d9c34fae94c80cfa2738c2
checksum: f12e94091d488b0700d1c519d5805fb46eee2ef7de147b6899b4b9b609895dddd5aabbc53f6a6c76e5ce9154ed7a9c7496b82fefe713a29c75ced45c4623d106
languageName: node
linkType: hard
@@ -5731,6 +5742,15 @@ __metadata:
languageName: node
linkType: hard
"ts-api-utils@npm:^1.0.1":
version: 1.0.1
resolution: "ts-api-utils@npm:1.0.1"
peerDependencies:
typescript: ">=4.2.0"
checksum: 8e8a54afb44df31c413e6f5b817a305a37780726125db26e85d01d553efc31aacb3ccad111a14844b584776f24e71bcd4db2f2d3e9bce8031a329dc78f3e46e2
languageName: node
linkType: hard
"tsconfck@npm:^2.1.0":
version: 2.1.1
resolution: "tsconfck@npm:2.1.1"
@@ -5757,13 +5777,6 @@ __metadata:
languageName: node
linkType: hard
"tslib@npm:^1.8.1":
version: 1.14.1
resolution: "tslib@npm:1.14.1"
checksum: 69ae09c49eea644bc5ebe1bca4fa4cc2c82b7b3e02f43b84bd891504edf66dbc6b2ec0eef31a957042de2269139e4acff911e6d186a258fb14069cd7f6febce2
languageName: node
linkType: hard
"tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.6.0":
version: 2.6.0
resolution: "tslib@npm:2.6.0"
@@ -5771,17 +5784,6 @@ __metadata:
languageName: node
linkType: hard
"tsutils@npm:^3.21.0":
version: 3.21.0
resolution: "tsutils@npm:3.21.0"
dependencies:
tslib: ^1.8.1
peerDependencies:
typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
checksum: 02f19e458ec78ead8fffbf711f834ad8ecd2cc6ade4ec0320790713dccc0a412b99e7fd907c4cda2a1dc602c75db6f12e0108e87a5afad4b2f9e90a24cabd5a2
languageName: node
linkType: hard
"type-check@npm:^0.4.0, type-check@npm:~0.4.0":
version: 0.4.0
resolution: "type-check@npm:0.4.0"
@@ -5953,13 +5955,13 @@ __metadata:
languageName: node
linkType: hard
"vite@npm:^4.4.2":
version: 4.4.2
resolution: "vite@npm:4.4.2"
"vite@npm:^4.4.3":
version: 4.4.3
resolution: "vite@npm:4.4.3"
dependencies:
esbuild: ^0.18.10
fsevents: ~2.3.2
postcss: ^8.4.24
postcss: ^8.4.25
rollup: ^3.25.2
peerDependencies:
"@types/node": ">= 14"
@@ -5989,7 +5991,7 @@ __metadata:
optional: true
bin:
vite: bin/vite.js
checksum: 8c505f45cc28a67a31a6b944d1a319c63f6cda98e1e38c6da46e604f7981cdb3fb08c022d4887a190dd88f9d0d6155e992f2206f0cacb301103f5eec53182c3b
checksum: b92624b8a15629fa89778bb1841ece06cd78a704170d05fa49e1766f90a1ce75ece6d0b479f638047b4d2203057ec07ded935754d609bb90ab79870ab3485c14
languageName: node
linkType: hard

View File

@@ -1,4 +1,5 @@
#include <FeaturesService.h>
#include "../../src/emsesp_stub.hpp" // proddy added
using namespace std::placeholders; // for `_1` etc
@@ -9,36 +10,10 @@ FeaturesService::FeaturesService(AsyncWebServer * server) {
void FeaturesService::features(AsyncWebServerRequest * request) {
AsyncJsonResponse * response = new AsyncJsonResponse(false, MAX_FEATURES_SIZE);
JsonObject root = response->getRoot();
#if FT_ENABLED(FT_PROJECT)
root["project"] = true;
#else
root["project"] = false;
#endif
#if FT_ENABLED(FT_SECURITY)
root["security"] = true;
#else
root["security"] = false;
#endif
#if FT_ENABLED(FT_MQTT)
root["mqtt"] = true;
#else
root["mqtt"] = false;
#endif
#if FT_ENABLED(FT_NTP)
root["ntp"] = true;
#else
root["ntp"] = false;
#endif
#if FT_ENABLED(FT_OTA)
root["ota"] = true;
#else
root["ota"] = false;
#endif
#if FT_ENABLED(FT_UPLOAD_FIRMWARE)
root["upload_firmware"] = true;
#else
root["upload_firmware"] = false;
#endif
root["version"] = EMSESP_APP_VERSION;
root["platform"] = EMSESP_PLATFORM;
response->setLength();
request->send(response);
}

View File

@@ -323,12 +323,8 @@ security_settings = {
]
};
const features = {
project: true,
security: true,
mqtt: true,
ntp: true,
ota: true,
upload_firmware: true
version: 'v3.6.0-demo',
platform: 'ESP32-S3'
};
const verify_authentication = { access_token: '1234' };
const signin = {