diff --git a/lib/Hoymiles/src/HoymilesRadio_CMT.cpp b/lib/Hoymiles/src/HoymilesRadio_CMT.cpp index 9dd801a8d..9e69feec7 100644 --- a/lib/Hoymiles/src/HoymilesRadio_CMT.cpp +++ b/lib/Hoymiles/src/HoymilesRadio_CMT.cpp @@ -103,6 +103,8 @@ void HoymilesRadio_CMT::loop() f.len = _radio->getDynamicPayloadSize(); f.channel = _radio->getChannel(); f.rssi = _radio->getRssiDBm(); + f.wasReceived = false; + f.mainCmd = 0x00; if (f.len > MAX_RF_PAYLOAD_SIZE) { f.len = MAX_RF_PAYLOAD_SIZE; } diff --git a/lib/Hoymiles/src/parser/AlarmLogParser.cpp b/lib/Hoymiles/src/parser/AlarmLogParser.cpp index 2a6527ac3..92e670e6a 100644 --- a/lib/Hoymiles/src/parser/AlarmLogParser.cpp +++ b/lib/Hoymiles/src/parser/AlarmLogParser.cpp @@ -9,8 +9,31 @@ const std::array AlarmLogParser::_alarmMessages = { { { AlarmMessageType_t::ALL, 1, "Inverter start" }, { AlarmMessageType_t::ALL, 2, "DTU command failed" }, - { AlarmMessageType_t::ALL, 73, "Temperature >80°C" }, // https://github.com/tbnobody/OpenDTU/discussions/590#discussioncomment-6049750 + { AlarmMessageType_t::ALL, 3, "EEPROM reading and writing error during operation" }, + { AlarmMessageType_t::ALL, 4, "Offline" }, + { AlarmMessageType_t::ALL, 11, "Grid voltage surge" }, + { AlarmMessageType_t::ALL, 12, "Grid voltage sharp drop" }, + { AlarmMessageType_t::ALL, 13, "Grid frequency mutation" }, + { AlarmMessageType_t::ALL, 14, "Grid phase mutation" }, + { AlarmMessageType_t::ALL, 15, "Grid transient fluctuation" }, + { AlarmMessageType_t::ALL, 36, "INV overvoltage or overcurrent" }, + { AlarmMessageType_t::ALL, 46, "FB overvoltage" }, + { AlarmMessageType_t::ALL, 47, "FB overcurrent" }, + { AlarmMessageType_t::ALL, 48, "FB clamp overvoltage" }, + { AlarmMessageType_t::ALL, 49, "FB clamp overvoltage" }, + { AlarmMessageType_t::ALL, 61, "Calibration parameter error" }, + { AlarmMessageType_t::ALL, 62, "System configuration parameter error" }, + { AlarmMessageType_t::ALL, 63, "Abnormal power generation data" }, + { AlarmMessageType_t::ALL, 71, "VW function enable" }, + { AlarmMessageType_t::ALL, 72, "FW function enable" }, + { AlarmMessageType_t::ALL, 73, "TW function enable" }, + { AlarmMessageType_t::ALL, 95, "PV module in suspected shadow" }, + { AlarmMessageType_t::ALL, 96, "PV module in suspected shadow" }, + { AlarmMessageType_t::ALL, 97, "PV module in suspected shadow" }, + { AlarmMessageType_t::ALL, 98, "PV module in suspected shadow" }, { AlarmMessageType_t::ALL, 121, "Over temperature protection" }, + { AlarmMessageType_t::ALL, 122, "Microinverter is suspected of being stolen" }, + { AlarmMessageType_t::ALL, 123, "Locked by remote control" }, { AlarmMessageType_t::ALL, 124, "Shut down by remote control" }, { AlarmMessageType_t::ALL, 125, "Grid configuration parameter error" }, { AlarmMessageType_t::ALL, 126, "Software error code 126" }, @@ -27,7 +50,10 @@ const std::array AlarmLogParser::_alarmMe { AlarmMessageType_t::ALL, 147, "Grid: Power grid outage" }, { AlarmMessageType_t::ALL, 148, "Grid: Grid disconnection" }, { AlarmMessageType_t::ALL, 149, "Grid: Island detected" }, + { AlarmMessageType_t::ALL, 150, "DCI exceeded" }, { 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" }, { AlarmMessageType_t::ALL, 205, "MPPT-A: Input overvoltage" }, { AlarmMessageType_t::ALL, 206, "MPPT-B: Input overvoltage" }, { AlarmMessageType_t::ALL, 207, "MPPT-A: Input undervoltage" }, @@ -52,20 +78,21 @@ const std::array AlarmLogParser::_alarmMe { AlarmMessageType_t::ALL, 221, "PV-4: Input overvoltage" }, { AlarmMessageType_t::HMT, 221, "Abnormal wiring of grid neutral line" }, { AlarmMessageType_t::ALL, 222, "PV-4: Input undervoltage" }, - { AlarmMessageType_t::ALL, 301, "Hardware error code 301" }, - { AlarmMessageType_t::ALL, 302, "Hardware error code 302" }, - { AlarmMessageType_t::ALL, 303, "Hardware error code 303" }, - { AlarmMessageType_t::ALL, 304, "Hardware error code 304" }, - { AlarmMessageType_t::ALL, 305, "Hardware error code 305" }, - { AlarmMessageType_t::ALL, 306, "Hardware error code 306" }, - { AlarmMessageType_t::ALL, 307, "Hardware error code 307" }, - { AlarmMessageType_t::ALL, 308, "Hardware error code 308" }, + { AlarmMessageType_t::ALL, 301, "Hardware error code 301 - FB short circuit failure" }, + { AlarmMessageType_t::ALL, 302, "Hardware error code 302 - FB short circuit failure" }, + { AlarmMessageType_t::ALL, 303, "Hardware error code 303 - FB overcurrent protection failure" }, + { AlarmMessageType_t::ALL, 304, "Hardware error code 304 - FB overcurrent protection failure" }, + { AlarmMessageType_t::ALL, 305, "Hardware error code 305 - FB clamp circuit failure" }, + { AlarmMessageType_t::ALL, 306, "Hardware error code 306 - FB clamp circuit failure" }, + { AlarmMessageType_t::ALL, 307, "Hardware error code 307 - INV power device failure" }, + { AlarmMessageType_t::ALL, 308, "Hardware error code 308 - INV overcurrent or overvoltage protection failure" }, { AlarmMessageType_t::ALL, 309, "Hardware error code 309" }, { AlarmMessageType_t::ALL, 310, "Hardware error code 310" }, { AlarmMessageType_t::ALL, 311, "Hardware error code 311" }, { AlarmMessageType_t::ALL, 312, "Hardware error code 312" }, { AlarmMessageType_t::ALL, 313, "Hardware error code 313" }, { AlarmMessageType_t::ALL, 314, "Hardware error code 314" }, + { AlarmMessageType_t::ALL, 1111, "Repeater" }, { AlarmMessageType_t::ALL, 5041, "Error code-04 Port 1" }, { AlarmMessageType_t::ALL, 5042, "Error code-04 Port 2" }, { AlarmMessageType_t::ALL, 5043, "Error code-04 Port 3" }, @@ -79,10 +106,17 @@ const std::array AlarmLogParser::_alarmMe { AlarmMessageType_t::ALL, 5080, "Grid Overvoltage/Undervoltage" }, { AlarmMessageType_t::ALL, 5090, "Grid Overfrequency/Underfrequency" }, { AlarmMessageType_t::ALL, 5100, "Island detected" }, + { AlarmMessageType_t::ALL, 5110, "GFDI" }, { AlarmMessageType_t::ALL, 5120, "EEPROM reading and writing error" }, + { AlarmMessageType_t::ALL, 5141, "FB clamp overvoltage" }, + { AlarmMessageType_t::ALL, 5142, "FB clamp overvoltage" }, + { AlarmMessageType_t::ALL, 5143, "FB clamp overvoltage" }, + { AlarmMessageType_t::ALL, 5144, "FB clamp overvoltage" }, { AlarmMessageType_t::ALL, 5150, "10 min value grid overvoltage" }, + { AlarmMessageType_t::ALL, 5160, "Grid transient fluctuation" }, { AlarmMessageType_t::ALL, 5200, "Firmware error" }, - { AlarmMessageType_t::ALL, 8310, "Shut down" }, + { AlarmMessageType_t::ALL, 8310, "Shut down by remote control" }, + { AlarmMessageType_t::ALL, 8320, "Locked by remote control" }, { AlarmMessageType_t::ALL, 9000, "Microinverter is suspected of being stolen" }, } }; diff --git a/lib/Hoymiles/src/parser/AlarmLogParser.h b/lib/Hoymiles/src/parser/AlarmLogParser.h index a2c6b348f..8cdeb0645 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 77 +#define ALARM_MSG_COUNT 111 struct AlarmLogEntry_t { uint16_t MessageId; diff --git a/lib/Hoymiles/src/parser/DevInfoParser.cpp b/lib/Hoymiles/src/parser/DevInfoParser.cpp index ddb76c0a7..bc28ce39d 100644 --- a/lib/Hoymiles/src/parser/DevInfoParser.cpp +++ b/lib/Hoymiles/src/parser/DevInfoParser.cpp @@ -36,7 +36,9 @@ const devInfo_t devInfo[] = { { { 0x10, 0x21, 0x11, ALL }, 600, "HMS-600" }, // 01 { { 0x10, 0x21, 0x41, ALL }, 800, "HMS-800" }, // 00 { { 0x10, 0x11, 0x51, ALL }, 900, "HMS-900" }, // 01 + { { 0x10, 0x21, 0x51, ALL }, 900, "HMS-900" }, // 03 { { 0x10, 0x21, 0x71, ALL }, 1000, "HMS-1000" }, // 05 + { { 0x10, 0x11, 0x71, ALL }, 1000, "HMS-1000" }, // 01 { { 0x10, 0x22, 0x41, ALL }, 1600, "HMS-1600" }, // 4 { { 0x10, 0x12, 0x51, ALL }, 1800, "HMS-1800" }, // 01 { { 0x10, 0x22, 0x51, ALL }, 1800, "HMS-1800" }, // 16 diff --git a/platformio.ini b/platformio.ini index 5ba51da5e..2b48ede13 100644 --- a/platformio.ini +++ b/platformio.ini @@ -34,8 +34,8 @@ lib_deps = https://github.com/yubox-node-org/ESPAsyncWebServer bblanchon/ArduinoJson @ ^6.21.3 https://github.com/bertmelis/espMqttClient.git#v1.4.5 - nrf24/RF24 @ ^1.4.7 - olikraus/U8g2 @ ^2.35.4 + nrf24/RF24 @ ^1.4.8 + olikraus/U8g2 @ ^2.35.7 buelowp/sunset @ ^1.1.7 https://github.com/coryjfowler/MCP_CAN_lib plerup/EspSoftwareSerial@^8.0.1 diff --git a/src/WebApi_prometheus.cpp b/src/WebApi_prometheus.cpp index 88b673a9d..ab5a4148b 100644 --- a/src/WebApi_prometheus.cpp +++ b/src/WebApi_prometheus.cpp @@ -26,6 +26,10 @@ void WebApiPrometheusClass::loop() void WebApiPrometheusClass::onPrometheusMetricsGet(AsyncWebServerRequest* request) { + if (!WebApi.checkCredentialsReadonly(request)) { + return; + } + try { auto stream = request->beginResponseStream("text/plain; charset=utf-8", 4096 * INV_MAX_COUNT); // TODO(helge) check if this calculation is correct diff --git a/webapp/package.json b/webapp/package.json index dc8adbb1d..eb8fa552a 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -13,34 +13,34 @@ "dependencies": { "@popperjs/core": "^2.11.8", "bootstrap": "^5.3.2", - "bootstrap-icons-vue": "^1.10.3", + "bootstrap-icons-vue": "^1.11.1", "mitt": "^3.0.1", "sortablejs": "^1.15.0", "spark-md5": "^3.0.2", "vue": "^3.3.4", - "vue-i18n": "^9.4.1", - "vue-router": "^4.2.4" + "vue-i18n": "^9.5.0", + "vue-router": "^4.2.5" }, "devDependencies": { - "@intlify/unplugin-vue-i18n": "^1.2.0", - "@rushstack/eslint-patch": "^1.4.0", + "@intlify/unplugin-vue-i18n": "^1.4.0", + "@rushstack/eslint-patch": "^1.5.1", "@tsconfig/node18": "^18.2.2", "@types/bootstrap": "^5.2.7", - "@types/node": "^20.6.2", - "@types/sortablejs": "^1.15.2", + "@types/node": "^20.8.3", + "@types/sortablejs": "^1.15.3", "@types/spark-md5": "^3.0.2", - "@vitejs/plugin-vue": "^4.3.4", + "@vitejs/plugin-vue": "^4.4.0", "@vue/eslint-config-typescript": "^12.0.0", "@vue/tsconfig": "^0.4.0", - "eslint": "^8.49.0", + "eslint": "^8.51.0", "eslint-plugin-vue": "^9.17.0", "npm-run-all": "^4.1.5", - "sass": "^1.67.0", - "terser": "^5.19.4", + "sass": "^1.69.0", + "terser": "^5.21.0", "typescript": "^5.2.2", - "vite": "^4.4.9", + "vite": "^4.4.11", "vite-plugin-compression": "^0.5.1", "vite-plugin-css-injected-by-js": "^3.3.0", - "vue-tsc": "^1.8.11" + "vue-tsc": "^1.8.18" } } diff --git a/webapp/src/views/HomeView.vue b/webapp/src/views/HomeView.vue index e9fd941a0..6060ba310 100644 --- a/webapp/src/views/HomeView.vue +++ b/webapp/src/views/HomeView.vue @@ -757,4 +757,11 @@ export default defineComponent({ } }, }); - \ No newline at end of file + + + \ No newline at end of file diff --git a/webapp/yarn.lock b/webapp/yarn.lock index 30d3c6fe6..b4ebc6596 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -166,10 +166,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.49.0": - version "8.49.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.49.0.tgz#86f79756004a97fa4df866835093f1df3d03c333" - integrity sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w== +"@eslint/js@8.51.0": + version "8.51.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.51.0.tgz#6d419c240cfb2b66da37df230f7e7eef801c32fa" + integrity sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg== "@humanwhocodes/config-array@^0.11.11": version "0.11.11" @@ -190,10 +190,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@intlify/bundle-utils@^7.3.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@intlify/bundle-utils/-/bundle-utils-7.3.0.tgz#11048e8aeede313f7492cefcf412359bd31eed76" - integrity sha512-lcnfsLA5Dyd3TbvfoLS0ejLr1vAJYyT6VRYtE4LGNexy1ZD/GEcbXrC33fI9oQp7t2hDlHbCn2o4BBVgXaJFqg== +"@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== dependencies: "@intlify/message-compiler" "^9.4.0" "@intlify/shared" "^9.4.0" @@ -206,20 +206,20 @@ source-map-js "^1.0.1" yaml-eslint-parser "^1.2.2" -"@intlify/core-base@9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.4.1.tgz#5ab9b624a34af2299a9b45aa331b6516c169b8b5" - integrity sha512-WIwx+elsZbxSMxRG5+LC+utRohFvmZMoDevfKOfnYMLbpCjCSavqTfHJAtfsY6ruowzqXeKkeLhRHbYbjoJx5g== +"@intlify/core-base@9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.5.0.tgz#cbb17a27029ccfd0a83a837931baee08b887af60" + integrity sha512-y3ufM1RJbI/DSmJf3lYs9ACq3S/iRvaSsE3rPIk0MGH7fp+JxU6rdryv/EYcwfcr3Y1aHFlCBir6S391hRZ57w== dependencies: - "@intlify/message-compiler" "9.4.1" - "@intlify/shared" "9.4.1" + "@intlify/message-compiler" "9.5.0" + "@intlify/shared" "9.5.0" -"@intlify/message-compiler@9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.4.1.tgz#aa00629a455e23cece3464293834a02994b4fb04" - integrity sha512-aN2N+dUx320108QhH51Ycd2LEpZ+NKbzyQ2kjjhqMcxhHdxtOnkgdx+MDBhOy/CObwBmhC3Nygzc6hNlfKvPNw== +"@intlify/message-compiler@9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.5.0.tgz#1b4916bf11ca7024f9c15be0d6b4de7be5317808" + integrity sha512-CAhVNfEZcOVFg0/5MNyt+OFjvs4J/ARjCj2b+54/FvFP0EDJI5lIqMTSDBE7k0atMROSP0SvWCkwu/AZ5xkK1g== dependencies: - "@intlify/shared" "9.4.1" + "@intlify/shared" "9.5.0" source-map-js "^1.0.2" "@intlify/message-compiler@^9.4.0": @@ -235,17 +235,17 @@ resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.4.0.tgz#4a78d462fc82433db900981e12eb5b1aae3d6085" integrity sha512-AFqymip2kToqA0B6KZPg5jSrdcVHoli9t/VhGKE2iiMq9utFuMoGdDC/JOCIZgwxo6aXAk86QyU2XtzEoMuZ6A== -"@intlify/shared@9.4.1": - version "9.4.1" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.4.1.tgz#bd0d221aaac476b6778a10ddcd0472f812c64e27" - integrity sha512-A51elBmZWf1FS80inf/32diO9DeXoqg9GR9aUDHFcfHoNDuT46Q+fpPOdj8jiJnSHSBh8E1E+6qWRhAZXdK3Ng== +"@intlify/shared@9.5.0": + version "9.5.0" + resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.5.0.tgz#185d9ab9f6b4bb4f4d133cfdd51432e9b94c2c44" + integrity sha512-tAxV14LMXZDZbu32XzLMTsowNlgJNmLwWHYzvMUl6L8gvQeoYiZONjY7AUsqZW8TOZDX9lfvF6adPkk9FSRdDA== -"@intlify/unplugin-vue-i18n@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-1.2.0.tgz#ca4ac742140f1eaf4668c9530db5db23069eb604" - integrity sha512-AzjlMZKj9DG10ICDR2VWjfJudHJ1XK2GNSHxw+VmOUYpUm4S0L/a7OAdvgnuY7S4plk1VnPdT4YilpZk+uQcqg== +"@intlify/unplugin-vue-i18n@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-1.4.0.tgz#581ac40567240209ed0851e27bfc7c9487cf55ec" + integrity sha512-RGDchCRBlDTyVVFgPA1C1XC1uD4xYN81Ma+3EnU6GQ8pBEreraX/PWdPXXzOB6k9GWCQHuqii3atYXhcH3rpSg== dependencies: - "@intlify/bundle-utils" "^7.3.0" + "@intlify/bundle-utils" "^7.4.0" "@intlify/shared" "^9.4.0" "@rollup/pluginutils" "^5.0.2" "@vue/compiler-sfc" "^3.2.47" @@ -338,10 +338,10 @@ estree-walker "^2.0.2" picomatch "^2.3.1" -"@rushstack/eslint-patch@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.4.0.tgz#77e948b9760bd22736a5d26e335a690f76fda37b" - integrity sha512-cEjvTPU32OM9lUFegJagO0mRnIn+rbqrG89vV8/xLnLFX0DoR0r1oy5IlTga71Q7uT3Qus7qm7wgeiMT/+Irlg== +"@rushstack/eslint-patch@^1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz#5f1b518ec5fa54437c0b7c4a821546c64fed6922" + integrity sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA== "@tsconfig/node18@^18.2.2": version "18.2.2" @@ -365,20 +365,20 @@ 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.6.2": - version "20.6.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.6.2.tgz#a065925409f59657022e9063275cd0b9bd7e1b12" - integrity sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw== +"@types/node@^20.8.3": + version "20.8.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.3.tgz#c4ae2bb1cfab2999ed441a95c122bbbe1567a66d" + integrity sha512-jxiZQFpb+NlH5kjW49vXxvxTjeeqlbsnTAdBTKpzEdPs9itay7MscYXz3Fo9VYFEsfQ6LJFitHad3faerLAjCw== "@types/semver@^7.5.0": version "7.5.1" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.1.tgz#0480eeb7221eb9bc398ad7432c9d7e14b1a5a367" integrity sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg== -"@types/sortablejs@^1.15.2": - version "1.15.2" - resolved "https://registry.yarnpkg.com/@types/sortablejs/-/sortablejs-1.15.2.tgz#d51e5ecac00a9782aa256c1401309ce1c4031ba2" - integrity sha512-mOIv/EnPMzAZAVbuh9uGjOZ1BBdimP9Y6IPGntsvQJtko5yapSDKB7GwB3AOlF5N3bkpk4sBwQRpS3aEkiUbaA== +"@types/sortablejs@^1.15.3": + version "1.15.3" + resolved "https://registry.yarnpkg.com/@types/sortablejs/-/sortablejs-1.15.3.tgz#b9c0e2740100ae94919c9f138a38600c8f8124ea" + integrity sha512-v+zh6TZP/cLeMUK0MDx1onp8e7Jk2/4iTQ7sb/n80rTAvBm14yJkpOEfJdrTCkHiF7IZbPjxGX2NRJfogRoYIg== "@types/spark-md5@^3.0.2": version "3.0.2" @@ -470,31 +470,31 @@ "@typescript-eslint/types" "6.7.0" eslint-visitor-keys "^3.4.1" -"@vitejs/plugin-vue@^4.3.4": - version "4.3.4" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.3.4.tgz#a289dff38e01949fe7be581d5542cabaeb961dec" - integrity sha512-ciXNIHKPriERBisHFBvnTbfKa6r9SAesOYXeGDzgegcvy9Q4xdScSHAmKbNT0M3O0S9LKhIf5/G+UYG4NnnzYw== +"@vitejs/plugin-vue@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz#8ae96573236cdb12de6850a6d929b5537ec85390" + integrity sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg== -"@volar/language-core@1.10.0", "@volar/language-core@~1.10.0": - version "1.10.0" - resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.10.0.tgz#fb6b3ad22e75c53a1ae4d644c4a788b47d411b9d" - integrity sha512-ddyWwSYqcbEZNFHm+Z3NZd6M7Ihjcwl/9B5cZd8kECdimVXUFdFi60XHWD27nrWtUQIsUYIG7Ca1WBwV2u2LSQ== +"@volar/language-core@1.10.3", "@volar/language-core@~1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.10.3.tgz#a345b43c112279e5b2f0a37d96735b848c653a55" + integrity sha512-7Qgwu9bWUHN+cLrOkCbIVBkL+RVPREhvY07wY89dGxi4mY9mQCsUVRRp64F61lX7Nc27meMnvy0sWlzY0x6oQQ== dependencies: - "@volar/source-map" "1.10.0" + "@volar/source-map" "1.10.3" -"@volar/source-map@1.10.0", "@volar/source-map@~1.10.0": - version "1.10.0" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.10.0.tgz#2413eb190ce69fc1a382f58524a3f82306668024" - integrity sha512-/ibWdcOzDGiq/GM1JU2eX8fH1bvAhl66hfe8yEgLEzg9txgr6qb5sQ/DEz5PcDL75tF5H5sCRRwn8Eu8ezi9mw== +"@volar/source-map@1.10.3", "@volar/source-map@~1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.10.3.tgz#3730ca1f238b8c80d0f6da48117ac537cda4f316" + integrity sha512-QE9nwK3xsdBQGongHnC9SCR0itx7xUKQFsUDn5HbZY3pHpyXxdY1hSBG0eh9mE+aTKoM4KlqMvrb+19Tv9vS1Q== dependencies: muggle-string "^0.3.1" -"@volar/typescript@~1.10.0": - version "1.10.0" - resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.10.0.tgz#3b16cf7c4c1802eac023ba4e57fe52bdb6d3016f" - integrity sha512-OtqGtFbUKYC0pLNIk3mHQp5xWnvL1CJIUc9VE39VdZ/oqpoBh5jKfb9uJ45Y4/oP/WYTrif/Uxl1k8VTPz66Gg== +"@volar/typescript@~1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.10.3.tgz#5e95d277e83bef3fc5f7df429c20a959391d2ce4" + integrity sha512-n0ar6xGYpRoSvgGMetm/JXP0QAXx+NOUvxCaWCfCjiFivQRSLJeydYDijhoGBUl5KSKosqq9In5L3e/m2TqTcQ== dependencies: - "@volar/language-core" "1.10.0" + "@volar/language-core" "1.10.3" "@vue/compiler-core@3.2.47": version "3.2.47" @@ -612,17 +612,17 @@ "@typescript-eslint/parser" "^6.7.0" vue-eslint-parser "^9.3.1" -"@vue/language-core@1.8.11": - version "1.8.11" - resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-1.8.11.tgz#d10cc6f8f32e30991e0430f0d91db9416dc2e9a6" - integrity sha512-+MZOBGqGwfld6hpo0DB47x8eNM0dNqk15ZdfOhj19CpvuYuOWCeVdOEGZunKDyo3QLkTn3kLOSysJzg7FDOQBA== +"@vue/language-core@1.8.18": + version "1.8.18" + resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-1.8.18.tgz#c111da12524bac3b12981786294b1ed5db2bd59f" + integrity sha512-byTi+mwSL7XnVRtfWE3MJy3HQryoVSQ3lymauXviegn3G1wwwlSOUljzQe3w5PyesOnBEIxYoavfKzMJnExrBA== dependencies: - "@volar/language-core" "~1.10.0" - "@volar/source-map" "~1.10.0" + "@volar/language-core" "~1.10.3" + "@volar/source-map" "~1.10.3" "@vue/compiler-dom" "^3.3.0" "@vue/reactivity" "^3.3.0" "@vue/shared" "^3.3.0" - minimatch "^9.0.0" + minimatch "^9.0.3" muggle-string "^0.3.1" vue-template-compiler "^2.7.14" @@ -707,13 +707,13 @@ resolved "https://registry.yarnpkg.com/@vue/tsconfig/-/tsconfig-0.4.0.tgz#f01e2f6089b5098136fb084a0dd0cdd4533b72b0" integrity sha512-CPuIReonid9+zOG/CGTT05FXrPYATEqoDGNrEaqS4hwcw5BUNM2FguC0mOwJD4Jr16UpRVl9N0pY3P+srIbqmg== -"@vue/typescript@1.8.11": - version "1.8.11" - resolved "https://registry.yarnpkg.com/@vue/typescript/-/typescript-1.8.11.tgz#b2de6760a0e6d829a5328cd0123b1763ce3e66ef" - integrity sha512-skUmMDiPUUtu1flPmf2YybF+PX8IzBtMioQOaNn6Ck/RhdrPJGj1AX/7s3Buf9G6ln+/KHR1XQuti/FFxw5XVA== +"@vue/typescript@1.8.18": + version "1.8.18" + resolved "https://registry.yarnpkg.com/@vue/typescript/-/typescript-1.8.18.tgz#27cf06fc42fefae4254d9fd25297156c54a27e0f" + integrity sha512-3M+lu+DUwJW0fNwd/rLE0FenmELxcC6zxgm/YZ25jSTi+uNGj9L5XvXvf20guC69gQvZ+cg49tTxbepfFVuNNQ== dependencies: - "@volar/typescript" "~1.10.0" - "@vue/language-core" "1.8.11" + "@volar/typescript" "~1.10.3" + "@vue/language-core" "1.8.18" acorn-jsx@^5.3.2: version "5.3.2" @@ -797,10 +797,10 @@ boolbase@^1.0.0: resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== -bootstrap-icons-vue@^1.10.3: - version "1.10.3" - resolved "https://registry.yarnpkg.com/bootstrap-icons-vue/-/bootstrap-icons-vue-1.10.3.tgz#ae725513c9655ce86effa2a0b09e9e65b02c8f1a" - integrity sha512-BzqmLufgHjFvSReJ1GQqNkl780UFK0rWT4Y1IQC7lZClXyOSsM5Ipw04BnuVmmrqgtSxzak83jcBwLJgCK3scg== +bootstrap-icons-vue@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/bootstrap-icons-vue/-/bootstrap-icons-vue-1.11.1.tgz#6b0359e8f1a538b2a14e1ced5ba927391f7e3abe" + integrity sha512-vQELXxclY2LauUJ7OMXScv1j+mJS2K2h7NTgW7yDG954dI+SC2QHLKg+Mc7qmCDZ+3oMayeLqmFTDX0GBmdobA== bootstrap@^5.3.2: version "5.3.2" @@ -1122,15 +1122,15 @@ 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.49.0: - version "8.49.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.49.0.tgz#09d80a89bdb4edee2efcf6964623af1054bf6d42" - integrity sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ== +eslint@^8.51.0: + version "8.51.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.51.0.tgz#4a82dae60d209ac89a5cff1604fea978ba4950f3" + integrity sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.49.0" + "@eslint/js" "8.51.0" "@humanwhocodes/config-array" "^0.11.11" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -1785,10 +1785,10 @@ 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.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.0.tgz#bfc8e88a1c40ffd40c172ddac3decb8451503b56" - integrity sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w== +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" @@ -2145,10 +2145,10 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -sass@^1.67.0: - version "1.67.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.67.0.tgz#fed84d74b9cd708db603b1380d6dc1f71bb24f6f" - integrity sha512-SVrO9ZeX/QQyEGtuZYCVxoeAL5vGlYjJ9p4i4HFuekWl8y/LtJ7tJc10Z+ck1c8xOuoBm2MYzcLfTAffD0pl/A== +sass@^1.69.0: + version "1.69.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.69.0.tgz#5195075371c239ed556280cf2f5944d234f42679" + integrity sha512-l3bbFpfTOGgQZCLU/gvm1lbsQ5mC/WnLz3djL2v4WCJBDrWm58PO+jgngcGRNnKUh6wSsdm50YaovTqskZ0xDQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -2173,13 +2173,6 @@ semver@^7.3.6: dependencies: lru-cache "^6.0.0" -semver@^7.3.8: - version "7.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0" - integrity sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA== - 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" @@ -2345,10 +2338,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.19.4: - version "5.19.4" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.4.tgz#941426fa482bf9b40a0308ab2b3cd0cf7c775ebd" - integrity sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g== +terser@^5.21.0: + version "5.21.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.21.0.tgz#d2b27e92b5e56650bc83b6defa00a110f0b124b2" + integrity sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -2460,10 +2453,10 @@ vite-plugin-css-injected-by-js@^3.3.0: resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.3.0.tgz#c19480a9e42a95c5bced976a9dde1446f9bd91ff" integrity sha512-xG+jyHNCmUqi/TXp6q88wTJGeAOrNLSyUUTp4qEQ9QZLGcHWQQsCsSSKa59rPMQr8sOzfzmWDd8enGqfH/dBew== -vite@^4.4.9: - version "4.4.9" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d" - integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA== +vite@^4.4.11: + version "4.4.11" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.11.tgz#babdb055b08c69cfc4c468072a2e6c9ca62102b0" + integrity sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A== dependencies: esbuild "^0.18.10" postcss "^8.4.27" @@ -2484,19 +2477,19 @@ vue-eslint-parser@^9.3.1: lodash "^4.17.21" semver "^7.3.6" -vue-i18n@^9.4.1: - version "9.4.1" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.4.1.tgz#c7402662fe9b40b17798afffa9d8bfa4734dd7f5" - integrity sha512-vnQyYE9LBuNOqPpETIcCaGnAyLEqfeIvDcyZ9T+WBCWFTqWw1J8FuF1jfeDwpHBi5JKgAwgXyq1mt8jp/x/GPA== +vue-i18n@^9.5.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.5.0.tgz#361a820f591f6d9689435a42763fd1dae224833b" + integrity sha512-NiI3Ph1qMstNf7uhYh8trQBOBFLxeJgcOxBq51pCcZ28Vs18Y7BDS58r8HGDKCYgXdLUYqPDXdKatIF4bvBVZg== dependencies: - "@intlify/core-base" "9.4.1" - "@intlify/shared" "9.4.1" + "@intlify/core-base" "9.5.0" + "@intlify/shared" "9.5.0" "@vue/devtools-api" "^6.5.0" -vue-router@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.2.4.tgz#382467a7e2923e6a85f015d081e1508052c191b9" - integrity sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ== +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== dependencies: "@vue/devtools-api" "^6.5.0" @@ -2508,14 +2501,14 @@ vue-template-compiler@^2.7.14: de-indent "^1.0.2" he "^1.2.0" -vue-tsc@^1.8.11: - version "1.8.11" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.8.11.tgz#4a972e58a9eaae72d73e63e0bedacb56391b7cb4" - integrity sha512-BzfiMdPqDHBlysx4g26NkfVHSQwGD/lTRausmxN9sFyjXz34OWfsbkh0YsVkX84Hu65In1fFlxHiG39Tr4Vojg== +vue-tsc@^1.8.18: + version "1.8.18" + resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.8.18.tgz#9f92df899932c6bcee55284e4e781d35163f0816" + integrity sha512-AwQxBB9SZX308TLL1932P1JByuMsXC2jLfRBGt8SBdm1e3cXkDlFaXUAqibfKnoQ1ZC2zO2NSbeBNdSjOcdvJw== dependencies: - "@vue/language-core" "1.8.11" - "@vue/typescript" "1.8.11" - semver "^7.3.8" + "@vue/language-core" "1.8.18" + "@vue/typescript" "1.8.18" + semver "^7.5.4" vue@^3.3.4: version "3.3.4" diff --git a/webapp_dist/js/app.js.gz b/webapp_dist/js/app.js.gz index 343f7cae8..d82f774f5 100644 Binary files a/webapp_dist/js/app.js.gz and b/webapp_dist/js/app.js.gz differ