From f80d03210b27a45fddce27d8d3b347f1b3a8d33e Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 19 Feb 2024 15:47:59 +0100 Subject: [PATCH 01/71] webapp: update dependencies --- webapp/package.json | 4 ++-- webapp/yarn.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 418eae1a..79568596 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -29,7 +29,7 @@ "@types/bootstrap": "^5.2.10", "@types/node": "^20.11.19", "@types/pulltorefreshjs": "^0.1.7", - "@types/sortablejs": "^1.15.7", + "@types/sortablejs": "^1.15.8", "@types/spark-md5": "^3.0.4", "@vitejs/plugin-vue": "^5.0.4", "@vue/eslint-config-typescript": "^12.0.0", @@ -39,7 +39,7 @@ "npm-run-all": "^4.1.5", "pulltorefreshjs": "^0.1.22", "sass": "^1.71.0", - "terser": "^5.27.1", + "terser": "^5.27.2", "typescript": "^5.3.3", "vite": "^5.1.3", "vite-plugin-compression": "^0.5.1", diff --git a/webapp/yarn.lock b/webapp/yarn.lock index 5e6d4706..b0002b95 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -452,10 +452,10 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.1.tgz#0480eeb7221eb9bc398ad7432c9d7e14b1a5a367" integrity sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg== -"@types/sortablejs@^1.15.7": - version "1.15.7" - resolved "https://registry.yarnpkg.com/@types/sortablejs/-/sortablejs-1.15.7.tgz#11f85e98fce2854708e5c6d6011f7a236d79ae9f" - integrity sha512-PvgWCx1Lbgm88FdQ6S7OGvLIjWS66mudKPlfdrWil0TjsO5zmoZmzoKiiwRShs1dwPgrlkr0N4ewuy0/+QUXYQ== +"@types/sortablejs@^1.15.8": + version "1.15.8" + resolved "https://registry.yarnpkg.com/@types/sortablejs/-/sortablejs-1.15.8.tgz#11ed555076046e00869a5ef85d1e7651e7a66ef6" + integrity sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg== "@types/spark-md5@^3.0.4": version "3.0.4" @@ -2450,10 +2450,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -terser@^5.27.1: - version "5.27.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.27.1.tgz#b0092975ea1b379d166088a1a57e32f0839d84a2" - integrity sha512-29wAr6UU/oQpnTw5HoadwjUZnFQXGdOfj0LjZ4sVxzqwHh/QVkvr7m8y9WoR4iN3FRitVduTc6KdjcW38Npsug== +terser@^5.27.2: + version "5.27.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.27.2.tgz#577a362515ff5635f98ba149643793a3973ba77e" + integrity sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" From 9b7df71da03779e4db279998e8eadbe2b77c9c67 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Sun, 25 Feb 2024 11:23:49 +0100 Subject: [PATCH 02/71] webapp: Fix typo Fixes #1780 --- lib/Hoymiles/src/parser/AlarmLogParser.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Hoymiles/src/parser/AlarmLogParser.cpp b/lib/Hoymiles/src/parser/AlarmLogParser.cpp index 4086f8e3..4bf004ab 100644 --- a/lib/Hoymiles/src/parser/AlarmLogParser.cpp +++ b/lib/Hoymiles/src/parser/AlarmLogParser.cpp @@ -55,7 +55,7 @@ const std::array AlarmLogParser::_alarmMe { AlarmMessageType_t::ALL, 144, "Grid: Grid overfrequency", "Netz: Netzüberfrequenz", "Réseau: Surfréquence du réseau" }, { AlarmMessageType_t::ALL, 145, "Grid: Grid underfrequency", "Netz: Netzunterfrequenz", "Réseau: Sous-fréquence du réseau" }, { AlarmMessageType_t::ALL, 146, "Grid: Rapid grid frequency change rate", "Netz: Schnelle Wechselrate der Netzfrequenz", "Réseau: Taux de fluctuation rapide de la fréquence du réseau" }, - { AlarmMessageType_t::ALL, 147, "Grid: Power grid outage", "Netz: Eletrizitätsnetzausfall", "Réseau: Panne du réseau électrique" }, + { AlarmMessageType_t::ALL, 147, "Grid: Power grid outage", "Netz: Elektrizitätsnetzausfall", "Réseau: Panne du réseau électrique" }, { AlarmMessageType_t::ALL, 148, "Grid: Grid disconnection", "Netz: Netztrennung", "Réseau: Déconnexion du réseau" }, { AlarmMessageType_t::ALL, 149, "Grid: Island detected", "Netz: Inselbetrieb festgestellt", "Réseau: Détection d’îlots" }, @@ -294,4 +294,4 @@ int AlarmLogParser::getTimezoneOffset() gmt = mktime(ptm); return static_cast(difftime(rawtime, gmt)); -} \ No newline at end of file +} From 50abcd10617dcbbc6cf47496d51910a0aad1f1a9 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 1 Mar 2024 19:30:24 +0100 Subject: [PATCH 03/71] Fix: Prevent hiding text on display if it's too long Fixes: #1797 --- src/Display_Graphic.cpp | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/Display_Graphic.cpp b/src/Display_Graphic.cpp index 3c7eaf1d..4433c434 100644 --- a/src/Display_Graphic.cpp +++ b/src/Display_Graphic.cpp @@ -29,11 +29,16 @@ const uint8_t languages[] = { }; static const char* const i18n_offline[] = { "Offline", "Offline", "Offline" }; + static const char* const i18n_current_power_w[] = { "%.0f W", "%.0f W", "%.0f W" }; static const char* const i18n_current_power_kw[] = { "%.1f kW", "%.1f kW", "%.1f kW" }; + static const char* const i18n_yield_today_wh[] = { "today: %4.0f Wh", "Heute: %4.0f Wh", "auj.: %4.0f Wh" }; +static const char* const i18n_yield_today_kwh[] = { "today: %.1f kWh", "Heute: %.1f kWh", "auj.: %.1f kWh" }; + static const char* const i18n_yield_total_kwh[] = { "total: %.1f kWh", "Ges.: %.1f kWh", "total: %.1f kWh" }; static const char* const i18n_yield_total_mwh[] = { "total: %.0f kWh", "Ges.: %.0f kWh", "total: %.0f kWh" }; + static const char* const i18n_date_format[] = { "%m/%d/%Y %H:%M", "%d.%m.%Y %H:%M", "%d/%m/%Y %H:%M" }; DisplayGraphicClass::DisplayGraphicClass() @@ -129,6 +134,10 @@ void DisplayGraphicClass::printText(const char* text, const uint8_t line) offset -= (_isLarge ? 5 : 0); // oscillate around center on large screens dispX += offset; } + + if (dispX > _display->getDisplayWidth()) { + dispX = 0; + } _display->drawStr(dispX, _lineOffsets[line], text); } @@ -237,15 +246,20 @@ void DisplayGraphicClass::loop() //<======================= if (showText) { - //=====> Today & Total Production ======= - snprintf(_fmtText, sizeof(_fmtText), i18n_yield_today_wh[_display_language], Datastore.getTotalAcYieldDayEnabled()); + // Daily production + float wattsToday = Datastore.getTotalAcYieldDayEnabled(); + if (wattsToday >= 10000) { + snprintf(_fmtText, sizeof(_fmtText), i18n_yield_today_kwh[_display_language], wattsToday / 1000); + } else { + snprintf(_fmtText, sizeof(_fmtText), i18n_yield_today_wh[_display_language], wattsToday); + } printText(_fmtText, 1); - const float watts = Datastore.getTotalAcYieldTotalEnabled(); - auto const format = (watts >= 1000) ? i18n_yield_total_mwh : i18n_yield_total_kwh; - snprintf(_fmtText, sizeof(_fmtText), format[_display_language], watts); + // Total production + const float wattsTotal = Datastore.getTotalAcYieldTotalEnabled(); + auto const format = (wattsTotal >= 1000) ? i18n_yield_total_mwh : i18n_yield_total_kwh; + snprintf(_fmtText, sizeof(_fmtText), format[_display_language], wattsTotal); printText(_fmtText, 2); - //<======================= //=====> IP or Date-Time ======== // Change every 3 seconds From 021d9b5f44c499f309e28c60c3e797b3f1237e0d Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 1 Mar 2024 19:31:47 +0100 Subject: [PATCH 04/71] Feature: Added description for alarm id 152 Fixes: #1798 --- lib/Hoymiles/src/parser/AlarmLogParser.cpp | 1 + lib/Hoymiles/src/parser/AlarmLogParser.h | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/Hoymiles/src/parser/AlarmLogParser.cpp b/lib/Hoymiles/src/parser/AlarmLogParser.cpp index 4bf004ab..65215900 100644 --- a/lib/Hoymiles/src/parser/AlarmLogParser.cpp +++ b/lib/Hoymiles/src/parser/AlarmLogParser.cpp @@ -60,6 +60,7 @@ const std::array AlarmLogParser::_alarmMe { AlarmMessageType_t::ALL, 149, "Grid: Island detected", "Netz: Inselbetrieb festgestellt", "Réseau: Détection d’îlots" }, { AlarmMessageType_t::ALL, 150, "DCI exceeded", "", "" }, + { AlarmMessageType_t::ALL, 152, "Grid: Phase angle difference between two phases exceeded 5° >10 times", "", "" }, { AlarmMessageType_t::HMT, 171, "Grid: Abnormal phase difference between phase to phase", "", "" }, { AlarmMessageType_t::ALL, 181, "Abnormal insulation impedance", "", "" }, { AlarmMessageType_t::ALL, 182, "Abnormal grounding", "", "" }, diff --git a/lib/Hoymiles/src/parser/AlarmLogParser.h b/lib/Hoymiles/src/parser/AlarmLogParser.h index a6f0c10c..87413ce7 100644 --- a/lib/Hoymiles/src/parser/AlarmLogParser.h +++ b/lib/Hoymiles/src/parser/AlarmLogParser.h @@ -8,7 +8,7 @@ #define ALARM_LOG_ENTRY_SIZE 12 #define ALARM_LOG_PAYLOAD_SIZE (ALARM_LOG_ENTRY_COUNT * ALARM_LOG_ENTRY_SIZE + 4) -#define ALARM_MSG_COUNT 130 +#define ALARM_MSG_COUNT 131 struct AlarmLogEntry_t { uint16_t MessageId; @@ -62,4 +62,4 @@ private: AlarmMessageType_t _messageType = AlarmMessageType_t::ALL; static const std::array _alarmMessages; -}; \ No newline at end of file +}; From 3c2b35016aefeb6a501d9d0bc2e0db3f725cd6bb Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 1 Mar 2024 19:36:18 +0100 Subject: [PATCH 05/71] webapp: update dependencies --- webapp/package.json | 20 +-- webapp/yarn.lock | 305 ++++++++++++++++++++++---------------------- 2 files changed, 164 insertions(+), 161 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 79568596..102cf715 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -13,35 +13,35 @@ }, "dependencies": { "@popperjs/core": "^2.11.8", - "bootstrap": "^5.3.2", + "bootstrap": "^5.3.3", "bootstrap-icons-vue": "^1.11.3", "mitt": "^3.0.1", "sortablejs": "^1.15.2", "spark-md5": "^3.0.2", - "vue": "^3.4.19", - "vue-i18n": "^9.9.1", - "vue-router": "^4.2.5" + "vue": "^3.4.21", + "vue-i18n": "^9.10.1", + "vue-router": "^4.3.0" }, "devDependencies": { "@intlify/unplugin-vue-i18n": "^2.0.0", "@rushstack/eslint-patch": "^1.7.2", "@tsconfig/node18": "^18.2.2", "@types/bootstrap": "^5.2.10", - "@types/node": "^20.11.19", + "@types/node": "^20.11.24", "@types/pulltorefreshjs": "^0.1.7", "@types/sortablejs": "^1.15.8", "@types/spark-md5": "^3.0.4", "@vitejs/plugin-vue": "^5.0.4", "@vue/eslint-config-typescript": "^12.0.0", "@vue/tsconfig": "^0.5.1", - "eslint": "^8.56.0", - "eslint-plugin-vue": "^9.21.1", + "eslint": "^8.57.0", + "eslint-plugin-vue": "^9.22.0", "npm-run-all": "^4.1.5", "pulltorefreshjs": "^0.1.22", - "sass": "^1.71.0", - "terser": "^5.27.2", + "sass": "^1.71.1", + "terser": "^5.28.1", "typescript": "^5.3.3", - "vite": "^5.1.3", + "vite": "^5.1.4", "vite-plugin-compression": "^0.5.1", "vite-plugin-css-injected-by-js": "^3.4.0", "vue-tsc": "^1.8.27" diff --git a/webapp/yarn.lock b/webapp/yarn.lock index b0002b95..74da0aef 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -171,18 +171,18 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.56.0": - version "8.56.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" - integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== -"@humanwhocodes/config-array@^0.11.13": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== +"@humanwhocodes/config-array@^0.11.14": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: - "@humanwhocodes/object-schema" "^2.0.1" - debug "^4.1.1" + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": @@ -190,10 +190,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== "@intlify/bundle-utils@^7.4.0": version "7.4.0" @@ -211,20 +211,20 @@ source-map-js "^1.0.1" yaml-eslint-parser "^1.2.2" -"@intlify/core-base@9.9.1": - version "9.9.1" - resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.9.1.tgz#97ff0a98bf416c3f895e2a4fbcb0da353326b71a" - integrity sha512-qsV15dg7jNX2faBRyKMgZS8UcFJViWEUPLdzZ9UR0kQZpFVeIpc0AG7ZOfeP7pX2T9SQ5jSiorq/tii9nkkafA== +"@intlify/core-base@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.10.1.tgz#e61d507d35beb0c69f9c94566313f9520c25a84a" + integrity sha512-0+Wtjj04GIyglh5KKiNjRwgjpHrhqqGZhaKY/QVjjogWKZq5WHROrTi84pNVsRN18QynyPmjtsVUWqFKPQ45xQ== dependencies: - "@intlify/message-compiler" "9.9.1" - "@intlify/shared" "9.9.1" + "@intlify/message-compiler" "9.10.1" + "@intlify/shared" "9.10.1" -"@intlify/message-compiler@9.9.1": - version "9.9.1" - resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.9.1.tgz#4cd9c5a408be27784928e4cd57a77ea6ddb17e56" - integrity sha512-zTvP6X6HeumHOXuAE1CMMsV6tTX+opKMOxO1OHTCg5N5Sm/F7d8o2jdT6W6L5oHUsJ/vvkGefHIs7Q3hfowmsA== +"@intlify/message-compiler@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.10.1.tgz#d70c9ec211dab67d50a42ad1fb782c0e02f89c42" + integrity sha512-b68UTmRhgZfswJZI7VAgW6BXZK5JOpoi5swMLGr4j6ss2XbFY13kiw+Hu+xYAfulMPSapcHzdWHnq21VGnMCnA== dependencies: - "@intlify/shared" "9.9.1" + "@intlify/shared" "9.10.1" source-map-js "^1.0.2" "@intlify/message-compiler@^9.4.0": @@ -235,16 +235,16 @@ "@intlify/shared" "9.4.0" source-map-js "^1.0.2" +"@intlify/shared@9.10.1": + version "9.10.1" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.10.1.tgz#024ad6dd4ee9581962437570b3dc25516c82f4e9" + integrity sha512-liyH3UMoglHBUn70iCYcy9CQlInx/lp50W2aeSxqqrvmG+LDj/Jj7tBJhBoQL4fECkldGhbmW0g2ommHfL6Wmw== + "@intlify/shared@9.4.0", "@intlify/shared@^9.4.0": version "9.4.0" resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.4.0.tgz#4a78d462fc82433db900981e12eb5b1aae3d6085" integrity sha512-AFqymip2kToqA0B6KZPg5jSrdcVHoli9t/VhGKE2iiMq9utFuMoGdDC/JOCIZgwxo6aXAk86QyU2XtzEoMuZ6A== -"@intlify/shared@9.9.1": - version "9.9.1" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.9.1.tgz#b602d012b35f6c336b29a8098296dfac96a005f5" - integrity sha512-b3Pta1nwkz5rGq434v0psHwEwHGy1pYCttfcM22IE//K9owbpkEvFptx9VcuRAxjQdrO2If249cmDDjBu5wMDA== - "@intlify/unplugin-vue-i18n@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-2.0.0.tgz#5b087e17b4eb4381d0a111cd89df4037880e932f" @@ -435,10 +435,10 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== -"@types/node@^20.11.19": - version "20.11.19" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.19.tgz#b466de054e9cb5b3831bee38938de64ac7f81195" - integrity sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ== +"@types/node@^20.11.24": + version "20.11.24" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.24.tgz#cc207511104694e84e9fb17f9a0c4c42d4517792" + integrity sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long== dependencies: undici-types "~5.26.4" @@ -599,13 +599,13 @@ estree-walker "^2.0.2" source-map-js "^1.0.2" -"@vue/compiler-core@3.4.19": - version "3.4.19" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.19.tgz#3161b1ede69da00f3ce8155dfab907a3eaa0515e" - integrity sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w== +"@vue/compiler-core@3.4.21": + version "3.4.21" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.21.tgz#868b7085378fc24e58c9aed14c8d62110a62be1a" + integrity sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og== dependencies: "@babel/parser" "^7.23.9" - "@vue/shared" "3.4.19" + "@vue/shared" "3.4.21" entities "^4.5.0" estree-walker "^2.0.2" source-map-js "^1.0.2" @@ -618,13 +618,13 @@ "@vue/compiler-core" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-dom@3.4.19": - version "3.4.19" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.19.tgz#2457e57e978f431e3b5fd11fc50a3e92d5816f9a" - integrity sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA== +"@vue/compiler-dom@3.4.21": + version "3.4.21" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz#0077c355e2008207283a5a87d510330d22546803" + integrity sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA== dependencies: - "@vue/compiler-core" "3.4.19" - "@vue/shared" "3.4.19" + "@vue/compiler-core" "3.4.21" + "@vue/shared" "3.4.21" "@vue/compiler-dom@^3.3.0": version "3.3.2" @@ -634,19 +634,19 @@ "@vue/compiler-core" "3.3.2" "@vue/shared" "3.3.2" -"@vue/compiler-sfc@3.4.19": - version "3.4.19" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.19.tgz#33b238ded6d63e51f6a7048b742626f6007df129" - integrity sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg== +"@vue/compiler-sfc@3.4.21": + version "3.4.21" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.21.tgz#4af920dc31ab99e1ff5d152b5fe0ad12181145b2" + integrity sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ== dependencies: "@babel/parser" "^7.23.9" - "@vue/compiler-core" "3.4.19" - "@vue/compiler-dom" "3.4.19" - "@vue/compiler-ssr" "3.4.19" - "@vue/shared" "3.4.19" + "@vue/compiler-core" "3.4.21" + "@vue/compiler-dom" "3.4.21" + "@vue/compiler-ssr" "3.4.21" + "@vue/shared" "3.4.21" estree-walker "^2.0.2" - magic-string "^0.30.6" - postcss "^8.4.33" + magic-string "^0.30.7" + postcss "^8.4.35" source-map-js "^1.0.2" "@vue/compiler-sfc@^3.2.47": @@ -673,19 +673,24 @@ "@vue/compiler-dom" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-ssr@3.4.19": - version "3.4.19" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.19.tgz#1f8ee06005ebbaa354f8783fad84e9f7ea4a69c2" - integrity sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw== +"@vue/compiler-ssr@3.4.21": + version "3.4.21" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.21.tgz#b84ae64fb9c265df21fc67f7624587673d324fef" + integrity sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q== dependencies: - "@vue/compiler-dom" "3.4.19" - "@vue/shared" "3.4.19" + "@vue/compiler-dom" "3.4.21" + "@vue/shared" "3.4.21" "@vue/devtools-api@^6.5.0": version "6.5.0" resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz#98b99425edee70b4c992692628fa1ea2c1e57d07" integrity sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q== +"@vue/devtools-api@^6.5.1": + version "6.6.1" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.1.tgz#7c14346383751d9f6ad4bea0963245b30220ef83" + integrity sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA== + "@vue/eslint-config-typescript@^12.0.0": version "12.0.0" resolved "https://registry.yarnpkg.com/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz#0ce22d97af5e4155f3f2e7b21a48cfde8a6f3365" @@ -721,37 +726,37 @@ estree-walker "^2.0.2" magic-string "^0.25.7" -"@vue/reactivity@3.4.19": - version "3.4.19" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.19.tgz#8cf335d97d07881d8184cb23289289dc18b03f60" - integrity sha512-+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA== +"@vue/reactivity@3.4.21": + version "3.4.21" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.21.tgz#affd3415115b8ebf4927c8d2a0d6a24bccfa9f02" + integrity sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw== dependencies: - "@vue/shared" "3.4.19" + "@vue/shared" "3.4.21" -"@vue/runtime-core@3.4.19": - version "3.4.19" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.19.tgz#ef10357fdf3afdf68523b55424541000105e2aeb" - integrity sha512-/Z3tFwOrerJB/oyutmJGoYbuoadphDcJAd5jOuJE86THNZji9pYjZroQ2NFsZkTxOq0GJbb+s2kxTYToDiyZzw== +"@vue/runtime-core@3.4.21": + version "3.4.21" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.21.tgz#3749c3f024a64c4c27ecd75aea4ca35634db0062" + integrity sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA== dependencies: - "@vue/reactivity" "3.4.19" - "@vue/shared" "3.4.19" + "@vue/reactivity" "3.4.21" + "@vue/shared" "3.4.21" -"@vue/runtime-dom@3.4.19": - version "3.4.19" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.19.tgz#079141e31d9f47515b9595f29843d51011f88739" - integrity sha512-IyZzIDqfNCF0OyZOauL+F4yzjMPN2rPd8nhqPP2N1lBn3kYqJpPHHru+83Rkvo2lHz5mW+rEeIMEF9qY3PB94g== +"@vue/runtime-dom@3.4.21": + version "3.4.21" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.21.tgz#91f867ef64eff232cac45095ab28ebc93ac74588" + integrity sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw== dependencies: - "@vue/runtime-core" "3.4.19" - "@vue/shared" "3.4.19" + "@vue/runtime-core" "3.4.21" + "@vue/shared" "3.4.21" csstype "^3.1.3" -"@vue/server-renderer@3.4.19": - version "3.4.19" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.19.tgz#e6f8ff5268d0758766ca9835375218924d5f0eb6" - integrity sha512-eAj2p0c429RZyyhtMRnttjcSToch+kTWxFPHlzGMkR28ZbF1PDlTcmGmlDxccBuqNd9iOQ7xPRPAGgPVj+YpQw== +"@vue/server-renderer@3.4.21": + version "3.4.21" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.21.tgz#150751579d26661ee3ed26a28604667fa4222a97" + integrity sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg== dependencies: - "@vue/compiler-ssr" "3.4.19" - "@vue/shared" "3.4.19" + "@vue/compiler-ssr" "3.4.21" + "@vue/shared" "3.4.21" "@vue/shared@3.2.47": version "3.2.47" @@ -763,10 +768,10 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.2.tgz#774cd9b4635ce801b70a3fc3713779a5ef5d77c3" integrity sha512-0rFu3h8JbclbnvvKrs7Fe5FNGV9/5X2rPD7KmOzhLSUAiQH5//Hq437Gv0fR5Mev3u/nbtvmLl8XgwCU20/ZfQ== -"@vue/shared@3.4.19": - version "3.4.19" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.19.tgz#28105147811bcf1e6612bf1c9ab0c6d91ada019c" - integrity sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw== +"@vue/shared@3.4.21": + version "3.4.21" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.21.tgz#de526a9059d0a599f0b429af7037cd0c3ed7d5a1" + integrity sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g== "@vue/tsconfig@^0.5.1": version "0.5.1" @@ -860,10 +865,10 @@ bootstrap-icons-vue@^1.11.3: resolved "https://registry.yarnpkg.com/bootstrap-icons-vue/-/bootstrap-icons-vue-1.11.3.tgz#717745c433b2043d6d1ec24260b9bbc9eea16c66" integrity sha512-Xba1GTDYon8KYSDTKiiAtiyfk4clhdKQYvCQPMkE58+F5loVwEmh0Wi+ECCfowNc9SGwpoSLpSkvg7rhgZBttw== -bootstrap@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.2.tgz#97226583f27aae93b2b28ab23f4c114757ff16ae" - integrity sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g== +bootstrap@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.3.tgz#de35e1a765c897ac940021900fcbb831602bac38" + integrity sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg== brace-expansion@^1.1.7: version "1.1.11" @@ -1011,7 +1016,7 @@ de-indent@^1.0.2: resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== -debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: +debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -1146,16 +1151,16 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-plugin-vue@^9.21.1: - version "9.21.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.21.1.tgz#da5629efa48527cec98278dca0daa90fada4caf7" - integrity sha512-XVtI7z39yOVBFJyi8Ljbn7kY9yHzznKXL02qQYn+ta63Iy4A9JFBw6o4OSB9hyD2++tVT+su9kQqetUyCCwhjw== +eslint-plugin-vue@^9.22.0: + version "9.22.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.22.0.tgz#e8a625adb0b6ce3b65635dd74fec8345146f8e26" + integrity sha512-7wCXv5zuVnBtZE/74z4yZ0CM8AjH6bk4MQGm7hZjUC2DBppKU5ioeOk5LGSg/s9a1ZJnIsdPLJpXnu1Rc+cVHg== dependencies: "@eslint-community/eslint-utils" "^4.4.0" natural-compare "^1.4.0" nth-check "^2.1.1" - postcss-selector-parser "^6.0.13" - semver "^7.5.4" + postcss-selector-parser "^6.0.15" + semver "^7.6.0" vue-eslint-parser "^9.4.2" xml-name-validator "^4.0.0" @@ -1190,16 +1195,16 @@ eslint-visitor-keys@^3.4.1: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== -eslint@^8.56.0: - version "8.56.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" - integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== +eslint@^8.57.0: + version "8.57.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.56.0" - "@humanwhocodes/config-array" "^0.11.13" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" "@ungap/structured-clone" "^1.2.0" @@ -1834,7 +1839,7 @@ magic-string@^0.30.0: dependencies: "@jridgewell/sourcemap-codec" "^1.4.13" -magic-string@^0.30.6: +magic-string@^0.30.7: version "0.30.7" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.7.tgz#0cecd0527d473298679da95a2d7aeb8c64048505" integrity sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA== @@ -2111,10 +2116,10 @@ pkg-types@^1.0.3: mlly "^1.2.0" pathe "^1.1.0" -postcss-selector-parser@^6.0.13: - version "6.0.13" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" - integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== +postcss-selector-parser@^6.0.15: + version "6.0.15" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" + integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -2128,15 +2133,6 @@ postcss@^8.1.10: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^8.4.33: - version "8.4.33" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" - integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== - dependencies: - nanoid "^3.3.7" - picocolors "^1.0.0" - source-map-js "^1.0.2" - postcss@^8.4.35: version "8.4.35" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.35.tgz#60997775689ce09011edf083a549cea44aabe2f7" @@ -2257,10 +2253,10 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -sass@^1.71.0: - version "1.71.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.71.0.tgz#b3085759b9b2ab503a977aecb7e91153bf941117" - integrity sha512-HKKIKf49Vkxlrav3F/w6qRuPcmImGVbIXJ2I3Kg0VMA+3Bav+8yE9G5XmP5lMj6nl4OlqbPftGAscNaNu28b8w== +sass@^1.71.1: + version "1.71.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.71.1.tgz#dfb09c63ce63f89353777bbd4a88c0a38386ee54" + integrity sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -2285,6 +2281,13 @@ semver@^7.3.6: dependencies: lru-cache "^6.0.0" +semver@^7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -2450,10 +2453,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -terser@^5.27.2: - version "5.27.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.27.2.tgz#577a362515ff5635f98ba149643793a3973ba77e" - integrity sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w== +terser@^5.28.1: + version "5.28.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.28.1.tgz#bf00f7537fd3a798c352c2d67d67d65c915d1b28" + integrity sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -2570,10 +2573,10 @@ vite-plugin-css-injected-by-js@^3.4.0: resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.4.0.tgz#b09a571ab50744623736a4b056ecc85d7516311a" integrity sha512-wS5+UYtJXQ/vNornsqTQxOLBVO/UjXU54ZsYMeX0mj2OrbStMQ4GLgvneVDQGPwyGJcm/ntBPawc2lA7xx+Lpg== -vite@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.1.3.tgz#dd072653a80225702265550a4700561740dfde55" - integrity sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew== +vite@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.1.4.tgz#14e9d3e7a6e488f36284ef13cebe149f060bcfb6" + integrity sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg== dependencies: esbuild "^0.19.3" postcss "^8.4.35" @@ -2607,21 +2610,21 @@ vue-eslint-parser@^9.4.2: lodash "^4.17.21" semver "^7.3.6" -vue-i18n@^9.9.1: - version "9.9.1" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.9.1.tgz#3c2fdf3c9db430572a1246439d541d01e2795c06" - integrity sha512-xyQ4VspLdNSPTKBFBPWa1tvtj+9HuockZwgFeD2OhxxXuC2CWeNvV4seu2o9+vbQOyQbhAM5Ez56oxUrrnTWdw== +vue-i18n@^9.10.1: + version "9.10.1" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.10.1.tgz#b3244233da31a55a07a2ae72cdddab7296bca814" + integrity sha512-37HVJQZ/pZaRXGzFmmMomM1u1k7kndv3xCBPYHKEVfv5W3UVK67U/TpBug71ILYLNmjHLHdvTUPRF81pFT5fFg== dependencies: - "@intlify/core-base" "9.9.1" - "@intlify/shared" "9.9.1" + "@intlify/core-base" "9.10.1" + "@intlify/shared" "9.10.1" "@vue/devtools-api" "^6.5.0" -vue-router@^4.2.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.2.5.tgz#b9e3e08f1bd9ea363fdd173032620bc50cf0e98a" - integrity sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw== +vue-router@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.3.0.tgz#d5913f27bf68a0a178ee798c3c88be471811a235" + integrity sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ== dependencies: - "@vue/devtools-api" "^6.5.0" + "@vue/devtools-api" "^6.5.1" vue-template-compiler@^2.7.14: version "2.7.14" @@ -2640,16 +2643,16 @@ vue-tsc@^1.8.27: "@vue/language-core" "1.8.27" semver "^7.5.4" -vue@^3.4.19: - version "3.4.19" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.19.tgz#f9ae0a44db86628548736ff04152830726a97263" - integrity sha512-W/7Fc9KUkajFU8dBeDluM4sRGc/aa4YJnOYck8dkjgZoXtVsn3OeTGni66FV1l3+nvPA7VBFYtPioaGKUmEADw== +vue@^3.4.21: + version "3.4.21" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.21.tgz#69ec30e267d358ee3a0ce16612ba89e00aaeb731" + integrity sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA== dependencies: - "@vue/compiler-dom" "3.4.19" - "@vue/compiler-sfc" "3.4.19" - "@vue/runtime-dom" "3.4.19" - "@vue/server-renderer" "3.4.19" - "@vue/shared" "3.4.19" + "@vue/compiler-dom" "3.4.21" + "@vue/compiler-sfc" "3.4.21" + "@vue/runtime-dom" "3.4.21" + "@vue/server-renderer" "3.4.21" + "@vue/shared" "3.4.21" webpack-sources@^3.2.3: version "3.2.3" From b8c1168687221d026ee116c5690741a373c7a081 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Sun, 3 Mar 2024 16:35:34 +0100 Subject: [PATCH 06/71] Fix: Exclude hardware part number 124097 from valid part numbers. This triggers a re-fetch of the hardware information. Especially 124097 seems to be a wrong read-out. --- lib/Hoymiles/src/parser/DevInfoParser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Hoymiles/src/parser/DevInfoParser.cpp b/lib/Hoymiles/src/parser/DevInfoParser.cpp index b2b30a2e..08970ff1 100644 --- a/lib/Hoymiles/src/parser/DevInfoParser.cpp +++ b/lib/Hoymiles/src/parser/DevInfoParser.cpp @@ -200,7 +200,7 @@ bool DevInfoParser::containsValidData() const struct tm info; localtime_r(&t, &info); - return info.tm_year > (2016 - 1900); + return info.tm_year > (2016 - 1900) || getHwPartNumber() == 124097; } uint8_t DevInfoParser::getDevIdx() const From 10cd2e4201c69e42d6d118eb44c05fdfaa174ca0 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 4 Mar 2024 19:09:26 +0100 Subject: [PATCH 07/71] webapp: update dependencies --- webapp/package.json | 2 +- webapp/yarn.lock | 98 ++++++++++++++++----------------------------- 2 files changed, 35 insertions(+), 65 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 102cf715..1a42b8ee 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -44,6 +44,6 @@ "vite": "^5.1.4", "vite-plugin-compression": "^0.5.1", "vite-plugin-css-injected-by-js": "^3.4.0", - "vue-tsc": "^1.8.27" + "vue-tsc": "^2.0.4" } } diff --git a/webapp/yarn.lock b/webapp/yarn.lock index 74da0aef..2cde79a0 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -12,11 +12,6 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9" integrity sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ== -"@babel/parser@^7.21.3": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.8.tgz#642af7d0333eab9c0ad70b14ac5e76dbde7bfdf8" - integrity sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA== - "@babel/parser@^7.23.9": version "7.23.9" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" @@ -557,26 +552,26 @@ resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz#508d6a0f2440f86945835d903fcc0d95d1bb8a37" integrity sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ== -"@volar/language-core@1.11.1", "@volar/language-core@~1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.11.1.tgz#ecdf12ea8dc35fb8549e517991abcbf449a5ad4f" - integrity sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw== +"@volar/language-core@2.1.0", "@volar/language-core@~2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.1.0.tgz#26953a62f5d956a4ba4003faf59ae09b2a8aabb6" + integrity sha512-BrYEgYHx92ocpt1OUxJs2x3TAXEjpPLxsQoARb96g2GdF62xnfRQUqCNBwiU7Z3MQ/0tOAdqdHNYNmrFtx6q4A== dependencies: - "@volar/source-map" "1.11.1" + "@volar/source-map" "2.1.0" -"@volar/source-map@1.11.1", "@volar/source-map@~1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.11.1.tgz#535b0328d9e2b7a91dff846cab4058e191f4452f" - integrity sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg== +"@volar/source-map@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.1.0.tgz#f8c70b5043ae4a3d2cbd66a84036ef030b655a8e" + integrity sha512-VPyi+DTv67cvUOkUewzsOQJY3VUhjOjQxigT487z/H7tEI8ZFd5RksC5afk3JelOK+a/3Y8LRDbKmYKu1dz87g== dependencies: - muggle-string "^0.3.1" + muggle-string "^0.4.0" -"@volar/typescript@~1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.11.1.tgz#ba86c6f326d88e249c7f5cfe4b765be3946fd627" - integrity sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ== +"@volar/typescript@~2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.1.0.tgz#640abcdcb6b822f9860006d090e1d5252c655e37" + integrity sha512-2cicVoW4q6eU/omqfOBv+6r9JdrF5bBelujbJhayPNKiOj/xwotSJ/DM8IeMvTZvtkOZkm6suyOCLEokLY0w2w== dependencies: - "@volar/language-core" "1.11.1" + "@volar/language-core" "2.1.0" path-browserify "^1.0.1" "@vue/compiler-core@3.2.47": @@ -589,16 +584,6 @@ estree-walker "^2.0.2" source-map "^0.6.1" -"@vue/compiler-core@3.3.2": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.2.tgz#39567bd15c7f97add97bfc4d44e814df36eb797b" - integrity sha512-CKZWo1dzsQYTNTft7whzjL0HsrEpMfiK7pjZ2WFE3bC1NA7caUjWioHSK+49y/LK7Bsm4poJZzAMnvZMQ7OTeg== - dependencies: - "@babel/parser" "^7.21.3" - "@vue/shared" "3.3.2" - estree-walker "^2.0.2" - source-map-js "^1.0.2" - "@vue/compiler-core@3.4.21": version "3.4.21" resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.21.tgz#868b7085378fc24e58c9aed14c8d62110a62be1a" @@ -618,7 +603,7 @@ "@vue/compiler-core" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-dom@3.4.21": +"@vue/compiler-dom@3.4.21", "@vue/compiler-dom@^3.4.0": version "3.4.21" resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz#0077c355e2008207283a5a87d510330d22546803" integrity sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA== @@ -626,14 +611,6 @@ "@vue/compiler-core" "3.4.21" "@vue/shared" "3.4.21" -"@vue/compiler-dom@^3.3.0": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.2.tgz#2012ef4879375a4ca4ee68012a9256398b848af2" - integrity sha512-6gS3auANuKXLw0XH6QxkWqyPYPunziS2xb6VRenM3JY7gVfZcJvkCBHkb5RuNY1FCbBO3lkIi0CdXUCW1c7SXw== - dependencies: - "@vue/compiler-core" "3.3.2" - "@vue/shared" "3.3.2" - "@vue/compiler-sfc@3.4.21": version "3.4.21" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.21.tgz#4af920dc31ab99e1ff5d152b5fe0ad12181145b2" @@ -700,18 +677,16 @@ "@typescript-eslint/parser" "^6.7.0" vue-eslint-parser "^9.3.1" -"@vue/language-core@1.8.27": - version "1.8.27" - resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-1.8.27.tgz#2ca6892cb524e024a44e554e4c55d7a23e72263f" - integrity sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA== +"@vue/language-core@2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.0.4.tgz#324ae3de55d34f926f43b85901f60a33c3c63211" + integrity sha512-IYlVEICXKRWYjRQ4JyPlXhydU/p0C7uY5LpqXyJzzJHWo44LWHZtTP3USfWNQif3VAK5QZpdZKQ5HYIeQL3BJQ== dependencies: - "@volar/language-core" "~1.11.1" - "@volar/source-map" "~1.11.1" - "@vue/compiler-dom" "^3.3.0" - "@vue/shared" "^3.3.0" + "@volar/language-core" "~2.1.0" + "@vue/compiler-dom" "^3.4.0" + "@vue/shared" "^3.4.0" computeds "^0.0.1" minimatch "^9.0.3" - muggle-string "^0.3.1" path-browserify "^1.0.1" vue-template-compiler "^2.7.14" @@ -763,12 +738,7 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.47.tgz#e597ef75086c6e896ff5478a6bfc0a7aa4bbd14c" integrity sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ== -"@vue/shared@3.3.2", "@vue/shared@^3.3.0": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.2.tgz#774cd9b4635ce801b70a3fc3713779a5ef5d77c3" - integrity sha512-0rFu3h8JbclbnvvKrs7Fe5FNGV9/5X2rPD7KmOzhLSUAiQH5//Hq437Gv0fR5Mev3u/nbtvmLl8XgwCU20/ZfQ== - -"@vue/shared@3.4.21": +"@vue/shared@3.4.21", "@vue/shared@^3.4.0": version "3.4.21" resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.21.tgz#de526a9059d0a599f0b429af7037cd0c3ed7d5a1" integrity sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g== @@ -1898,10 +1868,10 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -muggle-string@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.3.1.tgz#e524312eb1728c63dd0b2ac49e3282e6ed85963a" - integrity sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg== +muggle-string@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.4.1.tgz#3b366bd43b32f809dc20659534dd30e7c8a0d328" + integrity sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ== nanoid@^3.3.4: version "3.3.4" @@ -2634,13 +2604,13 @@ vue-template-compiler@^2.7.14: de-indent "^1.0.2" he "^1.2.0" -vue-tsc@^1.8.27: - version "1.8.27" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.8.27.tgz#feb2bb1eef9be28017bb9e95e2bbd1ebdd48481c" - integrity sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg== +vue-tsc@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.0.4.tgz#23f0e642e27720484f3c549ab61a202ed6b82ef4" + integrity sha512-FJk+F1QhqROr6DK8raTuWk5ezNw1/kZ+7TYhc08k+cpvb1fmi7wguPZHX0svIhT4bAxCGDtF8534It8fiAkScg== dependencies: - "@volar/typescript" "~1.11.1" - "@vue/language-core" "1.8.27" + "@volar/typescript" "~2.1.0" + "@vue/language-core" "2.0.4" semver "^7.5.4" vue@^3.4.21: From f995287a6e721d5be06d9bdedfb354f76be2eaf6 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Wed, 6 Mar 2024 21:57:18 +0100 Subject: [PATCH 08/71] Feature: Add support for HERF inverters --- README.md | 3 + lib/Hoymiles/src/Hoymiles.cpp | 10 +- lib/Hoymiles/src/inverters/HERF_2CH.cpp | 62 ++++++++++++ lib/Hoymiles/src/inverters/HERF_2CH.h | 13 +++ lib/Hoymiles/src/inverters/HERF_4CH.cpp | 20 ++++ lib/Hoymiles/src/inverters/HERF_4CH.h | 11 +++ lib/Hoymiles/src/inverters/README.md | 2 + lib/Hoymiles/src/parser/DevInfoParser.cpp | 6 +- src/WebApi_dtu.cpp | 8 +- src/WebApi_inverter.cpp | 14 ++- src/WebApi_limit.cpp | 6 +- src/WebApi_power.cpp | 6 +- webapp/src/components/InputSerial.vue | 114 ++++++++++++++++++++++ webapp/src/locales/de.json | 7 ++ webapp/src/locales/en.json | 7 ++ webapp/src/locales/fr.json | 7 ++ webapp/src/types/DevInfoStatus.ts | 4 +- webapp/src/types/InverterConfig.ts | 2 +- webapp/src/types/LimitConfig.ts | 4 +- webapp/src/types/LiveDataStatus.ts | 4 +- webapp/src/views/HomeView.vue | 16 +-- webapp/src/views/InverterAdminView.vue | 7 +- 22 files changed, 301 insertions(+), 32 deletions(-) create mode 100644 lib/Hoymiles/src/inverters/HERF_2CH.cpp create mode 100644 lib/Hoymiles/src/inverters/HERF_2CH.h create mode 100644 lib/Hoymiles/src/inverters/HERF_4CH.cpp create mode 100644 lib/Hoymiles/src/inverters/HERF_4CH.h create mode 100644 webapp/src/components/InputSerial.vue diff --git a/README.md b/README.md index 365f0efc..cb9f4ef4 100644 --- a/README.md +++ b/README.md @@ -75,3 +75,6 @@ Generated using: `git log --date=short --pretty=format:"* %h%x09%ad%x09%s" | gre | TSUN TSOL-M350 | NRF24L01+ | 1 | 1 | 1 | | TSUN TSOL-M800 | NRF24L01+ | 2 | 2 | 1 | | TSUN TSOL-M1600 | NRF24L01+ | 4 | 2 | 1 | +| E-Star HERF-800 | NRF24L01+ | 2 | 2 | 1 | +| E-Star HERF-1600 | NRF24L01+ | 4 | 2 | 1 | +| E-Star HERF-1800 | NRF24L01+ | 4 | 2 | 1 | diff --git a/lib/Hoymiles/src/Hoymiles.cpp b/lib/Hoymiles/src/Hoymiles.cpp index e7b3d263..eda3500b 100644 --- a/lib/Hoymiles/src/Hoymiles.cpp +++ b/lib/Hoymiles/src/Hoymiles.cpp @@ -1,9 +1,11 @@ // SPDX-License-Identifier: GPL-2.0-or-later /* - * Copyright (C) 2022-2023 Thomas Basler and others + * Copyright (C) 2022-2024 Thomas Basler and others */ #include "Hoymiles.h" #include "Utils.h" +#include "inverters/HERF_2CH.h" +#include "inverters/HERF_4CH.h" #include "inverters/HMS_1CH.h" #include "inverters/HMS_1CHv2.h" #include "inverters/HMS_2CH.h" @@ -168,6 +170,10 @@ std::shared_ptr HoymilesClass::addInverter(const char* name, c i = std::make_shared(_radioNrf.get(), serial); } else if (HM_1CH::isValidSerial(serial)) { i = std::make_shared(_radioNrf.get(), serial); + } else if (HERF_2CH::isValidSerial(serial)) { + i = std::make_shared(_radioNrf.get(), serial); + } else if (HERF_4CH::isValidSerial(serial)) { + i = std::make_shared(_radioNrf.get(), serial); } if (i) { @@ -271,4 +277,4 @@ void HoymilesClass::setMessageOutput(Print* output) Print* HoymilesClass::getMessageOutput() { return _messageOutput; -} \ No newline at end of file +} diff --git a/lib/Hoymiles/src/inverters/HERF_2CH.cpp b/lib/Hoymiles/src/inverters/HERF_2CH.cpp new file mode 100644 index 00000000..37799d14 --- /dev/null +++ b/lib/Hoymiles/src/inverters/HERF_2CH.cpp @@ -0,0 +1,62 @@ + +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2022-2024 Thomas Basler and others + */ +#include "HERF_2CH.h" + +static const byteAssign_t byteAssignment[] = { + { TYPE_DC, CH0, FLD_UDC, UNIT_V, 2, 2, 10, false, 1 }, + { TYPE_DC, CH0, FLD_IDC, UNIT_A, 6, 2, 100, false, 2 }, + { TYPE_DC, CH0, FLD_PDC, UNIT_W, 10, 2, 10, false, 1 }, + { TYPE_DC, CH0, FLD_YD, UNIT_WH, 22, 2, 1, false, 0 }, + { TYPE_DC, CH0, FLD_YT, UNIT_KWH, 14, 4, 1000, false, 3 }, + { TYPE_DC, CH0, FLD_IRR, UNIT_PCT, CALC_CH_IRR, CH0, CMD_CALC, false, 3 }, + + { TYPE_DC, CH1, FLD_UDC, UNIT_V, 4, 2, 10, false, 1 }, + { TYPE_DC, CH1, FLD_IDC, UNIT_A, 8, 2, 100, false, 2 }, + { TYPE_DC, CH1, FLD_PDC, UNIT_W, 12, 2, 10, false, 1 }, + { TYPE_DC, CH1, FLD_YD, UNIT_WH, 24, 2, 1, false, 0 }, + { TYPE_DC, CH1, FLD_YT, UNIT_KWH, 18, 4, 1000, false, 3 }, + { TYPE_DC, CH1, FLD_IRR, UNIT_PCT, CALC_CH_IRR, CH1, CMD_CALC, false, 3 }, + + { TYPE_AC, CH0, FLD_UAC, UNIT_V, 26, 2, 10, false, 1 }, + { TYPE_AC, CH0, FLD_IAC, UNIT_A, 34, 2, 100, false, 2 }, + { TYPE_AC, CH0, FLD_PAC, UNIT_W, 30, 2, 10, false, 1 }, + { TYPE_AC, CH0, FLD_Q, UNIT_VAR, 32, 2, 10, false, 1 }, + { TYPE_AC, CH0, FLD_F, UNIT_HZ, 28, 2, 100, false, 2 }, + { TYPE_AC, CH0, FLD_PF, UNIT_NONE, 36, 2, 1000, false, 3 }, + + { TYPE_INV, CH0, FLD_T, UNIT_C, 38, 2, 10, true, 1 }, + { TYPE_INV, CH0, FLD_EVT_LOG, UNIT_NONE, 40, 2, 1, false, 0 }, + + { TYPE_INV, CH0, FLD_YD, UNIT_WH, CALC_TOTAL_YD, 0, CMD_CALC, false, 0 }, + { TYPE_INV, CH0, FLD_YT, UNIT_KWH, CALC_TOTAL_YT, 0, CMD_CALC, false, 3 }, + { TYPE_INV, CH0, FLD_PDC, UNIT_W, CALC_TOTAL_PDC, 0, CMD_CALC, false, 1 }, + { TYPE_INV, CH0, FLD_EFF, UNIT_PCT, CALC_TOTAL_EFF, 0, CMD_CALC, false, 3 } +}; + +HERF_2CH::HERF_2CH(HoymilesRadio* radio, const uint64_t serial) + : HM_Abstract(radio, serial) {}; + +bool HERF_2CH::isValidSerial(const uint64_t serial) +{ + // serial >= 0x282100000000 && serial <= 0x282199999999 + uint16_t preSerial = (serial >> 32) & 0xffff; + return preSerial == 0x2821; +} + +String HERF_2CH::typeName() const +{ + return "HERF-800-2T"; +} + +const byteAssign_t* HERF_2CH::getByteAssignment() const +{ + return byteAssignment; +} + +uint8_t HERF_2CH::getByteAssignmentSize() const +{ + return sizeof(byteAssignment) / sizeof(byteAssignment[0]); +} diff --git a/lib/Hoymiles/src/inverters/HERF_2CH.h b/lib/Hoymiles/src/inverters/HERF_2CH.h new file mode 100644 index 00000000..048ccb61 --- /dev/null +++ b/lib/Hoymiles/src/inverters/HERF_2CH.h @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include "HM_Abstract.h" + +class HERF_2CH : public HM_Abstract { +public: + explicit HERF_2CH(HoymilesRadio* radio, const uint64_t serial); + static bool isValidSerial(const uint64_t serial); + String typeName() const; + const byteAssign_t* getByteAssignment() const; + uint8_t getByteAssignmentSize() const; +}; diff --git a/lib/Hoymiles/src/inverters/HERF_4CH.cpp b/lib/Hoymiles/src/inverters/HERF_4CH.cpp new file mode 100644 index 00000000..f47b35e2 --- /dev/null +++ b/lib/Hoymiles/src/inverters/HERF_4CH.cpp @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2022-2024 Thomas Basler and others + */ +#include "HERF_4CH.h" + +HERF_4CH::HERF_4CH(HoymilesRadio* radio, const uint64_t serial) + : HM_4CH(radio, serial) {}; + +bool HERF_4CH::isValidSerial(const uint64_t serial) +{ + // serial >= 0x280100000000 && serial <= 0x280199999999 + uint16_t preSerial = (serial >> 32) & 0xffff; + return preSerial == 0x2801; +} + +String HERF_4CH::typeName() const +{ + return "HERF-1600/1800-4T"; +} diff --git a/lib/Hoymiles/src/inverters/HERF_4CH.h b/lib/Hoymiles/src/inverters/HERF_4CH.h new file mode 100644 index 00000000..70c1ad21 --- /dev/null +++ b/lib/Hoymiles/src/inverters/HERF_4CH.h @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include "HM_4CH.h" + +class HERF_4CH : public HM_4CH { +public: + explicit HERF_4CH(HoymilesRadio* radio, const uint64_t serial); + static bool isValidSerial(const uint64_t serial); + String typeName() const; +}; diff --git a/lib/Hoymiles/src/inverters/README.md b/lib/Hoymiles/src/inverters/README.md index c080a735..6d6104a2 100644 --- a/lib/Hoymiles/src/inverters/README.md +++ b/lib/Hoymiles/src/inverters/README.md @@ -11,3 +11,5 @@ | HMS_4CH | HMS-1600/1800/2000-4T | 1164 | | HMT_4CH | HMT-1600/1800/2000-4T | 1361 | | HMT_6CH | HMT-1800/2250-6T | 1382 | +| HERF_2CH | HERF 800 | 2821 | +| HERF_4CH | HERF 1800 | 2801 | diff --git a/lib/Hoymiles/src/parser/DevInfoParser.cpp b/lib/Hoymiles/src/parser/DevInfoParser.cpp index 08970ff1..0900a1ac 100644 --- a/lib/Hoymiles/src/parser/DevInfoParser.cpp +++ b/lib/Hoymiles/src/parser/DevInfoParser.cpp @@ -52,7 +52,11 @@ const devInfo_t devInfo[] = { { { 0x10, 0x32, 0x71, ALL }, 2000, "HMT-2000-4T" }, // 0 { { 0x10, 0x33, 0x11, ALL }, 1800, "HMT-1800-6T" }, // 01 - { { 0x10, 0x33, 0x31, ALL }, 2250, "HMT-2250-6T" } // 01 + { { 0x10, 0x33, 0x31, ALL }, 2250, "HMT-2250-6T" }, // 01 + + { { 0xF1, 0x01, 0x14, ALL }, 800, "HERF-800" }, // 00 + { { 0xF1, 0x01, 0x24, ALL }, 1600, "HERF-1600" }, // 00 + { { 0xF1, 0x01, 0x22, ALL }, 1800, "HERF-1800" }, // 00 }; DevInfoParser::DevInfoParser() diff --git a/src/WebApi_dtu.cpp b/src/WebApi_dtu.cpp index aed09834..817e71b2 100644 --- a/src/WebApi_dtu.cpp +++ b/src/WebApi_dtu.cpp @@ -129,7 +129,10 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) return; } - if (root["serial"].as() == 0) { + // Interpret the string as a hex value and convert it to uint64_t + const uint64_t serial = strtoll(root["serial"].as().c_str(), NULL, 16); + + if (serial == 0) { retMsg["message"] = "Serial cannot be zero!"; retMsg["code"] = WebApiError::DtuSerialZero; response->setLength(); @@ -185,8 +188,7 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) CONFIG_T& config = Configuration.get(); - // Interpret the string as a hex value and convert it to uint64_t - config.Dtu.Serial = strtoll(root["serial"].as().c_str(), NULL, 16); + config.Dtu.Serial = serial; config.Dtu.PollInterval = root["pollinterval"].as(); config.Dtu.Nrf.PaLevel = root["nrf_palevel"].as(); config.Dtu.Cmt.PaLevel = root["cmt_palevel"].as(); diff --git a/src/WebApi_inverter.cpp b/src/WebApi_inverter.cpp index 32a47235..68983ab9 100644 --- a/src/WebApi_inverter.cpp +++ b/src/WebApi_inverter.cpp @@ -129,7 +129,10 @@ void WebApiInverterClass::onInverterAdd(AsyncWebServerRequest* request) return; } - if (root["serial"].as() == 0) { + // Interpret the string as a hex value and convert it to uint64_t + const uint64_t serial = strtoll(root["serial"].as().c_str(), NULL, 16); + + if (serial == 0) { retMsg["message"] = "Serial must be a number > 0!"; retMsg["code"] = WebApiError::InverterSerialZero; response->setLength(); @@ -158,7 +161,7 @@ void WebApiInverterClass::onInverterAdd(AsyncWebServerRequest* request) } // Interpret the string as a hex value and convert it to uint64_t - inverter->Serial = strtoll(root["serial"].as().c_str(), NULL, 16); + inverter->Serial = serial; strncpy(inverter->Name, root["name"].as().c_str(), INV_MAX_NAME_STRLEN); @@ -233,7 +236,10 @@ void WebApiInverterClass::onInverterEdit(AsyncWebServerRequest* request) return; } - if (root["serial"].as() == 0) { + // Interpret the string as a hex value and convert it to uint64_t + const uint64_t serial = strtoll(root["serial"].as().c_str(), NULL, 16); + + if (serial == 0) { retMsg["message"] = "Serial must be a number > 0!"; retMsg["code"] = WebApiError::InverterSerialZero; response->setLength(); @@ -261,7 +267,7 @@ void WebApiInverterClass::onInverterEdit(AsyncWebServerRequest* request) INVERTER_CONFIG_T& inverter = Configuration.get().Inverter[root["id"].as()]; - uint64_t new_serial = strtoll(root["serial"].as().c_str(), NULL, 16); + uint64_t new_serial = serial; uint64_t old_serial = inverter.Serial; // Interpret the string as a hex value and convert it to uint64_t diff --git a/src/WebApi_limit.cpp b/src/WebApi_limit.cpp index 1d9c111a..b5b9e172 100644 --- a/src/WebApi_limit.cpp +++ b/src/WebApi_limit.cpp @@ -100,7 +100,10 @@ void WebApiLimitClass::onLimitPost(AsyncWebServerRequest* request) return; } - if (root["serial"].as() == 0) { + // Interpret the string as a hex value and convert it to uint64_t + const uint64_t serial = strtoll(root["serial"].as().c_str(), NULL, 16); + + if (serial == 0) { retMsg["message"] = "Serial must be a number > 0!"; retMsg["code"] = WebApiError::LimitSerialZero; response->setLength(); @@ -129,7 +132,6 @@ void WebApiLimitClass::onLimitPost(AsyncWebServerRequest* request) return; } - uint64_t serial = strtoll(root["serial"].as().c_str(), NULL, 16); uint16_t limit = root["limit_value"].as(); PowerLimitControlType type = root["limit_type"].as(); diff --git a/src/WebApi_power.cpp b/src/WebApi_power.cpp index b5196789..08fe9c05 100644 --- a/src/WebApi_power.cpp +++ b/src/WebApi_power.cpp @@ -93,7 +93,10 @@ void WebApiPowerClass::onPowerPost(AsyncWebServerRequest* request) return; } - if (root["serial"].as() == 0) { + // Interpret the string as a hex value and convert it to uint64_t + const uint64_t serial = strtoll(root["serial"].as().c_str(), NULL, 16); + + if (serial == 0) { retMsg["message"] = "Serial must be a number > 0!"; retMsg["code"] = WebApiError::PowerSerialZero; response->setLength(); @@ -101,7 +104,6 @@ void WebApiPowerClass::onPowerPost(AsyncWebServerRequest* request) return; } - uint64_t serial = strtoll(root["serial"].as().c_str(), NULL, 16); auto inv = Hoymiles.getInverterBySerial(serial); if (inv == nullptr) { retMsg["message"] = "Invalid inverter specified!"; diff --git a/webapp/src/components/InputSerial.vue b/webapp/src/components/InputSerial.vue new file mode 100644 index 00000000..26aa4d61 --- /dev/null +++ b/webapp/src/components/InputSerial.vue @@ -0,0 +1,114 @@ + + + diff --git a/webapp/src/locales/de.json b/webapp/src/locales/de.json index da510947..c9dfa975 100644 --- a/webapp/src/locales/de.json +++ b/webapp/src/locales/de.json @@ -618,5 +618,12 @@ "Name": "Name", "ValueSelected": "Ausgewählt", "ValueActive": "Aktiv" + }, + "inputserial": { + "format_hoymiles": "Hoymiles Seriennummerformat", + "format_converted": "Bereits konvertierte Seriennummer", + "format_herf_valid": "E-Star HERF Format (wird konvertiert gespeichert): {serial}", + "format_herf_invalid": "E-Star HERF Format: Ungültige Prüfsumme", + "format_unknown": "Unbekanntes Format" } } diff --git a/webapp/src/locales/en.json b/webapp/src/locales/en.json index 82fabba9..4375137b 100644 --- a/webapp/src/locales/en.json +++ b/webapp/src/locales/en.json @@ -619,5 +619,12 @@ "Number": "Number", "ValueSelected": "Selected", "ValueActive": "Active" + }, + "inputserial": { + "format_hoymiles": "Hoymiles serial number format", + "format_converted": "Already converted serial number", + "format_herf_valid": "E-Star HERF format (will be saved converted): {serial}", + "format_herf_invalid": "E-Star HERF format: Invalid checksum", + "format_unknown": "Unknown format" } } diff --git a/webapp/src/locales/fr.json b/webapp/src/locales/fr.json index 6a706b5b..24f0a951 100644 --- a/webapp/src/locales/fr.json +++ b/webapp/src/locales/fr.json @@ -618,5 +618,12 @@ "Name": "Nom", "ValueSelected": "Sélectionné", "ValueActive": "Activé" + }, + "inputserial": { + "format_hoymiles": "Hoymiles serial number format", + "format_converted": "Already converted serial number", + "format_herf_valid": "E-Star HERF format (will be saved converted): {serial}", + "format_herf_invalid": "E-Star HERF format: Invalid checksum", + "format_unknown": "Unknown format" } } diff --git a/webapp/src/types/DevInfoStatus.ts b/webapp/src/types/DevInfoStatus.ts index 4c09e6b4..7c37a567 100644 --- a/webapp/src/types/DevInfoStatus.ts +++ b/webapp/src/types/DevInfoStatus.ts @@ -1,5 +1,5 @@ export interface DevInfoStatus { - serial: number; + serial: string; valid_data: boolean; fw_bootloader_version: number; fw_build_version: number; @@ -8,4 +8,4 @@ export interface DevInfoStatus { hw_version: number; hw_model_name: string; max_power: number; -} \ No newline at end of file +} diff --git a/webapp/src/types/InverterConfig.ts b/webapp/src/types/InverterConfig.ts index 1f2167aa..da7fa43c 100644 --- a/webapp/src/types/InverterConfig.ts +++ b/webapp/src/types/InverterConfig.ts @@ -6,7 +6,7 @@ export interface InverterChannel { export interface Inverter { id: string; - serial: number; + serial: string; name: string; type: string; order: number; diff --git a/webapp/src/types/LimitConfig.ts b/webapp/src/types/LimitConfig.ts index d311ca61..b218c114 100644 --- a/webapp/src/types/LimitConfig.ts +++ b/webapp/src/types/LimitConfig.ts @@ -1,5 +1,5 @@ export interface LimitConfig { - serial: number; + serial: string; limit_value: number; limit_type: number; -} \ No newline at end of file +} diff --git a/webapp/src/types/LiveDataStatus.ts b/webapp/src/types/LiveDataStatus.ts index 6da7266b..5d2c5167 100644 --- a/webapp/src/types/LiveDataStatus.ts +++ b/webapp/src/types/LiveDataStatus.ts @@ -22,7 +22,7 @@ export interface InverterStatistics { } export interface Inverter { - serial: number; + serial: string; name: string; order: number; data_age: number; @@ -53,4 +53,4 @@ export interface LiveData { inverters: Inverter[]; total: Total; hints: Hints; -} \ No newline at end of file +} diff --git a/webapp/src/views/HomeView.vue b/webapp/src/views/HomeView.vue index 953d5cf4..0bd01333 100644 --- a/webapp/src/views/HomeView.vue +++ b/webapp/src/views/HomeView.vue @@ -346,7 +346,7 @@ export default defineComponent({ showAlertLimit: false, powerSettingView: {} as bootstrap.Modal, - powerSettingSerial: 0, + powerSettingSerial: "", powerSettingLoading: true, alertMessagePower: "", alertTypePower: "info", @@ -515,7 +515,7 @@ export default defineComponent({ this.heartInterval && clearTimeout(this.heartInterval); this.isFirstFetchAfterConnect = true; }, - onShowEventlog(serial: number) { + onShowEventlog(serial: string) { this.eventLogLoading = true; fetch("/api/eventlog/status?inv=" + serial + "&locale=" + this.$i18n.locale, { headers: authHeader() }) .then((response) => handleResponse(response, this.$emitter, this.$router)) @@ -526,7 +526,7 @@ export default defineComponent({ this.eventLogView.show(); }, - onShowDevInfo(serial: number) { + onShowDevInfo(serial: string) { this.devInfoLoading = true; fetch("/api/devinfo/status?inv=" + serial, { headers: authHeader() }) .then((response) => handleResponse(response, this.$emitter, this.$router)) @@ -538,7 +538,7 @@ export default defineComponent({ this.devInfoView.show(); }, - onShowGridProfile(serial: number) { + onShowGridProfile(serial: string) { this.gridProfileLoading = true; fetch("/api/gridprofile/status?inv=" + serial, { headers: authHeader() }) .then((response) => handleResponse(response, this.$emitter, this.$router)) @@ -555,9 +555,9 @@ export default defineComponent({ this.gridProfileView.show(); }, - onShowLimitSettings(serial: number) { + onShowLimitSettings(serial: string) { this.showAlertLimit = false; - this.targetLimitList.serial = 0; + this.targetLimitList.serial = ""; this.targetLimitList.limit_value = 0; this.targetLimitType = 1; this.targetLimitTypeText = this.$t('home.Relative'); @@ -611,9 +611,9 @@ export default defineComponent({ this.targetLimitType = type; }, - onShowPowerSettings(serial: number) { + onShowPowerSettings(serial: string) { this.showAlertPower = false; - this.powerSettingSerial = 0; + this.powerSettingSerial = ""; this.powerSettingLoading = true; fetch("/api/power/status", { headers: authHeader() }) .then((response) => handleResponse(response, this.$emitter, this.$router)) diff --git a/webapp/src/views/InverterAdminView.vue b/webapp/src/views/InverterAdminView.vue index 21ea8dd7..9216f592 100644 --- a/webapp/src/views/InverterAdminView.vue +++ b/webapp/src/views/InverterAdminView.vue @@ -8,8 +8,7 @@
- +
@@ -91,7 +90,7 @@ - + @@ -207,6 +206,7 @@ import BasePage from '@/components/BasePage.vue'; import BootstrapAlert from "@/components/BootstrapAlert.vue"; import CardElement from '@/components/CardElement.vue'; import InputElement from '@/components/InputElement.vue'; +import InputSerial from '@/components/InputSerial.vue'; import ModalDialog from '@/components/ModalDialog.vue'; import type { Inverter } from '@/types/InverterConfig'; import { authHeader, handleResponse } from '@/utils/authentication'; @@ -235,6 +235,7 @@ export default defineComponent({ BootstrapAlert, CardElement, InputElement, + InputSerial, ModalDialog, BIconInfoCircle, BIconPencil, From 2526d3dad6ce2d072b489d2502bdafcf99a25722 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 12 Mar 2024 16:33:55 +0100 Subject: [PATCH 09/71] Remove deprecated extension recommendation --- .vscode/extensions.json | 1 - 1 file changed, 1 deletion(-) diff --git a/.vscode/extensions.json b/.vscode/extensions.json index bd7f35aa..d18910d3 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -5,7 +5,6 @@ "DavidAnson.vscode-markdownlint", "EditorConfig.EditorConfig", "Vue.volar", - "Vue.vscode-typescript-vue-plugin", "platformio.platformio-ide" ], "unwantedRecommendations": [ From 57a997baac28cfd51aadd13cf72db5ff6a84f3e5 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 12 Mar 2024 16:42:29 +0100 Subject: [PATCH 10/71] webapp: update dependencies --- webapp/package.json | 16 +-- webapp/vite.config.ts | 1 + webapp/yarn.lock | 235 +++++++++++++++++++++--------------------- 3 files changed, 127 insertions(+), 125 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 1a42b8ee..1dffb903 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -23,27 +23,27 @@ "vue-router": "^4.3.0" }, "devDependencies": { - "@intlify/unplugin-vue-i18n": "^2.0.0", + "@intlify/unplugin-vue-i18n": "^3.0.1", "@rushstack/eslint-patch": "^1.7.2", "@tsconfig/node18": "^18.2.2", "@types/bootstrap": "^5.2.10", - "@types/node": "^20.11.24", + "@types/node": "^20.11.26", "@types/pulltorefreshjs": "^0.1.7", "@types/sortablejs": "^1.15.8", "@types/spark-md5": "^3.0.4", "@vitejs/plugin-vue": "^5.0.4", - "@vue/eslint-config-typescript": "^12.0.0", + "@vue/eslint-config-typescript": "^13.0.0", "@vue/tsconfig": "^0.5.1", "eslint": "^8.57.0", - "eslint-plugin-vue": "^9.22.0", + "eslint-plugin-vue": "^9.23.0", "npm-run-all": "^4.1.5", "pulltorefreshjs": "^0.1.22", "sass": "^1.71.1", - "terser": "^5.28.1", - "typescript": "^5.3.3", - "vite": "^5.1.4", + "terser": "^5.29.1", + "typescript": "^5.4.2", + "vite": "^5.1.6", "vite-plugin-compression": "^0.5.1", "vite-plugin-css-injected-by-js": "^3.4.0", - "vue-tsc": "^2.0.4" + "vue-tsc": "^2.0.6" } } diff --git a/webapp/vite.config.ts b/webapp/vite.config.ts index d8ddd3c5..50c9a0b7 100644 --- a/webapp/vite.config.ts +++ b/webapp/vite.config.ts @@ -29,6 +29,7 @@ export default defineConfig({ fullInstall: false, forceStringify: true, strictMessage: false, + jitCompilation: false, }), ], resolve: { diff --git a/webapp/yarn.lock b/webapp/yarn.lock index 2cde79a0..efe3c626 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -240,14 +240,14 @@ resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.4.0.tgz#4a78d462fc82433db900981e12eb5b1aae3d6085" integrity sha512-AFqymip2kToqA0B6KZPg5jSrdcVHoli9t/VhGKE2iiMq9utFuMoGdDC/JOCIZgwxo6aXAk86QyU2XtzEoMuZ6A== -"@intlify/unplugin-vue-i18n@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-2.0.0.tgz#5b087e17b4eb4381d0a111cd89df4037880e932f" - integrity sha512-1oKvm92L9l2od2H9wKx2ZvR4tzn7gUtd7bPLI7AWUmm7U9H1iEypndt5d985ypxGsEs0gToDaKTrytbBIJwwSg== +"@intlify/unplugin-vue-i18n@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-3.0.1.tgz#8bed58d5cbaadda056c2ff88acf99300db516639" + integrity sha512-q1zJhA/WpoLBzAAuKA5/AEp0e+bMOM10ll/HxT4g1VAw/9JhC4TTobP9KobKH90JMZ4U2daLFlYQfKNd29lpqw== dependencies: "@intlify/bundle-utils" "^7.4.0" "@intlify/shared" "^9.4.0" - "@rollup/pluginutils" "^5.0.2" + "@rollup/pluginutils" "^5.1.0" "@vue/compiler-sfc" "^3.2.47" debug "^4.3.3" fast-glob "^3.2.12" @@ -334,10 +334,10 @@ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64" integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw== -"@rollup/pluginutils@^5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" - integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== +"@rollup/pluginutils@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" + integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== dependencies: "@types/estree" "^1.0.0" estree-walker "^2.0.2" @@ -430,10 +430,10 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== -"@types/node@^20.11.24": - version "20.11.24" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.24.tgz#cc207511104694e84e9fb17f9a0c4c42d4517792" - integrity sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long== +"@types/node@^20.11.26": + version "20.11.26" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.26.tgz#3fbda536e51d5c79281e1d9657dcb0131baabd2d" + integrity sha512-YwOMmyhNnAWijOBQweOJnQPl068Oqd4K3OFbTc6AHJwzweUwwWG3GIFY74OKks2PJUDkQPeddOQES9mLn1CTEQ== dependencies: undici-types "~5.26.4" @@ -457,16 +457,16 @@ resolved "https://registry.yarnpkg.com/@types/spark-md5/-/spark-md5-3.0.4.tgz#c1221d63c069d95aba0c06a765b80661cacc12bf" integrity sha512-qtOaDz+IXiNndPgYb6t1YoutnGvFRtWSNzpVjkAPCfB2UzTyybuD4Tjgs7VgRawum3JnJNRwNQd4N//SvrHg1Q== -"@typescript-eslint/eslint-plugin@^6.7.0": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.0.tgz#ed2a38867190f8a688af85ad7c8a74670b8b3675" - integrity sha512-gUqtknHm0TDs1LhY12K2NA3Rmlmp88jK9Tx8vGZMfHeNMLE3GH2e9TRub+y+SOjuYgtOmok+wt1AyDPZqxbNag== +"@typescript-eslint/eslint-plugin@^7.1.1": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.2.0.tgz#5a5fcad1a7baed85c10080d71ad901f98c38d5b7" + integrity sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.7.0" - "@typescript-eslint/type-utils" "6.7.0" - "@typescript-eslint/utils" "6.7.0" - "@typescript-eslint/visitor-keys" "6.7.0" + "@typescript-eslint/scope-manager" "7.2.0" + "@typescript-eslint/type-utils" "7.2.0" + "@typescript-eslint/utils" "7.2.0" + "@typescript-eslint/visitor-keys" "7.2.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -474,72 +474,73 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.7.0": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.7.0.tgz#332fe9c7ecf6783d3250b4c8a960bd4af0995807" - integrity sha512-jZKYwqNpNm5kzPVP5z1JXAuxjtl2uG+5NpaMocFPTNC2EdYIgbXIPImObOkhbONxtFTTdoZstLZefbaK+wXZng== +"@typescript-eslint/parser@^7.1.1": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.2.0.tgz#44356312aea8852a3a82deebdacd52ba614ec07a" + integrity sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg== dependencies: - "@typescript-eslint/scope-manager" "6.7.0" - "@typescript-eslint/types" "6.7.0" - "@typescript-eslint/typescript-estree" "6.7.0" - "@typescript-eslint/visitor-keys" "6.7.0" + "@typescript-eslint/scope-manager" "7.2.0" + "@typescript-eslint/types" "7.2.0" + "@typescript-eslint/typescript-estree" "7.2.0" + "@typescript-eslint/visitor-keys" "7.2.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.7.0": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.0.tgz#6b3c22187976e2bf5ed0dc0d9095f1f2cbd1d106" - integrity sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA== +"@typescript-eslint/scope-manager@7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz#cfb437b09a84f95a0930a76b066e89e35d94e3da" + integrity sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg== dependencies: - "@typescript-eslint/types" "6.7.0" - "@typescript-eslint/visitor-keys" "6.7.0" + "@typescript-eslint/types" "7.2.0" + "@typescript-eslint/visitor-keys" "7.2.0" -"@typescript-eslint/type-utils@6.7.0": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.7.0.tgz#21a013d4c7f96255f5e64ac59fb41301d1e052ba" - integrity sha512-f/QabJgDAlpSz3qduCyQT0Fw7hHpmhOzY/Rv6zO3yO+HVIdPfIWhrQoAyG+uZVtWAIS85zAyzgAFfyEr+MgBpg== +"@typescript-eslint/type-utils@7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.2.0.tgz#7be5c30e9b4d49971b79095a1181324ef6089a19" + integrity sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA== dependencies: - "@typescript-eslint/typescript-estree" "6.7.0" - "@typescript-eslint/utils" "6.7.0" + "@typescript-eslint/typescript-estree" "7.2.0" + "@typescript-eslint/utils" "7.2.0" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.7.0": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.7.0.tgz#8de8ba9cafadc38e89003fe303e219c9250089ae" - integrity sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q== +"@typescript-eslint/types@7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.2.0.tgz#0feb685f16de320e8520f13cca30779c8b7c403f" + integrity sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA== -"@typescript-eslint/typescript-estree@6.7.0": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.0.tgz#20ce2801733bd46f02cc0f141f5b63fbbf2afb63" - integrity sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ== +"@typescript-eslint/typescript-estree@7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz#5beda2876c4137f8440c5a84b4f0370828682556" + integrity sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA== dependencies: - "@typescript-eslint/types" "6.7.0" - "@typescript-eslint/visitor-keys" "6.7.0" + "@typescript-eslint/types" "7.2.0" + "@typescript-eslint/visitor-keys" "7.2.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" + minimatch "9.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.7.0": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.7.0.tgz#61b6f1f1b82ad529abfcee074d21764e880886fb" - integrity sha512-MfCq3cM0vh2slSikQYqK2Gq52gvOhe57vD2RM3V4gQRZYX4rDPnKLu5p6cm89+LJiGlwEXU8hkYxhqqEC/V3qA== +"@typescript-eslint/utils@7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.2.0.tgz#fc8164be2f2a7068debb4556881acddbf0b7ce2a" + integrity sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.7.0" - "@typescript-eslint/types" "6.7.0" - "@typescript-eslint/typescript-estree" "6.7.0" + "@typescript-eslint/scope-manager" "7.2.0" + "@typescript-eslint/types" "7.2.0" + "@typescript-eslint/typescript-estree" "7.2.0" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.7.0": - version "6.7.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.0.tgz#34140ac76dfb6316d17012e4469acf3366ad3f44" - integrity sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ== +"@typescript-eslint/visitor-keys@7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz#5035f177752538a5750cca1af6044b633610bf9e" + integrity sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A== dependencies: - "@typescript-eslint/types" "6.7.0" + "@typescript-eslint/types" "7.2.0" eslint-visitor-keys "^3.4.1" "@ungap/structured-clone@^1.2.0": @@ -552,26 +553,26 @@ resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz#508d6a0f2440f86945835d903fcc0d95d1bb8a37" integrity sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ== -"@volar/language-core@2.1.0", "@volar/language-core@~2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.1.0.tgz#26953a62f5d956a4ba4003faf59ae09b2a8aabb6" - integrity sha512-BrYEgYHx92ocpt1OUxJs2x3TAXEjpPLxsQoARb96g2GdF62xnfRQUqCNBwiU7Z3MQ/0tOAdqdHNYNmrFtx6q4A== +"@volar/language-core@2.1.2", "@volar/language-core@~2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.1.2.tgz#2053c0ee48a822d5418be2c192e51e580764b49f" + integrity sha512-5qsDp0Gf6fE09UWCeK7bkVn6NxMwC9OqFWQkMMkeej8h8XjyABPdRygC2RCrqDrfVdGijqlMQeXs6yRS+vfZYA== dependencies: - "@volar/source-map" "2.1.0" + "@volar/source-map" "2.1.2" -"@volar/source-map@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.1.0.tgz#f8c70b5043ae4a3d2cbd66a84036ef030b655a8e" - integrity sha512-VPyi+DTv67cvUOkUewzsOQJY3VUhjOjQxigT487z/H7tEI8ZFd5RksC5afk3JelOK+a/3Y8LRDbKmYKu1dz87g== +"@volar/source-map@2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.1.2.tgz#d270ff8ef5c814582f0efe08272c0fd6b9effb3b" + integrity sha512-yFJqsuLm1OaWrsz9E3yd3bJcYIlHqdZ8MbmIoZLrAzMYQDcoF26/INIhgziEXSdyHc8xd7rd/tJdSnUyh0gH4Q== dependencies: muggle-string "^0.4.0" -"@volar/typescript@~2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.1.0.tgz#640abcdcb6b822f9860006d090e1d5252c655e37" - integrity sha512-2cicVoW4q6eU/omqfOBv+6r9JdrF5bBelujbJhayPNKiOj/xwotSJ/DM8IeMvTZvtkOZkm6suyOCLEokLY0w2w== +"@volar/typescript@~2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.1.2.tgz#61f838cf4410e328a7ba638fadc41bb814772508" + integrity sha512-lhTancZqamvaLvoz0u/uth8dpudENNt2LFZOWCw9JZiX14xRFhdhfzmphiCRb7am9E6qAJSbdS/gMt1utXAoHQ== dependencies: - "@volar/language-core" "2.1.0" + "@volar/language-core" "2.1.2" path-browserify "^1.0.1" "@vue/compiler-core@3.2.47": @@ -668,21 +669,21 @@ resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.1.tgz#7c14346383751d9f6ad4bea0963245b30220ef83" integrity sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA== -"@vue/eslint-config-typescript@^12.0.0": - version "12.0.0" - resolved "https://registry.yarnpkg.com/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz#0ce22d97af5e4155f3f2e7b21a48cfde8a6f3365" - integrity sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg== +"@vue/eslint-config-typescript@^13.0.0": + version "13.0.0" + resolved "https://registry.yarnpkg.com/@vue/eslint-config-typescript/-/eslint-config-typescript-13.0.0.tgz#f5f3d986ace34a10f403921d5044831b89a1b679" + integrity sha512-MHh9SncG/sfqjVqjcuFLOLD6Ed4dRAis4HNt0dXASeAuLqIAx4YMB1/m2o4pUKK1vCt8fUvYG8KKX2Ot3BVZTg== dependencies: - "@typescript-eslint/eslint-plugin" "^6.7.0" - "@typescript-eslint/parser" "^6.7.0" + "@typescript-eslint/eslint-plugin" "^7.1.1" + "@typescript-eslint/parser" "^7.1.1" vue-eslint-parser "^9.3.1" -"@vue/language-core@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.0.4.tgz#324ae3de55d34f926f43b85901f60a33c3c63211" - integrity sha512-IYlVEICXKRWYjRQ4JyPlXhydU/p0C7uY5LpqXyJzzJHWo44LWHZtTP3USfWNQif3VAK5QZpdZKQ5HYIeQL3BJQ== +"@vue/language-core@2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.0.6.tgz#876f90622a3f801dce5cedcd6eae429d732152e2" + integrity sha512-UzqU12tzf9XLqRO3TiWPwRNpP4fyUzE6MAfOQWQNZ4jy6a30ARRUpmODDKq6O8C4goMc2AlPqTmjOHPjHkilSg== dependencies: - "@volar/language-core" "~2.1.0" + "@volar/language-core" "~2.1.2" "@vue/compiler-dom" "^3.4.0" "@vue/shared" "^3.4.0" computeds "^0.0.1" @@ -1121,10 +1122,10 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-plugin-vue@^9.22.0: - version "9.22.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.22.0.tgz#e8a625adb0b6ce3b65635dd74fec8345146f8e26" - integrity sha512-7wCXv5zuVnBtZE/74z4yZ0CM8AjH6bk4MQGm7hZjUC2DBppKU5ioeOk5LGSg/s9a1ZJnIsdPLJpXnu1Rc+cVHg== +eslint-plugin-vue@^9.23.0: + version "9.23.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.23.0.tgz#1354a33b0cd21e0cb373557ff73c5d7a6698fbcd" + integrity sha512-Bqd/b7hGYGrlV+wP/g77tjyFmp81lh5TMw0be9093X02SyelxRRfCI6/IsGq/J7Um0YwB9s0Ry0wlFyjPdmtUw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" natural-compare "^1.4.0" @@ -1834,6 +1835,13 @@ micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" +minimatch@9.0.3, minimatch@^9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -1841,13 +1849,6 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - mitt@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" @@ -2423,10 +2424,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -terser@^5.28.1: - version "5.28.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.28.1.tgz#bf00f7537fd3a798c352c2d67d67d65c915d1b28" - integrity sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA== +terser@^5.29.1: + version "5.29.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.29.1.tgz#44e58045b70c09792ba14bfb7b4e14ca8755b9fa" + integrity sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -2469,10 +2470,10 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -typescript@^5.3.3: - version "5.3.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" - integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== +typescript@^5.4.2: + version "5.4.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.2.tgz#0ae9cebcfae970718474fe0da2c090cad6577372" + integrity sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ== ufo@^1.1.2: version "1.1.2" @@ -2543,10 +2544,10 @@ vite-plugin-css-injected-by-js@^3.4.0: resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.4.0.tgz#b09a571ab50744623736a4b056ecc85d7516311a" integrity sha512-wS5+UYtJXQ/vNornsqTQxOLBVO/UjXU54ZsYMeX0mj2OrbStMQ4GLgvneVDQGPwyGJcm/ntBPawc2lA7xx+Lpg== -vite@^5.1.4: - version "5.1.4" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.1.4.tgz#14e9d3e7a6e488f36284ef13cebe149f060bcfb6" - integrity sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg== +vite@^5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.1.6.tgz#706dae5fab9e97f57578469eef1405fc483943e4" + integrity sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA== dependencies: esbuild "^0.19.3" postcss "^8.4.35" @@ -2604,13 +2605,13 @@ vue-template-compiler@^2.7.14: de-indent "^1.0.2" he "^1.2.0" -vue-tsc@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.0.4.tgz#23f0e642e27720484f3c549ab61a202ed6b82ef4" - integrity sha512-FJk+F1QhqROr6DK8raTuWk5ezNw1/kZ+7TYhc08k+cpvb1fmi7wguPZHX0svIhT4bAxCGDtF8534It8fiAkScg== +vue-tsc@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.0.6.tgz#29cb195ffea63d66ec70b64eb4aadc6cd162bb12" + integrity sha512-kK50W4XqQL34vHRkxlRWLicrT6+F9xfgCgJ4KSmCHcytKzc1u3c94XXgI+CjmhOSxyw0krpExF7Obo7y4+0dVQ== dependencies: - "@volar/typescript" "~2.1.0" - "@vue/language-core" "2.0.4" + "@volar/typescript" "~2.1.2" + "@vue/language-core" "2.0.6" semver "^7.5.4" vue@^3.4.21: From 9634c93a3cf7dc6f7367c2633664b55e5f0ffb08 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 12 Mar 2024 17:27:43 +0100 Subject: [PATCH 11/71] Fix: Show firmware update tooltip only if newer version available Closes #1796 --- webapp/src/components/FirmwareInfo.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webapp/src/components/FirmwareInfo.vue b/webapp/src/components/FirmwareInfo.vue index 13cf2ed8..0f0ec106 100644 --- a/webapp/src/components/FirmwareInfo.vue +++ b/webapp/src/components/FirmwareInfo.vue @@ -29,12 +29,15 @@ {{ $t('firmwareinfo.FirmwareUpdate') }} - {{ systemStatus.update_text }} + + {{ systemStatus.update_text }} +
From bd8d93bf92be6ed69e06354be6de51205f57d173 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 12 Mar 2024 18:35:19 +0100 Subject: [PATCH 12/71] Feature: Allow enabling and disabling of the version check Fix #1787 --- webapp/src/components/FirmwareInfo.vue | 26 +++++++++++++------------- webapp/src/views/SystemInfoView.vue | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/webapp/src/components/FirmwareInfo.vue b/webapp/src/components/FirmwareInfo.vue index 0f0ec106..11aa25a9 100644 --- a/webapp/src/components/FirmwareInfo.vue +++ b/webapp/src/components/FirmwareInfo.vue @@ -28,20 +28,20 @@ {{ $t('firmwareinfo.FirmwareUpdate') }} - - - - {{ systemStatus.update_text }} - - - - {{ systemStatus.update_text }} - - - -
+ +
+
diff --git a/webapp/src/views/SystemInfoView.vue b/webapp/src/views/SystemInfoView.vue index 58d03631..3e667d16 100644 --- a/webapp/src/views/SystemInfoView.vue +++ b/webapp/src/views/SystemInfoView.vue @@ -96,8 +96,8 @@ export default defineComponent({ }, watch: { allowVersionInfo(allow: Boolean) { + localStorage.setItem("allowVersionInfo", allow ? "1" : "0"); if (allow) { - localStorage.setItem("allowVersionInfo", this.allowVersionInfo ? "1" : "0"); this.getUpdateInfo(); } } From 437f572c392cfc4c96bb8cbfdbdbf04192556b55 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 12 Mar 2024 22:11:19 +0100 Subject: [PATCH 13/71] Fix: Don't throw exception if git_hash is not set --- webapp/src/views/SystemInfoView.vue | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/webapp/src/views/SystemInfoView.vue b/webapp/src/views/SystemInfoView.vue index 3e667d16..6c3e843c 100644 --- a/webapp/src/views/SystemInfoView.vue +++ b/webapp/src/views/SystemInfoView.vue @@ -58,12 +58,16 @@ export default defineComponent({ }) }, getUpdateInfo() { + if (this.systemDataList.git_hash === undefined) { + return; + } + // If the left char is a "g" the value is the git hash (remove the "g") this.systemDataList.git_is_hash = this.systemDataList.git_hash?.substring(0, 1) == 'g'; this.systemDataList.git_hash = this.systemDataList.git_is_hash ? this.systemDataList.git_hash?.substring(1) : this.systemDataList.git_hash; // Handle format "v0.1-5-gabcdefh" - if (this.systemDataList.git_hash.lastIndexOf("-") >= 0) { + if (this.systemDataList.git_hash?.lastIndexOf("-") >= 0) { this.systemDataList.git_hash = this.systemDataList.git_hash.substring(this.systemDataList.git_hash.lastIndexOf("-") + 2) this.systemDataList.git_is_hash = true; } From 33bf2117c6e84d62cd4ad96b98f1891ede162cc8 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Wed, 13 Mar 2024 18:47:28 +0100 Subject: [PATCH 14/71] Fix: Set all settings to default when deleting an inverters Previously some old settings from previous inverters could have been shown in a new inverter --- include/Configuration.h | 1 + src/Configuration.cpp | 22 ++++++++++++++++++++++ src/WebApi_inverter.cpp | 3 +-- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/include/Configuration.h b/include/Configuration.h index 4ae77a55..8ae3826a 100644 --- a/include/Configuration.h +++ b/include/Configuration.h @@ -168,6 +168,7 @@ public: INVERTER_CONFIG_T* getFreeInverterSlot(); INVERTER_CONFIG_T* getInverterConfig(const uint64_t serial); + void deleteInverterById(const uint8_t id); }; extern ConfigurationClass Configuration; diff --git a/src/Configuration.cpp b/src/Configuration.cpp index 5181ebe4..de4efa34 100644 --- a/src/Configuration.cpp +++ b/src/Configuration.cpp @@ -406,4 +406,26 @@ INVERTER_CONFIG_T* ConfigurationClass::getInverterConfig(const uint64_t serial) return nullptr; } +void ConfigurationClass::deleteInverterById(const uint8_t id) +{ + config.Inverter[id].Serial = 0ULL; + strlcpy(config.Inverter[id].Name, "", sizeof(config.Inverter[id].Name)); + config.Inverter[id].Order = 0; + + config.Inverter[id].Poll_Enable = true; + config.Inverter[id].Poll_Enable_Night = true; + config.Inverter[id].Command_Enable = true; + config.Inverter[id].Command_Enable_Night = true; + config.Inverter[id].ReachableThreshold = REACHABLE_THRESHOLD; + config.Inverter[id].ZeroRuntimeDataIfUnrechable = false; + config.Inverter[id].ZeroYieldDayOnMidnight = false; + config.Inverter[id].YieldDayCorrection = false; + + for (uint8_t c = 0; c < INV_MAX_CHAN_COUNT; c++) { + config.Inverter[id].channel[c].MaxChannelPower = 0; + config.Inverter[id].channel[c].YieldTotalOffset = 0.0f; + strlcpy(config.Inverter[id].channel[c].Name, "", sizeof(config.Inverter[id].channel[c].Name)); + } +} + ConfigurationClass Configuration; diff --git a/src/WebApi_inverter.cpp b/src/WebApi_inverter.cpp index 68983ab9..5f5e4101 100644 --- a/src/WebApi_inverter.cpp +++ b/src/WebApi_inverter.cpp @@ -386,8 +386,7 @@ void WebApiInverterClass::onInverterDelete(AsyncWebServerRequest* request) Hoymiles.removeInverterBySerial(inverter.Serial); - inverter.Serial = 0; - strncpy(inverter.Name, "", sizeof(inverter.Name)); + Configuration.deleteInverterById(inverter_id); WebApi.writeConfig(retMsg, WebApiError::InverterDeleted, "Inverter deleted!"); From 0b7258d50eb85f5ae7d9cda6de1f396e6164cfd5 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 14 Mar 2024 20:12:24 +0100 Subject: [PATCH 15/71] Upgrade olikraus/U8g2 from 2.35.9 to 2.35.10 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index befd27d4..459e1ca3 100644 --- a/platformio.ini +++ b/platformio.ini @@ -40,7 +40,7 @@ lib_deps = bblanchon/ArduinoJson @ ^6.21.5 https://github.com/bertmelis/espMqttClient.git#v1.6.0 nrf24/RF24 @ ^1.4.8 - olikraus/U8g2 @ ^2.35.9 + olikraus/U8g2 @ ^2.35.10 buelowp/sunset @ ^1.1.7 https://github.com/arkhipenko/TaskScheduler#testing From a0d0aec67724489ca080dafacd472425ae07c047 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 15 Mar 2024 19:46:24 +0100 Subject: [PATCH 16/71] Fix: Correct detection of Hoymiles serial if it contains hex characters --- webapp/src/components/InputSerial.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/src/components/InputSerial.vue b/webapp/src/components/InputSerial.vue index 26aa4d61..9f5ee343 100644 --- a/webapp/src/components/InputSerial.vue +++ b/webapp/src/components/InputSerial.vue @@ -52,7 +52,7 @@ export default defineComponent({ this.formatShow = "info"; // Contains only numbers - if (/^[\d]{12}$/.test(serial)) { + if (/^1{1}[\dA-F]{11}$/.test(serial)) { this.model = serial; this.formatHint = this.$t('inputserial.format_hoymiles'); } From 3138e28cdf2af2bcf94541eecd4fdc946b8b8670 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 15 Mar 2024 19:54:29 +0100 Subject: [PATCH 17/71] webapp: Remove not required cast to string --- webapp/src/components/DevInfo.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/webapp/src/components/DevInfo.vue b/webapp/src/components/DevInfo.vue index df049b7a..024566ad 100644 --- a/webapp/src/components/DevInfo.vue +++ b/webapp/src/components/DevInfo.vue @@ -76,14 +76,14 @@ export default defineComponent({ }, productionYear() { return() => { - return ((parseInt(this.devInfoList.serial.toString(), 16) >> (7 * 4)) & 0xF) + 2014; + return ((parseInt(this.devInfoList.serial, 16) >> (7 * 4)) & 0xF) + 2014; } }, productionWeek() { return() => { - return ((parseInt(this.devInfoList.serial.toString(), 16) >> (5 * 4)) & 0xFF).toString(16); + return ((parseInt(this.devInfoList.serial, 16) >> (5 * 4)) & 0xFF).toString(16); } } } }); - \ No newline at end of file + From cab38d3c84bbbc742c976e0c61a1e8bfb4089307 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 15 Mar 2024 19:57:28 +0100 Subject: [PATCH 18/71] Upgrade olikraus/U8g2 from 2.35.10 to 2.35.14 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 459e1ca3..88e5ec3f 100644 --- a/platformio.ini +++ b/platformio.ini @@ -40,7 +40,7 @@ lib_deps = bblanchon/ArduinoJson @ ^6.21.5 https://github.com/bertmelis/espMqttClient.git#v1.6.0 nrf24/RF24 @ ^1.4.8 - olikraus/U8g2 @ ^2.35.10 + olikraus/U8g2 @ ^2.35.14 buelowp/sunset @ ^1.1.7 https://github.com/arkhipenko/TaskScheduler#testing From dc04a63f7cf4eb0b953a3b968c06f3267f918120 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 15 Mar 2024 20:04:42 +0100 Subject: [PATCH 19/71] Upgrade ESP Async WebServer from 2.7.0 to 2.8.1 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 88e5ec3f..4b34c07c 100644 --- a/platformio.ini +++ b/platformio.ini @@ -36,7 +36,7 @@ build_unflags = -std=gnu++11 lib_deps = - mathieucarbou/ESP Async WebServer @ 2.7.0 + mathieucarbou/ESP Async WebServer @ 2.8.1 bblanchon/ArduinoJson @ ^6.21.5 https://github.com/bertmelis/espMqttClient.git#v1.6.0 nrf24/RF24 @ ^1.4.8 From 77b38dff2b521e49582ef4ac7ff45cb2b6d2a63a Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 15 Mar 2024 20:14:29 +0100 Subject: [PATCH 20/71] Fix: Updated source comments to also match hex numbers --- lib/Hoymiles/src/inverters/HERF_2CH.cpp | 2 +- lib/Hoymiles/src/inverters/HERF_4CH.cpp | 2 +- lib/Hoymiles/src/inverters/HMS_1CH.cpp | 2 +- lib/Hoymiles/src/inverters/HMS_1CHv2.cpp | 2 +- lib/Hoymiles/src/inverters/HMS_2CH.cpp | 2 +- lib/Hoymiles/src/inverters/HMS_4CH.cpp | 2 +- lib/Hoymiles/src/inverters/HMT_4CH.cpp | 2 +- lib/Hoymiles/src/inverters/HMT_6CH.cpp | 2 +- lib/Hoymiles/src/inverters/HM_1CH.cpp | 2 +- lib/Hoymiles/src/inverters/HM_2CH.cpp | 2 +- lib/Hoymiles/src/inverters/HM_4CH.cpp | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/Hoymiles/src/inverters/HERF_2CH.cpp b/lib/Hoymiles/src/inverters/HERF_2CH.cpp index 37799d14..f0216a64 100644 --- a/lib/Hoymiles/src/inverters/HERF_2CH.cpp +++ b/lib/Hoymiles/src/inverters/HERF_2CH.cpp @@ -41,7 +41,7 @@ HERF_2CH::HERF_2CH(HoymilesRadio* radio, const uint64_t serial) bool HERF_2CH::isValidSerial(const uint64_t serial) { - // serial >= 0x282100000000 && serial <= 0x282199999999 + // serial >= 0x282100000000 && serial <= 0x2821ffffffff uint16_t preSerial = (serial >> 32) & 0xffff; return preSerial == 0x2821; } diff --git a/lib/Hoymiles/src/inverters/HERF_4CH.cpp b/lib/Hoymiles/src/inverters/HERF_4CH.cpp index f47b35e2..dcd01b6d 100644 --- a/lib/Hoymiles/src/inverters/HERF_4CH.cpp +++ b/lib/Hoymiles/src/inverters/HERF_4CH.cpp @@ -9,7 +9,7 @@ HERF_4CH::HERF_4CH(HoymilesRadio* radio, const uint64_t serial) bool HERF_4CH::isValidSerial(const uint64_t serial) { - // serial >= 0x280100000000 && serial <= 0x280199999999 + // serial >= 0x280100000000 && serial <= 0x2801ffffffff uint16_t preSerial = (serial >> 32) & 0xffff; return preSerial == 0x2801; } diff --git a/lib/Hoymiles/src/inverters/HMS_1CH.cpp b/lib/Hoymiles/src/inverters/HMS_1CH.cpp index 5d906e58..2c7e3857 100644 --- a/lib/Hoymiles/src/inverters/HMS_1CH.cpp +++ b/lib/Hoymiles/src/inverters/HMS_1CH.cpp @@ -33,7 +33,7 @@ HMS_1CH::HMS_1CH(HoymilesRadio* radio, const uint64_t serial) bool HMS_1CH::isValidSerial(const uint64_t serial) { - // serial >= 0x112400000000 && serial <= 0x112499999999 + // serial >= 0x112400000000 && serial <= 0x1124ffffffff uint16_t preSerial = (serial >> 32) & 0xffff; return preSerial == 0x1124; } diff --git a/lib/Hoymiles/src/inverters/HMS_1CHv2.cpp b/lib/Hoymiles/src/inverters/HMS_1CHv2.cpp index 2cfaa28b..d79d2c1d 100644 --- a/lib/Hoymiles/src/inverters/HMS_1CHv2.cpp +++ b/lib/Hoymiles/src/inverters/HMS_1CHv2.cpp @@ -33,7 +33,7 @@ HMS_1CHv2::HMS_1CHv2(HoymilesRadio* radio, const uint64_t serial) bool HMS_1CHv2::isValidSerial(const uint64_t serial) { - // serial >= 0x112500000000 && serial <= 0x112599999999 + // serial >= 0x112500000000 && serial <= 0x1125ffffffff uint16_t preSerial = (serial >> 32) & 0xffff; return preSerial == 0x1125; } diff --git a/lib/Hoymiles/src/inverters/HMS_2CH.cpp b/lib/Hoymiles/src/inverters/HMS_2CH.cpp index 56c7fc69..4a700a9a 100644 --- a/lib/Hoymiles/src/inverters/HMS_2CH.cpp +++ b/lib/Hoymiles/src/inverters/HMS_2CH.cpp @@ -40,7 +40,7 @@ HMS_2CH::HMS_2CH(HoymilesRadio* radio, const uint64_t serial) bool HMS_2CH::isValidSerial(const uint64_t serial) { - // serial >= 0x114400000000 && serial <= 0x114499999999 + // serial >= 0x114400000000 && serial <= 0x1144ffffffff uint16_t preSerial = (serial >> 32) & 0xffff; return preSerial == 0x1144; } diff --git a/lib/Hoymiles/src/inverters/HMS_4CH.cpp b/lib/Hoymiles/src/inverters/HMS_4CH.cpp index 9aeaf106..b3cf1f38 100644 --- a/lib/Hoymiles/src/inverters/HMS_4CH.cpp +++ b/lib/Hoymiles/src/inverters/HMS_4CH.cpp @@ -54,7 +54,7 @@ HMS_4CH::HMS_4CH(HoymilesRadio* radio, const uint64_t serial) bool HMS_4CH::isValidSerial(const uint64_t serial) { - // serial >= 0x116400000000 && serial <= 0x116499999999 + // serial >= 0x116400000000 && serial <= 0x1164ffffffff uint16_t preSerial = (serial >> 32) & 0xffff; return preSerial == 0x1164; } diff --git a/lib/Hoymiles/src/inverters/HMT_4CH.cpp b/lib/Hoymiles/src/inverters/HMT_4CH.cpp index d92a510f..609e3350 100644 --- a/lib/Hoymiles/src/inverters/HMT_4CH.cpp +++ b/lib/Hoymiles/src/inverters/HMT_4CH.cpp @@ -63,7 +63,7 @@ HMT_4CH::HMT_4CH(HoymilesRadio* radio, const uint64_t serial) bool HMT_4CH::isValidSerial(const uint64_t serial) { - // serial >= 0x136100000000 && serial <= 0x136199999999 + // serial >= 0x136100000000 && serial <= 0x1361ffffffff uint16_t preSerial = (serial >> 32) & 0xffff; return preSerial == 0x1361; } diff --git a/lib/Hoymiles/src/inverters/HMT_6CH.cpp b/lib/Hoymiles/src/inverters/HMT_6CH.cpp index 757cf91d..f8b9f407 100644 --- a/lib/Hoymiles/src/inverters/HMT_6CH.cpp +++ b/lib/Hoymiles/src/inverters/HMT_6CH.cpp @@ -77,7 +77,7 @@ HMT_6CH::HMT_6CH(HoymilesRadio* radio, const uint64_t serial) bool HMT_6CH::isValidSerial(const uint64_t serial) { - // serial >= 0x138200000000 && serial <= 0x138299999999 + // serial >= 0x138200000000 && serial <= 0x1382ffffffff uint16_t preSerial = (serial >> 32) & 0xffff; return preSerial == 0x1382; } diff --git a/lib/Hoymiles/src/inverters/HM_1CH.cpp b/lib/Hoymiles/src/inverters/HM_1CH.cpp index 670b7dbe..0f0c64c2 100644 --- a/lib/Hoymiles/src/inverters/HM_1CH.cpp +++ b/lib/Hoymiles/src/inverters/HM_1CH.cpp @@ -33,7 +33,7 @@ HM_1CH::HM_1CH(HoymilesRadio* radio, const uint64_t serial) bool HM_1CH::isValidSerial(const uint64_t serial) { - // serial >= 0x112100000000 && serial <= 0x112199999999 + // serial >= 0x112100000000 && serial <= 0x1121ffffffff uint8_t preId[2]; preId[0] = (uint8_t)(serial >> 40); diff --git a/lib/Hoymiles/src/inverters/HM_2CH.cpp b/lib/Hoymiles/src/inverters/HM_2CH.cpp index 6d9b7ca9..02dd8ae4 100644 --- a/lib/Hoymiles/src/inverters/HM_2CH.cpp +++ b/lib/Hoymiles/src/inverters/HM_2CH.cpp @@ -41,7 +41,7 @@ HM_2CH::HM_2CH(HoymilesRadio* radio, const uint64_t serial) bool HM_2CH::isValidSerial(const uint64_t serial) { - // serial >= 0x114100000000 && serial <= 0x114199999999 + // serial >= 0x114100000000 && serial <= 0x1141ffffffff uint8_t preId[2]; preId[0] = (uint8_t)(serial >> 40); diff --git a/lib/Hoymiles/src/inverters/HM_4CH.cpp b/lib/Hoymiles/src/inverters/HM_4CH.cpp index 13ca061a..586248b5 100644 --- a/lib/Hoymiles/src/inverters/HM_4CH.cpp +++ b/lib/Hoymiles/src/inverters/HM_4CH.cpp @@ -54,7 +54,7 @@ HM_4CH::HM_4CH(HoymilesRadio* radio, const uint64_t serial) bool HM_4CH::isValidSerial(const uint64_t serial) { - // serial >= 0x116100000000 && serial <= 0x116199999999 + // serial >= 0x116100000000 && serial <= 0x1161ffffffff uint8_t preId[2]; preId[0] = (uint8_t)(serial >> 40); From 7c60c37f491e39326ffa394858f6e8e3b2993501 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 15 Mar 2024 20:16:59 +0100 Subject: [PATCH 21/71] webapp: update dependencies --- webapp/package.json | 8 +++--- webapp/yarn.lock | 66 ++++++++++++++++++++++----------------------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 1dffb903..c61f8174 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -19,7 +19,7 @@ "sortablejs": "^1.15.2", "spark-md5": "^3.0.2", "vue": "^3.4.21", - "vue-i18n": "^9.10.1", + "vue-i18n": "^9.10.2", "vue-router": "^4.3.0" }, "devDependencies": { @@ -27,7 +27,7 @@ "@rushstack/eslint-patch": "^1.7.2", "@tsconfig/node18": "^18.2.2", "@types/bootstrap": "^5.2.10", - "@types/node": "^20.11.26", + "@types/node": "^20.11.28", "@types/pulltorefreshjs": "^0.1.7", "@types/sortablejs": "^1.15.8", "@types/spark-md5": "^3.0.4", @@ -38,8 +38,8 @@ "eslint-plugin-vue": "^9.23.0", "npm-run-all": "^4.1.5", "pulltorefreshjs": "^0.1.22", - "sass": "^1.71.1", - "terser": "^5.29.1", + "sass": "^1.72.0", + "terser": "^5.29.2", "typescript": "^5.4.2", "vite": "^5.1.6", "vite-plugin-compression": "^0.5.1", diff --git a/webapp/yarn.lock b/webapp/yarn.lock index efe3c626..bd718553 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -206,20 +206,20 @@ source-map-js "^1.0.1" yaml-eslint-parser "^1.2.2" -"@intlify/core-base@9.10.1": - version "9.10.1" - resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.10.1.tgz#e61d507d35beb0c69f9c94566313f9520c25a84a" - integrity sha512-0+Wtjj04GIyglh5KKiNjRwgjpHrhqqGZhaKY/QVjjogWKZq5WHROrTi84pNVsRN18QynyPmjtsVUWqFKPQ45xQ== +"@intlify/core-base@9.10.2": + version "9.10.2" + resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.10.2.tgz#e7f8857f8011184e4afbdcfae7dbd85c50ba5271" + integrity sha512-HGStVnKobsJL0DoYIyRCGXBH63DMQqEZxDUGrkNI05FuTcruYUtOAxyL3zoAZu/uDGO6mcUvm3VXBaHG2GdZCg== dependencies: - "@intlify/message-compiler" "9.10.1" - "@intlify/shared" "9.10.1" + "@intlify/message-compiler" "9.10.2" + "@intlify/shared" "9.10.2" -"@intlify/message-compiler@9.10.1": - version "9.10.1" - resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.10.1.tgz#d70c9ec211dab67d50a42ad1fb782c0e02f89c42" - integrity sha512-b68UTmRhgZfswJZI7VAgW6BXZK5JOpoi5swMLGr4j6ss2XbFY13kiw+Hu+xYAfulMPSapcHzdWHnq21VGnMCnA== +"@intlify/message-compiler@9.10.2": + version "9.10.2" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.10.2.tgz#c44cbb915bdd0d62780a38595a84006c781f717a" + integrity sha512-ntY/kfBwQRtX5Zh6wL8cSATujPzWW2ZQd1QwKyWwAy5fMqJyyixHMeovN4fmEyCqSu+hFfYOE63nU94evsy4YA== dependencies: - "@intlify/shared" "9.10.1" + "@intlify/shared" "9.10.2" source-map-js "^1.0.2" "@intlify/message-compiler@^9.4.0": @@ -230,10 +230,10 @@ "@intlify/shared" "9.4.0" source-map-js "^1.0.2" -"@intlify/shared@9.10.1": - version "9.10.1" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.10.1.tgz#024ad6dd4ee9581962437570b3dc25516c82f4e9" - integrity sha512-liyH3UMoglHBUn70iCYcy9CQlInx/lp50W2aeSxqqrvmG+LDj/Jj7tBJhBoQL4fECkldGhbmW0g2ommHfL6Wmw== +"@intlify/shared@9.10.2": + version "9.10.2" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.10.2.tgz#693300ea033868cbe4086b832170612f002e24a9" + integrity sha512-ttHCAJkRy7R5W2S9RVnN9KYQYPIpV2+GiS79T4EE37nrPyH6/1SrOh3bmdCRC1T3ocL8qCDx7x2lBJ0xaITU7Q== "@intlify/shared@9.4.0", "@intlify/shared@^9.4.0": version "9.4.0" @@ -430,10 +430,10 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== -"@types/node@^20.11.26": - version "20.11.26" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.26.tgz#3fbda536e51d5c79281e1d9657dcb0131baabd2d" - integrity sha512-YwOMmyhNnAWijOBQweOJnQPl068Oqd4K3OFbTc6AHJwzweUwwWG3GIFY74OKks2PJUDkQPeddOQES9mLn1CTEQ== +"@types/node@^20.11.28": + version "20.11.28" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.28.tgz#4fd5b2daff2e580c12316e457473d68f15ee6f66" + integrity sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA== dependencies: undici-types "~5.26.4" @@ -2224,10 +2224,10 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -sass@^1.71.1: - version "1.71.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.71.1.tgz#dfb09c63ce63f89353777bbd4a88c0a38386ee54" - integrity sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg== +sass@^1.72.0: + version "1.72.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.72.0.tgz#5b9978943fcfb32b25a6a5acb102fc9dabbbf41c" + integrity sha512-Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -2424,10 +2424,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -terser@^5.29.1: - version "5.29.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.29.1.tgz#44e58045b70c09792ba14bfb7b4e14ca8755b9fa" - integrity sha512-lZQ/fyaIGxsbGxApKmoPTODIzELy3++mXhS5hOqaAWZjQtpq/hFHAc+rm29NND1rYRxRWKcjuARNwULNXa5RtQ== +terser@^5.29.2: + version "5.29.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.29.2.tgz#c17d573ce1da1b30f21a877bffd5655dd86fdb35" + integrity sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -2581,13 +2581,13 @@ vue-eslint-parser@^9.4.2: lodash "^4.17.21" semver "^7.3.6" -vue-i18n@^9.10.1: - version "9.10.1" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.10.1.tgz#b3244233da31a55a07a2ae72cdddab7296bca814" - integrity sha512-37HVJQZ/pZaRXGzFmmMomM1u1k7kndv3xCBPYHKEVfv5W3UVK67U/TpBug71ILYLNmjHLHdvTUPRF81pFT5fFg== +vue-i18n@^9.10.2: + version "9.10.2" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.10.2.tgz#6f4b5d76bce649f1e18bb9b7767b72962b3e30a3" + integrity sha512-ECJ8RIFd+3c1d3m1pctQ6ywG5Yj8Efy1oYoAKQ9neRdkLbuKLVeW4gaY5HPkD/9ssf1pOnUrmIFjx2/gkGxmEw== dependencies: - "@intlify/core-base" "9.10.1" - "@intlify/shared" "9.10.1" + "@intlify/core-base" "9.10.2" + "@intlify/shared" "9.10.2" "@vue/devtools-api" "^6.5.0" vue-router@^4.3.0: From f66b4fa5f115453d9863d917fd40f32116b9a30e Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 15 Mar 2024 22:03:54 +0100 Subject: [PATCH 22/71] webapp: add app.js.gz --- webapp_dist/js/app.js.gz | Bin 181452 -> 182504 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/webapp_dist/js/app.js.gz b/webapp_dist/js/app.js.gz index 9d119e59e75c7d2273b703e5013ce6afa90a3c33..7944f4cdd557fec9c04503aa7a99efe2af9706ed 100644 GIT binary patch delta 181830 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

`>!R{E`)uZD~%Zv?ac1{P_}MkU^A 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

NJ0bZ$i8G>Vl= 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

L`GJNx4}f&0G~R{_eGRXzd+S?TzxK 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 M=`d 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 delta 180746 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 `y86YPK;pAB2ER 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%0D;8WmSR|^! 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�O1KQ5UbMHDq(+0JaxIPno`3*U~ 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 wCmGAPn` Date: Thu, 21 Mar 2024 19:59:13 +0100 Subject: [PATCH 23/71] webapp: update dependencies --- webapp/package.json | 12 +- webapp/yarn.lock | 485 +++++++++++++++++++++++--------------------- 2 files changed, 265 insertions(+), 232 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index c61f8174..620349b4 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -24,10 +24,10 @@ }, "devDependencies": { "@intlify/unplugin-vue-i18n": "^3.0.1", - "@rushstack/eslint-patch": "^1.7.2", + "@rushstack/eslint-patch": "^1.8.0", "@tsconfig/node18": "^18.2.2", "@types/bootstrap": "^5.2.10", - "@types/node": "^20.11.28", + "@types/node": "^20.11.30", "@types/pulltorefreshjs": "^0.1.7", "@types/sortablejs": "^1.15.8", "@types/spark-md5": "^3.0.4", @@ -40,10 +40,10 @@ "pulltorefreshjs": "^0.1.22", "sass": "^1.72.0", "terser": "^5.29.2", - "typescript": "^5.4.2", - "vite": "^5.1.6", + "typescript": "^5.4.3", + "vite": "^5.2.2", "vite-plugin-compression": "^0.5.1", - "vite-plugin-css-injected-by-js": "^3.4.0", - "vue-tsc": "^2.0.6" + "vite-plugin-css-injected-by-js": "^3.5.0", + "vue-tsc": "^2.0.7" } } diff --git a/webapp/yarn.lock b/webapp/yarn.lock index bd718553..ced875a6 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -17,115 +17,120 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== -"@esbuild/android-arm64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz#276c5f99604054d3dbb733577e09adae944baa90" - integrity sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ== +"@esbuild/aix-ppc64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" + integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== -"@esbuild/android-arm@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.5.tgz#4a3cbf14758166abaae8ba9c01a80e68342a4eec" - integrity sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA== +"@esbuild/android-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" + integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== -"@esbuild/android-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.5.tgz#21a3d11cd4613d2d3c5ccb9e746c254eb9265b0a" - integrity sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA== +"@esbuild/android-arm@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" + integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== -"@esbuild/darwin-arm64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz#714cb839f467d6a67b151ee8255886498e2b9bf6" - integrity sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw== +"@esbuild/android-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" + integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== -"@esbuild/darwin-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz#2c553e97a6d2b4ae76a884e35e6cbab85a990bbf" - integrity sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA== +"@esbuild/darwin-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" + integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== -"@esbuild/freebsd-arm64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz#d554f556718adb31917a0da24277bf84b6ee87f3" - integrity sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ== +"@esbuild/darwin-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" + integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== -"@esbuild/freebsd-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz#288f7358a3bb15d99e73c65c9adaa3dabb497432" - integrity sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ== +"@esbuild/freebsd-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" + integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== -"@esbuild/linux-arm64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz#95933ae86325c93cb6b5e8333d22120ecfdc901b" - integrity sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA== +"@esbuild/freebsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" + integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== -"@esbuild/linux-arm@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz#0acef93aa3e0579e46d33b666627bddb06636664" - integrity sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ== +"@esbuild/linux-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" + integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== -"@esbuild/linux-ia32@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz#b6e5c9e80b42131cbd6b1ddaa48c92835f1ed67f" - integrity sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ== +"@esbuild/linux-arm@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" + integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== -"@esbuild/linux-loong64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz#e5f0cf95a180158b01ff5f417da796a1c09dfbea" - integrity sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw== +"@esbuild/linux-ia32@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" + integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== -"@esbuild/linux-mips64el@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz#ae36fb86c7d5f641f3a0c8472e83dcb6ea36a408" - integrity sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg== +"@esbuild/linux-loong64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" + integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== -"@esbuild/linux-ppc64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz#7960cb1666f0340ddd9eef7b26dcea3835d472d0" - integrity sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q== +"@esbuild/linux-mips64el@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" + integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== -"@esbuild/linux-riscv64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz#32207df26af60a3a9feea1783fc21b9817bade19" - integrity sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag== +"@esbuild/linux-ppc64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" + integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== -"@esbuild/linux-s390x@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz#b38d5681db89a3723862dfa792812397b1510a7d" - integrity sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw== +"@esbuild/linux-riscv64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" + integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== -"@esbuild/linux-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz#46feba2ad041a241379d150f415b472fe3885075" - integrity sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A== +"@esbuild/linux-s390x@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" + integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== -"@esbuild/netbsd-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz#3b5c1fb068f26bfc681d31f682adf1bea4ef0702" - integrity sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g== +"@esbuild/linux-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff" + integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== -"@esbuild/openbsd-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz#ca6830316ca68056c5c88a875f103ad3235e00db" - integrity sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA== +"@esbuild/netbsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" + integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== -"@esbuild/sunos-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz#9efc4eb9539a7be7d5a05ada52ee43cda0d8e2dd" - integrity sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg== +"@esbuild/openbsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" + integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== -"@esbuild/win32-arm64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz#29f8184afa7a02a956ebda4ed638099f4b8ff198" - integrity sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg== +"@esbuild/sunos-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" + integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== -"@esbuild/win32-ia32@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz#f3de07afb292ecad651ae4bb8727789de2d95b05" - integrity sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw== +"@esbuild/win32-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" + integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== -"@esbuild/win32-x64@0.19.5": - version "0.19.5" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz#faad84c41ba12e3a0acb52571df9bff37bee75f6" - integrity sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw== +"@esbuild/win32-ia32@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" + integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== + +"@esbuild/win32-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc" + integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== "@eslint-community/eslint-utils@^4.2.0": version "4.2.0" @@ -343,70 +348,75 @@ estree-walker "^2.0.2" picomatch "^2.3.1" -"@rollup/rollup-android-arm-eabi@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.4.1.tgz#f276b0fa322270aa42d1f56c982db6ef8d6a4393" - integrity sha512-Ss4suS/sd+6xLRu+MLCkED2mUrAyqHmmvZB+zpzZ9Znn9S8wCkTQCJaQ8P8aHofnvG5L16u9MVnJjCqioPErwQ== +"@rollup/rollup-android-arm-eabi@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz#b98786c1304b4ff8db3a873180b778649b5dff2b" + integrity sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg== -"@rollup/rollup-android-arm64@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.4.1.tgz#f0492f00d18e1067785f8e820e137c00528c5e62" - integrity sha512-sRSkGTvGsARwWd7TzC8LKRf8FiPn7257vd/edzmvG4RIr9x68KBN0/Ek48CkuUJ5Pj/Dp9vKWv6PEupjKWjTYA== +"@rollup/rollup-android-arm64@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz#8833679af11172b1bf1ab7cb3bad84df4caf0c9e" + integrity sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q== -"@rollup/rollup-darwin-arm64@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.4.1.tgz#40443db7f4559171d797581e0618ec1a4c8dcee9" - integrity sha512-nz0AiGrrXyaWpsmBXUGOBiRDU0wyfSXbFuF98pPvIO8O6auQsPG6riWsfQqmCCC5FNd8zKQ4JhgugRNAkBJ8mQ== +"@rollup/rollup-darwin-arm64@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz#ef02d73e0a95d406e0eb4fd61a53d5d17775659b" + integrity sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g== -"@rollup/rollup-darwin-x64@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.4.1.tgz#2868f37a9f9c2c22c091b6209f6ce7454437edf9" - integrity sha512-Ogqvf4/Ve/faMaiPRvzsJEqajbqs00LO+8vtrPBVvLgdw4wBg6ZDXdkDAZO+4MLnrc8mhGV6VJAzYScZdPLtJg== +"@rollup/rollup-darwin-x64@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz#3ce5b9bcf92b3341a5c1c58a3e6bcce0ea9e7455" + integrity sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg== -"@rollup/rollup-linux-arm-gnueabihf@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.4.1.tgz#d78d7ad358d24058166ab5599de3dcb5ab951add" - integrity sha512-9zc2tqlr6HfO+hx9+wktUlWTRdje7Ub15iJqKcqg5uJZ+iKqmd2CMxlgPpXi7+bU7bjfDIuvCvnGk7wewFEhCg== +"@rollup/rollup-linux-arm-gnueabihf@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz#3d3d2c018bdd8e037c6bfedd52acfff1c97e4be4" + integrity sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ== -"@rollup/rollup-linux-arm64-gnu@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.4.1.tgz#5d07588b40a04f5b6fbd9e0169c8dc32c1c2ed21" - integrity sha512-phLb1fN3rq2o1j1v+nKxXUTSJnAhzhU0hLrl7Qzb0fLpwkGMHDem+o6d+ZI8+/BlTXfMU4kVWGvy6g9k/B8L6Q== +"@rollup/rollup-linux-arm64-gnu@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz#5fc8cc978ff396eaa136d7bfe05b5b9138064143" + integrity sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w== -"@rollup/rollup-linux-arm64-musl@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.4.1.tgz#d452e88a02755f449f6e98d4ce424d655ef42cfe" - integrity sha512-M2sDtw4tf57VPSjbTAN/lz1doWUqO2CbQuX3L9K6GWIR5uw9j+ROKCvvUNBY8WUbMxwaoc8mH9HmmBKsLht7+w== +"@rollup/rollup-linux-arm64-musl@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz#f2ae7d7bed416ffa26d6b948ac5772b520700eef" + integrity sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw== -"@rollup/rollup-linux-x64-gnu@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.4.1.tgz#e8e8e87ab098784383a5ced4aa4bbfa7b2c92a4e" - integrity sha512-mHIlRLX+hx+30cD6c4BaBOsSqdnCE4ok7/KDvjHYAHoSuveoMMxIisZFvcLhUnyZcPBXDGZTuBoalcuh43UfQQ== +"@rollup/rollup-linux-riscv64-gnu@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz#303d57a328ee9a50c85385936f31cf62306d30b6" + integrity sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA== -"@rollup/rollup-linux-x64-musl@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.4.1.tgz#3e5da42626672e2d620ed12746158b0cf6143b23" - integrity sha512-tB+RZuDi3zxFx7vDrjTNGVLu2KNyzYv+UY8jz7e4TMEoAj7iEt8Qk6xVu6mo3pgjnsHj6jnq3uuRsHp97DLwOA== +"@rollup/rollup-linux-x64-gnu@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz#f672f6508f090fc73f08ba40ff76c20b57424778" + integrity sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA== -"@rollup/rollup-win32-arm64-msvc@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.4.1.tgz#0f0d0c6b75c53643fab8238c76889a95bca3b9cc" - integrity sha512-Hdn39PzOQowK/HZzYpCuZdJC91PE6EaGbTe2VCA9oq2u18evkisQfws0Smh9QQGNNRa/T7MOuGNQoLeXhhE3PQ== +"@rollup/rollup-linux-x64-musl@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz#d2f34b1b157f3e7f13925bca3288192a66755a89" + integrity sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw== -"@rollup/rollup-win32-ia32-msvc@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.4.1.tgz#8bb9e8fbf0fdf96fe3bebcee23f5cfdbbd9a4a0a" - integrity sha512-tLpKb1Elm9fM8c5w3nl4N1eLTP4bCqTYw9tqUBxX8/hsxqHO3dxc2qPbZ9PNkdK4tg4iLEYn0pOUnVByRd2CbA== +"@rollup/rollup-win32-arm64-msvc@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz#8ffecc980ae4d9899eb2f9c4ae471a8d58d2da6b" + integrity sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA== -"@rollup/rollup-win32-x64-msvc@4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.4.1.tgz#8311b77e6cce322865ba12ada8c3779369610d18" - integrity sha512-eAhItDX9yQtZVM3yvXS/VR3qPqcnXvnLyx1pLXl4JzyNMBNO3KC986t/iAg2zcMzpAp9JSvxB5VZGnBiNoA98w== +"@rollup/rollup-win32-ia32-msvc@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz#a7505884f415662e088365b9218b2b03a88fc6f2" + integrity sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw== -"@rushstack/eslint-patch@^1.7.2": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.7.2.tgz#2d4260033e199b3032a08b41348ac10de21c47e9" - integrity sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA== +"@rollup/rollup-win32-x64-msvc@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz#6abd79db7ff8d01a58865ba20a63cfd23d9e2a10" + integrity sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw== + +"@rushstack/eslint-patch@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.8.0.tgz#c5545e6a5d2bd5c26b4021c357177a28698c950e" + integrity sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ== "@tsconfig/node18@^18.2.2": version "18.2.2" @@ -420,6 +430,11 @@ dependencies: "@popperjs/core" "^2.9.2" +"@types/estree@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + "@types/estree@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" @@ -430,10 +445,10 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== -"@types/node@^20.11.28": - version "20.11.28" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.28.tgz#4fd5b2daff2e580c12316e457473d68f15ee6f66" - integrity sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA== +"@types/node@^20.11.30": + version "20.11.30" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.30.tgz#9c33467fc23167a347e73834f788f4b9f399d66f" + integrity sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw== dependencies: undici-types "~5.26.4" @@ -553,26 +568,26 @@ resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz#508d6a0f2440f86945835d903fcc0d95d1bb8a37" integrity sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ== -"@volar/language-core@2.1.2", "@volar/language-core@~2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.1.2.tgz#2053c0ee48a822d5418be2c192e51e580764b49f" - integrity sha512-5qsDp0Gf6fE09UWCeK7bkVn6NxMwC9OqFWQkMMkeej8h8XjyABPdRygC2RCrqDrfVdGijqlMQeXs6yRS+vfZYA== +"@volar/language-core@2.1.3", "@volar/language-core@~2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.1.3.tgz#ac6057ec73c5fcda1fc07677bf0d7be41e6c59b1" + integrity sha512-F93KYZYqcYltG7NihfnLt/omMZOtrQtsh2+wj+cgx3xolopU+TZvmwlZWOjw3ObZGFj3SKBb4jJn6VSfSch6RA== dependencies: - "@volar/source-map" "2.1.2" + "@volar/source-map" "2.1.3" -"@volar/source-map@2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.1.2.tgz#d270ff8ef5c814582f0efe08272c0fd6b9effb3b" - integrity sha512-yFJqsuLm1OaWrsz9E3yd3bJcYIlHqdZ8MbmIoZLrAzMYQDcoF26/INIhgziEXSdyHc8xd7rd/tJdSnUyh0gH4Q== +"@volar/source-map@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.1.3.tgz#8f3cb110019c45fa4cd47ad2f5fe5469bd54b9e3" + integrity sha512-j+R+NG/OlDgdNMttADxNuSM9Z26StT/Bjw0NgSydI05Vihngn9zvaP/xXwfWs5qQrRzbKVFxJebS2ks5m/URuA== dependencies: muggle-string "^0.4.0" -"@volar/typescript@~2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.1.2.tgz#61f838cf4410e328a7ba638fadc41bb814772508" - integrity sha512-lhTancZqamvaLvoz0u/uth8dpudENNt2LFZOWCw9JZiX14xRFhdhfzmphiCRb7am9E6qAJSbdS/gMt1utXAoHQ== +"@volar/typescript@~2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.1.3.tgz#bfdc901afd44c2d05697967211aa55d53fb8bf69" + integrity sha512-ZZqLMih4mvu2eJAW3UCFm84OM/ojYMoA/BU/W1TctT5F2nVzNJmW4jxMWmP3wQzxCbATfTa5gLb1+BSI9NBMBg== dependencies: - "@volar/language-core" "2.1.2" + "@volar/language-core" "2.1.3" path-browserify "^1.0.1" "@vue/compiler-core@3.2.47": @@ -678,12 +693,12 @@ "@typescript-eslint/parser" "^7.1.1" vue-eslint-parser "^9.3.1" -"@vue/language-core@2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.0.6.tgz#876f90622a3f801dce5cedcd6eae429d732152e2" - integrity sha512-UzqU12tzf9XLqRO3TiWPwRNpP4fyUzE6MAfOQWQNZ4jy6a30ARRUpmODDKq6O8C4goMc2AlPqTmjOHPjHkilSg== +"@vue/language-core@2.0.7": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.0.7.tgz#af12f752a93c4d2498626fca33f5d1ddc8c5ceb9" + integrity sha512-Vh1yZX3XmYjn9yYLkjU8DN6L0ceBtEcapqiyclHne8guG84IaTzqtvizZB1Yfxm3h6m7EIvjerLO5fvOZO6IIQ== dependencies: - "@volar/language-core" "~2.1.2" + "@volar/language-core" "~2.1.3" "@vue/compiler-dom" "^3.4.0" "@vue/shared" "^3.4.0" computeds "^0.0.1" @@ -1072,33 +1087,34 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.19.3: - version "0.19.5" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.5.tgz#53a0e19dfbf61ba6c827d51a80813cf071239a8c" - integrity sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ== +esbuild@^0.20.1: + version "0.20.2" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1" + integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g== optionalDependencies: - "@esbuild/android-arm" "0.19.5" - "@esbuild/android-arm64" "0.19.5" - "@esbuild/android-x64" "0.19.5" - "@esbuild/darwin-arm64" "0.19.5" - "@esbuild/darwin-x64" "0.19.5" - "@esbuild/freebsd-arm64" "0.19.5" - "@esbuild/freebsd-x64" "0.19.5" - "@esbuild/linux-arm" "0.19.5" - "@esbuild/linux-arm64" "0.19.5" - "@esbuild/linux-ia32" "0.19.5" - "@esbuild/linux-loong64" "0.19.5" - "@esbuild/linux-mips64el" "0.19.5" - "@esbuild/linux-ppc64" "0.19.5" - "@esbuild/linux-riscv64" "0.19.5" - "@esbuild/linux-s390x" "0.19.5" - "@esbuild/linux-x64" "0.19.5" - "@esbuild/netbsd-x64" "0.19.5" - "@esbuild/openbsd-x64" "0.19.5" - "@esbuild/sunos-x64" "0.19.5" - "@esbuild/win32-arm64" "0.19.5" - "@esbuild/win32-ia32" "0.19.5" - "@esbuild/win32-x64" "0.19.5" + "@esbuild/aix-ppc64" "0.20.2" + "@esbuild/android-arm" "0.20.2" + "@esbuild/android-arm64" "0.20.2" + "@esbuild/android-x64" "0.20.2" + "@esbuild/darwin-arm64" "0.20.2" + "@esbuild/darwin-x64" "0.20.2" + "@esbuild/freebsd-arm64" "0.20.2" + "@esbuild/freebsd-x64" "0.20.2" + "@esbuild/linux-arm" "0.20.2" + "@esbuild/linux-arm64" "0.20.2" + "@esbuild/linux-ia32" "0.20.2" + "@esbuild/linux-loong64" "0.20.2" + "@esbuild/linux-mips64el" "0.20.2" + "@esbuild/linux-ppc64" "0.20.2" + "@esbuild/linux-riscv64" "0.20.2" + "@esbuild/linux-s390x" "0.20.2" + "@esbuild/linux-x64" "0.20.2" + "@esbuild/netbsd-x64" "0.20.2" + "@esbuild/openbsd-x64" "0.20.2" + "@esbuild/sunos-x64" "0.20.2" + "@esbuild/win32-arm64" "0.20.2" + "@esbuild/win32-ia32" "0.20.2" + "@esbuild/win32-x64" "0.20.2" escape-string-regexp@^1.0.5: version "1.0.5" @@ -2113,6 +2129,15 @@ postcss@^8.4.35: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.36: + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.2.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -2189,23 +2214,26 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rollup@^4.2.0: - version "4.4.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.4.1.tgz#2f85169f23d13dabb3d9b846d753965757353820" - integrity sha512-idZzrUpWSblPJX66i+GzrpjKE3vbYrlWirUHteoAbjKReZwa0cohAErOYA5efoMmNCdvG9yrJS+w9Kl6csaH4w== +rollup@^4.13.0: + version "4.13.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.13.0.tgz#dd2ae144b4cdc2ea25420477f68d4937a721237a" + integrity sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg== + dependencies: + "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.4.1" - "@rollup/rollup-android-arm64" "4.4.1" - "@rollup/rollup-darwin-arm64" "4.4.1" - "@rollup/rollup-darwin-x64" "4.4.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.4.1" - "@rollup/rollup-linux-arm64-gnu" "4.4.1" - "@rollup/rollup-linux-arm64-musl" "4.4.1" - "@rollup/rollup-linux-x64-gnu" "4.4.1" - "@rollup/rollup-linux-x64-musl" "4.4.1" - "@rollup/rollup-win32-arm64-msvc" "4.4.1" - "@rollup/rollup-win32-ia32-msvc" "4.4.1" - "@rollup/rollup-win32-x64-msvc" "4.4.1" + "@rollup/rollup-android-arm-eabi" "4.13.0" + "@rollup/rollup-android-arm64" "4.13.0" + "@rollup/rollup-darwin-arm64" "4.13.0" + "@rollup/rollup-darwin-x64" "4.13.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.13.0" + "@rollup/rollup-linux-arm64-gnu" "4.13.0" + "@rollup/rollup-linux-arm64-musl" "4.13.0" + "@rollup/rollup-linux-riscv64-gnu" "4.13.0" + "@rollup/rollup-linux-x64-gnu" "4.13.0" + "@rollup/rollup-linux-x64-musl" "4.13.0" + "@rollup/rollup-win32-arm64-msvc" "4.13.0" + "@rollup/rollup-win32-ia32-msvc" "4.13.0" + "@rollup/rollup-win32-x64-msvc" "4.13.0" fsevents "~2.3.2" run-parallel@^1.1.9: @@ -2312,6 +2340,11 @@ sortablejs@^1.15.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" @@ -2470,10 +2503,10 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -typescript@^5.4.2: - version "5.4.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.2.tgz#0ae9cebcfae970718474fe0da2c090cad6577372" - integrity sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ== +typescript@^5.4.3: + version "5.4.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.3.tgz#5c6fedd4c87bee01cd7a528a30145521f8e0feff" + integrity sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg== ufo@^1.1.2: version "1.1.2" @@ -2539,19 +2572,19 @@ vite-plugin-compression@^0.5.1: debug "^4.3.3" fs-extra "^10.0.0" -vite-plugin-css-injected-by-js@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.4.0.tgz#b09a571ab50744623736a4b056ecc85d7516311a" - integrity sha512-wS5+UYtJXQ/vNornsqTQxOLBVO/UjXU54ZsYMeX0mj2OrbStMQ4GLgvneVDQGPwyGJcm/ntBPawc2lA7xx+Lpg== +vite-plugin-css-injected-by-js@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.5.0.tgz#784c0f42c2b42155eb4c726c6addfa24aba9f4fb" + integrity sha512-d0QaHH9kS93J25SwRqJNEfE29PSuQS5jn51y9N9i2Yoq0FRO7rjuTeLvjM5zwklZlRrIn6SUdtOEDKyHokgJZg== -vite@^5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.1.6.tgz#706dae5fab9e97f57578469eef1405fc483943e4" - integrity sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA== +vite@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.2.tgz#b98f8de352d22e21d99508274ddd053ef82bf238" + integrity sha512-FWZbz0oSdLq5snUI0b6sULbz58iXFXdvkZfZWR/F0ZJuKTSPO7v72QPXt6KqYeMFb0yytNp6kZosxJ96Nr/wDQ== dependencies: - esbuild "^0.19.3" - postcss "^8.4.35" - rollup "^4.2.0" + esbuild "^0.20.1" + postcss "^8.4.36" + rollup "^4.13.0" optionalDependencies: fsevents "~2.3.3" @@ -2605,13 +2638,13 @@ vue-template-compiler@^2.7.14: de-indent "^1.0.2" he "^1.2.0" -vue-tsc@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.0.6.tgz#29cb195ffea63d66ec70b64eb4aadc6cd162bb12" - integrity sha512-kK50W4XqQL34vHRkxlRWLicrT6+F9xfgCgJ4KSmCHcytKzc1u3c94XXgI+CjmhOSxyw0krpExF7Obo7y4+0dVQ== +vue-tsc@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.0.7.tgz#3177a2fe720bfa7355d3717929ee8c8d132bc5d0" + integrity sha512-LYa0nInkfcDBB7y8jQ9FQ4riJTRNTdh98zK/hzt4gEpBZQmf30dPhP+odzCa+cedGz6B/guvJEd0BavZaRptjg== dependencies: - "@volar/typescript" "~2.1.2" - "@vue/language-core" "2.0.6" + "@volar/typescript" "~2.1.3" + "@vue/language-core" "2.0.7" semver "^7.5.4" vue@^3.4.21: From 3125f16d99f67cbf6419eab714b67ea70c145b81 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 21 Mar 2024 20:00:34 +0100 Subject: [PATCH 24/71] Fix: Previously check for HwPartNumber 124097 was implemented wrong Fix: #1846 --- lib/Hoymiles/src/parser/DevInfoParser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Hoymiles/src/parser/DevInfoParser.cpp b/lib/Hoymiles/src/parser/DevInfoParser.cpp index 0900a1ac..26e3c9d4 100644 --- a/lib/Hoymiles/src/parser/DevInfoParser.cpp +++ b/lib/Hoymiles/src/parser/DevInfoParser.cpp @@ -204,7 +204,7 @@ bool DevInfoParser::containsValidData() const struct tm info; localtime_r(&t, &info); - return info.tm_year > (2016 - 1900) || getHwPartNumber() == 124097; + return info.tm_year > (2016 - 1900) && getHwPartNumber() != 124097; } uint8_t DevInfoParser::getDevIdx() const From bf4d128e49ea3611159b95709c0a268742c1e3ff Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 22 Mar 2024 20:39:12 +0100 Subject: [PATCH 25/71] webapp: update dependencies --- webapp/package.json | 2 +- webapp/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 620349b4..5088ac7f 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -41,7 +41,7 @@ "sass": "^1.72.0", "terser": "^5.29.2", "typescript": "^5.4.3", - "vite": "^5.2.2", + "vite": "^5.2.3", "vite-plugin-compression": "^0.5.1", "vite-plugin-css-injected-by-js": "^3.5.0", "vue-tsc": "^2.0.7" diff --git a/webapp/yarn.lock b/webapp/yarn.lock index ced875a6..af59fb24 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -2577,10 +2577,10 @@ vite-plugin-css-injected-by-js@^3.5.0: resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.5.0.tgz#784c0f42c2b42155eb4c726c6addfa24aba9f4fb" integrity sha512-d0QaHH9kS93J25SwRqJNEfE29PSuQS5jn51y9N9i2Yoq0FRO7rjuTeLvjM5zwklZlRrIn6SUdtOEDKyHokgJZg== -vite@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.2.tgz#b98f8de352d22e21d99508274ddd053ef82bf238" - integrity sha512-FWZbz0oSdLq5snUI0b6sULbz58iXFXdvkZfZWR/F0ZJuKTSPO7v72QPXt6KqYeMFb0yytNp6kZosxJ96Nr/wDQ== +vite@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.3.tgz#198efc2fd4d80eac813b146a68a4b0dbde884fc2" + integrity sha512-+i1oagbvkVIhEy9TnEV+fgXsng13nZM90JQbrcPrf6DvW2mXARlz+DK7DLiDP+qeKoD1FCVx/1SpFL1CLq9Mhw== dependencies: esbuild "^0.20.1" postcss "^8.4.36" From 326cb15a760a94e536ca0de57768002e80541015 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 22 Mar 2024 20:42:14 +0100 Subject: [PATCH 26/71] Upgrade olikraus/U8g2 from 2.35.14 to 2.35.15 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 4b34c07c..108c12be 100644 --- a/platformio.ini +++ b/platformio.ini @@ -40,7 +40,7 @@ lib_deps = bblanchon/ArduinoJson @ ^6.21.5 https://github.com/bertmelis/espMqttClient.git#v1.6.0 nrf24/RF24 @ ^1.4.8 - olikraus/U8g2 @ ^2.35.14 + olikraus/U8g2 @ ^2.35.15 buelowp/sunset @ ^1.1.7 https://github.com/arkhipenko/TaskScheduler#testing From 3b05f447d5c2c9e386a432e0b015ca11db2c8595 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 22 Mar 2024 20:46:22 +0100 Subject: [PATCH 27/71] webapp: add app.js.gz --- webapp_dist/js/app.js.gz | Bin 182504 -> 182484 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/webapp_dist/js/app.js.gz b/webapp_dist/js/app.js.gz index 7944f4cdd557fec9c04503aa7a99efe2af9706ed..3729c9bf8a436738d4f31b06351edef8971e9ffd 100644 GIT binary patch literal 182484 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≺}l{7HxNU9 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

ROkpp<{H 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

L`FoxmhC3Top0??zMMl?HyC? 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 M=`ddpS~`zfpSY%6S=N&anZk3{kOy+;d-J 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 K5;7eF4h#SuR9{{I From eff8d52014540b085eb84257fb4e178fe98b43af Mon Sep 17 00:00:00 2001 From: Rene Date: Mon, 25 Mar 2024 20:30:02 +0100 Subject: [PATCH 28/71] better alignment inverter, issue 360 --- webapp/src/views/HomeView.vue | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/webapp/src/views/HomeView.vue b/webapp/src/views/HomeView.vue index 0bd01333..f05c4297 100644 --- a/webapp/src/views/HomeView.vue +++ b/webapp/src/views/HomeView.vue @@ -5,14 +5,20 @@

From 6f3b8fb8e13ab3443007bcc9aa5517c54356f47d Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Sun, 31 Mar 2024 12:27:27 +0200 Subject: [PATCH 29/71] Fix: Change default NTP server Fixes #1877 --- include/Configuration.h | 2 +- include/defaults.h | 3 ++- src/Configuration.cpp | 6 ++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/include/Configuration.h b/include/Configuration.h index 8ae3826a..bb0e478f 100644 --- a/include/Configuration.h +++ b/include/Configuration.h @@ -5,7 +5,7 @@ #include #define CONFIG_FILENAME "/config.json" -#define CONFIG_VERSION 0x00011b00 // 0.1.27 // make sure to clean all after change +#define CONFIG_VERSION 0x00011c00 // 0.1.28 // make sure to clean all after change #define WIFI_MAX_SSID_STRLEN 32 #define WIFI_MAX_PASSWORD_STRLEN 64 diff --git a/include/defaults.h b/include/defaults.h index ac871fc9..fd41a3d0 100644 --- a/include/defaults.h +++ b/include/defaults.h @@ -22,7 +22,8 @@ #define MDNS_ENABLED false -#define NTP_SERVER "pool.ntp.org" +#define NTP_SERVER_OLD "pool.ntp.org" +#define NTP_SERVER "opendtu.pool.ntp.org" #define NTP_TIMEZONE "CET-1CEST,M3.5.0,M10.5.0/3" #define NTP_TIMEZONEDESCR "Europe/Berlin" #define NTP_LONGITUDE 10.4515f diff --git a/src/Configuration.cpp b/src/Configuration.cpp index de4efa34..3b189187 100644 --- a/src/Configuration.cpp +++ b/src/Configuration.cpp @@ -372,6 +372,12 @@ void ConfigurationClass::migrate() config.Dtu.Cmt.Frequency *= 1000; } + if (config.Cfg.Version < 0x00011c00) { + if (!strcmp(config.Ntp.Server, NTP_SERVER_OLD)) { + strlcpy(config.Ntp.Server, NTP_SERVER, sizeof(config.Ntp.Server)); + } + } + f.close(); config.Cfg.Version = CONFIG_VERSION; From 188805462743252ad51a265fc9d0a530e24ee1be Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Sun, 31 Mar 2024 12:42:00 +0200 Subject: [PATCH 30/71] Fix: Re-Request grid profile parameters if received data are invalid / to short Fixes #1874 --- lib/Hoymiles/src/Hoymiles.cpp | 2 +- lib/Hoymiles/src/parser/GridProfileParser.cpp | 7 ++++++- lib/Hoymiles/src/parser/GridProfileParser.h | 4 +++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/Hoymiles/src/Hoymiles.cpp b/lib/Hoymiles/src/Hoymiles.cpp index eda3500b..b1458590 100644 --- a/lib/Hoymiles/src/Hoymiles.cpp +++ b/lib/Hoymiles/src/Hoymiles.cpp @@ -114,7 +114,7 @@ void HoymilesClass::loop() } // Fetch grid profile - if (iv->Statistics()->getLastUpdate() > 0 && iv->GridProfile()->getLastUpdate() == 0) { + if (iv->Statistics()->getLastUpdate() > 0 && (iv->GridProfile()->getLastUpdate() == 0 || !iv->GridProfile()->containsValidData())) { iv->sendGridOnProFileParaRequest(); } diff --git a/lib/Hoymiles/src/parser/GridProfileParser.cpp b/lib/Hoymiles/src/parser/GridProfileParser.cpp index 37cb1d4a..a7b912a9 100644 --- a/lib/Hoymiles/src/parser/GridProfileParser.cpp +++ b/lib/Hoymiles/src/parser/GridProfileParser.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later /* - * Copyright (C) 2023 Thomas Basler and others + * Copyright (C) 2023 - 2024 Thomas Basler and others */ #include "GridProfileParser.h" #include "../Hoymiles.h" @@ -446,6 +446,11 @@ std::list GridProfileParser::getProfile() const return l; } +bool GridProfileParser::containsValidData() const +{ + return _gridProfileLength > 6; +} + uint8_t GridProfileParser::getSectionSize(const uint8_t section_id, const uint8_t section_version) { uint8_t count = 0; diff --git a/lib/Hoymiles/src/parser/GridProfileParser.h b/lib/Hoymiles/src/parser/GridProfileParser.h index 1be12e1d..7afdfb82 100644 --- a/lib/Hoymiles/src/parser/GridProfileParser.h +++ b/lib/Hoymiles/src/parser/GridProfileParser.h @@ -43,6 +43,8 @@ public: std::list getProfile() const; + bool containsValidData() const; + private: static uint8_t getSectionSize(const uint8_t section_id, const uint8_t section_version); static int16_t getSectionStart(const uint8_t section_id, const uint8_t section_version); @@ -52,4 +54,4 @@ private: static const std::array _profileTypes; static const std::array _profileValues; -}; \ No newline at end of file +}; From f0a8cabc2c1bdd186b2335026257d4201ec6048c Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Sun, 31 Mar 2024 14:31:57 +0200 Subject: [PATCH 31/71] webapp: update dependencies --- webapp/package.json | 14 ++--- webapp/yarn.lock | 140 ++++++++++++++++---------------------------- 2 files changed, 58 insertions(+), 96 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 5088ac7f..5e92ee74 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -23,11 +23,11 @@ "vue-router": "^4.3.0" }, "devDependencies": { - "@intlify/unplugin-vue-i18n": "^3.0.1", - "@rushstack/eslint-patch": "^1.8.0", - "@tsconfig/node18": "^18.2.2", + "@intlify/unplugin-vue-i18n": "^4.0.0", + "@rushstack/eslint-patch": "^1.10.1", + "@tsconfig/node18": "^18.2.4", "@types/bootstrap": "^5.2.10", - "@types/node": "^20.11.30", + "@types/node": "^20.12.2", "@types/pulltorefreshjs": "^0.1.7", "@types/sortablejs": "^1.15.8", "@types/spark-md5": "^3.0.4", @@ -35,13 +35,13 @@ "@vue/eslint-config-typescript": "^13.0.0", "@vue/tsconfig": "^0.5.1", "eslint": "^8.57.0", - "eslint-plugin-vue": "^9.23.0", + "eslint-plugin-vue": "^9.24.0", "npm-run-all": "^4.1.5", "pulltorefreshjs": "^0.1.22", "sass": "^1.72.0", - "terser": "^5.29.2", + "terser": "^5.30.0", "typescript": "^5.4.3", - "vite": "^5.2.3", + "vite": "^5.2.7", "vite-plugin-compression": "^0.5.1", "vite-plugin-css-injected-by-js": "^3.5.0", "vue-tsc": "^2.0.7" diff --git a/webapp/yarn.lock b/webapp/yarn.lock index af59fb24..1d7bc202 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -195,18 +195,17 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== -"@intlify/bundle-utils@^7.4.0": - version "7.4.0" - resolved "https://registry.yarnpkg.com/@intlify/bundle-utils/-/bundle-utils-7.4.0.tgz#b4dc41026d2d98d2e8a2bd83851c1883a48f1254" - integrity sha512-AQfjBe2HUxzyN8ignIk3WhhSuVcSuirgzOzkd17nb337rCbI4Gv/t1R60UUyIqFoFdviLb/wLcDUzTD/xXjv9w== +"@intlify/bundle-utils@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@intlify/bundle-utils/-/bundle-utils-8.0.0.tgz#4e05153ac031bfc7adef70baedc9b0744a93adfd" + integrity sha512-1B++zykRnMwQ+20SpsZI1JCnV/YJt9Oq7AGlEurzkWJOFtFAVqaGc/oV36PBRYeiKnTbY9VYfjBimr2Vt42wLQ== dependencies: "@intlify/message-compiler" "^9.4.0" "@intlify/shared" "^9.4.0" acorn "^8.8.2" - escodegen "^2.0.0" + escodegen "^2.1.0" estree-walker "^2.0.2" jsonc-eslint-parser "^2.3.0" - magic-string "^0.30.0" mlly "^1.2.0" source-map-js "^1.0.1" yaml-eslint-parser "^1.2.2" @@ -245,12 +244,12 @@ resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.4.0.tgz#4a78d462fc82433db900981e12eb5b1aae3d6085" integrity sha512-AFqymip2kToqA0B6KZPg5jSrdcVHoli9t/VhGKE2iiMq9utFuMoGdDC/JOCIZgwxo6aXAk86QyU2XtzEoMuZ6A== -"@intlify/unplugin-vue-i18n@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-3.0.1.tgz#8bed58d5cbaadda056c2ff88acf99300db516639" - integrity sha512-q1zJhA/WpoLBzAAuKA5/AEp0e+bMOM10ll/HxT4g1VAw/9JhC4TTobP9KobKH90JMZ4U2daLFlYQfKNd29lpqw== +"@intlify/unplugin-vue-i18n@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-4.0.0.tgz#b82fb1bb1a3b982d8f35d07729ca5337d6018269" + integrity sha512-q2Mhqa/mLi0tulfLFO4fMXXvEbkSZpI5yGhNNsLTNJJ41icEGUuyDe+j5zRZIKSkOJRgX6YbCyibTDJdRsukmw== dependencies: - "@intlify/bundle-utils" "^7.4.0" + "@intlify/bundle-utils" "^8.0.0" "@intlify/shared" "^9.4.0" "@rollup/pluginutils" "^5.1.0" "@vue/compiler-sfc" "^3.2.47" @@ -290,7 +289,7 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13": +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== @@ -413,15 +412,15 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz#6abd79db7ff8d01a58865ba20a63cfd23d9e2a10" integrity sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw== -"@rushstack/eslint-patch@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.8.0.tgz#c5545e6a5d2bd5c26b4021c357177a28698c950e" - integrity sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ== +"@rushstack/eslint-patch@^1.10.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.10.1.tgz#7ca168b6937818e9a74b47ac4e2112b2e1a024cf" + integrity sha512-S3Kq8e7LqxkA9s7HKLqXGTGck1uwis5vAXan3FnU5yw1Ec5hsSGnq4s/UCaSqABPOnOTg7zASLyst7+ohgWexg== -"@tsconfig/node18@^18.2.2": - version "18.2.2" - resolved "https://registry.yarnpkg.com/@tsconfig/node18/-/node18-18.2.2.tgz#81fb16ecff0d400b1cbadbf76713b50f331029ce" - integrity sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw== +"@tsconfig/node18@^18.2.4": + version "18.2.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node18/-/node18-18.2.4.tgz#094efbdd70f697d37c09f34067bf41bc4a828ae3" + integrity sha512-5xxU8vVs9/FNcvm3gE07fPbn9tl6tqGGWA9tSlwsUEkBxtRnTsNmwrV8gasZ9F/EobaSv9+nu8AxUKccw77JpQ== "@types/bootstrap@^5.2.10": version "5.2.10" @@ -445,10 +444,10 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== -"@types/node@^20.11.30": - version "20.11.30" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.30.tgz#9c33467fc23167a347e73834f788f4b9f399d66f" - integrity sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw== +"@types/node@^20.12.2": + version "20.12.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.2.tgz#9facdd11102f38b21b4ebedd9d7999663343d72e" + integrity sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ== dependencies: undici-types "~5.26.4" @@ -1009,7 +1008,7 @@ debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: dependencies: ms "2.1.2" -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== @@ -1126,24 +1125,24 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== +escodegen@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== dependencies: esprima "^4.0.1" estraverse "^5.2.0" esutils "^2.0.2" - optionator "^0.8.1" optionalDependencies: source-map "~0.6.1" -eslint-plugin-vue@^9.23.0: - version "9.23.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.23.0.tgz#1354a33b0cd21e0cb373557ff73c5d7a6698fbcd" - integrity sha512-Bqd/b7hGYGrlV+wP/g77tjyFmp81lh5TMw0be9093X02SyelxRRfCI6/IsGq/J7Um0YwB9s0Ry0wlFyjPdmtUw== +eslint-plugin-vue@^9.24.0: + version "9.24.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.24.0.tgz#71209f4652ee767f18c0bf56f25991b7cdc5aa46" + integrity sha512-9SkJMvF8NGMT9aQCwFc5rj8Wo1XWSMSHk36i7ZwdI614BU7sIOR28ZjuFPKp8YGymZN12BSEbiSwa7qikp+PBw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" + globals "^13.24.0" natural-compare "^1.4.0" nth-check "^2.1.1" postcss-selector-parser "^6.0.15" @@ -1326,7 +1325,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== @@ -1467,6 +1466,13 @@ globals@^13.19.0: dependencies: type-fest "^0.20.2" +globals@^13.24.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" @@ -1770,14 +1776,6 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -1819,13 +1817,6 @@ magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" -magic-string@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.0.tgz#fd58a4748c5c4547338a424e90fa5dd17f4de529" - integrity sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.13" - magic-string@^0.30.7: version "0.30.7" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.7.tgz#0cecd0527d473298679da95a2d7aeb8c64048505" @@ -1974,18 +1965,6 @@ once@^1.3.0: dependencies: wrappy "1" -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - optionator@^0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" @@ -2129,7 +2108,7 @@ postcss@^8.4.35: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^8.4.36: +postcss@^8.4.38: version "8.4.38" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== @@ -2143,11 +2122,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - pulltorefreshjs@^0.1.22: version "0.1.22" resolved "https://registry.yarnpkg.com/pulltorefreshjs/-/pulltorefreshjs-0.1.22.tgz#ddb5e3feee0b2a49fd46e1b18e84fffef2c47ac0" @@ -2457,10 +2431,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -terser@^5.29.2: - version "5.29.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.29.2.tgz#c17d573ce1da1b30f21a877bffd5655dd86fdb35" - integrity sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw== +terser@^5.30.0: + version "5.30.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.30.0.tgz#64cb2af71e16ea3d32153f84d990f9be0cdc22bf" + integrity sha512-Y/SblUl5kEyEFzhMAQdsxVHh+utAxd4IuRNJzKywY/4uzSogh3G219jqbDDxYu4MXO9CzY3tSEqmZvW6AoEDJw== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -2491,13 +2465,6 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -2577,13 +2544,13 @@ vite-plugin-css-injected-by-js@^3.5.0: resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.5.0.tgz#784c0f42c2b42155eb4c726c6addfa24aba9f4fb" integrity sha512-d0QaHH9kS93J25SwRqJNEfE29PSuQS5jn51y9N9i2Yoq0FRO7rjuTeLvjM5zwklZlRrIn6SUdtOEDKyHokgJZg== -vite@^5.2.3: - version "5.2.3" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.3.tgz#198efc2fd4d80eac813b146a68a4b0dbde884fc2" - integrity sha512-+i1oagbvkVIhEy9TnEV+fgXsng13nZM90JQbrcPrf6DvW2mXARlz+DK7DLiDP+qeKoD1FCVx/1SpFL1CLq9Mhw== +vite@^5.2.7: + version "5.2.7" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.7.tgz#e1b8a985eb54fcb9467d7f7f009d87485016df6e" + integrity sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA== dependencies: esbuild "^0.20.1" - postcss "^8.4.36" + postcss "^8.4.38" rollup "^4.13.0" optionalDependencies: fsevents "~2.3.3" @@ -2693,11 +2660,6 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" From bdff1e1ac3b684b28e7b21998f4f1e1cb375af49 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Sun, 31 Mar 2024 22:39:59 +0200 Subject: [PATCH 32/71] Added github workflow to do some repository cleanup --- .github/workflows/repo-maintenance.yml | 54 ++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .github/workflows/repo-maintenance.yml diff --git a/.github/workflows/repo-maintenance.yml b/.github/workflows/repo-maintenance.yml new file mode 100644 index 00000000..f7290c2e --- /dev/null +++ b/.github/workflows/repo-maintenance.yml @@ -0,0 +1,54 @@ +name: 'Repository Maintenance' + +on: + schedule: + - cron: '0 4 * * *' + workflow_dispatch: + +permissions: + issues: write + pull-requests: write + discussions: write + +concurrency: + group: lock + +jobs: + stale: + name: 'Stale' + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v9 + with: + days-before-stale: 14 + days-before-close: 60 + any-of-labels: 'cant-reproduce,not a bug' + stale-issue-label: stale + stale-pr-label: stale + stale-issue-message: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Thank you + for your contributions. + + lock-threads: + name: 'Lock Old Threads' + runs-on: ubuntu-latest + steps: + - uses: dessant/lock-threads@v5 + with: + issue-inactive-days: '30' + pr-inactive-days: '30' + discussion-inactive-days: '30' + log-output: true + issue-comment: > + This issue has been automatically locked since there + has not been any recent activity after it was closed. + Please open a new discussion or issue for related concerns. + pr-comment: > + This pull request has been automatically locked since there + has not been any recent activity after it was closed. + Please open a new discussion or issue for related concerns. + discussion-comment: > + This discussion has been automatically locked since there + has not been any recent activity after it was closed. + Please open a new discussion for related concerns. From 12588655dfa9b06aff4bff04ee1d1a2280dda525 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Sun, 31 Mar 2024 23:07:08 +0200 Subject: [PATCH 33/71] webapp: add app.js.gz --- webapp_dist/js/app.js.gz | Bin 182484 -> 182520 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/webapp_dist/js/app.js.gz b/webapp_dist/js/app.js.gz index 3729c9bf8a436738d4f31b06351edef8971e9ffd..48d1893fac8e3e3f9271144f4a8a8042e71ca580 100644 GIT binary patch delta 81892 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

`&zc#?>PP{k&Bb-R6HwREaty;w?fvpjv|{ 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 z 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 ViN1hin2!I?{{tu9yB7Qn3; Date: Mon, 1 Apr 2024 00:00:36 +0200 Subject: [PATCH 34/71] Move source files for TimeoutHelper to correct directories --- lib/TimeoutHelper/README.md | 0 lib/TimeoutHelper/library.json | 13 +++++++++++++ lib/TimeoutHelper/{ => src}/TimeoutHelper.cpp | 0 lib/TimeoutHelper/{ => src}/TimeoutHelper.h | 0 4 files changed, 13 insertions(+) create mode 100644 lib/TimeoutHelper/README.md create mode 100644 lib/TimeoutHelper/library.json rename lib/TimeoutHelper/{ => src}/TimeoutHelper.cpp (100%) rename lib/TimeoutHelper/{ => src}/TimeoutHelper.h (100%) diff --git a/lib/TimeoutHelper/README.md b/lib/TimeoutHelper/README.md new file mode 100644 index 00000000..e69de29b diff --git a/lib/TimeoutHelper/library.json b/lib/TimeoutHelper/library.json new file mode 100644 index 00000000..0e0472ba --- /dev/null +++ b/lib/TimeoutHelper/library.json @@ -0,0 +1,13 @@ +{ + "name": "TimeoutHelper", + "keywords": "timeout", + "description": "An Arduino for ESP32 timeout helper", + "authors": { + "name": "Thomas Basler" + }, + "version": "0.0.1", + "frameworks": "arduino", + "platforms": [ + "espressif32" + ] +} diff --git a/lib/TimeoutHelper/TimeoutHelper.cpp b/lib/TimeoutHelper/src/TimeoutHelper.cpp similarity index 100% rename from lib/TimeoutHelper/TimeoutHelper.cpp rename to lib/TimeoutHelper/src/TimeoutHelper.cpp diff --git a/lib/TimeoutHelper/TimeoutHelper.h b/lib/TimeoutHelper/src/TimeoutHelper.h similarity index 100% rename from lib/TimeoutHelper/TimeoutHelper.h rename to lib/TimeoutHelper/src/TimeoutHelper.h From 58efd9e9543e475863a3cebdc85fcd9a95fefb07 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 1 Apr 2024 00:03:04 +0200 Subject: [PATCH 35/71] Move source files for ThreadSafeQueue to correct directories --- lib/ThreadSafeQueue/README.md | 0 lib/ThreadSafeQueue/library.json | 13 +++++++++++++ lib/ThreadSafeQueue/{ => src}/ThreadSafeQueue.h | 0 3 files changed, 13 insertions(+) create mode 100644 lib/ThreadSafeQueue/README.md create mode 100644 lib/ThreadSafeQueue/library.json rename lib/ThreadSafeQueue/{ => src}/ThreadSafeQueue.h (100%) diff --git a/lib/ThreadSafeQueue/README.md b/lib/ThreadSafeQueue/README.md new file mode 100644 index 00000000..e69de29b diff --git a/lib/ThreadSafeQueue/library.json b/lib/ThreadSafeQueue/library.json new file mode 100644 index 00000000..768cb8b2 --- /dev/null +++ b/lib/ThreadSafeQueue/library.json @@ -0,0 +1,13 @@ +{ + "name": "ThreadSafeQueue", + "keywords": "queue, threadsafe", + "description": "An Arduino for ESP32 thread safe queue implementation", + "authors": { + "name": "Thomas Basler" + }, + "version": "0.0.1", + "frameworks": "arduino", + "platforms": [ + "espressif32" + ] +} diff --git a/lib/ThreadSafeQueue/ThreadSafeQueue.h b/lib/ThreadSafeQueue/src/ThreadSafeQueue.h similarity index 100% rename from lib/ThreadSafeQueue/ThreadSafeQueue.h rename to lib/ThreadSafeQueue/src/ThreadSafeQueue.h From 8add226a7c79760c2ef8df0bdca617e676be1866 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 1 Apr 2024 13:52:09 +0200 Subject: [PATCH 36/71] Save flash: Move WebApi json parsing to separate method to prevent a lot of redundant code --- include/WebApi.h | 3 + src/WebApi.cpp | 34 ++++++++++ src/WebApi_config.cpp | 31 +--------- src/WebApi_device.cpp | 31 +--------- src/WebApi_dtu.cpp | 31 +--------- src/WebApi_inverter.cpp | 124 ++++--------------------------------- src/WebApi_limit.cpp | 31 +--------- src/WebApi_maintenance.cpp | 31 +--------- src/WebApi_mqtt.cpp | 31 +--------- src/WebApi_network.cpp | 31 +--------- src/WebApi_ntp.cpp | 62 ++----------------- src/WebApi_power.cpp | 31 +--------- src/WebApi_security.cpp | 31 +--------- 13 files changed, 82 insertions(+), 420 deletions(-) diff --git a/include/WebApi.h b/include/WebApi.h index 28ae7d33..5e5af527 100644 --- a/include/WebApi.h +++ b/include/WebApi.h @@ -22,6 +22,7 @@ #include "WebApi_webapp.h" #include "WebApi_ws_console.h" #include "WebApi_ws_live.h" +#include #include #include @@ -37,6 +38,8 @@ public: static void writeConfig(JsonVariant& retMsg, const WebApiError code = WebApiError::GenericSuccess, const String& message = "Settings saved!"); + static bool parseRequestData(AsyncWebServerRequest* request, AsyncJsonResponse* response, DynamicJsonDocument& json_document, size_t max_document_size = 1024); + private: AsyncWebServer _server; diff --git a/src/WebApi.cpp b/src/WebApi.cpp index 40809927..10f3e28d 100644 --- a/src/WebApi.cpp +++ b/src/WebApi.cpp @@ -85,4 +85,38 @@ void WebApiClass::writeConfig(JsonVariant& retMsg, const WebApiError code, const } } +bool WebApiClass::parseRequestData(AsyncWebServerRequest* request, AsyncJsonResponse* response, DynamicJsonDocument& json_document, size_t max_document_size) +{ + auto& retMsg = response->getRoot(); + retMsg["type"] = "warning"; + + if (!request->hasParam("data", true)) { + retMsg["message"] = "No values found!"; + retMsg["code"] = WebApiError::GenericNoValueFound; + response->setLength(); + request->send(response); + return false; + } + + const String json = request->getParam("data", true)->value(); + if (json.length() > max_document_size) { + retMsg["message"] = "Data too large!"; + retMsg["code"] = WebApiError::GenericDataTooLarge; + response->setLength(); + request->send(response); + return false; + } + + const DeserializationError error = deserializeJson(json_document, json); + if (error) { + retMsg["message"] = "Failed to parse data!"; + retMsg["code"] = WebApiError::GenericParseError; + response->setLength(); + request->send(response); + return false; + } + + return true; +} + WebApiClass WebApi; diff --git a/src/WebApi_config.cpp b/src/WebApi_config.cpp index 29f35319..f76a2e0a 100644 --- a/src/WebApi_config.cpp +++ b/src/WebApi_config.cpp @@ -53,38 +53,13 @@ void WebApiConfigClass::onConfigDelete(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - auto& retMsg = response->getRoot(); - retMsg["type"] = "warning"; - - if (!request->hasParam("data", true)) { - retMsg["message"] = "No values found!"; - retMsg["code"] = WebApiError::GenericNoValueFound; - response->setLength(); - request->send(response); - return; - } - - const String json = request->getParam("data", true)->value(); - - if (json.length() > 1024) { - retMsg["message"] = "Data too large!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); - return; - } - DynamicJsonDocument root(1024); - const DeserializationError error = deserializeJson(root, json); - - if (error) { - retMsg["message"] = "Failed to parse data!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); + if (!WebApi.parseRequestData(request, response, root)) { return; } + auto& retMsg = response->getRoot(); + if (!(root.containsKey("delete"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; diff --git a/src/WebApi_device.cpp b/src/WebApi_device.cpp index 2042f7da..1cc14220 100644 --- a/src/WebApi_device.cpp +++ b/src/WebApi_device.cpp @@ -97,38 +97,13 @@ void WebApiDeviceClass::onDeviceAdminPost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(false, MQTT_JSON_DOC_SIZE); - auto& retMsg = response->getRoot(); - retMsg["type"] = "warning"; - - if (!request->hasParam("data", true)) { - retMsg["message"] = "No values found!"; - retMsg["code"] = WebApiError::GenericNoValueFound; - response->setLength(); - request->send(response); - return; - } - - const String json = request->getParam("data", true)->value(); - - if (json.length() > MQTT_JSON_DOC_SIZE) { - retMsg["message"] = "Data too large!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); - return; - } - DynamicJsonDocument root(MQTT_JSON_DOC_SIZE); - const DeserializationError error = deserializeJson(root, json); - - if (error) { - retMsg["message"] = "Failed to parse data!"; - retMsg["code"] = WebApiError::GenericParseError; - response->setLength(); - request->send(response); + if (!WebApi.parseRequestData(request, response, root, MQTT_JSON_DOC_SIZE)) { return; } + auto& retMsg = response->getRoot(); + if (!(root.containsKey("curPin") || root.containsKey("display"))) { retMsg["message"] = "Values are missing!"; diff --git a/src/WebApi_dtu.cpp b/src/WebApi_dtu.cpp index 817e71b2..c6678b0a 100644 --- a/src/WebApi_dtu.cpp +++ b/src/WebApi_dtu.cpp @@ -84,38 +84,13 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - auto& retMsg = response->getRoot(); - retMsg["type"] = "warning"; - - if (!request->hasParam("data", true)) { - retMsg["message"] = "No values found!"; - retMsg["code"] = WebApiError::GenericNoValueFound; - response->setLength(); - request->send(response); - return; - } - - const String json = request->getParam("data", true)->value(); - - if (json.length() > 1024) { - retMsg["message"] = "Data too large!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); - return; - } - DynamicJsonDocument root(1024); - const DeserializationError error = deserializeJson(root, json); - - if (error) { - retMsg["message"] = "Failed to parse data!"; - retMsg["code"] = WebApiError::GenericParseError; - response->setLength(); - request->send(response); + if (!WebApi.parseRequestData(request, response, root)) { return; } + auto& retMsg = response->getRoot(); + if (!(root.containsKey("serial") && root.containsKey("pollinterval") && root.containsKey("nrf_palevel") diff --git a/src/WebApi_inverter.cpp b/src/WebApi_inverter.cpp index 5f5e4101..eb48c8ef 100644 --- a/src/WebApi_inverter.cpp +++ b/src/WebApi_inverter.cpp @@ -88,38 +88,13 @@ void WebApiInverterClass::onInverterAdd(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - auto& retMsg = response->getRoot(); - retMsg["type"] = "warning"; - - if (!request->hasParam("data", true)) { - retMsg["message"] = "No values found!"; - retMsg["code"] = WebApiError::GenericNoValueFound; - response->setLength(); - request->send(response); - return; - } - - const String json = request->getParam("data", true)->value(); - - if (json.length() > 1024) { - retMsg["message"] = "Data too large!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); - return; - } - DynamicJsonDocument root(1024); - const DeserializationError error = deserializeJson(root, json); - - if (error) { - retMsg["message"] = "Failed to parse data!"; - retMsg["code"] = WebApiError::GenericParseError; - response->setLength(); - request->send(response); + if (!WebApi.parseRequestData(request, response, root)) { return; } + auto& retMsg = response->getRoot(); + if (!(root.containsKey("serial") && root.containsKey("name"))) { retMsg["message"] = "Values are missing!"; @@ -188,38 +163,13 @@ void WebApiInverterClass::onInverterEdit(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - auto& retMsg = response->getRoot(); - retMsg["type"] = "warning"; - - if (!request->hasParam("data", true)) { - retMsg["message"] = "No values found!"; - retMsg["code"] = WebApiError::GenericNoValueFound; - response->setLength(); - request->send(response); - return; - } - - const String json = request->getParam("data", true)->value(); - - if (json.length() > 1024) { - retMsg["message"] = "Data too large!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); - return; - } - DynamicJsonDocument root(1024); - const DeserializationError error = deserializeJson(root, json); - - if (error) { - retMsg["message"] = "Failed to parse data!"; - retMsg["code"] = WebApiError::GenericParseError; - response->setLength(); - request->send(response); + if (!WebApi.parseRequestData(request, response, root)) { return; } + auto& retMsg = response->getRoot(); + if (!(root.containsKey("id") && root.containsKey("serial") && root.containsKey("name") && root.containsKey("channel"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; @@ -333,38 +283,13 @@ void WebApiInverterClass::onInverterDelete(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - auto& retMsg = response->getRoot(); - retMsg["type"] = "warning"; - - if (!request->hasParam("data", true)) { - retMsg["message"] = "No values found!"; - retMsg["code"] = WebApiError::GenericNoValueFound; - response->setLength(); - request->send(response); - return; - } - - const String json = request->getParam("data", true)->value(); - - if (json.length() > 1024) { - retMsg["message"] = "Data too large!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); - return; - } - DynamicJsonDocument root(1024); - const DeserializationError error = deserializeJson(root, json); - - if (error) { - retMsg["message"] = "Failed to parse data!"; - retMsg["code"] = WebApiError::GenericParseError; - response->setLength(); - request->send(response); + if (!WebApi.parseRequestData(request, response, root)) { return; } + auto& retMsg = response->getRoot(); + if (!(root.containsKey("id"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; @@ -403,38 +328,13 @@ void WebApiInverterClass::onInverterOrder(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - auto& retMsg = response->getRoot(); - retMsg["type"] = "warning"; - - if (!request->hasParam("data", true)) { - retMsg["message"] = "No values found!"; - retMsg["code"] = WebApiError::GenericNoValueFound; - response->setLength(); - request->send(response); - return; - } - - const String json = request->getParam("data", true)->value(); - - if (json.length() > 1024) { - retMsg["message"] = "Data too large!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); - return; - } - DynamicJsonDocument root(1024); - const DeserializationError error = deserializeJson(root, json); - - if (error) { - retMsg["message"] = "Failed to parse data!"; - retMsg["code"] = WebApiError::GenericParseError; - response->setLength(); - request->send(response); + if (!WebApi.parseRequestData(request, response, root)) { return; } + auto& retMsg = response->getRoot(); + if (!(root.containsKey("order"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; diff --git a/src/WebApi_limit.cpp b/src/WebApi_limit.cpp index b5b9e172..89058926 100644 --- a/src/WebApi_limit.cpp +++ b/src/WebApi_limit.cpp @@ -58,38 +58,13 @@ void WebApiLimitClass::onLimitPost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - auto& retMsg = response->getRoot(); - retMsg["type"] = "warning"; - - if (!request->hasParam("data", true)) { - retMsg["message"] = "No values found!"; - retMsg["code"] = WebApiError::GenericNoValueFound; - response->setLength(); - request->send(response); - return; - } - - const String json = request->getParam("data", true)->value(); - - if (json.length() > 1024) { - retMsg["message"] = "Data too large!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); - return; - } - DynamicJsonDocument root(1024); - const DeserializationError error = deserializeJson(root, json); - - if (error) { - retMsg["message"] = "Failed to parse data!"; - retMsg["code"] = WebApiError::GenericParseError; - response->setLength(); - request->send(response); + if (!WebApi.parseRequestData(request, response, root)) { return; } + auto& retMsg = response->getRoot(); + if (!(root.containsKey("serial") && root.containsKey("limit_value") && root.containsKey("limit_type"))) { diff --git a/src/WebApi_maintenance.cpp b/src/WebApi_maintenance.cpp index ba257efa..538f087a 100644 --- a/src/WebApi_maintenance.cpp +++ b/src/WebApi_maintenance.cpp @@ -23,38 +23,13 @@ void WebApiMaintenanceClass::onRebootPost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(false, MQTT_JSON_DOC_SIZE); - auto& retMsg = response->getRoot(); - retMsg["type"] = "warning"; - - if (!request->hasParam("data", true)) { - retMsg["message"] = "No values found!"; - retMsg["code"] = WebApiError::GenericNoValueFound; - response->setLength(); - request->send(response); - return; - } - - const String json = request->getParam("data", true)->value(); - - if (json.length() > MQTT_JSON_DOC_SIZE) { - retMsg["message"] = "Data too large!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); - return; - } - DynamicJsonDocument root(MQTT_JSON_DOC_SIZE); - const DeserializationError error = deserializeJson(root, json); - - if (error) { - retMsg["message"] = "Failed to parse data!"; - retMsg["code"] = WebApiError::GenericParseError; - response->setLength(); - request->send(response); + if (!WebApi.parseRequestData(request, response, root, MQTT_JSON_DOC_SIZE)) { return; } + auto& retMsg = response->getRoot(); + if (!(root.containsKey("reboot"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; diff --git a/src/WebApi_mqtt.cpp b/src/WebApi_mqtt.cpp index 29459a5b..78fed204 100644 --- a/src/WebApi_mqtt.cpp +++ b/src/WebApi_mqtt.cpp @@ -99,38 +99,13 @@ void WebApiMqttClass::onMqttAdminPost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(false, MQTT_JSON_DOC_SIZE); - auto& retMsg = response->getRoot(); - retMsg["type"] = "warning"; - - if (!request->hasParam("data", true)) { - retMsg["message"] = "No values found!"; - retMsg["code"] = WebApiError::GenericNoValueFound; - response->setLength(); - request->send(response); - return; - } - - const String json = request->getParam("data", true)->value(); - - if (json.length() > MQTT_JSON_DOC_SIZE) { - retMsg["message"] = "Data too large!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); - return; - } - DynamicJsonDocument root(MQTT_JSON_DOC_SIZE); - const DeserializationError error = deserializeJson(root, json); - - if (error) { - retMsg["message"] = "Failed to parse data!"; - retMsg["code"] = WebApiError::GenericParseError; - response->setLength(); - request->send(response); + if (!WebApi.parseRequestData(request, response, root, MQTT_JSON_DOC_SIZE)) { return; } + auto& retMsg = response->getRoot(); + if (!(root.containsKey("mqtt_enabled") && root.containsKey("mqtt_hostname") && root.containsKey("mqtt_port") diff --git a/src/WebApi_network.cpp b/src/WebApi_network.cpp index 12f637ad..b7fbbe51 100644 --- a/src/WebApi_network.cpp +++ b/src/WebApi_network.cpp @@ -83,38 +83,13 @@ void WebApiNetworkClass::onNetworkAdminPost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - auto& retMsg = response->getRoot(); - retMsg["type"] = "warning"; - - if (!request->hasParam("data", true)) { - retMsg["message"] = "No values found!"; - retMsg["code"] = WebApiError::GenericNoValueFound; - response->setLength(); - request->send(response); - return; - } - - const String json = request->getParam("data", true)->value(); - - if (json.length() > 1024) { - retMsg["message"] = "Data too large!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); - return; - } - DynamicJsonDocument root(1024); - const DeserializationError error = deserializeJson(root, json); - - if (error) { - retMsg["message"] = "Failed to parse data!"; - retMsg["code"] = WebApiError::GenericParseError; - response->setLength(); - request->send(response); + if (!WebApi.parseRequestData(request, response, root)) { return; } + auto& retMsg = response->getRoot(); + if (!(root.containsKey("ssid") && root.containsKey("password") && root.containsKey("hostname") diff --git a/src/WebApi_ntp.cpp b/src/WebApi_ntp.cpp index 02bbfb10..343d94b5 100644 --- a/src/WebApi_ntp.cpp +++ b/src/WebApi_ntp.cpp @@ -95,38 +95,13 @@ void WebApiNtpClass::onNtpAdminPost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - auto& retMsg = response->getRoot(); - retMsg["type"] = "warning"; - - if (!request->hasParam("data", true)) { - retMsg["message"] = "No values found!"; - retMsg["code"] = WebApiError::GenericNoValueFound; - response->setLength(); - request->send(response); - return; - } - - const String json = request->getParam("data", true)->value(); - - if (json.length() > 1024) { - retMsg["message"] = "Data too large!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); - return; - } - DynamicJsonDocument root(1024); - const DeserializationError error = deserializeJson(root, json); - - if (error) { - retMsg["message"] = "Failed to parse data!"; - retMsg["code"] = WebApiError::GenericParseError; - response->setLength(); - request->send(response); + if (!WebApi.parseRequestData(request, response, root)) { return; } + auto& retMsg = response->getRoot(); + if (!(root.containsKey("ntp_server") && root.containsKey("ntp_timezone") && root.containsKey("longitude") @@ -219,38 +194,13 @@ void WebApiNtpClass::onNtpTimePost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - auto& retMsg = response->getRoot(); - retMsg["type"] = "warning"; - - if (!request->hasParam("data", true)) { - retMsg["message"] = "No values found!"; - retMsg["code"] = WebApiError::GenericNoValueFound; - response->setLength(); - request->send(response); - return; - } - - const String json = request->getParam("data", true)->value(); - - if (json.length() > 1024) { - retMsg["message"] = "Data too large!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); - return; - } - DynamicJsonDocument root(1024); - const DeserializationError error = deserializeJson(root, json); - - if (error) { - retMsg["message"] = "Failed to parse data!"; - retMsg["code"] = WebApiError::GenericParseError; - response->setLength(); - request->send(response); + if (!WebApi.parseRequestData(request, response, root)) { return; } + auto& retMsg = response->getRoot(); + if (!(root.containsKey("year") && root.containsKey("month") && root.containsKey("day") diff --git a/src/WebApi_power.cpp b/src/WebApi_power.cpp index 08fe9c05..2f921d74 100644 --- a/src/WebApi_power.cpp +++ b/src/WebApi_power.cpp @@ -51,38 +51,13 @@ void WebApiPowerClass::onPowerPost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - auto& retMsg = response->getRoot(); - retMsg["type"] = "warning"; - - if (!request->hasParam("data", true)) { - retMsg["message"] = "No values found!"; - retMsg["code"] = WebApiError::GenericNoValueFound; - response->setLength(); - request->send(response); - return; - } - - const String json = request->getParam("data", true)->value(); - - if (json.length() > 1024) { - retMsg["message"] = "Data too large!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); - return; - } - DynamicJsonDocument root(1024); - const DeserializationError error = deserializeJson(root, json); - - if (error) { - retMsg["message"] = "Failed to parse data!"; - retMsg["code"] = WebApiError::GenericParseError; - response->setLength(); - request->send(response); + if (!WebApi.parseRequestData(request, response, root)) { return; } + auto& retMsg = response->getRoot(); + if (!(root.containsKey("serial") && (root.containsKey("power") || root.containsKey("restart")))) { diff --git a/src/WebApi_security.cpp b/src/WebApi_security.cpp index b95ebb29..05f829c5 100644 --- a/src/WebApi_security.cpp +++ b/src/WebApi_security.cpp @@ -42,38 +42,13 @@ void WebApiSecurityClass::onSecurityPost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - auto& retMsg = response->getRoot(); - retMsg["type"] = "warning"; - - if (!request->hasParam("data", true)) { - retMsg["message"] = "No values found!"; - retMsg["code"] = WebApiError::GenericNoValueFound; - response->setLength(); - request->send(response); - return; - } - - const String json = request->getParam("data", true)->value(); - - if (json.length() > 1024) { - retMsg["message"] = "Data too large!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); - return; - } - DynamicJsonDocument root(1024); - const DeserializationError error = deserializeJson(root, json); - - if (error) { - retMsg["message"] = "Failed to parse data!"; - retMsg["code"] = WebApiError::GenericParseError; - response->setLength(); - request->send(response); + if (!WebApi.parseRequestData(request, response, root)) { return; } + auto& retMsg = response->getRoot(); + if (!root.containsKey("password") && root.containsKey("allow_readonly")) { retMsg["message"] = "Values are missing!"; From 718690030e543f99628efdd64b424822ae2c169a Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 1 Apr 2024 13:52:59 +0200 Subject: [PATCH 37/71] Fix include for TimeoutHelper --- lib/Hoymiles/src/HoymilesRadio.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Hoymiles/src/HoymilesRadio.h b/lib/Hoymiles/src/HoymilesRadio.h index 33b8c613..cb2a947c 100644 --- a/lib/Hoymiles/src/HoymilesRadio.h +++ b/lib/Hoymiles/src/HoymilesRadio.h @@ -1,11 +1,11 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#include "TimeoutHelper.h" #include "commands/CommandAbstract.h" #include "types.h" -#include #include +#include +#include class HoymilesRadio { public: @@ -43,4 +43,4 @@ protected: bool _busyFlag = false; TimeoutHelper _rxTimeout; -}; \ No newline at end of file +}; From d2d775d687b1b5cd4898931b48de9b80c6ef57aa Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 2 Apr 2024 19:58:42 +0200 Subject: [PATCH 38/71] Update espressif32 from 6.5.0 to 6.6.0 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 108c12be..12938d3e 100644 --- a/platformio.ini +++ b/platformio.ini @@ -19,7 +19,7 @@ extra_configs = custom_ci_action = generic,generic_esp32,generic_esp32s3,generic_esp32s3_usb framework = arduino -platform = espressif32@6.5.0 +platform = espressif32@6.6.0 build_flags = -DPIOENV=\"$PIOENV\" From b55ca53d1d01ab381b7207e766bcdde1e3df22fa Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Wed, 3 Apr 2024 18:35:27 +0200 Subject: [PATCH 39/71] Fix: Setting DTU options was only possible once without reboot Fix #1884 --- src/WebApi_dtu.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/WebApi_dtu.cpp b/src/WebApi_dtu.cpp index c6678b0a..bbcd909f 100644 --- a/src/WebApi_dtu.cpp +++ b/src/WebApi_dtu.cpp @@ -176,4 +176,5 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) request->send(response); _applyDataTask.enable(); + _applyDataTask.restart(); } From aa10c2c5e1a686fc5c487d776d230cea1b88d22b Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Wed, 3 Apr 2024 19:12:08 +0200 Subject: [PATCH 40/71] Fix: Too small event_queue_size in AsyncTCP lead to wdt reset Fix #1705 --- patches/async_tcp/event_queue_size.patch | 26 ++++++++++++++++++++++++ platformio.ini | 3 ++- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 patches/async_tcp/event_queue_size.patch diff --git a/patches/async_tcp/event_queue_size.patch b/patches/async_tcp/event_queue_size.patch new file mode 100644 index 00000000..1280d46a --- /dev/null +++ b/patches/async_tcp/event_queue_size.patch @@ -0,0 +1,26 @@ +diff --color -ruN a/.pio/libdeps/$$$env$$$/AsyncTCP-esphome/src/AsyncTCP.cpp b/.pio/libdeps/$$$env$$$/AsyncTCP-esphome/src/AsyncTCP.cpp +--- a/.pio/libdeps/$$$env$$$/AsyncTCP-esphome/src/AsyncTCP.cpp ++++ b/.pio/libdeps/$$$env$$$/AsyncTCP-esphome/src/AsyncTCP.cpp +@@ -97,7 +97,7 @@ + + static inline bool _init_async_event_queue(){ + if(!_async_queue){ +- _async_queue = xQueueCreate(32, sizeof(lwip_event_packet_t *)); ++ _async_queue = xQueueCreate(CONFIG_ASYNC_TCP_EVENT_QUEUE_SIZE, sizeof(lwip_event_packet_t *)); + if(!_async_queue){ + return false; + } +diff --color -ruN a/.pio/libdeps/$$$env$$$/AsyncTCP-esphome/src/AsyncTCP.h b/.pio/libdeps/$$$env$$$/AsyncTCP-esphome/src/AsyncTCP.h +--- a/.pio/libdeps/$$$env$$$/AsyncTCP-esphome/src/AsyncTCP.h ++++ b/.pio/libdeps/$$$env$$$/AsyncTCP-esphome/src/AsyncTCP.h +@@ -53,6 +53,10 @@ + #define CONFIG_ASYNC_TCP_STACK_SIZE 8192 * 2 + #endif + ++#ifndef CONFIG_ASYNC_TCP_EVENT_QUEUE_SIZE ++#define CONFIG_ASYNC_TCP_EVENT_QUEUE_SIZE 32 ++#endif ++ + class AsyncClient; + + #define ASYNC_MAX_ACK_TIME 5000 diff --git a/platformio.ini b/platformio.ini index 12938d3e..1f072bfa 100644 --- a/platformio.ini +++ b/platformio.ini @@ -25,6 +25,7 @@ build_flags = -DPIOENV=\"$PIOENV\" -D_TASK_STD_FUNCTION=1 -D_TASK_THREAD_SAFE=1 + -DCONFIG_ASYNC_TCP_EVENT_QUEUE_SIZE=128 -Wall -Wextra -Wunused -Wmisleading-indentation -Wduplicated-cond -Wlogical-op -Wnull-dereference ; Have to remove -Werror because of ; https://github.com/espressif/arduino-esp32/issues/9044 and @@ -59,7 +60,7 @@ board_build.embed_files = webapp_dist/js/app.js.gz webapp_dist/site.webmanifest -custom_patches = +custom_patches = async_tcp monitor_filters = esp32_exception_decoder, time, log2file, colorize monitor_speed = 115200 From e7a9c96b724f29f4dad91beb8bb8027620e8c44d Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Wed, 3 Apr 2024 23:11:30 +0200 Subject: [PATCH 41/71] Upgrade ESP Async WebServer from 2.8.1 to 2.9.0 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 1f072bfa..06e663c2 100644 --- a/platformio.ini +++ b/platformio.ini @@ -37,7 +37,7 @@ build_unflags = -std=gnu++11 lib_deps = - mathieucarbou/ESP Async WebServer @ 2.8.1 + mathieucarbou/ESP Async WebServer @ 2.9.0 bblanchon/ArduinoJson @ ^6.21.5 https://github.com/bertmelis/espMqttClient.git#v1.6.0 nrf24/RF24 @ ^1.4.8 From 2e3125fe8d6a3f3ff224aa3aaa1d15040b7135b3 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 2 Apr 2024 23:23:12 +0200 Subject: [PATCH 42/71] Feature: Migrated ArduinoJson 6 to 7 --- include/Configuration.h | 2 -- include/MqttHandleHass.h | 6 ++-- include/Utils.h | 2 +- include/WebApi.h | 2 +- include/WebApi_errors.h | 2 +- include/WebApi_mqtt.h | 2 -- platformio.ini | 2 +- src/Configuration.cpp | 66 +++++++++++++++++++------------------- src/MqttHandleHass.cpp | 62 +++++++++++++++++++---------------- src/PinMapping.cpp | 6 ++-- src/Utils.cpp | 4 +-- src/WebApi.cpp | 10 +----- src/WebApi_config.cpp | 6 ++-- src/WebApi_device.cpp | 26 +++++++-------- src/WebApi_dtu.cpp | 6 ++-- src/WebApi_eventlog.cpp | 6 ++-- src/WebApi_gridprofile.cpp | 14 ++++---- src/WebApi_inverter.cpp | 18 +++++------ src/WebApi_limit.cpp | 2 +- src/WebApi_maintenance.cpp | 6 ++-- src/WebApi_mqtt.cpp | 10 +++--- src/WebApi_network.cpp | 2 +- src/WebApi_ntp.cpp | 4 +-- src/WebApi_power.cpp | 2 +- src/WebApi_security.cpp | 2 +- src/WebApi_ws_live.cpp | 31 ++++++++++-------- 26 files changed, 149 insertions(+), 152 deletions(-) diff --git a/include/Configuration.h b/include/Configuration.h index bb0e478f..e13b558a 100644 --- a/include/Configuration.h +++ b/include/Configuration.h @@ -30,8 +30,6 @@ #define DEV_MAX_MAPPING_NAME_STRLEN 63 -#define JSON_BUFFER_SIZE 12288 - struct CHANNEL_CONFIG_T { uint16_t MaxChannelPower; char Name[CHAN_MAX_NAME_STRLEN]; diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index feb86743..a76cb0c7 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -66,10 +66,10 @@ private: void publishInverterNumber(std::shared_ptr inv, const char* caption, const char* icon, const char* category, const char* commandTopic, const char* stateTopic, const char* unitOfMeasure, const int16_t min = 1, const int16_t max = 100); void publishInverterBinarySensor(std::shared_ptr inv, const char* caption, const char* subTopic, const char* payload_on, const char* payload_off); - static void createInverterInfo(DynamicJsonDocument& doc, std::shared_ptr inv); - static void createDtuInfo(DynamicJsonDocument& doc); + static void createInverterInfo(JsonDocument& doc, std::shared_ptr inv); + static void createDtuInfo(JsonDocument& doc); - static void createDeviceInfo(DynamicJsonDocument& doc, const String& name, const String& identifiers, const String& configuration_url, const String& manufacturer, const String& model, const String& sw_version, const String& via_device = ""); + static void createDeviceInfo(JsonDocument& doc, const String& name, const String& identifiers, const String& configuration_url, const String& manufacturer, const String& model, const String& sw_version, const String& via_device = ""); static String getDtuUniqueId(); static String getDtuUrl(); diff --git a/include/Utils.h b/include/Utils.h index fddc2ab9..f81e7318 100644 --- a/include/Utils.h +++ b/include/Utils.h @@ -10,6 +10,6 @@ public: static uint64_t generateDtuSerial(); static int getTimezoneOffset(); static void restartDtu(); - static bool checkJsonAlloc(const DynamicJsonDocument& doc, const char* function, const uint16_t line); + static bool checkJsonAlloc(const JsonDocument& doc, const char* function, const uint16_t line); static void removeAllFiles(); }; diff --git a/include/WebApi.h b/include/WebApi.h index 5e5af527..b4c49983 100644 --- a/include/WebApi.h +++ b/include/WebApi.h @@ -38,7 +38,7 @@ public: static void writeConfig(JsonVariant& retMsg, const WebApiError code = WebApiError::GenericSuccess, const String& message = "Settings saved!"); - static bool parseRequestData(AsyncWebServerRequest* request, AsyncJsonResponse* response, DynamicJsonDocument& json_document, size_t max_document_size = 1024); + static bool parseRequestData(AsyncWebServerRequest* request, AsyncJsonResponse* response, JsonDocument& json_document); private: AsyncWebServer _server; diff --git a/include/WebApi_errors.h b/include/WebApi_errors.h index efb890c5..675419d7 100644 --- a/include/WebApi_errors.h +++ b/include/WebApi_errors.h @@ -5,7 +5,7 @@ enum WebApiError { GenericBase = 1000, GenericSuccess, GenericNoValueFound, - GenericDataTooLarge, + GenericDataTooLarge, // not used anymore GenericParseError, GenericValueMissing, GenericWriteFailed, diff --git a/include/WebApi_mqtt.h b/include/WebApi_mqtt.h index b259752b..6e428249 100644 --- a/include/WebApi_mqtt.h +++ b/include/WebApi_mqtt.h @@ -4,8 +4,6 @@ #include #include -#define MQTT_JSON_DOC_SIZE 10240 - class WebApiMqttClass { public: void init(AsyncWebServer& server, Scheduler& scheduler); diff --git a/platformio.ini b/platformio.ini index 06e663c2..2eef6f07 100644 --- a/platformio.ini +++ b/platformio.ini @@ -38,7 +38,7 @@ build_unflags = lib_deps = mathieucarbou/ESP Async WebServer @ 2.9.0 - bblanchon/ArduinoJson @ ^6.21.5 + bblanchon/ArduinoJson @ ^7.0.4 https://github.com/bertmelis/espMqttClient.git#v1.6.0 nrf24/RF24 @ ^1.4.8 olikraus/U8g2 @ ^2.35.15 diff --git a/src/Configuration.cpp b/src/Configuration.cpp index 3b189187..8e803074 100644 --- a/src/Configuration.cpp +++ b/src/Configuration.cpp @@ -25,17 +25,13 @@ bool ConfigurationClass::write() } config.Cfg.SaveCount++; - DynamicJsonDocument doc(JSON_BUFFER_SIZE); + JsonDocument doc; - if (!Utils::checkJsonAlloc(doc, __FUNCTION__, __LINE__)) { - return false; - } - - JsonObject cfg = doc.createNestedObject("cfg"); + JsonObject cfg = doc["cfg"].to(); cfg["version"] = config.Cfg.Version; cfg["save_count"] = config.Cfg.SaveCount; - JsonObject wifi = doc.createNestedObject("wifi"); + JsonObject wifi = doc["wifi"].to(); wifi["ssid"] = config.WiFi.Ssid; wifi["password"] = config.WiFi.Password; wifi["ip"] = IPAddress(config.WiFi.Ip).toString(); @@ -47,10 +43,10 @@ bool ConfigurationClass::write() wifi["hostname"] = config.WiFi.Hostname; wifi["aptimeout"] = config.WiFi.ApTimeout; - JsonObject mdns = doc.createNestedObject("mdns"); + JsonObject mdns = doc["mdns"].to(); mdns["enabled"] = config.Mdns.Enabled; - JsonObject ntp = doc.createNestedObject("ntp"); + JsonObject ntp = doc["ntp"].to(); ntp["server"] = config.Ntp.Server; ntp["timezone"] = config.Ntp.Timezone; ntp["timezone_descr"] = config.Ntp.TimezoneDescr; @@ -58,7 +54,7 @@ bool ConfigurationClass::write() ntp["longitude"] = config.Ntp.Longitude; ntp["sunsettype"] = config.Ntp.SunsetType; - JsonObject mqtt = doc.createNestedObject("mqtt"); + JsonObject mqtt = doc["mqtt"].to(); mqtt["enabled"] = config.Mqtt.Enabled; mqtt["hostname"] = config.Mqtt.Hostname; mqtt["port"] = config.Mqtt.Port; @@ -69,27 +65,27 @@ bool ConfigurationClass::write() mqtt["publish_interval"] = config.Mqtt.PublishInterval; mqtt["clean_session"] = config.Mqtt.CleanSession; - JsonObject mqtt_lwt = mqtt.createNestedObject("lwt"); + JsonObject mqtt_lwt = mqtt["lwt"].to(); mqtt_lwt["topic"] = config.Mqtt.Lwt.Topic; mqtt_lwt["value_online"] = config.Mqtt.Lwt.Value_Online; mqtt_lwt["value_offline"] = config.Mqtt.Lwt.Value_Offline; mqtt_lwt["qos"] = config.Mqtt.Lwt.Qos; - JsonObject mqtt_tls = mqtt.createNestedObject("tls"); + JsonObject mqtt_tls = mqtt["tls"].to(); mqtt_tls["enabled"] = config.Mqtt.Tls.Enabled; mqtt_tls["root_ca_cert"] = config.Mqtt.Tls.RootCaCert; mqtt_tls["certlogin"] = config.Mqtt.Tls.CertLogin; mqtt_tls["client_cert"] = config.Mqtt.Tls.ClientCert; mqtt_tls["client_key"] = config.Mqtt.Tls.ClientKey; - JsonObject mqtt_hass = mqtt.createNestedObject("hass"); + JsonObject mqtt_hass = mqtt["hass"].to(); mqtt_hass["enabled"] = config.Mqtt.Hass.Enabled; mqtt_hass["retain"] = config.Mqtt.Hass.Retain; mqtt_hass["topic"] = config.Mqtt.Hass.Topic; mqtt_hass["individual_panels"] = config.Mqtt.Hass.IndividualPanels; mqtt_hass["expire"] = config.Mqtt.Hass.Expire; - JsonObject dtu = doc.createNestedObject("dtu"); + JsonObject dtu = doc["dtu"].to(); dtu["serial"] = config.Dtu.Serial; dtu["poll_interval"] = config.Dtu.PollInterval; dtu["nrf_pa_level"] = config.Dtu.Nrf.PaLevel; @@ -97,14 +93,14 @@ bool ConfigurationClass::write() dtu["cmt_frequency"] = config.Dtu.Cmt.Frequency; dtu["cmt_country_mode"] = config.Dtu.Cmt.CountryMode; - JsonObject security = doc.createNestedObject("security"); + JsonObject security = doc["security"].to(); security["password"] = config.Security.Password; security["allow_readonly"] = config.Security.AllowReadonly; - JsonObject device = doc.createNestedObject("device"); + JsonObject device = doc["device"].to(); device["pinmapping"] = config.Dev_PinMapping; - JsonObject display = device.createNestedObject("display"); + JsonObject display = device["display"].to(); display["powersafe"] = config.Display.PowerSafe; display["screensaver"] = config.Display.ScreenSaver; display["rotation"] = config.Display.Rotation; @@ -113,15 +109,15 @@ bool ConfigurationClass::write() display["diagram_duration"] = config.Display.Diagram.Duration; display["diagram_mode"] = config.Display.Diagram.Mode; - JsonArray leds = device.createNestedArray("led"); + JsonArray leds = device["led"].to(); for (uint8_t i = 0; i < PINMAPPING_LED_COUNT; i++) { - JsonObject led = leds.createNestedObject(); + JsonObject led = leds.add(); led["brightness"] = config.Led_Single[i].Brightness; } - JsonArray inverters = doc.createNestedArray("inverters"); + JsonArray inverters = doc["inverters"].to(); for (uint8_t i = 0; i < INV_MAX_COUNT; i++) { - JsonObject inv = inverters.createNestedObject(); + JsonObject inv = inverters.add(); inv["serial"] = config.Inverter[i].Serial; inv["name"] = config.Inverter[i].Name; inv["order"] = config.Inverter[i].Order; @@ -134,15 +130,19 @@ bool ConfigurationClass::write() inv["zero_day"] = config.Inverter[i].ZeroYieldDayOnMidnight; inv["yieldday_correction"] = config.Inverter[i].YieldDayCorrection; - JsonArray channel = inv.createNestedArray("channel"); + JsonArray channel = inv["channel"].to(); for (uint8_t c = 0; c < INV_MAX_CHAN_COUNT; c++) { - JsonObject chanData = channel.createNestedObject(); + JsonObject chanData = channel.add(); chanData["name"] = config.Inverter[i].channel[c].Name; chanData["max_power"] = config.Inverter[i].channel[c].MaxChannelPower; chanData["yield_total_offset"] = config.Inverter[i].channel[c].YieldTotalOffset; } } + if (!Utils::checkJsonAlloc(doc, __FUNCTION__, __LINE__)) { + return false; + } + // Serialize JSON to file if (serializeJson(doc, f) == 0) { MessageOutput.println("Failed to write file"); @@ -157,11 +157,7 @@ bool ConfigurationClass::read() { File f = LittleFS.open(CONFIG_FILENAME, "r", false); - DynamicJsonDocument doc(JSON_BUFFER_SIZE); - - if (!Utils::checkJsonAlloc(doc, __FUNCTION__, __LINE__)) { - return false; - } + JsonDocument doc; // Deserialize the JSON document const DeserializationError error = deserializeJson(doc, f); @@ -169,6 +165,10 @@ bool ConfigurationClass::read() MessageOutput.println("Failed to read file, using default configuration"); } + if (!Utils::checkJsonAlloc(doc, __FUNCTION__, __LINE__)) { + return false; + } + JsonObject cfg = doc["cfg"]; config.Cfg.Version = cfg["version"] | CONFIG_VERSION; config.Cfg.SaveCount = cfg["save_count"] | 0; @@ -324,11 +324,7 @@ void ConfigurationClass::migrate() return; } - DynamicJsonDocument doc(JSON_BUFFER_SIZE); - - if (!Utils::checkJsonAlloc(doc, __FUNCTION__, __LINE__)) { - return; - } + JsonDocument doc; // Deserialize the JSON document const DeserializationError error = deserializeJson(doc, f); @@ -337,6 +333,10 @@ void ConfigurationClass::migrate() return; } + if (!Utils::checkJsonAlloc(doc, __FUNCTION__, __LINE__)) { + return; + } + if (config.Cfg.Version < 0x00011700) { JsonArray inverters = doc["inverters"]; for (uint8_t i = 0; i < INV_MAX_COUNT; i++) { diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 21ff0fa2..a2d998d1 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -137,10 +137,7 @@ void MqttHandleHassClass::publishInverterField(std::shared_ptr name = "CH" + chanNum + " " + fieldName; } - DynamicJsonDocument root(1024); - if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) { - return; - } + JsonDocument root; root["name"] = name; root["stat_t"] = stateTopic; @@ -163,6 +160,10 @@ void MqttHandleHassClass::publishInverterField(std::shared_ptr root["stat_cla"] = stateCls; } + if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) { + return; + } + String buffer; serializeJson(root, buffer); publish(configTopic, buffer); @@ -185,10 +186,7 @@ void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv) +void MqttHandleHassClass::createInverterInfo(JsonDocument& root, std::shared_ptr inv) { createDeviceInfo( root, @@ -378,7 +384,7 @@ void MqttHandleHassClass::createInverterInfo(DynamicJsonDocument& root, std::sha getDtuUniqueId()); } -void MqttHandleHassClass::createDtuInfo(DynamicJsonDocument& root) +void MqttHandleHassClass::createDtuInfo(JsonDocument& root) { createDeviceInfo( root, @@ -391,12 +397,12 @@ void MqttHandleHassClass::createDtuInfo(DynamicJsonDocument& root) } void MqttHandleHassClass::createDeviceInfo( - DynamicJsonDocument& root, + JsonDocument& root, const String& name, const String& identifiers, const String& configuration_url, const String& manufacturer, const String& model, const String& sw_version, const String& via_device) { - auto object = root.createNestedObject("dev"); + auto object = root["dev"].to(); object["name"] = name; object["ids"] = identifiers; diff --git a/src/PinMapping.cpp b/src/PinMapping.cpp index 8d7062b0..74f28285 100644 --- a/src/PinMapping.cpp +++ b/src/PinMapping.cpp @@ -8,8 +8,6 @@ #include #include -#define JSON_BUFFER_SIZE 6144 - #ifndef DISPLAY_TYPE #define DISPLAY_TYPE 0U #endif @@ -141,7 +139,7 @@ bool PinMappingClass::init(const String& deviceMapping) return false; } - DynamicJsonDocument doc(JSON_BUFFER_SIZE); + JsonDocument doc; // Deserialize the JSON document DeserializationError error = deserializeJson(doc, f); if (error) { @@ -216,4 +214,4 @@ bool PinMappingClass::isValidCmt2300Config() const bool PinMappingClass::isValidEthConfig() const { return _pinMapping.eth_enabled; -} \ No newline at end of file +} diff --git a/src/Utils.cpp b/src/Utils.cpp index 7ad07293..6bedd2cb 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -69,9 +69,9 @@ void Utils::restartDtu() ESP.restart(); } -bool Utils::checkJsonAlloc(const DynamicJsonDocument& doc, const char* function, const uint16_t line) +bool Utils::checkJsonAlloc(const JsonDocument& doc, const char* function, const uint16_t line) { - if (doc.capacity() == 0) { + if (doc.overflowed()) { MessageOutput.printf("Alloc failed: %s, %d\r\n", function, line); return false; } diff --git a/src/WebApi.cpp b/src/WebApi.cpp index 10f3e28d..04821d7e 100644 --- a/src/WebApi.cpp +++ b/src/WebApi.cpp @@ -85,7 +85,7 @@ void WebApiClass::writeConfig(JsonVariant& retMsg, const WebApiError code, const } } -bool WebApiClass::parseRequestData(AsyncWebServerRequest* request, AsyncJsonResponse* response, DynamicJsonDocument& json_document, size_t max_document_size) +bool WebApiClass::parseRequestData(AsyncWebServerRequest* request, AsyncJsonResponse* response, JsonDocument& json_document) { auto& retMsg = response->getRoot(); retMsg["type"] = "warning"; @@ -99,14 +99,6 @@ bool WebApiClass::parseRequestData(AsyncWebServerRequest* request, AsyncJsonResp } const String json = request->getParam("data", true)->value(); - if (json.length() > max_document_size) { - retMsg["message"] = "Data too large!"; - retMsg["code"] = WebApiError::GenericDataTooLarge; - response->setLength(); - request->send(response); - return false; - } - const DeserializationError error = deserializeJson(json_document, json); if (error) { retMsg["message"] = "Failed to parse data!"; diff --git a/src/WebApi_config.cpp b/src/WebApi_config.cpp index f76a2e0a..99a539ed 100644 --- a/src/WebApi_config.cpp +++ b/src/WebApi_config.cpp @@ -53,7 +53,7 @@ void WebApiConfigClass::onConfigDelete(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - DynamicJsonDocument root(1024); + JsonDocument root; if (!WebApi.parseRequestData(request, response, root)) { return; } @@ -95,7 +95,7 @@ void WebApiConfigClass::onConfigListGet(AsyncWebServerRequest* request) AsyncJsonResponse* response = new AsyncJsonResponse(); auto& root = response->getRoot(); - auto data = root.createNestedArray("configs"); + auto data = root["configs"].to(); File rootfs = LittleFS.open("/"); File file = rootfs.openNextFile(); @@ -103,7 +103,7 @@ void WebApiConfigClass::onConfigListGet(AsyncWebServerRequest* request) if (file.isDirectory()) { continue; } - JsonObject obj = data.createNestedObject(); + JsonObject obj = data.add(); obj["name"] = String(file.name()); file = rootfs.openNextFile(); diff --git a/src/WebApi_device.cpp b/src/WebApi_device.cpp index 1cc14220..421f9456 100644 --- a/src/WebApi_device.cpp +++ b/src/WebApi_device.cpp @@ -26,15 +26,15 @@ void WebApiDeviceClass::onDeviceAdminGet(AsyncWebServerRequest* request) return; } - AsyncJsonResponse* response = new AsyncJsonResponse(false, MQTT_JSON_DOC_SIZE); + AsyncJsonResponse* response = new AsyncJsonResponse(); auto& root = response->getRoot(); const CONFIG_T& config = Configuration.get(); const PinMapping_t& pin = PinMapping.get(); - auto curPin = root.createNestedObject("curPin"); + auto curPin = root["curPin"].to(); curPin["name"] = config.Dev_PinMapping; - auto nrfPinObj = curPin.createNestedObject("nrf24"); + auto nrfPinObj = curPin["nrf24"].to(); nrfPinObj["clk"] = pin.nrf24_clk; nrfPinObj["cs"] = pin.nrf24_cs; nrfPinObj["en"] = pin.nrf24_en; @@ -42,7 +42,7 @@ void WebApiDeviceClass::onDeviceAdminGet(AsyncWebServerRequest* request) nrfPinObj["miso"] = pin.nrf24_miso; nrfPinObj["mosi"] = pin.nrf24_mosi; - auto cmtPinObj = curPin.createNestedObject("cmt"); + auto cmtPinObj = curPin["cmt"].to(); cmtPinObj["clk"] = pin.cmt_clk; cmtPinObj["cs"] = pin.cmt_cs; cmtPinObj["fcs"] = pin.cmt_fcs; @@ -50,7 +50,7 @@ void WebApiDeviceClass::onDeviceAdminGet(AsyncWebServerRequest* request) cmtPinObj["gpio2"] = pin.cmt_gpio2; cmtPinObj["gpio3"] = pin.cmt_gpio3; - auto ethPinObj = curPin.createNestedObject("eth"); + auto ethPinObj = curPin["eth"].to(); ethPinObj["enabled"] = pin.eth_enabled; ethPinObj["phy_addr"] = pin.eth_phy_addr; ethPinObj["power"] = pin.eth_power; @@ -59,19 +59,19 @@ void WebApiDeviceClass::onDeviceAdminGet(AsyncWebServerRequest* request) ethPinObj["type"] = pin.eth_type; ethPinObj["clk_mode"] = pin.eth_clk_mode; - auto displayPinObj = curPin.createNestedObject("display"); + auto displayPinObj = curPin["display"].to(); displayPinObj["type"] = pin.display_type; displayPinObj["data"] = pin.display_data; displayPinObj["clk"] = pin.display_clk; displayPinObj["cs"] = pin.display_cs; displayPinObj["reset"] = pin.display_reset; - auto ledPinObj = curPin.createNestedObject("led"); + auto ledPinObj = curPin["led"].to(); for (uint8_t i = 0; i < PINMAPPING_LED_COUNT; i++) { ledPinObj["led" + String(i)] = pin.led[i]; } - auto display = root.createNestedObject("display"); + auto display = root["display"].to(); display["rotation"] = config.Display.Rotation; display["power_safe"] = config.Display.PowerSafe; display["screensaver"] = config.Display.ScreenSaver; @@ -80,9 +80,9 @@ void WebApiDeviceClass::onDeviceAdminGet(AsyncWebServerRequest* request) display["diagramduration"] = config.Display.Diagram.Duration; display["diagrammode"] = config.Display.Diagram.Mode; - auto leds = root.createNestedArray("led"); + auto leds = root["led"].to(); for (uint8_t i = 0; i < PINMAPPING_LED_COUNT; i++) { - auto led = leds.createNestedObject(); + auto led = leds.add(); led["brightness"] = config.Led_Single[i].Brightness; } @@ -96,9 +96,9 @@ void WebApiDeviceClass::onDeviceAdminPost(AsyncWebServerRequest* request) return; } - AsyncJsonResponse* response = new AsyncJsonResponse(false, MQTT_JSON_DOC_SIZE); - DynamicJsonDocument root(MQTT_JSON_DOC_SIZE); - if (!WebApi.parseRequestData(request, response, root, MQTT_JSON_DOC_SIZE)) { + AsyncJsonResponse* response = new AsyncJsonResponse(); + JsonDocument root; + if (!WebApi.parseRequestData(request, response, root)) { return; } diff --git a/src/WebApi_dtu.cpp b/src/WebApi_dtu.cpp index bbcd909f..a2192c7c 100644 --- a/src/WebApi_dtu.cpp +++ b/src/WebApi_dtu.cpp @@ -62,10 +62,10 @@ void WebApiDtuClass::onDtuAdminGet(AsyncWebServerRequest* request) root["cmt_country"] = config.Dtu.Cmt.CountryMode; root["cmt_chan_width"] = Hoymiles.getRadioCmt()->getChannelWidth(); - auto data = root.createNestedArray("country_def"); + auto data = root["country_def"].to(); auto countryDefs = Hoymiles.getRadioCmt()->getCountryFrequencyList(); for (const auto& definition : countryDefs) { - auto obj = data.createNestedObject(); + auto obj = data.add(); obj["freq_default"] = definition.definition.Freq_Default; obj["freq_min"] = definition.definition.Freq_Min; obj["freq_max"] = definition.definition.Freq_Max; @@ -84,7 +84,7 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - DynamicJsonDocument root(1024); + JsonDocument root; if (!WebApi.parseRequestData(request, response, root)) { return; } diff --git a/src/WebApi_eventlog.cpp b/src/WebApi_eventlog.cpp index 51e85aff..3637a3d9 100644 --- a/src/WebApi_eventlog.cpp +++ b/src/WebApi_eventlog.cpp @@ -20,7 +20,7 @@ void WebApiEventlogClass::onEventlogStatus(AsyncWebServerRequest* request) return; } - AsyncJsonResponse* response = new AsyncJsonResponse(false, 2048); + AsyncJsonResponse* response = new AsyncJsonResponse(); auto& root = response->getRoot(); uint64_t serial = 0; @@ -47,10 +47,10 @@ void WebApiEventlogClass::onEventlogStatus(AsyncWebServerRequest* request) uint8_t logEntryCount = inv->EventLog()->getEntryCount(); root["count"] = logEntryCount; - JsonArray eventsArray = root.createNestedArray("events"); + JsonArray eventsArray = root["events"].to(); for (uint8_t logEntry = 0; logEntry < logEntryCount; logEntry++) { - JsonObject eventsObject = eventsArray.createNestedObject(); + JsonObject eventsObject = eventsArray.add(); AlarmLogEntry_t entry; inv->EventLog()->getLogEntry(logEntry, entry, locale); diff --git a/src/WebApi_gridprofile.cpp b/src/WebApi_gridprofile.cpp index 60c340fa..2527396d 100644 --- a/src/WebApi_gridprofile.cpp +++ b/src/WebApi_gridprofile.cpp @@ -21,7 +21,7 @@ void WebApiGridProfileClass::onGridProfileStatus(AsyncWebServerRequest* request) return; } - AsyncJsonResponse* response = new AsyncJsonResponse(false, 8192); + AsyncJsonResponse* response = new AsyncJsonResponse(); auto& root = response->getRoot(); uint64_t serial = 0; @@ -36,17 +36,17 @@ void WebApiGridProfileClass::onGridProfileStatus(AsyncWebServerRequest* request) root["name"] = inv->GridProfile()->getProfileName(); root["version"] = inv->GridProfile()->getProfileVersion(); - auto jsonSections = root.createNestedArray("sections"); + auto jsonSections = root["sections"].to(); auto profSections = inv->GridProfile()->getProfile(); for (auto &profSection : profSections) { - auto jsonSection = jsonSections.createNestedObject(); + auto jsonSection = jsonSections.add(); jsonSection["name"] = profSection.SectionName; - auto jsonItems = jsonSection.createNestedArray("items"); + auto jsonItems = jsonSection["items"].to(); for (auto &profItem : profSection.items) { - auto jsonItem = jsonItems.createNestedObject(); + auto jsonItem = jsonItems.add(); jsonItem["n"] = profItem.Name; jsonItem["u"] = profItem.Unit; @@ -65,7 +65,7 @@ void WebApiGridProfileClass::onGridProfileRawdata(AsyncWebServerRequest* request return; } - AsyncJsonResponse* response = new AsyncJsonResponse(false, 4096); + AsyncJsonResponse* response = new AsyncJsonResponse(); auto& root = response->getRoot(); uint64_t serial = 0; @@ -77,7 +77,7 @@ void WebApiGridProfileClass::onGridProfileRawdata(AsyncWebServerRequest* request auto inv = Hoymiles.getInverterBySerial(serial); if (inv != nullptr) { - auto raw = root.createNestedArray("raw"); + auto raw = root["raw"].to(); auto data = inv->GridProfile()->getRawData(); copyArray(&data[0], data.size(), raw); diff --git a/src/WebApi_inverter.cpp b/src/WebApi_inverter.cpp index eb48c8ef..0d82a326 100644 --- a/src/WebApi_inverter.cpp +++ b/src/WebApi_inverter.cpp @@ -29,15 +29,15 @@ void WebApiInverterClass::onInverterList(AsyncWebServerRequest* request) return; } - AsyncJsonResponse* response = new AsyncJsonResponse(false, 768 * INV_MAX_COUNT); + AsyncJsonResponse* response = new AsyncJsonResponse(); auto& root = response->getRoot(); - JsonArray data = root.createNestedArray("inverter"); + JsonArray data = root["inverter"].to(); const CONFIG_T& config = Configuration.get(); for (uint8_t i = 0; i < INV_MAX_COUNT; i++) { if (config.Inverter[i].Serial > 0) { - JsonObject obj = data.createNestedObject(); + JsonObject obj = data.add(); obj["id"] = i; obj["name"] = String(config.Inverter[i].Name); obj["order"] = config.Inverter[i].Order; @@ -67,9 +67,9 @@ void WebApiInverterClass::onInverterList(AsyncWebServerRequest* request) max_channels = inv->Statistics()->getChannelsByType(TYPE_DC).size(); } - JsonArray channel = obj.createNestedArray("channel"); + JsonArray channel = obj["channel"].to(); for (uint8_t c = 0; c < max_channels; c++) { - JsonObject chanData = channel.createNestedObject(); + JsonObject chanData = channel.add(); chanData["name"] = config.Inverter[i].channel[c].Name; chanData["max_power"] = config.Inverter[i].channel[c].MaxChannelPower; chanData["yield_total_offset"] = config.Inverter[i].channel[c].YieldTotalOffset; @@ -88,7 +88,7 @@ void WebApiInverterClass::onInverterAdd(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - DynamicJsonDocument root(1024); + JsonDocument root; if (!WebApi.parseRequestData(request, response, root)) { return; } @@ -163,7 +163,7 @@ void WebApiInverterClass::onInverterEdit(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - DynamicJsonDocument root(1024); + JsonDocument root; if (!WebApi.parseRequestData(request, response, root)) { return; } @@ -283,7 +283,7 @@ void WebApiInverterClass::onInverterDelete(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - DynamicJsonDocument root(1024); + JsonDocument root; if (!WebApi.parseRequestData(request, response, root)) { return; } @@ -328,7 +328,7 @@ void WebApiInverterClass::onInverterOrder(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - DynamicJsonDocument root(1024); + JsonDocument root; if (!WebApi.parseRequestData(request, response, root)) { return; } diff --git a/src/WebApi_limit.cpp b/src/WebApi_limit.cpp index 89058926..79d6039f 100644 --- a/src/WebApi_limit.cpp +++ b/src/WebApi_limit.cpp @@ -58,7 +58,7 @@ void WebApiLimitClass::onLimitPost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - DynamicJsonDocument root(1024); + JsonDocument root; if (!WebApi.parseRequestData(request, response, root)) { return; } diff --git a/src/WebApi_maintenance.cpp b/src/WebApi_maintenance.cpp index 538f087a..a7eeb424 100644 --- a/src/WebApi_maintenance.cpp +++ b/src/WebApi_maintenance.cpp @@ -22,9 +22,9 @@ void WebApiMaintenanceClass::onRebootPost(AsyncWebServerRequest* request) return; } - AsyncJsonResponse* response = new AsyncJsonResponse(false, MQTT_JSON_DOC_SIZE); - DynamicJsonDocument root(MQTT_JSON_DOC_SIZE); - if (!WebApi.parseRequestData(request, response, root, MQTT_JSON_DOC_SIZE)) { + AsyncJsonResponse* response = new AsyncJsonResponse(); + JsonDocument root; + if (!WebApi.parseRequestData(request, response, root)) { return; } diff --git a/src/WebApi_mqtt.cpp b/src/WebApi_mqtt.cpp index 78fed204..88c2a4ab 100644 --- a/src/WebApi_mqtt.cpp +++ b/src/WebApi_mqtt.cpp @@ -26,7 +26,7 @@ void WebApiMqttClass::onMqttStatus(AsyncWebServerRequest* request) return; } - AsyncJsonResponse* response = new AsyncJsonResponse(false, MQTT_JSON_DOC_SIZE); + AsyncJsonResponse* response = new AsyncJsonResponse(); auto& root = response->getRoot(); const CONFIG_T& config = Configuration.get(); @@ -60,7 +60,7 @@ void WebApiMqttClass::onMqttAdminGet(AsyncWebServerRequest* request) return; } - AsyncJsonResponse* response = new AsyncJsonResponse(false, MQTT_JSON_DOC_SIZE); + AsyncJsonResponse* response = new AsyncJsonResponse(); auto& root = response->getRoot(); const CONFIG_T& config = Configuration.get(); @@ -98,9 +98,9 @@ void WebApiMqttClass::onMqttAdminPost(AsyncWebServerRequest* request) return; } - AsyncJsonResponse* response = new AsyncJsonResponse(false, MQTT_JSON_DOC_SIZE); - DynamicJsonDocument root(MQTT_JSON_DOC_SIZE); - if (!WebApi.parseRequestData(request, response, root, MQTT_JSON_DOC_SIZE)) { + AsyncJsonResponse* response = new AsyncJsonResponse(); + JsonDocument root; + if (!WebApi.parseRequestData(request, response, root)) { return; } diff --git a/src/WebApi_network.cpp b/src/WebApi_network.cpp index b7fbbe51..158c8bde 100644 --- a/src/WebApi_network.cpp +++ b/src/WebApi_network.cpp @@ -83,7 +83,7 @@ void WebApiNetworkClass::onNetworkAdminPost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - DynamicJsonDocument root(1024); + JsonDocument root; if (!WebApi.parseRequestData(request, response, root)) { return; } diff --git a/src/WebApi_ntp.cpp b/src/WebApi_ntp.cpp index 343d94b5..07553921 100644 --- a/src/WebApi_ntp.cpp +++ b/src/WebApi_ntp.cpp @@ -95,7 +95,7 @@ void WebApiNtpClass::onNtpAdminPost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - DynamicJsonDocument root(1024); + JsonDocument root; if (!WebApi.parseRequestData(request, response, root)) { return; } @@ -194,7 +194,7 @@ void WebApiNtpClass::onNtpTimePost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - DynamicJsonDocument root(1024); + JsonDocument root; if (!WebApi.parseRequestData(request, response, root)) { return; } diff --git a/src/WebApi_power.cpp b/src/WebApi_power.cpp index 2f921d74..f019ce33 100644 --- a/src/WebApi_power.cpp +++ b/src/WebApi_power.cpp @@ -51,7 +51,7 @@ void WebApiPowerClass::onPowerPost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - DynamicJsonDocument root(1024); + JsonDocument root; if (!WebApi.parseRequestData(request, response, root)) { return; } diff --git a/src/WebApi_security.cpp b/src/WebApi_security.cpp index 05f829c5..78eaffe0 100644 --- a/src/WebApi_security.cpp +++ b/src/WebApi_security.cpp @@ -42,7 +42,7 @@ void WebApiSecurityClass::onSecurityPost(AsyncWebServerRequest* request) } AsyncJsonResponse* response = new AsyncJsonResponse(); - DynamicJsonDocument root(1024); + JsonDocument root; if (!WebApi.parseRequestData(request, response, root)) { return; } diff --git a/src/WebApi_ws_live.cpp b/src/WebApi_ws_live.cpp index 354ed372..f378e3ab 100644 --- a/src/WebApi_ws_live.cpp +++ b/src/WebApi_ws_live.cpp @@ -73,19 +73,20 @@ void WebApiWsLiveClass::sendDataTaskCb() try { std::lock_guard lock(_mutex); - DynamicJsonDocument root(4096); - if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) { - continue; - } + JsonDocument root; JsonVariant var = root; - auto invArray = var.createNestedArray("inverters"); - auto invObject = invArray.createNestedObject(); + auto invArray = var["inverters"].to(); + auto invObject = invArray.add(); generateCommonJsonResponse(var); generateInverterCommonJsonResponse(invObject, inv); generateInverterChannelJsonResponse(invObject, inv); + if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) { + continue; + } + String buffer; serializeJson(root, buffer); @@ -101,12 +102,12 @@ void WebApiWsLiveClass::sendDataTaskCb() void WebApiWsLiveClass::generateCommonJsonResponse(JsonVariant& root) { - JsonObject totalObj = root.createNestedObject("total"); + auto totalObj = root["total"].to(); addTotalField(totalObj, "Power", Datastore.getTotalAcPowerEnabled(), "W", Datastore.getTotalAcPowerDigits()); addTotalField(totalObj, "YieldDay", Datastore.getTotalAcYieldDayEnabled(), "Wh", Datastore.getTotalAcYieldDayDigits()); addTotalField(totalObj, "YieldTotal", Datastore.getTotalAcYieldTotalEnabled(), "kWh", Datastore.getTotalAcYieldTotalDigits()); - JsonObject hintObj = root.createNestedObject("hints"); + JsonObject hintObj = root["hints"].to(); struct tm timeinfo; hintObj["time_sync"] = !getLocalTime(&timeinfo, 5); hintObj["radio_problem"] = (Hoymiles.getRadioNrf()->isInitialized() && (!Hoymiles.getRadioNrf()->isConnected() || !Hoymiles.getRadioNrf()->isPVariant())) || (Hoymiles.getRadioCmt()->isInitialized() && (!Hoymiles.getRadioCmt()->isConnected())); @@ -144,7 +145,7 @@ void WebApiWsLiveClass::generateInverterChannelJsonResponse(JsonObject& root, st // Loop all channels for (auto& t : inv->Statistics()->getChannelTypes()) { - JsonObject chanTypeObj = root.createNestedObject(inv->Statistics()->getChannelTypeName(t)); + auto chanTypeObj = root[inv->Statistics()->getChannelTypeName(t)].to(); for (auto& c : inv->Statistics()->getChannelsByType(t)) { if (t == TYPE_DC) { chanTypeObj[String(static_cast(c))]["name"]["u"] = inv_cfg->channel[c].Name; @@ -221,10 +222,10 @@ void WebApiWsLiveClass::onLivedataStatus(AsyncWebServerRequest* request) try { std::lock_guard lock(_mutex); - AsyncJsonResponse* response = new AsyncJsonResponse(false, 4096); + AsyncJsonResponse* response = new AsyncJsonResponse(); auto& root = response->getRoot(); - JsonArray invArray = root.createNestedArray("inverters"); + auto invArray = root["inverters"].to(); uint64_t serial = 0; if (request->hasParam("inv")) { @@ -235,7 +236,7 @@ void WebApiWsLiveClass::onLivedataStatus(AsyncWebServerRequest* request) if (serial > 0) { auto inv = Hoymiles.getInverterBySerial(serial); if (inv != nullptr) { - JsonObject invObject = invArray.createNestedObject(); + JsonObject invObject = invArray.add(); generateInverterCommonJsonResponse(invObject, inv); generateInverterChannelJsonResponse(invObject, inv); } @@ -247,13 +248,17 @@ void WebApiWsLiveClass::onLivedataStatus(AsyncWebServerRequest* request) continue; } - JsonObject invObject = invArray.createNestedObject(); + JsonObject invObject = invArray.add(); generateInverterCommonJsonResponse(invObject, inv); } } generateCommonJsonResponse(root); + if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) { + return; + } + response->setLength(); request->send(response); From 980e847ccb9b062816887f81da25c79c41457eca Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 4 Apr 2024 20:43:07 +0200 Subject: [PATCH 43/71] Feature: Check for out of memory situations when sending json responses Also shows a nice message in the frontend if an internal error occours --- include/WebApi.h | 1 + include/WebApi_errors.h | 1 + src/WebApi.cpp | 27 +++++++++-- src/WebApi_config.cpp | 12 ++--- src/WebApi_device.cpp | 12 ++--- src/WebApi_devinfo.cpp | 3 +- src/WebApi_dtu.cpp | 27 ++++------- src/WebApi_eventlog.cpp | 3 +- src/WebApi_gridprofile.cpp | 6 +-- src/WebApi_inverter.cpp | 51 +++++++------------- src/WebApi_limit.cpp | 21 +++------ src/WebApi_maintenance.cpp | 9 ++-- src/WebApi_mqtt.cpp | 60 ++++++++---------------- src/WebApi_network.cpp | 39 +++++---------- src/WebApi_ntp.cpp | 48 +++++++------------ src/WebApi_power.cpp | 15 ++---- src/WebApi_security.cpp | 15 ++---- src/WebApi_sysstatus.cpp | 3 +- src/WebApi_ws_live.cpp | 7 +-- webapp/src/locales/de.json | 3 ++ webapp/src/locales/en.json | 3 ++ webapp/src/locales/fr.json | 3 ++ webapp/src/router/index.ts | 8 +++- webapp/src/utils/authentication.ts | 3 +- webapp/src/views/ErrorView.vue | 18 +++++++ webapp/src/views/FirmwareUpgradeView.vue | 2 +- 26 files changed, 171 insertions(+), 229 deletions(-) create mode 100644 webapp/src/views/ErrorView.vue diff --git a/include/WebApi.h b/include/WebApi.h index b4c49983..14eddc31 100644 --- a/include/WebApi.h +++ b/include/WebApi.h @@ -39,6 +39,7 @@ public: static void writeConfig(JsonVariant& retMsg, const WebApiError code = WebApiError::GenericSuccess, const String& message = "Settings saved!"); static bool parseRequestData(AsyncWebServerRequest* request, AsyncJsonResponse* response, JsonDocument& json_document); + static bool sendJsonResponse(AsyncWebServerRequest* request, AsyncJsonResponse* response, const char* function, const uint16_t line); private: AsyncWebServer _server; diff --git a/include/WebApi_errors.h b/include/WebApi_errors.h index 675419d7..97d61b22 100644 --- a/include/WebApi_errors.h +++ b/include/WebApi_errors.h @@ -9,6 +9,7 @@ enum WebApiError { GenericParseError, GenericValueMissing, GenericWriteFailed, + GenericInternalServerError, DtuBase = 2000, DtuSerialZero, diff --git a/src/WebApi.cpp b/src/WebApi.cpp index 04821d7e..bd59bd3e 100644 --- a/src/WebApi.cpp +++ b/src/WebApi.cpp @@ -4,6 +4,7 @@ */ #include "WebApi.h" #include "Configuration.h" +#include "MessageOutput.h" #include "defaults.h" #include @@ -93,8 +94,7 @@ bool WebApiClass::parseRequestData(AsyncWebServerRequest* request, AsyncJsonResp if (!request->hasParam("data", true)) { retMsg["message"] = "No values found!"; retMsg["code"] = WebApiError::GenericNoValueFound; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return false; } @@ -103,12 +103,31 @@ bool WebApiClass::parseRequestData(AsyncWebServerRequest* request, AsyncJsonResp if (error) { retMsg["message"] = "Failed to parse data!"; retMsg["code"] = WebApiError::GenericParseError; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return false; } return true; } +bool WebApiClass::sendJsonResponse(AsyncWebServerRequest* request, AsyncJsonResponse* response, const char* function, const uint16_t line) +{ + bool ret_val = true; + if (response->overflowed()) { + auto& root = response->getRoot(); + + root.clear(); + root["message"] = String("500 Internal Server Error: ") + function + ", " + line; + root["code"] = WebApiError::GenericInternalServerError; + root["type"] = "danger"; + response->setCode(500); + MessageOutput.printf("WebResponse failed: %s, %d\r\n", function, line); + ret_val = false; + } + + response->setLength(); + request->send(response); + return ret_val; +} + WebApiClass WebApi; diff --git a/src/WebApi_config.cpp b/src/WebApi_config.cpp index 99a539ed..a67be42f 100644 --- a/src/WebApi_config.cpp +++ b/src/WebApi_config.cpp @@ -63,16 +63,14 @@ void WebApiConfigClass::onConfigDelete(AsyncWebServerRequest* request) if (!(root.containsKey("delete"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (root["delete"].as() == false) { retMsg["message"] = "Not deleted anything!"; retMsg["code"] = WebApiError::ConfigNotDeleted; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -80,8 +78,7 @@ void WebApiConfigClass::onConfigDelete(AsyncWebServerRequest* request) retMsg["message"] = "Configuration resettet. Rebooting now..."; retMsg["code"] = WebApiError::ConfigSuccess; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); Utils::removeAllFiles(); Utils::restartDtu(); @@ -110,8 +107,7 @@ void WebApiConfigClass::onConfigListGet(AsyncWebServerRequest* request) } file.close(); - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } void WebApiConfigClass::onConfigUploadFinish(AsyncWebServerRequest* request) diff --git a/src/WebApi_device.cpp b/src/WebApi_device.cpp index 421f9456..078d5b4a 100644 --- a/src/WebApi_device.cpp +++ b/src/WebApi_device.cpp @@ -86,8 +86,7 @@ void WebApiDeviceClass::onDeviceAdminGet(AsyncWebServerRequest* request) led["brightness"] = config.Led_Single[i].Brightness; } - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } void WebApiDeviceClass::onDeviceAdminPost(AsyncWebServerRequest* request) @@ -108,8 +107,7 @@ void WebApiDeviceClass::onDeviceAdminPost(AsyncWebServerRequest* request) || root.containsKey("display"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -117,8 +115,7 @@ void WebApiDeviceClass::onDeviceAdminPost(AsyncWebServerRequest* request) retMsg["message"] = "Pin mapping must between 1 and " STR(DEV_MAX_MAPPING_NAME_STRLEN) " characters long!"; retMsg["code"] = WebApiError::HardwarePinMappingLength; retMsg["param"]["max"] = DEV_MAX_MAPPING_NAME_STRLEN; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -149,8 +146,7 @@ void WebApiDeviceClass::onDeviceAdminPost(AsyncWebServerRequest* request) WebApi.writeConfig(retMsg); - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); if (performRestart) { Utils::restartDtu(); diff --git a/src/WebApi_devinfo.cpp b/src/WebApi_devinfo.cpp index 212a7f7d..68f3396b 100644 --- a/src/WebApi_devinfo.cpp +++ b/src/WebApi_devinfo.cpp @@ -43,6 +43,5 @@ void WebApiDevInfoClass::onDevInfoStatus(AsyncWebServerRequest* request) root["fw_build_datetime"] = inv->DevInfo()->getFwBuildDateTimeStr(); } - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } diff --git a/src/WebApi_dtu.cpp b/src/WebApi_dtu.cpp index a2192c7c..9b67ec39 100644 --- a/src/WebApi_dtu.cpp +++ b/src/WebApi_dtu.cpp @@ -73,8 +73,7 @@ void WebApiDtuClass::onDtuAdminGet(AsyncWebServerRequest* request) obj["freq_legal_max"] = definition.definition.Freq_Legal_Max; } - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) @@ -99,8 +98,7 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) && root.containsKey("cmt_country"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -110,40 +108,35 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) if (serial == 0) { retMsg["message"] = "Serial cannot be zero!"; retMsg["code"] = WebApiError::DtuSerialZero; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (root["pollinterval"].as() == 0) { retMsg["message"] = "Poll interval must be greater zero!"; retMsg["code"] = WebApiError::DtuPollZero; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (root["nrf_palevel"].as() > 3) { retMsg["message"] = "Invalid power level setting!"; retMsg["code"] = WebApiError::DtuInvalidPowerLevel; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (root["cmt_palevel"].as() < -10 || root["cmt_palevel"].as() > 20) { retMsg["message"] = "Invalid power level setting!"; retMsg["code"] = WebApiError::DtuInvalidPowerLevel; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (root["cmt_country"].as() >= CountryModeId_t::CountryModeId_Max) { retMsg["message"] = "Invalid country setting!"; retMsg["code"] = WebApiError::DtuInvalidCmtCountry; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -156,8 +149,7 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) retMsg["code"] = WebApiError::DtuInvalidCmtFrequency; retMsg["param"]["min"] = FrequencyDefinition.Freq_Min; retMsg["param"]["max"] = FrequencyDefinition.Freq_Max; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -172,8 +164,7 @@ void WebApiDtuClass::onDtuAdminPost(AsyncWebServerRequest* request) WebApi.writeConfig(retMsg); - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); _applyDataTask.enable(); _applyDataTask.restart(); diff --git a/src/WebApi_eventlog.cpp b/src/WebApi_eventlog.cpp index 3637a3d9..e2d34442 100644 --- a/src/WebApi_eventlog.cpp +++ b/src/WebApi_eventlog.cpp @@ -62,6 +62,5 @@ void WebApiEventlogClass::onEventlogStatus(AsyncWebServerRequest* request) } } - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } diff --git a/src/WebApi_gridprofile.cpp b/src/WebApi_gridprofile.cpp index 2527396d..5ed579d0 100644 --- a/src/WebApi_gridprofile.cpp +++ b/src/WebApi_gridprofile.cpp @@ -55,8 +55,7 @@ void WebApiGridProfileClass::onGridProfileStatus(AsyncWebServerRequest* request) } } - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } void WebApiGridProfileClass::onGridProfileRawdata(AsyncWebServerRequest* request) @@ -83,6 +82,5 @@ void WebApiGridProfileClass::onGridProfileRawdata(AsyncWebServerRequest* request copyArray(&data[0], data.size(), raw); } - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } diff --git a/src/WebApi_inverter.cpp b/src/WebApi_inverter.cpp index 0d82a326..2d9a5634 100644 --- a/src/WebApi_inverter.cpp +++ b/src/WebApi_inverter.cpp @@ -77,8 +77,7 @@ void WebApiInverterClass::onInverterList(AsyncWebServerRequest* request) } } - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } void WebApiInverterClass::onInverterAdd(AsyncWebServerRequest* request) @@ -99,8 +98,7 @@ void WebApiInverterClass::onInverterAdd(AsyncWebServerRequest* request) && root.containsKey("name"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -110,8 +108,7 @@ void WebApiInverterClass::onInverterAdd(AsyncWebServerRequest* request) if (serial == 0) { retMsg["message"] = "Serial must be a number > 0!"; retMsg["code"] = WebApiError::InverterSerialZero; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -119,8 +116,7 @@ void WebApiInverterClass::onInverterAdd(AsyncWebServerRequest* request) retMsg["message"] = "Name must between 1 and " STR(INV_MAX_NAME_STRLEN) " characters long!"; retMsg["code"] = WebApiError::InverterNameLength; retMsg["param"]["max"] = INV_MAX_NAME_STRLEN; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -130,8 +126,7 @@ void WebApiInverterClass::onInverterAdd(AsyncWebServerRequest* request) retMsg["message"] = "Only " STR(INV_MAX_COUNT) " inverters are supported!"; retMsg["code"] = WebApiError::InverterCount; retMsg["param"]["max"] = INV_MAX_COUNT; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -142,8 +137,7 @@ void WebApiInverterClass::onInverterAdd(AsyncWebServerRequest* request) WebApi.writeConfig(retMsg, WebApiError::InverterAdded, "Inverter created!"); - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); auto inv = Hoymiles.addInverter(inverter->Name, inverter->Serial); @@ -173,16 +167,14 @@ void WebApiInverterClass::onInverterEdit(AsyncWebServerRequest* request) if (!(root.containsKey("id") && root.containsKey("serial") && root.containsKey("name") && root.containsKey("channel"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (root["id"].as() > INV_MAX_COUNT - 1) { retMsg["message"] = "Invalid ID specified!"; retMsg["code"] = WebApiError::InverterInvalidId; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -192,8 +184,7 @@ void WebApiInverterClass::onInverterEdit(AsyncWebServerRequest* request) if (serial == 0) { retMsg["message"] = "Serial must be a number > 0!"; retMsg["code"] = WebApiError::InverterSerialZero; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -201,8 +192,7 @@ void WebApiInverterClass::onInverterEdit(AsyncWebServerRequest* request) retMsg["message"] = "Name must between 1 and " STR(INV_MAX_NAME_STRLEN) " characters long!"; retMsg["code"] = WebApiError::InverterNameLength; retMsg["param"]["max"] = INV_MAX_NAME_STRLEN; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -210,8 +200,7 @@ void WebApiInverterClass::onInverterEdit(AsyncWebServerRequest* request) if (channelArray.size() == 0 || channelArray.size() > INV_MAX_CHAN_COUNT) { retMsg["message"] = "Invalid amount of max channel setting given!"; retMsg["code"] = WebApiError::InverterInvalidMaxChannel; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -243,8 +232,7 @@ void WebApiInverterClass::onInverterEdit(AsyncWebServerRequest* request) WebApi.writeConfig(retMsg, WebApiError::InverterChanged, "Inverter changed!"); - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); std::shared_ptr inv = Hoymiles.getInverterBySerial(old_serial); @@ -293,16 +281,14 @@ void WebApiInverterClass::onInverterDelete(AsyncWebServerRequest* request) if (!(root.containsKey("id"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (root["id"].as() > INV_MAX_COUNT - 1) { retMsg["message"] = "Invalid ID specified!"; retMsg["code"] = WebApiError::InverterInvalidId; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -315,8 +301,7 @@ void WebApiInverterClass::onInverterDelete(AsyncWebServerRequest* request) WebApi.writeConfig(retMsg, WebApiError::InverterDeleted, "Inverter deleted!"); - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); MqttHandleHass.forceUpdate(); } @@ -338,8 +323,7 @@ void WebApiInverterClass::onInverterOrder(AsyncWebServerRequest* request) if (!(root.containsKey("order"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -357,6 +341,5 @@ void WebApiInverterClass::onInverterOrder(AsyncWebServerRequest* request) WebApi.writeConfig(retMsg, WebApiError::InverterOrdered, "Inverter order saved!"); - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } diff --git a/src/WebApi_limit.cpp b/src/WebApi_limit.cpp index 79d6039f..9a622dea 100644 --- a/src/WebApi_limit.cpp +++ b/src/WebApi_limit.cpp @@ -47,8 +47,7 @@ void WebApiLimitClass::onLimitStatus(AsyncWebServerRequest* request) root[serial]["limit_set_status"] = limitStatus; } - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } void WebApiLimitClass::onLimitPost(AsyncWebServerRequest* request) @@ -70,8 +69,7 @@ void WebApiLimitClass::onLimitPost(AsyncWebServerRequest* request) && root.containsKey("limit_type"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -81,8 +79,7 @@ void WebApiLimitClass::onLimitPost(AsyncWebServerRequest* request) if (serial == 0) { retMsg["message"] = "Serial must be a number > 0!"; retMsg["code"] = WebApiError::LimitSerialZero; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -90,8 +87,7 @@ void WebApiLimitClass::onLimitPost(AsyncWebServerRequest* request) retMsg["message"] = "Limit must between 0 and " STR(MAX_INVERTER_LIMIT) "!"; retMsg["code"] = WebApiError::LimitInvalidLimit; retMsg["param"]["max"] = MAX_INVERTER_LIMIT; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -102,8 +98,7 @@ void WebApiLimitClass::onLimitPost(AsyncWebServerRequest* request) retMsg["message"] = "Invalid type specified!"; retMsg["code"] = WebApiError::LimitInvalidType; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -114,8 +109,7 @@ void WebApiLimitClass::onLimitPost(AsyncWebServerRequest* request) if (inv == nullptr) { retMsg["message"] = "Invalid inverter specified!"; retMsg["code"] = WebApiError::LimitInvalidInverter; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -125,6 +119,5 @@ void WebApiLimitClass::onLimitPost(AsyncWebServerRequest* request) retMsg["message"] = "Settings saved!"; retMsg["code"] = WebApiError::GenericSuccess; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } diff --git a/src/WebApi_maintenance.cpp b/src/WebApi_maintenance.cpp index a7eeb424..1504f9d7 100644 --- a/src/WebApi_maintenance.cpp +++ b/src/WebApi_maintenance.cpp @@ -33,8 +33,7 @@ void WebApiMaintenanceClass::onRebootPost(AsyncWebServerRequest* request) if (!(root.containsKey("reboot"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -43,14 +42,12 @@ void WebApiMaintenanceClass::onRebootPost(AsyncWebServerRequest* request) retMsg["message"] = "Reboot triggered!"; retMsg["code"] = WebApiError::MaintenanceRebootTriggered; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); Utils::restartDtu(); } else { retMsg["message"] = "Reboot cancled!"; retMsg["code"] = WebApiError::MaintenanceRebootCancled; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } } diff --git a/src/WebApi_mqtt.cpp b/src/WebApi_mqtt.cpp index 88c2a4ab..1795b7aa 100644 --- a/src/WebApi_mqtt.cpp +++ b/src/WebApi_mqtt.cpp @@ -50,8 +50,7 @@ void WebApiMqttClass::onMqttStatus(AsyncWebServerRequest* request) root["mqtt_hass_topic"] = config.Mqtt.Hass.Topic; root["mqtt_hass_individualpanels"] = config.Mqtt.Hass.IndividualPanels; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } void WebApiMqttClass::onMqttAdminGet(AsyncWebServerRequest* request) @@ -88,8 +87,7 @@ void WebApiMqttClass::onMqttAdminGet(AsyncWebServerRequest* request) root["mqtt_hass_topic"] = config.Mqtt.Hass.Topic; root["mqtt_hass_individualpanels"] = config.Mqtt.Hass.IndividualPanels; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } void WebApiMqttClass::onMqttAdminPost(AsyncWebServerRequest* request) @@ -130,8 +128,7 @@ void WebApiMqttClass::onMqttAdminPost(AsyncWebServerRequest* request) && root.containsKey("mqtt_hass_individualpanels"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -140,8 +137,7 @@ void WebApiMqttClass::onMqttAdminPost(AsyncWebServerRequest* request) retMsg["message"] = "MqTT Server must between 1 and " STR(MQTT_MAX_HOSTNAME_STRLEN) " characters long!"; retMsg["code"] = WebApiError::MqttHostnameLength; retMsg["param"]["max"] = MQTT_MAX_HOSTNAME_STRLEN; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -149,48 +145,42 @@ void WebApiMqttClass::onMqttAdminPost(AsyncWebServerRequest* request) retMsg["message"] = "Username must not be longer than " STR(MQTT_MAX_USERNAME_STRLEN) " characters!"; retMsg["code"] = WebApiError::MqttUsernameLength; retMsg["param"]["max"] = MQTT_MAX_USERNAME_STRLEN; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (root["mqtt_password"].as().length() > MQTT_MAX_PASSWORD_STRLEN) { retMsg["message"] = "Password must not be longer than " STR(MQTT_MAX_PASSWORD_STRLEN) " characters!"; retMsg["code"] = WebApiError::MqttPasswordLength; retMsg["param"]["max"] = MQTT_MAX_PASSWORD_STRLEN; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (root["mqtt_topic"].as().length() > MQTT_MAX_TOPIC_STRLEN) { retMsg["message"] = "Topic must not be longer than " STR(MQTT_MAX_TOPIC_STRLEN) " characters!"; retMsg["code"] = WebApiError::MqttTopicLength; retMsg["param"]["max"] = MQTT_MAX_TOPIC_STRLEN; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (root["mqtt_topic"].as().indexOf(' ') != -1) { retMsg["message"] = "Topic must not contain space characters!"; retMsg["code"] = WebApiError::MqttTopicCharacter; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (!root["mqtt_topic"].as().endsWith("/")) { retMsg["message"] = "Topic must end with a slash (/)!"; retMsg["code"] = WebApiError::MqttTopicTrailingSlash; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (root["mqtt_port"].as() == 0 || root["mqtt_port"].as() > 65535) { retMsg["message"] = "Port must be a number between 1 and 65535!"; retMsg["code"] = WebApiError::MqttPort; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -200,8 +190,7 @@ void WebApiMqttClass::onMqttAdminPost(AsyncWebServerRequest* request) retMsg["message"] = "Certificates must not be longer than " STR(MQTT_MAX_CERT_STRLEN) " characters!"; retMsg["code"] = WebApiError::MqttCertificateLength; retMsg["param"]["max"] = MQTT_MAX_CERT_STRLEN; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -209,16 +198,14 @@ void WebApiMqttClass::onMqttAdminPost(AsyncWebServerRequest* request) retMsg["message"] = "LWT topic must not be longer than " STR(MQTT_MAX_TOPIC_STRLEN) " characters!"; retMsg["code"] = WebApiError::MqttLwtTopicLength; retMsg["param"]["max"] = MQTT_MAX_TOPIC_STRLEN; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (root["mqtt_lwt_topic"].as().indexOf(' ') != -1) { retMsg["message"] = "LWT topic must not contain space characters!"; retMsg["code"] = WebApiError::MqttLwtTopicCharacter; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -226,8 +213,7 @@ void WebApiMqttClass::onMqttAdminPost(AsyncWebServerRequest* request) retMsg["message"] = "LWT online value must not be longer than " STR(MQTT_MAX_LWTVALUE_STRLEN) " characters!"; retMsg["code"] = WebApiError::MqttLwtOnlineLength; retMsg["param"]["max"] = MQTT_MAX_LWTVALUE_STRLEN; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -235,8 +221,7 @@ void WebApiMqttClass::onMqttAdminPost(AsyncWebServerRequest* request) retMsg["message"] = "LWT offline value must not be longer than " STR(MQTT_MAX_LWTVALUE_STRLEN) " characters!"; retMsg["code"] = WebApiError::MqttLwtOfflineLength; retMsg["param"]["max"] = MQTT_MAX_LWTVALUE_STRLEN; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -244,8 +229,7 @@ void WebApiMqttClass::onMqttAdminPost(AsyncWebServerRequest* request) retMsg["message"] = "LWT QoS must not be greater than " STR(2) "!"; retMsg["code"] = WebApiError::MqttLwtQos; retMsg["param"]["max"] = 2; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -254,8 +238,7 @@ void WebApiMqttClass::onMqttAdminPost(AsyncWebServerRequest* request) retMsg["code"] = WebApiError::MqttPublishInterval; retMsg["param"]["min"] = 5; retMsg["param"]["max"] = 65535; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -264,16 +247,14 @@ void WebApiMqttClass::onMqttAdminPost(AsyncWebServerRequest* request) retMsg["message"] = "Hass topic must not be longer than " STR(MQTT_MAX_TOPIC_STRLEN) " characters!"; retMsg["code"] = WebApiError::MqttHassTopicLength; retMsg["param"]["max"] = MQTT_MAX_TOPIC_STRLEN; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (root["mqtt_hass_topic"].as().indexOf(' ') != -1) { retMsg["message"] = "Hass topic must not contain space characters!"; retMsg["code"] = WebApiError::MqttHassTopicCharacter; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } } @@ -306,8 +287,7 @@ void WebApiMqttClass::onMqttAdminPost(AsyncWebServerRequest* request) WebApi.writeConfig(retMsg); - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); MqttSettings.performReconnect(); MqttHandleHass.forceUpdate(); diff --git a/src/WebApi_network.cpp b/src/WebApi_network.cpp index 158c8bde..7fec44b2 100644 --- a/src/WebApi_network.cpp +++ b/src/WebApi_network.cpp @@ -46,8 +46,7 @@ void WebApiNetworkClass::onNetworkStatus(AsyncWebServerRequest* request) root["ap_mac"] = WiFi.softAPmacAddress(); root["ap_stationnum"] = WiFi.softAPgetStationNum(); - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } void WebApiNetworkClass::onNetworkAdminGet(AsyncWebServerRequest* request) @@ -72,8 +71,7 @@ void WebApiNetworkClass::onNetworkAdminGet(AsyncWebServerRequest* request) root["aptimeout"] = config.WiFi.ApTimeout; root["mdnsenabled"] = config.Mdns.Enabled; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } void WebApiNetworkClass::onNetworkAdminPost(AsyncWebServerRequest* request) @@ -102,8 +100,7 @@ void WebApiNetworkClass::onNetworkAdminPost(AsyncWebServerRequest* request) && root.containsKey("aptimeout"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -111,68 +108,59 @@ void WebApiNetworkClass::onNetworkAdminPost(AsyncWebServerRequest* request) if (!ipaddress.fromString(root["ipaddress"].as())) { retMsg["message"] = "IP address is invalid!"; retMsg["code"] = WebApiError::NetworkIpInvalid; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } IPAddress netmask; if (!netmask.fromString(root["netmask"].as())) { retMsg["message"] = "Netmask is invalid!"; retMsg["code"] = WebApiError::NetworkNetmaskInvalid; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } IPAddress gateway; if (!gateway.fromString(root["gateway"].as())) { retMsg["message"] = "Gateway is invalid!"; retMsg["code"] = WebApiError::NetworkGatewayInvalid; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } IPAddress dns1; if (!dns1.fromString(root["dns1"].as())) { retMsg["message"] = "DNS Server IP 1 is invalid!"; retMsg["code"] = WebApiError::NetworkDns1Invalid; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } IPAddress dns2; if (!dns2.fromString(root["dns2"].as())) { retMsg["message"] = "DNS Server IP 2 is invalid!"; retMsg["code"] = WebApiError::NetworkDns2Invalid; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (root["hostname"].as().length() == 0 || root["hostname"].as().length() > WIFI_MAX_HOSTNAME_STRLEN) { retMsg["message"] = "Hostname must between 1 and " STR(WIFI_MAX_HOSTNAME_STRLEN) " characters long!"; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (NetworkSettings.NetworkMode() == network_mode::WiFi) { if (root["ssid"].as().length() == 0 || root["ssid"].as().length() > WIFI_MAX_SSID_STRLEN) { retMsg["message"] = "SSID must between 1 and " STR(WIFI_MAX_SSID_STRLEN) " characters long!"; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } } if (root["password"].as().length() > WIFI_MAX_PASSWORD_STRLEN - 1) { retMsg["message"] = "Password must not be longer than " STR(WIFI_MAX_PASSWORD_STRLEN) " characters long!"; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } if (root["aptimeout"].as() > 99999) { retMsg["message"] = "ApTimeout must be a number between 0 and 99999!"; retMsg["code"] = WebApiError::NetworkApTimeoutInvalid; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -210,8 +198,7 @@ void WebApiNetworkClass::onNetworkAdminPost(AsyncWebServerRequest* request) WebApi.writeConfig(retMsg); - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); NetworkSettings.enableAdminMode(); NetworkSettings.applyConfig(); diff --git a/src/WebApi_ntp.cpp b/src/WebApi_ntp.cpp index 07553921..d50e0f02 100644 --- a/src/WebApi_ntp.cpp +++ b/src/WebApi_ntp.cpp @@ -63,8 +63,7 @@ void WebApiNtpClass::onNtpStatus(AsyncWebServerRequest* request) root["sun_isSunsetAvailable"] = SunPosition.isSunsetAvailable(); root["sun_isDayPeriod"] = SunPosition.isDayPeriod(); - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } void WebApiNtpClass::onNtpAdminGet(AsyncWebServerRequest* request) @@ -84,8 +83,7 @@ void WebApiNtpClass::onNtpAdminGet(AsyncWebServerRequest* request) root["latitude"] = config.Ntp.Latitude; root["sunsettype"] = config.Ntp.SunsetType; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } void WebApiNtpClass::onNtpAdminPost(AsyncWebServerRequest* request) @@ -109,8 +107,7 @@ void WebApiNtpClass::onNtpAdminPost(AsyncWebServerRequest* request) && root.containsKey("sunsettype"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -118,8 +115,7 @@ void WebApiNtpClass::onNtpAdminPost(AsyncWebServerRequest* request) retMsg["message"] = "NTP Server must between 1 and " STR(NTP_MAX_SERVER_STRLEN) " characters long!"; retMsg["code"] = WebApiError::NtpServerLength; retMsg["param"]["max"] = NTP_MAX_SERVER_STRLEN; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -127,8 +123,7 @@ void WebApiNtpClass::onNtpAdminPost(AsyncWebServerRequest* request) retMsg["message"] = "Timezone must between 1 and " STR(NTP_MAX_TIMEZONE_STRLEN) " characters long!"; retMsg["code"] = WebApiError::NtpTimezoneLength; retMsg["param"]["max"] = NTP_MAX_TIMEZONE_STRLEN; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -136,8 +131,7 @@ void WebApiNtpClass::onNtpAdminPost(AsyncWebServerRequest* request) retMsg["message"] = "Timezone description must between 1 and " STR(NTP_MAX_TIMEZONEDESCR_STRLEN) " characters long!"; retMsg["code"] = WebApiError::NtpTimezoneDescriptionLength; retMsg["param"]["max"] = NTP_MAX_TIMEZONEDESCR_STRLEN; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -151,8 +145,7 @@ void WebApiNtpClass::onNtpAdminPost(AsyncWebServerRequest* request) WebApi.writeConfig(retMsg); - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); NtpSettings.setServer(); NtpSettings.setTimezone(); @@ -183,8 +176,7 @@ void WebApiNtpClass::onNtpTimeGet(AsyncWebServerRequest* request) root["minute"] = timeinfo.tm_min; root["second"] = timeinfo.tm_sec; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } void WebApiNtpClass::onNtpTimePost(AsyncWebServerRequest* request) @@ -209,8 +201,7 @@ void WebApiNtpClass::onNtpTimePost(AsyncWebServerRequest* request) && root.containsKey("second"))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -219,8 +210,7 @@ void WebApiNtpClass::onNtpTimePost(AsyncWebServerRequest* request) retMsg["code"] = WebApiError::NtpYearInvalid; retMsg["param"]["min"] = 2022; retMsg["param"]["max"] = 2100; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -229,8 +219,7 @@ void WebApiNtpClass::onNtpTimePost(AsyncWebServerRequest* request) retMsg["code"] = WebApiError::NtpMonthInvalid; retMsg["param"]["min"] = 1; retMsg["param"]["max"] = 12; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -239,8 +228,7 @@ void WebApiNtpClass::onNtpTimePost(AsyncWebServerRequest* request) retMsg["code"] = WebApiError::NtpDayInvalid; retMsg["param"]["min"] = 1; retMsg["param"]["max"] = 31; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -249,8 +237,7 @@ void WebApiNtpClass::onNtpTimePost(AsyncWebServerRequest* request) retMsg["code"] = WebApiError::NtpHourInvalid; retMsg["param"]["min"] = 0; retMsg["param"]["max"] = 23; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -259,8 +246,7 @@ void WebApiNtpClass::onNtpTimePost(AsyncWebServerRequest* request) retMsg["code"] = WebApiError::NtpMinuteInvalid; retMsg["param"]["min"] = 0; retMsg["param"]["max"] = 59; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -269,8 +255,7 @@ void WebApiNtpClass::onNtpTimePost(AsyncWebServerRequest* request) retMsg["code"] = WebApiError::NtpSecondInvalid; retMsg["param"]["min"] = 0; retMsg["param"]["max"] = 59; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -291,6 +276,5 @@ void WebApiNtpClass::onNtpTimePost(AsyncWebServerRequest* request) retMsg["message"] = "Time updated!"; retMsg["code"] = WebApiError::NtpTimeUpdated; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } diff --git a/src/WebApi_power.cpp b/src/WebApi_power.cpp index f019ce33..b2b2ce42 100644 --- a/src/WebApi_power.cpp +++ b/src/WebApi_power.cpp @@ -40,8 +40,7 @@ void WebApiPowerClass::onPowerStatus(AsyncWebServerRequest* request) root[inv->serialString()]["power_set_status"] = limitStatus; } - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } void WebApiPowerClass::onPowerPost(AsyncWebServerRequest* request) @@ -63,8 +62,7 @@ void WebApiPowerClass::onPowerPost(AsyncWebServerRequest* request) || root.containsKey("restart")))) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -74,8 +72,7 @@ void WebApiPowerClass::onPowerPost(AsyncWebServerRequest* request) if (serial == 0) { retMsg["message"] = "Serial must be a number > 0!"; retMsg["code"] = WebApiError::PowerSerialZero; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -83,8 +80,7 @@ void WebApiPowerClass::onPowerPost(AsyncWebServerRequest* request) if (inv == nullptr) { retMsg["message"] = "Invalid inverter specified!"; retMsg["code"] = WebApiError::PowerInvalidInverter; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -101,6 +97,5 @@ void WebApiPowerClass::onPowerPost(AsyncWebServerRequest* request) retMsg["message"] = "Settings saved!"; retMsg["code"] = WebApiError::GenericSuccess; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } diff --git a/src/WebApi_security.cpp b/src/WebApi_security.cpp index 78eaffe0..eb0f27d2 100644 --- a/src/WebApi_security.cpp +++ b/src/WebApi_security.cpp @@ -31,8 +31,7 @@ void WebApiSecurityClass::onSecurityGet(AsyncWebServerRequest* request) root["password"] = config.Security.Password; root["allow_readonly"] = config.Security.AllowReadonly; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } void WebApiSecurityClass::onSecurityPost(AsyncWebServerRequest* request) @@ -53,8 +52,7 @@ void WebApiSecurityClass::onSecurityPost(AsyncWebServerRequest* request) && root.containsKey("allow_readonly")) { retMsg["message"] = "Values are missing!"; retMsg["code"] = WebApiError::GenericValueMissing; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -62,8 +60,7 @@ void WebApiSecurityClass::onSecurityPost(AsyncWebServerRequest* request) retMsg["message"] = "Password must between 8 and " STR(WIFI_MAX_PASSWORD_STRLEN) " characters long!"; retMsg["code"] = WebApiError::SecurityPasswordLength; retMsg["param"]["max"] = WIFI_MAX_PASSWORD_STRLEN; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); return; } @@ -73,8 +70,7 @@ void WebApiSecurityClass::onSecurityPost(AsyncWebServerRequest* request) WebApi.writeConfig(retMsg); - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } void WebApiSecurityClass::onAuthenticateGet(AsyncWebServerRequest* request) @@ -89,6 +85,5 @@ void WebApiSecurityClass::onAuthenticateGet(AsyncWebServerRequest* request) retMsg["message"] = "Authentication successful!"; retMsg["code"] = WebApiError::SecurityAuthSuccess; - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } diff --git a/src/WebApi_sysstatus.cpp b/src/WebApi_sysstatus.cpp index 11bd29c2..a2893c82 100644 --- a/src/WebApi_sysstatus.cpp +++ b/src/WebApi_sysstatus.cpp @@ -76,6 +76,5 @@ void WebApiSysstatusClass::onSystemStatus(AsyncWebServerRequest* request) root["cmt_configured"] = PinMapping.isValidCmt2300Config(); root["cmt_connected"] = Hoymiles.getRadioCmt()->isConnected(); - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } diff --git a/src/WebApi_ws_live.cpp b/src/WebApi_ws_live.cpp index f378e3ab..e79c664a 100644 --- a/src/WebApi_ws_live.cpp +++ b/src/WebApi_ws_live.cpp @@ -255,12 +255,7 @@ void WebApiWsLiveClass::onLivedataStatus(AsyncWebServerRequest* request) generateCommonJsonResponse(root); - if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) { - return; - } - - response->setLength(); - request->send(response); + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } catch (const std::bad_alloc& bad_alloc) { MessageOutput.printf("Call to /api/livedata/status temporarely out of resources. Reason: \"%s\".\r\n", bad_alloc.what()); diff --git a/webapp/src/locales/de.json b/webapp/src/locales/de.json index c9dfa975..ad184d1c 100644 --- a/webapp/src/locales/de.json +++ b/webapp/src/locales/de.json @@ -32,6 +32,9 @@ "Release": "Loslassen zum Aktualisieren", "Close": "Schließen" }, + "Error": { + "Oops": "Oops!" + }, "localeswitcher": { "Dark": "Dunkel", "Light": "Hell", diff --git a/webapp/src/locales/en.json b/webapp/src/locales/en.json index 4375137b..4179227a 100644 --- a/webapp/src/locales/en.json +++ b/webapp/src/locales/en.json @@ -32,6 +32,9 @@ "Release": "Release to refresh", "Close": "Close" }, + "Error": { + "Oops": "Oops!" + }, "localeswitcher": { "Dark": "Dark", "Light": "Light", diff --git a/webapp/src/locales/fr.json b/webapp/src/locales/fr.json index 24f0a951..c60a552a 100644 --- a/webapp/src/locales/fr.json +++ b/webapp/src/locales/fr.json @@ -32,6 +32,9 @@ "Release": "Release to refresh", "Close": "Fermer" }, + "Error": { + "Oops": "Oops!" + }, "localeswitcher": { "Dark": "Sombre", "Light": "Clair", diff --git a/webapp/src/router/index.ts b/webapp/src/router/index.ts index 6cfc00ef..8fd3cfe8 100644 --- a/webapp/src/router/index.ts +++ b/webapp/src/router/index.ts @@ -3,6 +3,7 @@ import ConfigAdminView from '@/views/ConfigAdminView.vue'; import ConsoleInfoView from '@/views/ConsoleInfoView.vue'; import DeviceAdminView from '@/views/DeviceAdminView.vue' import DtuAdminView from '@/views/DtuAdminView.vue'; +import ErrorView from '@/views/ErrorView.vue'; import FirmwareUpgradeView from '@/views/FirmwareUpgradeView.vue'; import HomeView from '@/views/HomeView.vue'; import InverterAdminView from '@/views/InverterAdminView.vue'; @@ -32,6 +33,11 @@ const router = createRouter({ name: 'Login', component: LoginView }, + { + path: '/error?status=:status&message=:message', + name: 'Error', + component: ErrorView + }, { path: '/about', name: 'About', @@ -115,4 +121,4 @@ const router = createRouter({ ] }); -export default router; \ No newline at end of file +export default router; diff --git a/webapp/src/utils/authentication.ts b/webapp/src/utils/authentication.ts index d1f87e3d..52d92fd9 100644 --- a/webapp/src/utils/authentication.ts +++ b/webapp/src/utils/authentication.ts @@ -77,6 +77,7 @@ export function handleResponse(response: Response, emitter: Emitter + +

+ + + + diff --git a/webapp/src/views/FirmwareUpgradeView.vue b/webapp/src/views/FirmwareUpgradeView.vue index 73846079..f7bf0d75 100644 --- a/webapp/src/views/FirmwareUpgradeView.vue +++ b/webapp/src/views/FirmwareUpgradeView.vue @@ -191,7 +191,7 @@ export default defineComponent({ const remoteHostUrl = "/api/system/status"; // Use a simple fetch request to check if the remote host is reachable - fetch(remoteHostUrl, { method: 'HEAD' }) + fetch(remoteHostUrl, { method: 'GET' }) .then(response => { // Check if the response status is OK (200-299 range) if (response.ok) { From ea289037617f4e2bc144a5bc97b94ece6f5334f6 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 4 Apr 2024 20:50:38 +0200 Subject: [PATCH 44/71] Move parsing of serial from web request to separate method --- include/WebApi.h | 1 + src/WebApi.cpp | 10 ++++++++++ src/WebApi_devinfo.cpp | 8 +------- src/WebApi_eventlog.cpp | 7 +------ src/WebApi_gridprofile.cpp | 16 ++-------------- src/WebApi_ws_live.cpp | 8 +------- 6 files changed, 16 insertions(+), 34 deletions(-) diff --git a/include/WebApi.h b/include/WebApi.h index 14eddc31..b6fdbd08 100644 --- a/include/WebApi.h +++ b/include/WebApi.h @@ -39,6 +39,7 @@ public: static void writeConfig(JsonVariant& retMsg, const WebApiError code = WebApiError::GenericSuccess, const String& message = "Settings saved!"); static bool parseRequestData(AsyncWebServerRequest* request, AsyncJsonResponse* response, JsonDocument& json_document); + static uint64_t parseSerialFromRequest(AsyncWebServerRequest* request, String param_name = "inv"); static bool sendJsonResponse(AsyncWebServerRequest* request, AsyncJsonResponse* response, const char* function, const uint16_t line); private: diff --git a/src/WebApi.cpp b/src/WebApi.cpp index bd59bd3e..1a5b2870 100644 --- a/src/WebApi.cpp +++ b/src/WebApi.cpp @@ -110,6 +110,16 @@ bool WebApiClass::parseRequestData(AsyncWebServerRequest* request, AsyncJsonResp return true; } +uint64_t WebApiClass::parseSerialFromRequest(AsyncWebServerRequest* request, String param_name) +{ + if (request->hasParam(param_name)) { + String s = request->getParam(param_name)->value(); + return strtoll(s.c_str(), NULL, 16); + } + + return 0; +} + bool WebApiClass::sendJsonResponse(AsyncWebServerRequest* request, AsyncJsonResponse* response, const char* function, const uint16_t line) { bool ret_val = true; diff --git a/src/WebApi_devinfo.cpp b/src/WebApi_devinfo.cpp index 68f3396b..449cd177 100644 --- a/src/WebApi_devinfo.cpp +++ b/src/WebApi_devinfo.cpp @@ -23,13 +23,7 @@ void WebApiDevInfoClass::onDevInfoStatus(AsyncWebServerRequest* request) AsyncJsonResponse* response = new AsyncJsonResponse(); auto& root = response->getRoot(); - - uint64_t serial = 0; - if (request->hasParam("inv")) { - String s = request->getParam("inv")->value(); - serial = strtoll(s.c_str(), NULL, 16); - } - + auto serial = WebApi.parseSerialFromRequest(request); auto inv = Hoymiles.getInverterBySerial(serial); if (inv != nullptr) { diff --git a/src/WebApi_eventlog.cpp b/src/WebApi_eventlog.cpp index e2d34442..ec8b78c3 100644 --- a/src/WebApi_eventlog.cpp +++ b/src/WebApi_eventlog.cpp @@ -22,12 +22,7 @@ void WebApiEventlogClass::onEventlogStatus(AsyncWebServerRequest* request) AsyncJsonResponse* response = new AsyncJsonResponse(); auto& root = response->getRoot(); - - uint64_t serial = 0; - if (request->hasParam("inv")) { - String s = request->getParam("inv")->value(); - serial = strtoll(s.c_str(), NULL, 16); - } + auto serial = WebApi.parseSerialFromRequest(request); AlarmMessageLocale_t locale = AlarmMessageLocale_t::EN; if (request->hasParam("locale")) { diff --git a/src/WebApi_gridprofile.cpp b/src/WebApi_gridprofile.cpp index 5ed579d0..9fc05b03 100644 --- a/src/WebApi_gridprofile.cpp +++ b/src/WebApi_gridprofile.cpp @@ -23,13 +23,7 @@ void WebApiGridProfileClass::onGridProfileStatus(AsyncWebServerRequest* request) AsyncJsonResponse* response = new AsyncJsonResponse(); auto& root = response->getRoot(); - - uint64_t serial = 0; - if (request->hasParam("inv")) { - String s = request->getParam("inv")->value(); - serial = strtoll(s.c_str(), NULL, 16); - } - + auto serial = WebApi.parseSerialFromRequest(request); auto inv = Hoymiles.getInverterBySerial(serial); if (inv != nullptr) { @@ -66,13 +60,7 @@ void WebApiGridProfileClass::onGridProfileRawdata(AsyncWebServerRequest* request AsyncJsonResponse* response = new AsyncJsonResponse(); auto& root = response->getRoot(); - - uint64_t serial = 0; - if (request->hasParam("inv")) { - String s = request->getParam("inv")->value(); - serial = strtoll(s.c_str(), NULL, 16); - } - + auto serial = WebApi.parseSerialFromRequest(request); auto inv = Hoymiles.getInverterBySerial(serial); if (inv != nullptr) { diff --git a/src/WebApi_ws_live.cpp b/src/WebApi_ws_live.cpp index e79c664a..eb1a83bf 100644 --- a/src/WebApi_ws_live.cpp +++ b/src/WebApi_ws_live.cpp @@ -224,14 +224,8 @@ void WebApiWsLiveClass::onLivedataStatus(AsyncWebServerRequest* request) std::lock_guard lock(_mutex); AsyncJsonResponse* response = new AsyncJsonResponse(); auto& root = response->getRoot(); - auto invArray = root["inverters"].to(); - - uint64_t serial = 0; - if (request->hasParam("inv")) { - String s = request->getParam("inv")->value(); - serial = strtoll(s.c_str(), NULL, 16); - } + auto serial = WebApi.parseSerialFromRequest(request); if (serial > 0) { auto inv = Hoymiles.getInverterBySerial(serial); From 153293e1c7dd5daca4bd4f161b0034dda3181892 Mon Sep 17 00:00:00 2001 From: Bernhard Kirchen Date: Fri, 12 Apr 2024 15:27:24 +0200 Subject: [PATCH 45/71] remove remaining usage of F() macro --- lib/Hoymiles/src/inverters/HMT_4CH.cpp | 2 +- lib/Hoymiles/src/inverters/HMT_6CH.cpp | 2 +- src/InverterSettings.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/Hoymiles/src/inverters/HMT_4CH.cpp b/lib/Hoymiles/src/inverters/HMT_4CH.cpp index 609e3350..c84eff47 100644 --- a/lib/Hoymiles/src/inverters/HMT_4CH.cpp +++ b/lib/Hoymiles/src/inverters/HMT_4CH.cpp @@ -70,7 +70,7 @@ bool HMT_4CH::isValidSerial(const uint64_t serial) String HMT_4CH::typeName() const { - return F("HMT-1600/1800/2000-4T"); + return "HMT-1600/1800/2000-4T"; } const byteAssign_t* HMT_4CH::getByteAssignment() const diff --git a/lib/Hoymiles/src/inverters/HMT_6CH.cpp b/lib/Hoymiles/src/inverters/HMT_6CH.cpp index f8b9f407..2c3dd5f3 100644 --- a/lib/Hoymiles/src/inverters/HMT_6CH.cpp +++ b/lib/Hoymiles/src/inverters/HMT_6CH.cpp @@ -84,7 +84,7 @@ bool HMT_6CH::isValidSerial(const uint64_t serial) String HMT_6CH::typeName() const { - return F("HMT-1800/2250-6T"); + return "HMT-1800/2250-6T"; } const byteAssign_t* HMT_6CH::getByteAssignment() const diff --git a/src/InverterSettings.cpp b/src/InverterSettings.cpp index 7daad4df..c08585e2 100644 --- a/src/InverterSettings.cpp +++ b/src/InverterSettings.cpp @@ -51,9 +51,9 @@ void InverterSettingsClass::init(Scheduler& scheduler) if (PinMapping.isValidCmt2300Config()) { Hoymiles.initCMT(pin.cmt_sdio, pin.cmt_clk, pin.cmt_cs, pin.cmt_fcs, pin.cmt_gpio2, pin.cmt_gpio3); - MessageOutput.println(F(" Setting country mode... ")); + MessageOutput.println(" Setting country mode... "); Hoymiles.getRadioCmt()->setCountryMode(static_cast(config.Dtu.Cmt.CountryMode)); - MessageOutput.println(F(" Setting CMT target frequency... ")); + MessageOutput.println(" Setting CMT target frequency... "); Hoymiles.getRadioCmt()->setInverterTargetFrequency(config.Dtu.Cmt.Frequency); } From b58d08683e3b4e9d7ed6a9963d943887375db061 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 12 Apr 2024 20:02:18 +0200 Subject: [PATCH 46/71] webapp: update dependencies --- webapp/.eslintrc.cjs | 14 -- webapp/eslint.config.js | 36 ++++ webapp/package.json | 21 ++- webapp/yarn.lock | 371 +++++++++++++++++----------------------- 4 files changed, 204 insertions(+), 238 deletions(-) delete mode 100644 webapp/.eslintrc.cjs create mode 100644 webapp/eslint.config.js diff --git a/webapp/.eslintrc.cjs b/webapp/.eslintrc.cjs deleted file mode 100644 index ade85716..00000000 --- a/webapp/.eslintrc.cjs +++ /dev/null @@ -1,14 +0,0 @@ -/* eslint-env node */ -require('@rushstack/eslint-patch/modern-module-resolution') - -module.exports = { - root: true, - 'extends': [ - 'plugin:vue/vue3-essential', - 'eslint:recommended', - '@vue/eslint-config-typescript' - ], - parserOptions: { - ecmaVersion: 'latest' - } -} diff --git a/webapp/eslint.config.js b/webapp/eslint.config.js new file mode 100644 index 00000000..91657b98 --- /dev/null +++ b/webapp/eslint.config.js @@ -0,0 +1,36 @@ +/* eslint-env node */ +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +import { FlatCompat } from "@eslint/eslintrc"; +import js from "@eslint/js"; +import pluginVue from 'eslint-plugin-vue' + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, +}); + +export default [ + js.configs.recommended, + ...pluginVue.configs['flat/essential'], + ...compat.extends("@vue/eslint-config-typescript/recommended"), + { + files: [ + "**/*.vue", + "**/*.js", + "**/*.jsx", + "**/*.cjs", + "**/*.mjs", + "**/*.ts", + "**/*.tsx", + "**/*.cts", + "**/*.mts", + ], + languageOptions: { + ecmaVersion: 'latest' + }, + } + ] diff --git a/webapp/package.json b/webapp/package.json index 5e92ee74..86b30904 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -9,7 +9,7 @@ "preview": "vite preview --port 4173", "build-only": "vite build", "type-check": "vue-tsc --noEmit", - "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore" + "lint": "eslint ." }, "dependencies": { "@popperjs/core": "^2.11.8", @@ -19,31 +19,30 @@ "sortablejs": "^1.15.2", "spark-md5": "^3.0.2", "vue": "^3.4.21", - "vue-i18n": "^9.10.2", + "vue-i18n": "^9.12.0", "vue-router": "^4.3.0" }, "devDependencies": { "@intlify/unplugin-vue-i18n": "^4.0.0", - "@rushstack/eslint-patch": "^1.10.1", "@tsconfig/node18": "^18.2.4", "@types/bootstrap": "^5.2.10", - "@types/node": "^20.12.2", + "@types/node": "^20.12.7", "@types/pulltorefreshjs": "^0.1.7", "@types/sortablejs": "^1.15.8", "@types/spark-md5": "^3.0.4", "@vitejs/plugin-vue": "^5.0.4", "@vue/eslint-config-typescript": "^13.0.0", "@vue/tsconfig": "^0.5.1", - "eslint": "^8.57.0", - "eslint-plugin-vue": "^9.24.0", + "eslint": "^9.0.0", + "eslint-plugin-vue": "^9.24.1", "npm-run-all": "^4.1.5", "pulltorefreshjs": "^0.1.22", - "sass": "^1.72.0", - "terser": "^5.30.0", - "typescript": "^5.4.3", - "vite": "^5.2.7", + "sass": "^1.75.0", + "terser": "^5.30.3", + "typescript": "^5.4.5", + "vite": "^5.2.8", "vite-plugin-compression": "^0.5.1", "vite-plugin-css-injected-by-js": "^3.5.0", - "vue-tsc": "^2.0.7" + "vue-tsc": "^2.0.13" } } diff --git a/webapp/yarn.lock b/webapp/yarn.lock index 1d7bc202..e27e2459 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -156,32 +156,32 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== +"@eslint/eslintrc@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.0.2.tgz#36180f8e85bf34d2fe3ccc2261e8e204a411ab4e" + integrity sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" + espree "^10.0.1" + globals "^14.0.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.57.0": - version "8.57.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" - integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== +"@eslint/js@9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.0.0.tgz#1a9e4b4c96d8c7886e0110ed310a0135144a1691" + integrity sha512-RThY/MnKrhubF6+s1JflwUjPEsnCEmYCWwqa/aRISKWNXGZ9epUwft4bUMM35SdKF9xvBrLydAM1RDHd1Z//ZQ== -"@humanwhocodes/config-array@^0.11.14": - version "0.11.14" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" - integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== +"@humanwhocodes/config-array@^0.12.3": + version "0.12.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.12.3.tgz#a6216d90f81a30bedd1d4b5d799b47241f318072" + integrity sha512-jsNnTBlMWuTpDkeE3on7+dWJi0D6fdDfeANj/w7MpS8ztROCoLvIO2nG0CcFj+E4k8j4QrSTh4Oryi3i2G669g== dependencies: - "@humanwhocodes/object-schema" "^2.0.2" + "@humanwhocodes/object-schema" "^2.0.3" debug "^4.3.1" minimatch "^3.0.5" @@ -190,10 +190,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" - integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== +"@humanwhocodes/object-schema@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== "@intlify/bundle-utils@^8.0.0": version "8.0.0" @@ -210,20 +210,20 @@ source-map-js "^1.0.1" yaml-eslint-parser "^1.2.2" -"@intlify/core-base@9.10.2": - version "9.10.2" - resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.10.2.tgz#e7f8857f8011184e4afbdcfae7dbd85c50ba5271" - integrity sha512-HGStVnKobsJL0DoYIyRCGXBH63DMQqEZxDUGrkNI05FuTcruYUtOAxyL3zoAZu/uDGO6mcUvm3VXBaHG2GdZCg== +"@intlify/core-base@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.12.0.tgz#79f43faa8eb1f3b2bfe569a9fbae9bc50908d311" + integrity sha512-6EnWQXHnCh2bMiXT5N/IWwkcYQXjmF8nnEZ3YhTm23h1ZfOylz83D7pJYhcU8CsTiEdgbGiNdqyZPKwrHw03Ng== dependencies: - "@intlify/message-compiler" "9.10.2" - "@intlify/shared" "9.10.2" + "@intlify/message-compiler" "9.12.0" + "@intlify/shared" "9.12.0" -"@intlify/message-compiler@9.10.2": - version "9.10.2" - resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.10.2.tgz#c44cbb915bdd0d62780a38595a84006c781f717a" - integrity sha512-ntY/kfBwQRtX5Zh6wL8cSATujPzWW2ZQd1QwKyWwAy5fMqJyyixHMeovN4fmEyCqSu+hFfYOE63nU94evsy4YA== +"@intlify/message-compiler@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.12.0.tgz#5e152344853c29369911bd5e541e061b09218333" + integrity sha512-2c6VwhvVJ1nur+2cN2NjdrmrV6vXjvyxYVvtUYMXKsWSUwoNURHGds0xJVJmWxbF8qV9oGepcVV6xl9bvadEIg== dependencies: - "@intlify/shared" "9.10.2" + "@intlify/shared" "9.12.0" source-map-js "^1.0.2" "@intlify/message-compiler@^9.4.0": @@ -234,10 +234,10 @@ "@intlify/shared" "9.4.0" source-map-js "^1.0.2" -"@intlify/shared@9.10.2": - version "9.10.2" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.10.2.tgz#693300ea033868cbe4086b832170612f002e24a9" - integrity sha512-ttHCAJkRy7R5W2S9RVnN9KYQYPIpV2+GiS79T4EE37nrPyH6/1SrOh3bmdCRC1T3ocL8qCDx7x2lBJ0xaITU7Q== +"@intlify/shared@9.12.0": + version "9.12.0" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.12.0.tgz#993383b6a98c8e37a1fa184a677eb39635a14a1c" + integrity sha512-uBcH55x5CfZynnerWHQxrXbT6yD6j6T7Nt+R2+dHAOAneoMd6BoGvfEzfYscE94rgmjoDqdr+PdGDBLk5I5EjA== "@intlify/shared@9.4.0", "@intlify/shared@^9.4.0": version "9.4.0" @@ -412,11 +412,6 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz#6abd79db7ff8d01a58865ba20a63cfd23d9e2a10" integrity sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw== -"@rushstack/eslint-patch@^1.10.1": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.10.1.tgz#7ca168b6937818e9a74b47ac4e2112b2e1a024cf" - integrity sha512-S3Kq8e7LqxkA9s7HKLqXGTGck1uwis5vAXan3FnU5yw1Ec5hsSGnq4s/UCaSqABPOnOTg7zASLyst7+ohgWexg== - "@tsconfig/node18@^18.2.4": version "18.2.4" resolved "https://registry.yarnpkg.com/@tsconfig/node18/-/node18-18.2.4.tgz#094efbdd70f697d37c09f34067bf41bc4a828ae3" @@ -444,10 +439,10 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== -"@types/node@^20.12.2": - version "20.12.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.2.tgz#9facdd11102f38b21b4ebedd9d7999663343d72e" - integrity sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ== +"@types/node@^20.12.7": + version "20.12.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.7.tgz#04080362fa3dd6c5822061aa3124f5c152cff384" + integrity sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg== dependencies: undici-types "~5.26.4" @@ -557,36 +552,31 @@ "@typescript-eslint/types" "7.2.0" eslint-visitor-keys "^3.4.1" -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== - "@vitejs/plugin-vue@^5.0.4": version "5.0.4" resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz#508d6a0f2440f86945835d903fcc0d95d1bb8a37" integrity sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ== -"@volar/language-core@2.1.3", "@volar/language-core@~2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.1.3.tgz#ac6057ec73c5fcda1fc07677bf0d7be41e6c59b1" - integrity sha512-F93KYZYqcYltG7NihfnLt/omMZOtrQtsh2+wj+cgx3xolopU+TZvmwlZWOjw3ObZGFj3SKBb4jJn6VSfSch6RA== +"@volar/language-core@2.2.0-alpha.8": + version "2.2.0-alpha.8" + resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.2.0-alpha.8.tgz#74120a27ff2498ad297e86d17be95a9c7e1b46f5" + integrity sha512-Ew1Iw7/RIRNuDLn60fWJdOLApAlfTVPxbPiSLzc434PReC9kleYtaa//Wo2WlN1oiRqneW0pWQQV0CwYqaimLQ== dependencies: - "@volar/source-map" "2.1.3" + "@volar/source-map" "2.2.0-alpha.8" -"@volar/source-map@2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.1.3.tgz#8f3cb110019c45fa4cd47ad2f5fe5469bd54b9e3" - integrity sha512-j+R+NG/OlDgdNMttADxNuSM9Z26StT/Bjw0NgSydI05Vihngn9zvaP/xXwfWs5qQrRzbKVFxJebS2ks5m/URuA== +"@volar/source-map@2.2.0-alpha.8": + version "2.2.0-alpha.8" + resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.2.0-alpha.8.tgz#ca090f828fbef7e09ea06a636c41a06aa2afe153" + integrity sha512-E1ZVmXFJ5DU4fWDcWHzi8OLqqReqIDwhXvIMhVdk6+VipfMVv4SkryXu7/rs4GA/GsebcRyJdaSkKBB3OAkIcA== dependencies: muggle-string "^0.4.0" -"@volar/typescript@~2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.1.3.tgz#bfdc901afd44c2d05697967211aa55d53fb8bf69" - integrity sha512-ZZqLMih4mvu2eJAW3UCFm84OM/ojYMoA/BU/W1TctT5F2nVzNJmW4jxMWmP3wQzxCbATfTa5gLb1+BSI9NBMBg== +"@volar/typescript@2.2.0-alpha.8": + version "2.2.0-alpha.8" + resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.2.0-alpha.8.tgz#83a056c52995b4142364be3dda41d955a96f7356" + integrity sha512-RLbRDI+17CiayHZs9HhSzlH0FhLl/+XK6o2qoiw2o2GGKcyD1aDoY6AcMd44acYncTOrqoTNoY6LuCiRyiJiGg== dependencies: - "@volar/language-core" "2.1.3" + "@volar/language-core" "2.2.0-alpha.8" path-browserify "^1.0.1" "@vue/compiler-core@3.2.47": @@ -692,12 +682,12 @@ "@typescript-eslint/parser" "^7.1.1" vue-eslint-parser "^9.3.1" -"@vue/language-core@2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.0.7.tgz#af12f752a93c4d2498626fca33f5d1ddc8c5ceb9" - integrity sha512-Vh1yZX3XmYjn9yYLkjU8DN6L0ceBtEcapqiyclHne8guG84IaTzqtvizZB1Yfxm3h6m7EIvjerLO5fvOZO6IIQ== +"@vue/language-core@2.0.13": + version "2.0.13" + resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.0.13.tgz#2d1638b882011187b4b57115425d52b0901acab5" + integrity sha512-oQgM+BM66SU5GKtUMLQSQN0bxHFkFpLSSAiY87wVziPaiNQZuKVDt/3yA7GB9PiQw0y/bTNL0bOc0jM/siYjKg== dependencies: - "@volar/language-core" "~2.1.3" + "@volar/language-core" "2.2.0-alpha.8" "@vue/compiler-dom" "^3.4.0" "@vue/shared" "^3.4.0" computeds "^0.0.1" @@ -768,6 +758,11 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== +acorn@^8.11.3: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + acorn@^8.5.0, acorn@^8.9.0: version "8.10.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" @@ -1028,13 +1023,6 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - entities@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" @@ -1136,10 +1124,10 @@ escodegen@^2.1.0: optionalDependencies: source-map "~0.6.1" -eslint-plugin-vue@^9.24.0: - version "9.24.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.24.0.tgz#71209f4652ee767f18c0bf56f25991b7cdc5aa46" - integrity sha512-9SkJMvF8NGMT9aQCwFc5rj8Wo1XWSMSHk36i7ZwdI614BU7sIOR28ZjuFPKp8YGymZN12BSEbiSwa7qikp+PBw== +eslint-plugin-vue@^9.24.1: + version "9.24.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.24.1.tgz#0d90330c939f9dd2f4c759da5a2ad91dc1c8bac4" + integrity sha512-wk3SuwmS1pZdcuJlokGYEi/buDOwD6KltvhIZyOnpJ/378dcQ4zchu9PAMbbLAaydCz1iYc5AozszcOOgZIIOg== dependencies: "@eslint-community/eslint-utils" "^4.4.0" globals "^13.24.0" @@ -1158,15 +1146,15 @@ eslint-scope@^7.1.1: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== +eslint-scope@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.1.tgz#a9601e4b81a0b9171657c343fb13111688963cfc" + integrity sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.0.0: version "3.4.3" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== @@ -1181,41 +1169,42 @@ eslint-visitor-keys@^3.4.1: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== -eslint@^8.57.0: - version "8.57.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" - integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== +eslint-visitor-keys@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" + integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== + +eslint@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.0.0.tgz#6270548758e390343f78c8afd030566d86927d40" + integrity sha512-IMryZ5SudxzQvuod6rUdIUz29qFItWx281VhtFVc2Psy/ZhlCeD/5DT6lBIJ4H3G+iamGJoTln1v+QSuPw0p7Q== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.0" - "@humanwhocodes/config-array" "^0.11.14" + "@eslint/eslintrc" "^3.0.2" + "@eslint/js" "9.0.0" + "@humanwhocodes/config-array" "^0.12.3" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" - doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" + eslint-scope "^8.0.1" + eslint-visitor-keys "^4.0.0" + espree "^10.0.1" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" + file-entry-cache "^8.0.0" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.19.0" graphemer "^1.4.0" ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" - js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" @@ -1225,7 +1214,16 @@ eslint@^8.57.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.0.0, espree@^9.6.1: +espree@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.0.1.tgz#600e60404157412751ba4a6f3a2ee1a42433139f" + integrity sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww== + dependencies: + acorn "^8.11.3" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^4.0.0" + +espree@^9.0.0: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== @@ -1243,15 +1241,6 @@ espree@^9.3.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.3.0" -espree@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.0.tgz#80869754b1c6560f32e3b6929194a3fe07c5b82f" - integrity sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -1337,12 +1326,12 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== dependencies: - flat-cache "^3.0.4" + flat-cache "^4.0.0" fill-range@^7.0.1: version "7.0.1" @@ -1359,18 +1348,18 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" + flatted "^3.2.9" + keyv "^4.5.4" -flatted@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== fs-extra@^10.0.0: version "10.1.0" @@ -1381,11 +1370,6 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" @@ -1447,25 +1431,6 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^13.19.0: - version "13.19.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" - integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== - dependencies: - type-fest "^0.20.2" - globals@^13.24.0: version "13.24.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" @@ -1473,6 +1438,11 @@ globals@^13.24.0: dependencies: type-fest "^0.20.2" +globals@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" + integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== + globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" @@ -1574,19 +1544,6 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - internal-slot@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" @@ -1724,6 +1681,11 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -1768,6 +1730,13 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +keyv@^4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -1849,7 +1818,7 @@ minimatch@9.0.3, minimatch@^9.0.3: dependencies: brace-expansion "^2.0.1" -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -1958,13 +1927,6 @@ object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - optionator@^0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" @@ -2016,11 +1978,6 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" @@ -2181,13 +2138,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - rollup@^4.13.0: version "4.13.0" resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.13.0.tgz#dd2ae144b4cdc2ea25420477f68d4937a721237a" @@ -2226,10 +2176,10 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -sass@^1.72.0: - version "1.72.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.72.0.tgz#5b9978943fcfb32b25a6a5acb102fc9dabbbf41c" - integrity sha512-Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA== +sass@^1.75.0: + version "1.75.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.75.0.tgz#91bbe87fb02dfcc34e052ddd6ab80f60d392be6c" + integrity sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -2431,10 +2381,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -terser@^5.30.0: - version "5.30.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.30.0.tgz#64cb2af71e16ea3d32153f84d990f9be0cdc22bf" - integrity sha512-Y/SblUl5kEyEFzhMAQdsxVHh+utAxd4IuRNJzKywY/4uzSogh3G219jqbDDxYu4MXO9CzY3tSEqmZvW6AoEDJw== +terser@^5.30.3: + version "5.30.3" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.30.3.tgz#f1bb68ded42408c316b548e3ec2526d7dd03f4d2" + integrity sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -2470,10 +2420,10 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -typescript@^5.4.3: - version "5.4.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.3.tgz#5c6fedd4c87bee01cd7a528a30145521f8e0feff" - integrity sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg== +typescript@^5.4.5: + version "5.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== ufo@^1.1.2: version "1.1.2" @@ -2544,10 +2494,10 @@ vite-plugin-css-injected-by-js@^3.5.0: resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.5.0.tgz#784c0f42c2b42155eb4c726c6addfa24aba9f4fb" integrity sha512-d0QaHH9kS93J25SwRqJNEfE29PSuQS5jn51y9N9i2Yoq0FRO7rjuTeLvjM5zwklZlRrIn6SUdtOEDKyHokgJZg== -vite@^5.2.7: - version "5.2.7" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.7.tgz#e1b8a985eb54fcb9467d7f7f009d87485016df6e" - integrity sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA== +vite@^5.2.8: + version "5.2.8" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.8.tgz#a99e09939f1a502992381395ce93efa40a2844aa" + integrity sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA== dependencies: esbuild "^0.20.1" postcss "^8.4.38" @@ -2581,13 +2531,13 @@ vue-eslint-parser@^9.4.2: lodash "^4.17.21" semver "^7.3.6" -vue-i18n@^9.10.2: - version "9.10.2" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.10.2.tgz#6f4b5d76bce649f1e18bb9b7767b72962b3e30a3" - integrity sha512-ECJ8RIFd+3c1d3m1pctQ6ywG5Yj8Efy1oYoAKQ9neRdkLbuKLVeW4gaY5HPkD/9ssf1pOnUrmIFjx2/gkGxmEw== +vue-i18n@^9.12.0: + version "9.12.0" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.12.0.tgz#8d073b3d7b92e822dcc3268946af4ecf14b778b3" + integrity sha512-rUxCKTws8NH3XP98W71GA7btAQdAuO7j6BC5y5s1bTNQYo/CIgZQf+p7d1Zo5bo/3v8TIq9aSUMDjpfgKsC3Uw== dependencies: - "@intlify/core-base" "9.10.2" - "@intlify/shared" "9.10.2" + "@intlify/core-base" "9.12.0" + "@intlify/shared" "9.12.0" "@vue/devtools-api" "^6.5.0" vue-router@^4.3.0: @@ -2605,13 +2555,13 @@ vue-template-compiler@^2.7.14: de-indent "^1.0.2" he "^1.2.0" -vue-tsc@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.0.7.tgz#3177a2fe720bfa7355d3717929ee8c8d132bc5d0" - integrity sha512-LYa0nInkfcDBB7y8jQ9FQ4riJTRNTdh98zK/hzt4gEpBZQmf30dPhP+odzCa+cedGz6B/guvJEd0BavZaRptjg== +vue-tsc@^2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.0.13.tgz#6ee557705456442e0f43ec0d1774ebf5ffec54f1" + integrity sha512-a3nL3FvguCWVJUQW/jFrUxdeUtiEkbZoQjidqvMeBK//tuE2w6NWQAbdrEpY2+6nSa4kZoKZp8TZUMtHpjt4mQ== dependencies: - "@volar/typescript" "~2.1.3" - "@vue/language-core" "2.0.7" + "@volar/typescript" "2.2.0-alpha.8" + "@vue/language-core" "2.0.13" semver "^7.5.4" vue@^3.4.21: @@ -2660,11 +2610,6 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - xml-name-validator@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" From de156ef10a4606fa7391ea380d0f93446f685ded Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 12 Apr 2024 20:34:30 +0200 Subject: [PATCH 47/71] webapp: Fix lint errors --- webapp/src/components/BasePage.vue | 5 +- webapp/src/components/BootstrapAlert.vue | 4 +- webapp/src/components/FirmwareInfo.vue | 4 +- webapp/src/components/InputElement.vue | 4 +- webapp/src/components/InputSerial.vue | 2 + webapp/src/components/NavBar.vue | 24 +- webapp/src/components/PinInfo.vue | 2 + webapp/src/utils/authentication.ts | 2 +- webapp/src/views/ConfigAdminView.vue | 4 +- webapp/src/views/ConsoleInfoView.vue | 308 +++++++++++------------ webapp/src/views/HomeView.vue | 12 +- webapp/src/views/SystemInfoView.vue | 2 +- webapp/vite.config.ts | 1 + 13 files changed, 189 insertions(+), 185 deletions(-) diff --git a/webapp/src/components/BasePage.vue b/webapp/src/components/BasePage.vue index 0ec43d36..3ca9c12b 100644 --- a/webapp/src/components/BasePage.vue +++ b/webapp/src/components/BasePage.vue @@ -48,15 +48,14 @@ export default defineComponent({ showReload: { type: Boolean, required: false, default: false }, }, mounted() { - var self = this; console.log("init"); PullToRefresh.init({ mainElement: 'body', // above which element? instructionsPullToRefresh: this.$t('base.Pull'), instructionsReleaseToRefresh: this.$t('base.Release'), instructionsRefreshing: this.$t('base.Refreshing'), - onRefresh: function() { - self.$emit('reload'); + onRefresh: () => { + this.$emit('reload'); } }); }, diff --git a/webapp/src/components/BootstrapAlert.vue b/webapp/src/components/BootstrapAlert.vue index df96fb62..a629863d 100644 --- a/webapp/src/components/BootstrapAlert.vue +++ b/webapp/src/components/BootstrapAlert.vue @@ -52,7 +52,7 @@ export default defineComponent({ _countDownTimeout = undefined; }; - var countDown = ref(); + const countDown = ref(); watch(() => props.modelValue, () => { countDown.value = parseCountDown(props.modelValue); }); @@ -116,4 +116,4 @@ export default defineComponent({ }; }, }); - \ No newline at end of file + diff --git a/webapp/src/components/FirmwareInfo.vue b/webapp/src/components/FirmwareInfo.vue index 11aa25a9..7271004d 100644 --- a/webapp/src/components/FirmwareInfo.vue +++ b/webapp/src/components/FirmwareInfo.vue @@ -83,10 +83,10 @@ export default defineComponent({ }, computed: { modelAllowVersionInfo: { - get(): any { + get(): boolean { return !!this.allowVersionInfo; }, - set(value: any) { + set(value: boolean) { this.$emit('update:allowVersionInfo', value); }, }, diff --git a/webapp/src/components/InputElement.vue b/webapp/src/components/InputElement.vue index eff8e9f6..f12a1172 100644 --- a/webapp/src/components/InputElement.vue +++ b/webapp/src/components/InputElement.vue @@ -83,10 +83,12 @@ export default defineComponent({ }, computed: { model: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any get(): any { if (this.type === 'checkbox') return !!this.modelValue; return this.modelValue; }, + // eslint-disable-next-line @typescript-eslint/no-explicit-any set(value: any) { this.$emit('update:modelValue', value); }, @@ -112,4 +114,4 @@ export default defineComponent({ } }, }); - \ No newline at end of file + diff --git a/webapp/src/components/InputSerial.vue b/webapp/src/components/InputSerial.vue index 9f5ee343..3669da62 100644 --- a/webapp/src/components/InputSerial.vue +++ b/webapp/src/components/InputSerial.vue @@ -28,9 +28,11 @@ export default defineComponent({ }, computed: { model: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any get(): any { return this.modelValue; }, + // eslint-disable-next-line @typescript-eslint/no-explicit-any set(value: any) { this.$emit('update:modelValue', value); }, diff --git a/webapp/src/components/NavBar.vue b/webapp/src/components/NavBar.vue index 53995df7..e6eb58f2 100644 --- a/webapp/src/components/NavBar.vue +++ b/webapp/src/components/NavBar.vue @@ -146,8 +146,8 @@ export default defineComponent({ }, isEaster() { const easter = this.getEasterSunday(this.now.getFullYear()); - var easterStart = new Date(easter); - var easterEnd = new Date(easter); + const easterStart = new Date(easter); + const easterEnd = new Date(easter); easterStart.setDate(easterStart.getDate() - 2); easterEnd.setDate(easterEnd.getDate() + 1); return this.now >= easterStart && this.now < easterEnd; @@ -170,18 +170,18 @@ export default defineComponent({ this.$refs.navbarCollapse && (this.$refs.navbarCollapse as HTMLElement).classList.remove("show"); }, getEasterSunday(year: number): Date { - var f = Math.floor; - var G = year % 19; - var C = f(year / 100); - var H = (C - f(C / 4) - f((8 * C + 13) / 25) + 19 * G + 15) % 30; - var I = H - f(H / 28) * (1 - f(29 / (H + 1)) * f((21 - G) / 11)); - var J = (year + f(year / 4) + I + 2 - C + f(C / 4)) % 7; - var L = I - J; - var month = 3 + f((L + 40) / 44); - var day = L + 28 - 31 * f(month / 4); + const f = Math.floor; + const G = year % 19; + const C = f(year / 100); + const H = (C - f(C / 4) - f((8 * C + 13) / 25) + 19 * G + 15) % 30; + const I = H - f(H / 28) * (1 - f(29 / (H + 1)) * f((21 - G) / 11)); + const J = (year + f(year / 4) + I + 2 - C + f(C / 4)) % 7; + const L = I - J; + const month = 3 + f((L + 40) / 44); + const day = L + 28 - 31 * f(month / 4); return new Date(year, month - 1, day); } }, }); - \ No newline at end of file + diff --git a/webapp/src/components/PinInfo.vue b/webapp/src/components/PinInfo.vue index 3d4616ad..c1e84b81 100644 --- a/webapp/src/components/PinInfo.vue +++ b/webapp/src/components/PinInfo.vue @@ -84,9 +84,11 @@ export default defineComponent({ let comCur = 999999; if (this.selectedPinAssignment && category in this.selectedPinAssignment) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any comSel = (this.selectedPinAssignment as any)[category][prop]; } if (this.currentPinAssignment && category in this.currentPinAssignment) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any comCur = (this.currentPinAssignment as any)[category][prop]; } diff --git a/webapp/src/utils/authentication.ts b/webapp/src/utils/authentication.ts index 52d92fd9..f666c36b 100644 --- a/webapp/src/utils/authentication.ts +++ b/webapp/src/utils/authentication.ts @@ -41,7 +41,7 @@ export function isLoggedIn(): boolean { return (localStorage.getItem('user') != null); } -export function login(username: String, password: String) { +export function login(username: string, password: string) { const requestOptions = { method: 'GET', headers: { diff --git a/webapp/src/views/ConfigAdminView.vue b/webapp/src/views/ConfigAdminView.vue index c0954396..e0bb66dc 100644 --- a/webapp/src/views/ConfigAdminView.vue +++ b/webapp/src/views/ConfigAdminView.vue @@ -188,8 +188,8 @@ export default defineComponent({ fetch("/api/config/get?file=" + this.backupFileSelect, { headers: authHeader() }) .then(res => res.blob()) .then(blob => { - var file = window.URL.createObjectURL(blob); - var a = document.createElement('a'); + const file = window.URL.createObjectURL(blob); + const a = document.createElement('a'); a.href = file; a.download = this.backupFileSelect; document.body.appendChild(a); diff --git a/webapp/src/views/ConsoleInfoView.vue b/webapp/src/views/ConsoleInfoView.vue index fb17f62d..eba1d533 100644 --- a/webapp/src/views/ConsoleInfoView.vue +++ b/webapp/src/views/ConsoleInfoView.vue @@ -1,154 +1,154 @@ - - - - - \ No newline at end of file + + + + + diff --git a/webapp/src/views/HomeView.vue b/webapp/src/views/HomeView.vue index f05c4297..d137b05a 100644 --- a/webapp/src/views/HomeView.vue +++ b/webapp/src/views/HomeView.vue @@ -5,7 +5,7 @@