mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-14 11:50:20 +03:00
Merge branch 'dev' into dev
This commit is contained in:
@@ -14,7 +14,7 @@ For more details go to [docs.emsesp.org](https://docs.emsesp.org/).
|
|||||||
- CS6800i changes [#2448](https://github.com/emsesp/EMS-ESP32/issues/2448), [#2449](https://github.com/emsesp/EMS-ESP32/issues/2449)
|
- CS6800i changes [#2448](https://github.com/emsesp/EMS-ESP32/issues/2448), [#2449](https://github.com/emsesp/EMS-ESP32/issues/2449)
|
||||||
- charging pump [#2544](https://github.com/emsesp/EMS-ESP32/issues/2544)
|
- charging pump [#2544](https://github.com/emsesp/EMS-ESP32/issues/2544)
|
||||||
- hybrid CSH5800iG [#2569](https://github.com/emsesp/EMS-ESP32/issues/2569)
|
- hybrid CSH5800iG [#2569](https://github.com/emsesp/EMS-ESP32/issues/2569)
|
||||||
- add EMS Device details to Home Assistant MQTT Discovery
|
- added EMS Device details to Home Assistant MQTT Discovery
|
||||||
- disinfection command [#2601](https://github.com/emsesp/EMS-ESP32/issues/2601)
|
- disinfection command [#2601](https://github.com/emsesp/EMS-ESP32/issues/2601)
|
||||||
- added new board profile for upcoming BBQKees E32V2.2
|
- added new board profile for upcoming BBQKees E32V2.2
|
||||||
- set differential pressure entity in Mixer device
|
- set differential pressure entity in Mixer device
|
||||||
@@ -34,11 +34,10 @@ For more details go to [docs.emsesp.org](https://docs.emsesp.org/).
|
|||||||
- pid settings [#2735](https://github.com/emsesp/EMS-ESP32/issues/2735)
|
- pid settings [#2735](https://github.com/emsesp/EMS-ESP32/issues/2735)
|
||||||
- refresh MQTT button added to MQTT Settings page
|
- refresh MQTT button added to MQTT Settings page
|
||||||
- heating assistance, rounding custum settings [#2763](https://github.com/emsesp/EMS-ESP32/discussions/2763)
|
- heating assistance, rounding custum settings [#2763](https://github.com/emsesp/EMS-ESP32/discussions/2763)
|
||||||
- add counter 0..2 for short pulses, high frequency [#2758](https://github.com/emsesp/EMS-ESP32/issues/2758)
|
- added counter 0..2 for short pulses, high frequency [#2758](https://github.com/emsesp/EMS-ESP32/issues/2758)
|
||||||
- added LWT (Last Will and Testament) to MQTT entities in Home Assistant
|
- added LWT (Last Will and Testament) to MQTT entities in Home Assistant
|
||||||
- added api/metrics endpoint for prometheus integration by @gr3enk
|
- added api/metrics endpoint for prometheus integration by @gr3enk [#2774](https://github.com/emsesp/EMS-ESP32/pull/2774)
|
||||||
[#2774](https://github.com/emsesp/EMS-ESP32/pull/2774)
|
- added RTL8201 to eth phy list [#2800](https://github.com/emsesp/EMS-ESP32/issues/2800)
|
||||||
- add RTL8201 to eth phy list [#2800](https://github.com/emsesp/EMS-ESP32/issues/2800)
|
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
|
|
||||||
@@ -64,7 +63,7 @@ For more details go to [docs.emsesp.org](https://docs.emsesp.org/).
|
|||||||
## Changed
|
## Changed
|
||||||
|
|
||||||
- show console log with ISO date/time [#2533](https://github.com/emsesp/EMS-ESP32/discussions/2533)
|
- show console log with ISO date/time [#2533](https://github.com/emsesp/EMS-ESP32/discussions/2533)
|
||||||
- remove ESP32 CPU temperature
|
- removed ESP32 CPU temperature
|
||||||
- updated core libraries like AsyncTCP, AsyncWebServer and Modbus
|
- updated core libraries like AsyncTCP, AsyncWebServer and Modbus
|
||||||
- remove command `scan deep`
|
- remove command `scan deep`
|
||||||
- ignore repeated `forceheatingoff` commands [#2641](https://github.com/emsesp/EMS-ESP32/discussions/2641)
|
- ignore repeated `forceheatingoff` commands [#2641](https://github.com/emsesp/EMS-ESP32/discussions/2641)
|
||||||
@@ -80,4 +79,5 @@ For more details go to [docs.emsesp.org](https://docs.emsesp.org/).
|
|||||||
- show number on entities and supported languages in log on boot
|
- show number on entities and supported languages in log on boot
|
||||||
- on tx read fail delay the 3rd. retry 2 sec
|
- on tx read fail delay the 3rd. retry 2 sec
|
||||||
- move vectors and lists to PSRAM
|
- move vectors and lists to PSRAM
|
||||||
-remove unused last topic/payload echo-check
|
- removed unused last topic/payload echo-check
|
||||||
|
- added Home Assistant device details to MQTT Discovery for all devices
|
||||||
|
|||||||
2
Makefile
2
Makefile
@@ -138,6 +138,7 @@ DEPFLAGS += -MF $(BUILD)/$*.d -MT $@
|
|||||||
LINK.o = $(LD) $(LDFLAGS) $(LDLIBS) $^ -o $@
|
LINK.o = $(LD) $(LDFLAGS) $(LDLIBS) $^ -o $@
|
||||||
COMPILE.c = $(CC) $(C_STANDARD) $(CFLAGS) $(DEPFLAGS) -c $< -o $@
|
COMPILE.c = $(CC) $(C_STANDARD) $(CFLAGS) $(DEPFLAGS) -c $< -o $@
|
||||||
COMPILE.cpp = $(CXX) $(CXX_STANDARD) $(CXXFLAGS) $(DEPFLAGS) -c $< -o $@
|
COMPILE.cpp = $(CXX) $(CXX_STANDARD) $(CXXFLAGS) $(DEPFLAGS) -c $< -o $@
|
||||||
|
COMPILE.s = $(CC) $(CFLAGS) $(DEPFLAGS) -c $< -o $@
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
# Special Built-in Target
|
# Special Built-in Target
|
||||||
@@ -181,6 +182,7 @@ $(BUILD)/%.o: %.cpp
|
|||||||
|
|
||||||
$(BUILD)/%.o: %.s
|
$(BUILD)/%.o: %.s
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
|
@$(ECHO) Compiling $@
|
||||||
@$(COMPILE.s)
|
@$(COMPILE.s)
|
||||||
|
|
||||||
cppcheck: $(SOURCES)
|
cppcheck: $(SOURCES)
|
||||||
|
|||||||
@@ -38,8 +38,8 @@
|
|||||||
"magic-string": "^0.30.21",
|
"magic-string": "^0.30.21",
|
||||||
"mime-types": "^3.0.2",
|
"mime-types": "^3.0.2",
|
||||||
"preact": "^10.28.0",
|
"preact": "^10.28.0",
|
||||||
"react": "^19.2.2",
|
"react": "^19.2.3",
|
||||||
"react-dom": "^19.2.2",
|
"react-dom": "^19.2.3",
|
||||||
"react-icons": "^5.5.0",
|
"react-icons": "^5.5.0",
|
||||||
"react-router": "^7.10.1",
|
"react-router": "^7.10.1",
|
||||||
"react-toastify": "^11.0.5",
|
"react-toastify": "^11.0.5",
|
||||||
@@ -48,16 +48,16 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.28.5",
|
"@babel/core": "^7.28.5",
|
||||||
"@eslint/js": "^9.39.1",
|
"@eslint/js": "^9.39.2",
|
||||||
"@preact/compat": "^18.3.1",
|
"@preact/compat": "^18.3.1",
|
||||||
"@preact/preset-vite": "^2.10.2",
|
"@preact/preset-vite": "^2.10.2",
|
||||||
"@trivago/prettier-plugin-sort-imports": "^6.0.0",
|
"@trivago/prettier-plugin-sort-imports": "^6.0.0",
|
||||||
"@types/node": "^25.0.0",
|
"@types/node": "^25.0.1",
|
||||||
"@types/react": "^19.2.7",
|
"@types/react": "^19.2.7",
|
||||||
"@types/react-dom": "^19.2.3",
|
"@types/react-dom": "^19.2.3",
|
||||||
"axe-core": "^4.11.0",
|
"axe-core": "^4.11.0",
|
||||||
"concurrently": "^9.2.1",
|
"concurrently": "^9.2.1",
|
||||||
"eslint": "^9.39.1",
|
"eslint": "^9.39.2",
|
||||||
"eslint-config-prettier": "^10.1.8",
|
"eslint-config-prettier": "^10.1.8",
|
||||||
"prettier": "^3.7.4",
|
"prettier": "^3.7.4",
|
||||||
"rollup-plugin-visualizer": "^6.0.5",
|
"rollup-plugin-visualizer": "^6.0.5",
|
||||||
|
|||||||
304
interface/pnpm-lock.yaml
generated
304
interface/pnpm-lock.yaml
generated
@@ -13,22 +13,22 @@ importers:
|
|||||||
version: 2.3.0(alova@3.4.0)
|
version: 2.3.0(alova@3.4.0)
|
||||||
'@emotion/react':
|
'@emotion/react':
|
||||||
specifier: ^11.14.0
|
specifier: ^11.14.0
|
||||||
version: 11.14.0(@types/react@19.2.7)(react@19.2.2)
|
version: 11.14.0(@types/react@19.2.7)(react@19.2.3)
|
||||||
'@emotion/styled':
|
'@emotion/styled':
|
||||||
specifier: ^11.14.1
|
specifier: ^11.14.1
|
||||||
version: 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react@19.2.2)
|
version: 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)
|
||||||
'@mui/icons-material':
|
'@mui/icons-material':
|
||||||
specifier: ^7.3.6
|
specifier: ^7.3.6
|
||||||
version: 7.3.6(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react-dom@19.2.2(react@19.2.2))(react@19.2.2))(@types/react@19.2.7)(react@19.2.2)
|
version: 7.3.6(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)
|
||||||
'@mui/material':
|
'@mui/material':
|
||||||
specifier: ^7.3.6
|
specifier: ^7.3.6
|
||||||
version: 7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react-dom@19.2.2(react@19.2.2))(react@19.2.2)
|
version: 7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
'@preact/compat':
|
'@preact/compat':
|
||||||
specifier: ^18.3.1
|
specifier: ^18.3.1
|
||||||
version: 18.3.1(preact@10.28.0)
|
version: 18.3.1(preact@10.28.0)
|
||||||
'@table-library/react-table-library':
|
'@table-library/react-table-library':
|
||||||
specifier: 4.1.15
|
specifier: 4.1.15
|
||||||
version: 4.1.15(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(react-dom@19.2.2(react@19.2.2))(react@19.2.2)
|
version: 4.1.15(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
alova:
|
alova:
|
||||||
specifier: 3.4.0
|
specifier: 3.4.0
|
||||||
version: 3.4.0
|
version: 3.4.0
|
||||||
@@ -54,20 +54,20 @@ importers:
|
|||||||
specifier: ^10.28.0
|
specifier: ^10.28.0
|
||||||
version: 10.28.0
|
version: 10.28.0
|
||||||
react:
|
react:
|
||||||
specifier: ^19.2.2
|
specifier: ^19.2.3
|
||||||
version: 19.2.2
|
version: 19.2.3
|
||||||
react-dom:
|
react-dom:
|
||||||
specifier: ^19.2.2
|
specifier: ^19.2.3
|
||||||
version: 19.2.2(react@19.2.2)
|
version: 19.2.3(react@19.2.3)
|
||||||
react-icons:
|
react-icons:
|
||||||
specifier: ^5.5.0
|
specifier: ^5.5.0
|
||||||
version: 5.5.0(react@19.2.2)
|
version: 5.5.0(react@19.2.3)
|
||||||
react-router:
|
react-router:
|
||||||
specifier: ^7.10.1
|
specifier: ^7.10.1
|
||||||
version: 7.10.1(react-dom@19.2.2(react@19.2.2))(react@19.2.2)
|
version: 7.10.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
react-toastify:
|
react-toastify:
|
||||||
specifier: ^11.0.5
|
specifier: ^11.0.5
|
||||||
version: 11.0.5(react-dom@19.2.2(react@19.2.2))(react@19.2.2)
|
version: 11.0.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
typesafe-i18n:
|
typesafe-i18n:
|
||||||
specifier: ^5.26.2
|
specifier: ^5.26.2
|
||||||
version: 5.26.2(typescript@5.9.3)
|
version: 5.26.2(typescript@5.9.3)
|
||||||
@@ -79,17 +79,17 @@ importers:
|
|||||||
specifier: ^7.28.5
|
specifier: ^7.28.5
|
||||||
version: 7.28.5
|
version: 7.28.5
|
||||||
'@eslint/js':
|
'@eslint/js':
|
||||||
specifier: ^9.39.1
|
specifier: ^9.39.2
|
||||||
version: 9.39.1
|
version: 9.39.2
|
||||||
'@preact/preset-vite':
|
'@preact/preset-vite':
|
||||||
specifier: ^2.10.2
|
specifier: ^2.10.2
|
||||||
version: 2.10.2(@babel/core@7.28.5)(preact@10.28.0)(vite@7.2.7(@types/node@25.0.0)(terser@5.44.1))
|
version: 2.10.2(@babel/core@7.28.5)(preact@10.28.0)(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1))
|
||||||
'@trivago/prettier-plugin-sort-imports':
|
'@trivago/prettier-plugin-sort-imports':
|
||||||
specifier: ^6.0.0
|
specifier: ^6.0.0
|
||||||
version: 6.0.0(prettier@3.7.4)
|
version: 6.0.0(prettier@3.7.4)
|
||||||
'@types/node':
|
'@types/node':
|
||||||
specifier: ^25.0.0
|
specifier: ^25.0.1
|
||||||
version: 25.0.0
|
version: 25.0.1
|
||||||
'@types/react':
|
'@types/react':
|
||||||
specifier: ^19.2.7
|
specifier: ^19.2.7
|
||||||
version: 19.2.7
|
version: 19.2.7
|
||||||
@@ -103,11 +103,11 @@ importers:
|
|||||||
specifier: ^9.2.1
|
specifier: ^9.2.1
|
||||||
version: 9.2.1
|
version: 9.2.1
|
||||||
eslint:
|
eslint:
|
||||||
specifier: ^9.39.1
|
specifier: ^9.39.2
|
||||||
version: 9.39.1
|
version: 9.39.2
|
||||||
eslint-config-prettier:
|
eslint-config-prettier:
|
||||||
specifier: ^10.1.8
|
specifier: ^10.1.8
|
||||||
version: 10.1.8(eslint@9.39.1)
|
version: 10.1.8(eslint@9.39.2)
|
||||||
prettier:
|
prettier:
|
||||||
specifier: ^3.7.4
|
specifier: ^3.7.4
|
||||||
version: 3.7.4
|
version: 3.7.4
|
||||||
@@ -119,16 +119,16 @@ importers:
|
|||||||
version: 5.44.1
|
version: 5.44.1
|
||||||
typescript-eslint:
|
typescript-eslint:
|
||||||
specifier: ^8.49.0
|
specifier: ^8.49.0
|
||||||
version: 8.49.0(eslint@9.39.1)(typescript@5.9.3)
|
version: 8.49.0(eslint@9.39.2)(typescript@5.9.3)
|
||||||
vite:
|
vite:
|
||||||
specifier: ^7.2.7
|
specifier: ^7.2.7
|
||||||
version: 7.2.7(@types/node@25.0.0)(terser@5.44.1)
|
version: 7.2.7(@types/node@25.0.1)(terser@5.44.1)
|
||||||
vite-plugin-imagemin:
|
vite-plugin-imagemin:
|
||||||
specifier: ^0.6.1
|
specifier: ^0.6.1
|
||||||
version: 0.6.1(vite@7.2.7(@types/node@25.0.0)(terser@5.44.1))
|
version: 0.6.1(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1))
|
||||||
vite-tsconfig-paths:
|
vite-tsconfig-paths:
|
||||||
specifier: ^5.1.4
|
specifier: ^5.1.4
|
||||||
version: 5.1.4(typescript@5.9.3)(vite@7.2.7(@types/node@25.0.0)(terser@5.44.1))
|
version: 5.1.4(typescript@5.9.3)(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1))
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@@ -479,8 +479,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==}
|
resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@eslint/js@9.39.1':
|
'@eslint/js@9.39.2':
|
||||||
resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==}
|
resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@eslint/object-schema@2.1.7':
|
'@eslint/object-schema@2.1.7':
|
||||||
@@ -860,8 +860,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==}
|
resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==}
|
||||||
deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed.
|
deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed.
|
||||||
|
|
||||||
'@types/node@25.0.0':
|
'@types/node@25.0.1':
|
||||||
resolution: {integrity: sha512-rl78HwuZlaDIUSeUKkmogkhebA+8K1Hy7tddZuJ3D0xV8pZSfsYGTsliGUol1JPzu9EKnTxPC4L1fiWouStRew==}
|
resolution: {integrity: sha512-czWPzKIAXucn9PtsttxmumiQ9N0ok9FrBwgRWrwmVLlp86BrMExzvXRLFYRJ+Ex3g6yqj+KuaxfX1JTgV2lpfg==}
|
||||||
|
|
||||||
'@types/parse-json@4.0.2':
|
'@types/parse-json@4.0.2':
|
||||||
resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
|
resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
|
||||||
@@ -1027,8 +1027,8 @@ packages:
|
|||||||
base64-js@1.5.1:
|
base64-js@1.5.1:
|
||||||
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
|
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
|
||||||
|
|
||||||
baseline-browser-mapping@2.9.6:
|
baseline-browser-mapping@2.9.7:
|
||||||
resolution: {integrity: sha512-v9BVVpOTLB59C9E7aSnmIF8h7qRsFpx+A2nugVMTszEOMcfjlZMsXRm4LF23I3Z9AJxc8ANpIvzbzONoX9VJlg==}
|
resolution: {integrity: sha512-k9xFKplee6KIio3IDbwj+uaCLpqzOwakOgmqzPezM0sFJlFKcg30vk2wOiAJtkTSfx0SSQDSe8q+mWA/fSH5Zg==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
bin-build@3.0.0:
|
bin-build@3.0.0:
|
||||||
@@ -1528,8 +1528,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
|
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
eslint@9.39.1:
|
eslint@9.39.2:
|
||||||
resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==}
|
resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@@ -2509,10 +2509,10 @@ packages:
|
|||||||
rate-limiter-flexible@5.0.5:
|
rate-limiter-flexible@5.0.5:
|
||||||
resolution: {integrity: sha512-+/dSQfo+3FYwYygUs/V2BBdwGa9nFtakDwKt4l0bnvNB53TNT++QSFewwHX9qXrZJuMe9j+TUaU21lm5ARgqdQ==}
|
resolution: {integrity: sha512-+/dSQfo+3FYwYygUs/V2BBdwGa9nFtakDwKt4l0bnvNB53TNT++QSFewwHX9qXrZJuMe9j+TUaU21lm5ARgqdQ==}
|
||||||
|
|
||||||
react-dom@19.2.2:
|
react-dom@19.2.3:
|
||||||
resolution: {integrity: sha512-fhyD2BLrew6qYf4NNtHff1rLXvzR25rq49p+FeqByOazc6TcSi2n8EYulo5C1PbH+1uBW++5S1SG7FcUU6mlDg==}
|
resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^19.2.2
|
react: ^19.2.3
|
||||||
|
|
||||||
react-icons@5.5.0:
|
react-icons@5.5.0:
|
||||||
resolution: {integrity: sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==}
|
resolution: {integrity: sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==}
|
||||||
@@ -2522,8 +2522,8 @@ packages:
|
|||||||
react-is@16.13.1:
|
react-is@16.13.1:
|
||||||
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
|
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
|
||||||
|
|
||||||
react-is@19.2.2:
|
react-is@19.2.3:
|
||||||
resolution: {integrity: sha512-ADrk8mxPwhyj+IB8EnMMRzxnon5hJrOdEZl+mCrrHXfPGGPYHdRm1962fvXUiWAu/ZC1G+OTgBN3Puq57iS4Yg==}
|
resolution: {integrity: sha512-qJNJfu81ByyabuG7hPFEbXqNcWSU3+eVus+KJs+0ncpGfMyYdvSmxiJxbWR65lYi1I+/0HBcliO029gc4F+PnA==}
|
||||||
|
|
||||||
react-router@7.10.1:
|
react-router@7.10.1:
|
||||||
resolution: {integrity: sha512-gHL89dRa3kwlUYtRQ+m8NmxGI6CgqN+k4XyGjwcFoQwwCWF6xXpOCUlDovkXClS0d0XJN/5q7kc5W3kiFEd0Yw==}
|
resolution: {integrity: sha512-gHL89dRa3kwlUYtRQ+m8NmxGI6CgqN+k4XyGjwcFoQwwCWF6xXpOCUlDovkXClS0d0XJN/5q7kc5W3kiFEd0Yw==}
|
||||||
@@ -2560,8 +2560,8 @@ packages:
|
|||||||
react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||||
|
|
||||||
react@19.2.2:
|
react@19.2.3:
|
||||||
resolution: {integrity: sha512-BdOGOY8OKRBcgoDkwqA8Q5XvOIhoNx/Sh6BnGJlet2Abt0X5BK0BDrqGyQgLhAVjD2nAg5f6o01u/OPUhG022Q==}
|
resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
read-pkg-up@1.0.1:
|
read-pkg-up@1.0.1:
|
||||||
@@ -3265,17 +3265,17 @@ snapshots:
|
|||||||
|
|
||||||
'@emotion/memoize@0.9.0': {}
|
'@emotion/memoize@0.9.0': {}
|
||||||
|
|
||||||
'@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2)':
|
'@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.28.4
|
'@babel/runtime': 7.28.4
|
||||||
'@emotion/babel-plugin': 11.13.5
|
'@emotion/babel-plugin': 11.13.5
|
||||||
'@emotion/cache': 11.14.0
|
'@emotion/cache': 11.14.0
|
||||||
'@emotion/serialize': 1.3.3
|
'@emotion/serialize': 1.3.3
|
||||||
'@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.2)
|
'@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.3)
|
||||||
'@emotion/utils': 1.4.2
|
'@emotion/utils': 1.4.2
|
||||||
'@emotion/weak-memoize': 0.4.0
|
'@emotion/weak-memoize': 0.4.0
|
||||||
hoist-non-react-statics: 3.3.2
|
hoist-non-react-statics: 3.3.2
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 19.2.7
|
'@types/react': 19.2.7
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@@ -3291,16 +3291,16 @@ snapshots:
|
|||||||
|
|
||||||
'@emotion/sheet@1.4.0': {}
|
'@emotion/sheet@1.4.0': {}
|
||||||
|
|
||||||
'@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react@19.2.2)':
|
'@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.28.4
|
'@babel/runtime': 7.28.4
|
||||||
'@emotion/babel-plugin': 11.13.5
|
'@emotion/babel-plugin': 11.13.5
|
||||||
'@emotion/is-prop-valid': 1.4.0
|
'@emotion/is-prop-valid': 1.4.0
|
||||||
'@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.2)
|
'@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.3)
|
||||||
'@emotion/serialize': 1.3.3
|
'@emotion/serialize': 1.3.3
|
||||||
'@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.2)
|
'@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.3)
|
||||||
'@emotion/utils': 1.4.2
|
'@emotion/utils': 1.4.2
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 19.2.7
|
'@types/react': 19.2.7
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@@ -3308,9 +3308,9 @@ snapshots:
|
|||||||
|
|
||||||
'@emotion/unitless@0.10.0': {}
|
'@emotion/unitless@0.10.0': {}
|
||||||
|
|
||||||
'@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.2)':
|
'@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
|
|
||||||
'@emotion/utils@1.4.2': {}
|
'@emotion/utils@1.4.2': {}
|
||||||
|
|
||||||
@@ -3397,9 +3397,9 @@ snapshots:
|
|||||||
'@esbuild/win32-x64@0.25.12':
|
'@esbuild/win32-x64@0.25.12':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@eslint-community/eslint-utils@4.9.0(eslint@9.39.1)':
|
'@eslint-community/eslint-utils@4.9.0(eslint@9.39.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 9.39.1
|
eslint: 9.39.2
|
||||||
eslint-visitor-keys: 3.4.3
|
eslint-visitor-keys: 3.4.3
|
||||||
|
|
||||||
'@eslint-community/regexpp@4.12.2': {}
|
'@eslint-community/regexpp@4.12.2': {}
|
||||||
@@ -3434,7 +3434,7 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@eslint/js@9.39.1': {}
|
'@eslint/js@9.39.2': {}
|
||||||
|
|
||||||
'@eslint/object-schema@2.1.7': {}
|
'@eslint/object-schema@2.1.7': {}
|
||||||
|
|
||||||
@@ -3486,45 +3486,45 @@ snapshots:
|
|||||||
|
|
||||||
'@mui/core-downloads-tracker@7.3.6': {}
|
'@mui/core-downloads-tracker@7.3.6': {}
|
||||||
|
|
||||||
'@mui/icons-material@7.3.6(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react-dom@19.2.2(react@19.2.2))(react@19.2.2))(@types/react@19.2.7)(react@19.2.2)':
|
'@mui/icons-material@7.3.6(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.28.4
|
'@babel/runtime': 7.28.4
|
||||||
'@mui/material': 7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react-dom@19.2.2(react@19.2.2))(react@19.2.2)
|
'@mui/material': 7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 19.2.7
|
'@types/react': 19.2.7
|
||||||
|
|
||||||
'@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react-dom@19.2.2(react@19.2.2))(react@19.2.2)':
|
'@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.28.4
|
'@babel/runtime': 7.28.4
|
||||||
'@mui/core-downloads-tracker': 7.3.6
|
'@mui/core-downloads-tracker': 7.3.6
|
||||||
'@mui/system': 7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react@19.2.2)
|
'@mui/system': 7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)
|
||||||
'@mui/types': 7.4.9(@types/react@19.2.7)
|
'@mui/types': 7.4.9(@types/react@19.2.7)
|
||||||
'@mui/utils': 7.3.6(@types/react@19.2.7)(react@19.2.2)
|
'@mui/utils': 7.3.6(@types/react@19.2.7)(react@19.2.3)
|
||||||
'@popperjs/core': 2.11.8
|
'@popperjs/core': 2.11.8
|
||||||
'@types/react-transition-group': 4.4.12(@types/react@19.2.7)
|
'@types/react-transition-group': 4.4.12(@types/react@19.2.7)
|
||||||
clsx: 2.1.1
|
clsx: 2.1.1
|
||||||
csstype: 3.2.3
|
csstype: 3.2.3
|
||||||
prop-types: 15.8.1
|
prop-types: 15.8.1
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
react-dom: 19.2.2(react@19.2.2)
|
react-dom: 19.2.3(react@19.2.3)
|
||||||
react-is: 19.2.2
|
react-is: 19.2.3
|
||||||
react-transition-group: 4.4.5(react-dom@19.2.2(react@19.2.2))(react@19.2.2)
|
react-transition-group: 4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.2)
|
'@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.3)
|
||||||
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react@19.2.2)
|
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)
|
||||||
'@types/react': 19.2.7
|
'@types/react': 19.2.7
|
||||||
|
|
||||||
'@mui/private-theming@7.3.6(@types/react@19.2.7)(react@19.2.2)':
|
'@mui/private-theming@7.3.6(@types/react@19.2.7)(react@19.2.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.28.4
|
'@babel/runtime': 7.28.4
|
||||||
'@mui/utils': 7.3.6(@types/react@19.2.7)(react@19.2.2)
|
'@mui/utils': 7.3.6(@types/react@19.2.7)(react@19.2.3)
|
||||||
prop-types: 15.8.1
|
prop-types: 15.8.1
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 19.2.7
|
'@types/react': 19.2.7
|
||||||
|
|
||||||
'@mui/styled-engine@7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react@19.2.2))(react@19.2.2)':
|
'@mui/styled-engine@7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(react@19.2.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.28.4
|
'@babel/runtime': 7.28.4
|
||||||
'@emotion/cache': 11.14.0
|
'@emotion/cache': 11.14.0
|
||||||
@@ -3532,25 +3532,25 @@ snapshots:
|
|||||||
'@emotion/sheet': 1.4.0
|
'@emotion/sheet': 1.4.0
|
||||||
csstype: 3.2.3
|
csstype: 3.2.3
|
||||||
prop-types: 15.8.1
|
prop-types: 15.8.1
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.2)
|
'@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.3)
|
||||||
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react@19.2.2)
|
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)
|
||||||
|
|
||||||
'@mui/system@7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react@19.2.2)':
|
'@mui/system@7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.28.4
|
'@babel/runtime': 7.28.4
|
||||||
'@mui/private-theming': 7.3.6(@types/react@19.2.7)(react@19.2.2)
|
'@mui/private-theming': 7.3.6(@types/react@19.2.7)(react@19.2.3)
|
||||||
'@mui/styled-engine': 7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react@19.2.2))(react@19.2.2)
|
'@mui/styled-engine': 7.3.6(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(react@19.2.3)
|
||||||
'@mui/types': 7.4.9(@types/react@19.2.7)
|
'@mui/types': 7.4.9(@types/react@19.2.7)
|
||||||
'@mui/utils': 7.3.6(@types/react@19.2.7)(react@19.2.2)
|
'@mui/utils': 7.3.6(@types/react@19.2.7)(react@19.2.3)
|
||||||
clsx: 2.1.1
|
clsx: 2.1.1
|
||||||
csstype: 3.2.3
|
csstype: 3.2.3
|
||||||
prop-types: 15.8.1
|
prop-types: 15.8.1
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.2)
|
'@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.3)
|
||||||
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(@types/react@19.2.7)(react@19.2.2)
|
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)
|
||||||
'@types/react': 19.2.7
|
'@types/react': 19.2.7
|
||||||
|
|
||||||
'@mui/types@7.4.9(@types/react@19.2.7)':
|
'@mui/types@7.4.9(@types/react@19.2.7)':
|
||||||
@@ -3559,15 +3559,15 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 19.2.7
|
'@types/react': 19.2.7
|
||||||
|
|
||||||
'@mui/utils@7.3.6(@types/react@19.2.7)(react@19.2.2)':
|
'@mui/utils@7.3.6(@types/react@19.2.7)(react@19.2.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.28.4
|
'@babel/runtime': 7.28.4
|
||||||
'@mui/types': 7.4.9(@types/react@19.2.7)
|
'@mui/types': 7.4.9(@types/react@19.2.7)
|
||||||
'@types/prop-types': 15.7.15
|
'@types/prop-types': 15.7.15
|
||||||
clsx: 2.1.1
|
clsx: 2.1.1
|
||||||
prop-types: 15.8.1
|
prop-types: 15.8.1
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
react-is: 19.2.2
|
react-is: 19.2.3
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/react': 19.2.7
|
'@types/react': 19.2.7
|
||||||
|
|
||||||
@@ -3595,18 +3595,18 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
preact: 10.28.0
|
preact: 10.28.0
|
||||||
|
|
||||||
'@preact/preset-vite@2.10.2(@babel/core@7.28.5)(preact@10.28.0)(vite@7.2.7(@types/node@25.0.0)(terser@5.44.1))':
|
'@preact/preset-vite@2.10.2(@babel/core@7.28.5)(preact@10.28.0)(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.28.5
|
'@babel/core': 7.28.5
|
||||||
'@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.5)
|
'@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.5)
|
||||||
'@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.5)
|
'@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.5)
|
||||||
'@prefresh/vite': 2.4.11(preact@10.28.0)(vite@7.2.7(@types/node@25.0.0)(terser@5.44.1))
|
'@prefresh/vite': 2.4.11(preact@10.28.0)(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1))
|
||||||
'@rollup/pluginutils': 4.2.1
|
'@rollup/pluginutils': 4.2.1
|
||||||
babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.28.5)
|
babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.28.5)
|
||||||
debug: 4.4.3
|
debug: 4.4.3
|
||||||
picocolors: 1.1.1
|
picocolors: 1.1.1
|
||||||
vite: 7.2.7(@types/node@25.0.0)(terser@5.44.1)
|
vite: 7.2.7(@types/node@25.0.1)(terser@5.44.1)
|
||||||
vite-prerender-plugin: 0.5.12(vite@7.2.7(@types/node@25.0.0)(terser@5.44.1))
|
vite-prerender-plugin: 0.5.12(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1))
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- preact
|
- preact
|
||||||
- supports-color
|
- supports-color
|
||||||
@@ -3619,7 +3619,7 @@ snapshots:
|
|||||||
|
|
||||||
'@prefresh/utils@1.2.1': {}
|
'@prefresh/utils@1.2.1': {}
|
||||||
|
|
||||||
'@prefresh/vite@2.4.11(preact@10.28.0)(vite@7.2.7(@types/node@25.0.0)(terser@5.44.1))':
|
'@prefresh/vite@2.4.11(preact@10.28.0)(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.28.5
|
'@babel/core': 7.28.5
|
||||||
'@prefresh/babel-plugin': 0.5.2
|
'@prefresh/babel-plugin': 0.5.2
|
||||||
@@ -3627,7 +3627,7 @@ snapshots:
|
|||||||
'@prefresh/utils': 1.2.1
|
'@prefresh/utils': 1.2.1
|
||||||
'@rollup/pluginutils': 4.2.1
|
'@rollup/pluginutils': 4.2.1
|
||||||
preact: 10.28.0
|
preact: 10.28.0
|
||||||
vite: 7.2.7(@types/node@25.0.0)(terser@5.44.1)
|
vite: 7.2.7(@types/node@25.0.1)(terser@5.44.1)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@@ -3704,14 +3704,14 @@ snapshots:
|
|||||||
|
|
||||||
'@sindresorhus/is@0.7.0': {}
|
'@sindresorhus/is@0.7.0': {}
|
||||||
|
|
||||||
'@table-library/react-table-library@4.1.15(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.2))(react-dom@19.2.2(react@19.2.2))(react@19.2.2)':
|
'@table-library/react-table-library@4.1.15(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.2)
|
'@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.3)
|
||||||
clsx: 1.1.1
|
clsx: 1.1.1
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
react-dom: 19.2.2(react@19.2.2)
|
react-dom: 19.2.3(react@19.2.3)
|
||||||
react-virtualized-auto-sizer: 1.0.26(react-dom@19.2.2(react@19.2.2))(react@19.2.2)
|
react-virtualized-auto-sizer: 1.0.26(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
react-window: 1.8.11(react-dom@19.2.2(react@19.2.2))(react@19.2.2)
|
react-window: 1.8.11(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
|
|
||||||
'@trivago/prettier-plugin-sort-imports@6.0.0(prettier@3.7.4)':
|
'@trivago/prettier-plugin-sort-imports@6.0.0(prettier@3.7.4)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -3734,7 +3734,7 @@ snapshots:
|
|||||||
'@types/glob@7.2.0':
|
'@types/glob@7.2.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/minimatch': 6.0.0
|
'@types/minimatch': 6.0.0
|
||||||
'@types/node': 25.0.0
|
'@types/node': 25.0.1
|
||||||
|
|
||||||
'@types/imagemin-gifsicle@7.0.4':
|
'@types/imagemin-gifsicle@7.0.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -3763,19 +3763,19 @@ snapshots:
|
|||||||
|
|
||||||
'@types/imagemin@7.0.1':
|
'@types/imagemin@7.0.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 25.0.0
|
'@types/node': 25.0.1
|
||||||
|
|
||||||
'@types/json-schema@7.0.15': {}
|
'@types/json-schema@7.0.15': {}
|
||||||
|
|
||||||
'@types/keyv@3.1.4':
|
'@types/keyv@3.1.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 25.0.0
|
'@types/node': 25.0.1
|
||||||
|
|
||||||
'@types/minimatch@6.0.0':
|
'@types/minimatch@6.0.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
minimatch: 10.1.1
|
minimatch: 10.1.1
|
||||||
|
|
||||||
'@types/node@25.0.0':
|
'@types/node@25.0.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types: 7.16.0
|
undici-types: 7.16.0
|
||||||
|
|
||||||
@@ -3797,21 +3797,21 @@ snapshots:
|
|||||||
|
|
||||||
'@types/responselike@1.0.3':
|
'@types/responselike@1.0.3':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 25.0.0
|
'@types/node': 25.0.1
|
||||||
|
|
||||||
'@types/svgo@2.6.4':
|
'@types/svgo@2.6.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 25.0.0
|
'@types/node': 25.0.1
|
||||||
|
|
||||||
'@typescript-eslint/eslint-plugin@8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(typescript@5.9.3)':
|
'@typescript-eslint/eslint-plugin@8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/regexpp': 4.12.2
|
'@eslint-community/regexpp': 4.12.2
|
||||||
'@typescript-eslint/parser': 8.49.0(eslint@9.39.1)(typescript@5.9.3)
|
'@typescript-eslint/parser': 8.49.0(eslint@9.39.2)(typescript@5.9.3)
|
||||||
'@typescript-eslint/scope-manager': 8.49.0
|
'@typescript-eslint/scope-manager': 8.49.0
|
||||||
'@typescript-eslint/type-utils': 8.49.0(eslint@9.39.1)(typescript@5.9.3)
|
'@typescript-eslint/type-utils': 8.49.0(eslint@9.39.2)(typescript@5.9.3)
|
||||||
'@typescript-eslint/utils': 8.49.0(eslint@9.39.1)(typescript@5.9.3)
|
'@typescript-eslint/utils': 8.49.0(eslint@9.39.2)(typescript@5.9.3)
|
||||||
'@typescript-eslint/visitor-keys': 8.49.0
|
'@typescript-eslint/visitor-keys': 8.49.0
|
||||||
eslint: 9.39.1
|
eslint: 9.39.2
|
||||||
ignore: 7.0.5
|
ignore: 7.0.5
|
||||||
natural-compare: 1.4.0
|
natural-compare: 1.4.0
|
||||||
ts-api-utils: 2.1.0(typescript@5.9.3)
|
ts-api-utils: 2.1.0(typescript@5.9.3)
|
||||||
@@ -3819,14 +3819,14 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/parser@8.49.0(eslint@9.39.1)(typescript@5.9.3)':
|
'@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/scope-manager': 8.49.0
|
'@typescript-eslint/scope-manager': 8.49.0
|
||||||
'@typescript-eslint/types': 8.49.0
|
'@typescript-eslint/types': 8.49.0
|
||||||
'@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3)
|
'@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3)
|
||||||
'@typescript-eslint/visitor-keys': 8.49.0
|
'@typescript-eslint/visitor-keys': 8.49.0
|
||||||
debug: 4.4.3
|
debug: 4.4.3
|
||||||
eslint: 9.39.1
|
eslint: 9.39.2
|
||||||
typescript: 5.9.3
|
typescript: 5.9.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
@@ -3849,13 +3849,13 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
typescript: 5.9.3
|
typescript: 5.9.3
|
||||||
|
|
||||||
'@typescript-eslint/type-utils@8.49.0(eslint@9.39.1)(typescript@5.9.3)':
|
'@typescript-eslint/type-utils@8.49.0(eslint@9.39.2)(typescript@5.9.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 8.49.0
|
'@typescript-eslint/types': 8.49.0
|
||||||
'@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3)
|
'@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3)
|
||||||
'@typescript-eslint/utils': 8.49.0(eslint@9.39.1)(typescript@5.9.3)
|
'@typescript-eslint/utils': 8.49.0(eslint@9.39.2)(typescript@5.9.3)
|
||||||
debug: 4.4.3
|
debug: 4.4.3
|
||||||
eslint: 9.39.1
|
eslint: 9.39.2
|
||||||
ts-api-utils: 2.1.0(typescript@5.9.3)
|
ts-api-utils: 2.1.0(typescript@5.9.3)
|
||||||
typescript: 5.9.3
|
typescript: 5.9.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@@ -3878,13 +3878,13 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/utils@8.49.0(eslint@9.39.1)(typescript@5.9.3)':
|
'@typescript-eslint/utils@8.49.0(eslint@9.39.2)(typescript@5.9.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1)
|
'@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2)
|
||||||
'@typescript-eslint/scope-manager': 8.49.0
|
'@typescript-eslint/scope-manager': 8.49.0
|
||||||
'@typescript-eslint/types': 8.49.0
|
'@typescript-eslint/types': 8.49.0
|
||||||
'@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3)
|
'@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3)
|
||||||
eslint: 9.39.1
|
eslint: 9.39.2
|
||||||
typescript: 5.9.3
|
typescript: 5.9.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
@@ -3958,7 +3958,7 @@ snapshots:
|
|||||||
|
|
||||||
base64-js@1.5.1: {}
|
base64-js@1.5.1: {}
|
||||||
|
|
||||||
baseline-browser-mapping@2.9.6: {}
|
baseline-browser-mapping@2.9.7: {}
|
||||||
|
|
||||||
bin-build@3.0.0:
|
bin-build@3.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -4015,7 +4015,7 @@ snapshots:
|
|||||||
|
|
||||||
browserslist@4.28.1:
|
browserslist@4.28.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
baseline-browser-mapping: 2.9.6
|
baseline-browser-mapping: 2.9.7
|
||||||
caniuse-lite: 1.0.30001760
|
caniuse-lite: 1.0.30001760
|
||||||
electron-to-chromium: 1.5.267
|
electron-to-chromium: 1.5.267
|
||||||
node-releases: 2.0.27
|
node-releases: 2.0.27
|
||||||
@@ -4505,9 +4505,9 @@ snapshots:
|
|||||||
|
|
||||||
escape-string-regexp@4.0.0: {}
|
escape-string-regexp@4.0.0: {}
|
||||||
|
|
||||||
eslint-config-prettier@10.1.8(eslint@9.39.1):
|
eslint-config-prettier@10.1.8(eslint@9.39.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 9.39.1
|
eslint: 9.39.2
|
||||||
|
|
||||||
eslint-scope@8.4.0:
|
eslint-scope@8.4.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -4518,15 +4518,15 @@ snapshots:
|
|||||||
|
|
||||||
eslint-visitor-keys@4.2.1: {}
|
eslint-visitor-keys@4.2.1: {}
|
||||||
|
|
||||||
eslint@9.39.1:
|
eslint@9.39.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1)
|
'@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2)
|
||||||
'@eslint-community/regexpp': 4.12.2
|
'@eslint-community/regexpp': 4.12.2
|
||||||
'@eslint/config-array': 0.21.1
|
'@eslint/config-array': 0.21.1
|
||||||
'@eslint/config-helpers': 0.4.2
|
'@eslint/config-helpers': 0.4.2
|
||||||
'@eslint/core': 0.17.0
|
'@eslint/core': 0.17.0
|
||||||
'@eslint/eslintrc': 3.3.3
|
'@eslint/eslintrc': 3.3.3
|
||||||
'@eslint/js': 9.39.1
|
'@eslint/js': 9.39.2
|
||||||
'@eslint/plugin-kit': 0.4.1
|
'@eslint/plugin-kit': 0.4.1
|
||||||
'@humanfs/node': 0.16.7
|
'@humanfs/node': 0.16.7
|
||||||
'@humanwhocodes/module-importer': 1.0.1
|
'@humanwhocodes/module-importer': 1.0.1
|
||||||
@@ -5512,55 +5512,55 @@ snapshots:
|
|||||||
|
|
||||||
rate-limiter-flexible@5.0.5: {}
|
rate-limiter-flexible@5.0.5: {}
|
||||||
|
|
||||||
react-dom@19.2.2(react@19.2.2):
|
react-dom@19.2.3(react@19.2.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
scheduler: 0.27.0
|
scheduler: 0.27.0
|
||||||
|
|
||||||
react-icons@5.5.0(react@19.2.2):
|
react-icons@5.5.0(react@19.2.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
|
|
||||||
react-is@16.13.1: {}
|
react-is@16.13.1: {}
|
||||||
|
|
||||||
react-is@19.2.2: {}
|
react-is@19.2.3: {}
|
||||||
|
|
||||||
react-router@7.10.1(react-dom@19.2.2(react@19.2.2))(react@19.2.2):
|
react-router@7.10.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
cookie: 1.1.1
|
cookie: 1.1.1
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
set-cookie-parser: 2.7.2
|
set-cookie-parser: 2.7.2
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
react-dom: 19.2.2(react@19.2.2)
|
react-dom: 19.2.3(react@19.2.3)
|
||||||
|
|
||||||
react-toastify@11.0.5(react-dom@19.2.2(react@19.2.2))(react@19.2.2):
|
react-toastify@11.0.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
clsx: 2.1.1
|
clsx: 2.1.1
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
react-dom: 19.2.2(react@19.2.2)
|
react-dom: 19.2.3(react@19.2.3)
|
||||||
|
|
||||||
react-transition-group@4.4.5(react-dom@19.2.2(react@19.2.2))(react@19.2.2):
|
react-transition-group@4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.28.4
|
'@babel/runtime': 7.28.4
|
||||||
dom-helpers: 5.2.1
|
dom-helpers: 5.2.1
|
||||||
loose-envify: 1.4.0
|
loose-envify: 1.4.0
|
||||||
prop-types: 15.8.1
|
prop-types: 15.8.1
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
react-dom: 19.2.2(react@19.2.2)
|
react-dom: 19.2.3(react@19.2.3)
|
||||||
|
|
||||||
react-virtualized-auto-sizer@1.0.26(react-dom@19.2.2(react@19.2.2))(react@19.2.2):
|
react-virtualized-auto-sizer@1.0.26(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
react-dom: 19.2.2(react@19.2.2)
|
react-dom: 19.2.3(react@19.2.3)
|
||||||
|
|
||||||
react-window@1.8.11(react-dom@19.2.2(react@19.2.2))(react@19.2.2):
|
react-window@1.8.11(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.28.4
|
'@babel/runtime': 7.28.4
|
||||||
memoize-one: 5.2.1
|
memoize-one: 5.2.1
|
||||||
react: 19.2.2
|
react: 19.2.3
|
||||||
react-dom: 19.2.2(react@19.2.2)
|
react-dom: 19.2.3(react@19.2.3)
|
||||||
|
|
||||||
react@19.2.2: {}
|
react@19.2.3: {}
|
||||||
|
|
||||||
read-pkg-up@1.0.1:
|
read-pkg-up@1.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -5912,13 +5912,13 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
typescript: 5.9.3
|
typescript: 5.9.3
|
||||||
|
|
||||||
typescript-eslint@8.49.0(eslint@9.39.1)(typescript@5.9.3):
|
typescript-eslint@8.49.0(eslint@9.39.2)(typescript@5.9.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/eslint-plugin': 8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(typescript@5.9.3)
|
'@typescript-eslint/eslint-plugin': 8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)
|
||||||
'@typescript-eslint/parser': 8.49.0(eslint@9.39.1)(typescript@5.9.3)
|
'@typescript-eslint/parser': 8.49.0(eslint@9.39.2)(typescript@5.9.3)
|
||||||
'@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3)
|
'@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3)
|
||||||
'@typescript-eslint/utils': 8.49.0(eslint@9.39.1)(typescript@5.9.3)
|
'@typescript-eslint/utils': 8.49.0(eslint@9.39.2)(typescript@5.9.3)
|
||||||
eslint: 9.39.1
|
eslint: 9.39.2
|
||||||
typescript: 5.9.3
|
typescript: 5.9.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
@@ -5963,7 +5963,7 @@ snapshots:
|
|||||||
spdx-correct: 3.2.0
|
spdx-correct: 3.2.0
|
||||||
spdx-expression-parse: 3.0.1
|
spdx-expression-parse: 3.0.1
|
||||||
|
|
||||||
vite-plugin-imagemin@0.6.1(vite@7.2.7(@types/node@25.0.0)(terser@5.44.1)):
|
vite-plugin-imagemin@0.6.1(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/imagemin': 7.0.1
|
'@types/imagemin': 7.0.1
|
||||||
'@types/imagemin-gifsicle': 7.0.4
|
'@types/imagemin-gifsicle': 7.0.4
|
||||||
@@ -5988,11 +5988,11 @@ snapshots:
|
|||||||
imagemin-webp: 6.1.0
|
imagemin-webp: 6.1.0
|
||||||
jpegtran-bin: 6.0.1
|
jpegtran-bin: 6.0.1
|
||||||
pathe: 0.2.0
|
pathe: 0.2.0
|
||||||
vite: 7.2.7(@types/node@25.0.0)(terser@5.44.1)
|
vite: 7.2.7(@types/node@25.0.1)(terser@5.44.1)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
vite-prerender-plugin@0.5.12(vite@7.2.7(@types/node@25.0.0)(terser@5.44.1)):
|
vite-prerender-plugin@0.5.12(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1)):
|
||||||
dependencies:
|
dependencies:
|
||||||
kolorist: 1.8.0
|
kolorist: 1.8.0
|
||||||
magic-string: 0.30.21
|
magic-string: 0.30.21
|
||||||
@@ -6000,20 +6000,20 @@ snapshots:
|
|||||||
simple-code-frame: 1.3.0
|
simple-code-frame: 1.3.0
|
||||||
source-map: 0.7.6
|
source-map: 0.7.6
|
||||||
stack-trace: 1.0.0-pre2
|
stack-trace: 1.0.0-pre2
|
||||||
vite: 7.2.7(@types/node@25.0.0)(terser@5.44.1)
|
vite: 7.2.7(@types/node@25.0.1)(terser@5.44.1)
|
||||||
|
|
||||||
vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.2.7(@types/node@25.0.0)(terser@5.44.1)):
|
vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.2.7(@types/node@25.0.1)(terser@5.44.1)):
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 4.4.3
|
debug: 4.4.3
|
||||||
globrex: 0.1.2
|
globrex: 0.1.2
|
||||||
tsconfck: 3.1.6(typescript@5.9.3)
|
tsconfck: 3.1.6(typescript@5.9.3)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
vite: 7.2.7(@types/node@25.0.0)(terser@5.44.1)
|
vite: 7.2.7(@types/node@25.0.1)(terser@5.44.1)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
vite@7.2.7(@types/node@25.0.0)(terser@5.44.1):
|
vite@7.2.7(@types/node@25.0.1)(terser@5.44.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.25.12
|
esbuild: 0.25.12
|
||||||
fdir: 6.5.0(picomatch@4.0.3)
|
fdir: 6.5.0(picomatch@4.0.3)
|
||||||
@@ -6022,7 +6022,7 @@ snapshots:
|
|||||||
rollup: 4.53.3
|
rollup: 4.53.3
|
||||||
tinyglobby: 0.2.15
|
tinyglobby: 0.2.15
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.0.0
|
'@types/node': 25.0.1
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
terser: 5.44.1
|
terser: 5.44.1
|
||||||
|
|
||||||
|
|||||||
@@ -331,7 +331,7 @@ const pl: BaseTranslation = {
|
|||||||
SERVICES: 'Usługi',
|
SERVICES: 'Usługi',
|
||||||
ALLVALUES: 'Wszystkie wartości',
|
ALLVALUES: 'Wszystkie wartości',
|
||||||
SPECIAL_FUNCTIONS: 'Specjalne funkcje',
|
SPECIAL_FUNCTIONS: 'Specjalne funkcje',
|
||||||
WAIT_FIRMWARE: 'Firma jest wysyłana i instaluje się',
|
WAIT_FIRMWARE: 'Firmware ściąga się i instaluje',
|
||||||
INSTALL_VERSION: 'To zainstaluje wersję {1} {0}. Jesteś pewny?',
|
INSTALL_VERSION: 'To zainstaluje wersję {1} {0}. Jesteś pewny?',
|
||||||
UPDATE_AVAILABLE: 'aktualizacja dostępna',
|
UPDATE_AVAILABLE: 'aktualizacja dostępna',
|
||||||
LATEST_VERSION: 'Jesteś używając najnowszej wersji firmware {0}',
|
LATEST_VERSION: 'Jesteś używając najnowszej wersji firmware {0}',
|
||||||
|
|||||||
@@ -793,7 +793,7 @@ void AnalogSensor::publish_values(const bool force) {
|
|||||||
|
|
||||||
// see if we need to create the [devs] discovery section, as this needs only to be done once for all sensors
|
// see if we need to create the [devs] discovery section, as this needs only to be done once for all sensors
|
||||||
if (std::none_of(sensors_.begin(), sensors_.end(), [](const auto & sensor) { return sensor.ha_registered; })) {
|
if (std::none_of(sensors_.begin(), sensors_.end(), [](const auto & sensor) { return sensor.ha_registered; })) {
|
||||||
Mqtt::add_ha_dev_section(config.as<JsonObject>(), "Analog Sensors", nullptr, nullptr, nullptr, false);
|
Mqtt::add_ha_dev_section(config.as<JsonObject>(), "Analog Sensors", nullptr, "EMS-ESP", EMSESP_APP_VERSION, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// add default_entity_id
|
// add default_entity_id
|
||||||
|
|||||||
@@ -104,14 +104,14 @@ class AnalogSensor {
|
|||||||
uint32_t last_polltime_ = 0; // for timer
|
uint32_t last_polltime_ = 0; // for timer
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint8_t gpio_;
|
uint8_t gpio_;
|
||||||
char name_[20];
|
char name_[20];
|
||||||
double offset_;
|
double offset_;
|
||||||
double factor_;
|
double factor_;
|
||||||
uint8_t uom_;
|
uint8_t uom_;
|
||||||
double value_; // double because of the factor is a double
|
double value_; // double because of the factor is a double
|
||||||
int8_t type_; // one of the AnalogType enum
|
int8_t type_; // one of the AnalogType enum
|
||||||
bool is_system_; // if true, the sensor is a system sensor
|
bool is_system_; // if true, the sensor is a system sensor
|
||||||
};
|
};
|
||||||
|
|
||||||
AnalogSensor() = default;
|
AnalogSensor() = default;
|
||||||
|
|||||||
@@ -2082,24 +2082,40 @@ bool EMSdevice::generate_values(JsonObject output, const int8_t tag_filter, cons
|
|||||||
// create the Home Assistant configs for each device value / entity
|
// create the Home Assistant configs for each device value / entity
|
||||||
// this is called when an MQTT publish is done via an EMS Device in emsesp.cpp::publish_device_values()
|
// this is called when an MQTT publish is done via an EMS Device in emsesp.cpp::publish_device_values()
|
||||||
void EMSdevice::mqtt_ha_entity_config_create() {
|
void EMSdevice::mqtt_ha_entity_config_create() {
|
||||||
bool create_device_config = !ha_config_done(); // do we need to create the main Discovery device config with this entity?
|
bool create_device_config = !ha_config_done(); // do we need to create the main Discovery device config with this entity?
|
||||||
uint16_t count = 0;
|
uint16_t count = 0;
|
||||||
|
const char * const ** mode_options = nullptr;
|
||||||
|
|
||||||
|
// if it's a thermostat go fetch the list of modes
|
||||||
|
if (device_type() == EMSdevice::DeviceType::THERMOSTAT) {
|
||||||
|
for (auto & dv : devicevalues_) {
|
||||||
|
// make sure it's a type DeviceValueType::ENUM
|
||||||
|
if ((dv.type == DeviceValueType::ENUM) && !strcmp(dv.short_name, FL_(mode)[0])) {
|
||||||
|
// get options
|
||||||
|
mode_options = dv.options;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// check the state of each of the device values
|
// check the state of each of the device values
|
||||||
// create the discovery topic if if hasn't already been created, not a command (like reset) and is active and visible
|
// create the discovery topic if if hasn't already been created, not a command (like reset) and is active and visible
|
||||||
for (auto & dv : devicevalues_) {
|
for (auto & dv : devicevalues_) {
|
||||||
// create climate when we reach the haclimate entity
|
// create climate when we reach the haclimate entity
|
||||||
if (!strcmp(dv.short_name, FL_(haclimate)[0]) && !dv.has_state(DeviceValueState::DV_API_MQTT_EXCLUDE) && dv.has_state(DeviceValueState::DV_ACTIVE)) {
|
if (!strcmp(dv.short_name, FL_(haclimate)[0]) && !dv.has_state(DeviceValueState::DV_API_MQTT_EXCLUDE) && dv.has_state(DeviceValueState::DV_ACTIVE)) {
|
||||||
if (*(int8_t *)(dv.value_p) == 1 && (!dv.has_state(DeviceValueState::DV_HA_CONFIG_CREATED) || dv.has_state(DeviceValueState::DV_HA_CLIMATE_NO_RT))) {
|
int8_t haclimate_value = *(int8_t *)(dv.value_p);
|
||||||
if (Mqtt::publish_ha_climate_config(dv.tag, true, false, dv.min, dv.max)) { // roomTemp
|
bool has_config_created = dv.has_state(DeviceValueState::DV_HA_CONFIG_CREATED);
|
||||||
dv.remove_state(DeviceValueState::DV_HA_CLIMATE_NO_RT);
|
bool has_climate_no_rt = dv.has_state(DeviceValueState::DV_HA_CLIMATE_NO_RT);
|
||||||
dv.add_state(DeviceValueState::DV_HA_CONFIG_CREATED);
|
bool needs_update = !has_config_created || (haclimate_value == 1 ? has_climate_no_rt : !has_climate_no_rt);
|
||||||
count++;
|
|
||||||
}
|
if (needs_update) {
|
||||||
} else if (*(int8_t *)(dv.value_p) == 0
|
bool has_room_temp = (haclimate_value == 1);
|
||||||
&& (!dv.has_state(DeviceValueState::DV_HA_CONFIG_CREATED) || !dv.has_state(DeviceValueState::DV_HA_CLIMATE_NO_RT))) {
|
if (Mqtt::publish_ha_climate_config(dv, has_room_temp, mode_options, false)) {
|
||||||
if (Mqtt::publish_ha_climate_config(dv.tag, false, false, dv.min, dv.max)) { // no roomTemp
|
if (has_room_temp) {
|
||||||
dv.add_state(DeviceValueState::DV_HA_CLIMATE_NO_RT);
|
dv.remove_state(DeviceValueState::DV_HA_CLIMATE_NO_RT);
|
||||||
|
} else {
|
||||||
|
dv.add_state(DeviceValueState::DV_HA_CLIMATE_NO_RT);
|
||||||
|
}
|
||||||
dv.add_state(DeviceValueState::DV_HA_CONFIG_CREATED);
|
dv.add_state(DeviceValueState::DV_HA_CONFIG_CREATED);
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
@@ -2116,7 +2132,7 @@ void EMSdevice::mqtt_ha_entity_config_create() {
|
|||||||
}
|
}
|
||||||
// SRC thermostats mapped to connect/src1/...
|
// SRC thermostats mapped to connect/src1/...
|
||||||
if (dv.tag >= DeviceValueTAG::TAG_SRC1 && dv.tag <= DeviceValueTAG::TAG_SRC16 && !strcmp(dv.short_name, FL_(selRoomTemp)[0])) {
|
if (dv.tag >= DeviceValueTAG::TAG_SRC1 && dv.tag <= DeviceValueTAG::TAG_SRC16 && !strcmp(dv.short_name, FL_(selRoomTemp)[0])) {
|
||||||
Mqtt::publish_ha_climate_config(dv.tag, true, false, dv.min, dv.max);
|
Mqtt::publish_ha_climate_config(dv, true, mode_options, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef EMSESP_STANDALONE
|
#ifndef EMSESP_STANDALONE
|
||||||
|
|||||||
@@ -546,7 +546,7 @@ void Mqtt::ha_status() {
|
|||||||
dev["mf"] = "EMS-ESP";
|
dev["mf"] = "EMS-ESP";
|
||||||
dev["mdl"] = "EMS-ESP";
|
dev["mdl"] = "EMS-ESP";
|
||||||
#ifndef EMSESP_STANDALONE
|
#ifndef EMSESP_STANDALONE
|
||||||
dev["cu"] = "http://" + (EMSESP::system_.ethernet_connected() ? ETH.localIP().toString() : WiFi.localIP().toString());
|
dev["cu"] = std::string("http://") + EMSESP::system_.get_ip_or_hostname().c_str();
|
||||||
#endif
|
#endif
|
||||||
JsonArray ids = dev["ids"].to<JsonArray>();
|
JsonArray ids = dev["ids"].to<JsonArray>();
|
||||||
ids.add(Mqtt::basename());
|
ids.add(Mqtt::basename());
|
||||||
@@ -1103,6 +1103,12 @@ bool Mqtt::publish_ha_sensor_config(uint8_t type, // EMSdev
|
|||||||
// https://github.com/emsesp/EMS-ESP32/discussions/1459#discussioncomment-7694873
|
// https://github.com/emsesp/EMS-ESP32/discussions/1459#discussioncomment-7694873
|
||||||
add_ha_classes(doc.as<JsonObject>(), device_type, type, uom, entity);
|
add_ha_classes(doc.as<JsonObject>(), device_type, type, uom, entity);
|
||||||
|
|
||||||
|
// add origin
|
||||||
|
JsonObject origin_json = doc["o"].to<JsonObject>();
|
||||||
|
origin_json["name"] = "EMS-ESP";
|
||||||
|
origin_json["sw"] = EMSESP_APP_VERSION;
|
||||||
|
origin_json["url"] = "https://emsesp.org";
|
||||||
|
|
||||||
// add dev section
|
// add dev section
|
||||||
if (device_type == EMSdevice::DeviceType::SYSTEM) {
|
if (device_type == EMSdevice::DeviceType::SYSTEM) {
|
||||||
add_ha_dev_section(doc.as<JsonObject>(), nullptr, nullptr, nullptr, nullptr, false);
|
add_ha_dev_section(doc.as<JsonObject>(), nullptr, nullptr, nullptr, nullptr, false);
|
||||||
@@ -1236,7 +1242,12 @@ void Mqtt::add_ha_classes(JsonObject doc, const uint8_t device_type, const uint8
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Mqtt::publish_ha_climate_config(const int8_t tag, const bool has_roomtemp, const bool remove, const int16_t min, const uint32_t max) {
|
// publish the HA climate config
|
||||||
|
// https://www.home-assistant.io/integrations/climate.mqtt/
|
||||||
|
bool Mqtt::publish_ha_climate_config(const DeviceValue & dv, const bool has_roomtemp, const char * const ** mode_options, const bool remove) {
|
||||||
|
int8_t tag = dv.tag;
|
||||||
|
int16_t min = dv.min;
|
||||||
|
uint32_t max = dv.max;
|
||||||
uint8_t hc_num = tag < DeviceValueTAG::TAG_SRC1 ? tag : tag - DeviceValueTAG::TAG_SRC1 + 1;
|
uint8_t hc_num = tag < DeviceValueTAG::TAG_SRC1 ? tag : tag - DeviceValueTAG::TAG_SRC1 + 1;
|
||||||
const char * tagname = tag < DeviceValueTAG::TAG_SRC1 ? "hc" : "src";
|
const char * tagname = tag < DeviceValueTAG::TAG_SRC1 ? "hc" : "src";
|
||||||
const uint8_t device_type = tag < DeviceValueTAG::TAG_SRC1 ? EMSdevice::DeviceType::THERMOSTAT : EMSdevice::DeviceType::CONNECT;
|
const uint8_t device_type = tag < DeviceValueTAG::TAG_SRC1 ? EMSdevice::DeviceType::THERMOSTAT : EMSdevice::DeviceType::CONNECT;
|
||||||
@@ -1353,12 +1364,45 @@ bool Mqtt::publish_ha_climate_config(const int8_t tag, const bool has_roomtemp,
|
|||||||
doc["act_t"] = "~/boiler_data";
|
doc["act_t"] = "~/boiler_data";
|
||||||
doc["act_tpl"] = "{% if value_json.hpactivity=='cooling'%}cooling{%elif value_json.heatingactive=='on'%}heating{%else%}idle{%endif%}";
|
doc["act_tpl"] = "{% if value_json.hpactivity=='cooling'%}cooling{%elif value_json.heatingactive=='on'%}heating{%else%}idle{%endif%}";
|
||||||
|
|
||||||
// the HA climate component only responds to auto, heat and off
|
// map EMS modes to HA climate modes
|
||||||
JsonArray modes = doc["modes"].to<JsonArray>();
|
// EMS modes: auto, manual, heat, off, night, day, nofrost, eco, comfort, cool)
|
||||||
|
// HA supports: auto, off, cool, heat, dry, fan_only
|
||||||
|
if (mode_options != nullptr) {
|
||||||
|
// scan through mode_options and add to modes
|
||||||
|
bool found_auto = false;
|
||||||
|
bool found_heat = false;
|
||||||
|
bool found_off = false;
|
||||||
|
bool found_cool = false;
|
||||||
|
for (uint8_t i = 0; i < Helpers::count_items(mode_options); i++) {
|
||||||
|
const char * mode = mode_options[i][0]; // take EN
|
||||||
|
if (!strcmp(mode, FL_(auto)[0])) {
|
||||||
|
found_auto = true;
|
||||||
|
} else if (!strcmp(mode, FL_(heat)[0])) {
|
||||||
|
found_heat = true;
|
||||||
|
} else if (!strcmp(mode, FL_(off)[0])) {
|
||||||
|
found_off = true;
|
||||||
|
} else if (!strcmp(mode, FL_(cool)[0])) {
|
||||||
|
found_cool = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
modes.add("auto");
|
// only add modes if we found at least one
|
||||||
modes.add("heat");
|
if (found_auto || found_heat || found_off || found_cool) {
|
||||||
modes.add("off");
|
JsonArray modes = doc["modes"].to<JsonArray>();
|
||||||
|
if (found_auto) {
|
||||||
|
modes.add("auto");
|
||||||
|
}
|
||||||
|
if (found_heat) {
|
||||||
|
modes.add("heat");
|
||||||
|
}
|
||||||
|
if (found_off) {
|
||||||
|
modes.add("off");
|
||||||
|
}
|
||||||
|
if (found_cool) {
|
||||||
|
modes.add("cool");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
add_ha_dev_section(doc.as<JsonObject>(), devicename, nullptr, nullptr, nullptr, false); // add dev section
|
add_ha_dev_section(doc.as<JsonObject>(), devicename, nullptr, nullptr, nullptr, false); // add dev section
|
||||||
add_ha_avty_section(doc.as<JsonObject>(), topic_t, seltemp_cond, has_roomtemp ? currtemp_cond : nullptr, hc_mode_cond); // add availability section
|
add_ha_avty_section(doc.as<JsonObject>(), topic_t, seltemp_cond, has_roomtemp ? currtemp_cond : nullptr, hc_mode_cond); // add availability section
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ class Mqtt {
|
|||||||
const bool create_device_config = false);
|
const bool create_device_config = false);
|
||||||
|
|
||||||
static bool publish_system_ha_sensor_config(uint8_t type, const char * name, const char * entity, const uint8_t uom);
|
static bool publish_system_ha_sensor_config(uint8_t type, const char * name, const char * entity, const uint8_t uom);
|
||||||
static bool publish_ha_climate_config(const int8_t tag, const bool has_roomtemp, const bool remove = false, const int16_t min = 5, const uint32_t max = 30);
|
static bool publish_ha_climate_config(const DeviceValue & dv, const bool has_roomtemp, const char * const ** mode_options, const bool remove = false);
|
||||||
|
|
||||||
static void show_topic_handlers(uuid::console::Shell & shell, const uint8_t device_type);
|
static void show_topic_handlers(uuid::console::Shell & shell, const uint8_t device_type);
|
||||||
static void show_mqtt(uuid::console::Shell & shell);
|
static void show_mqtt(uuid::console::Shell & shell);
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ void Shower::create_ha_discovery() {
|
|||||||
doc["stat_t"] = "~/shower_active";
|
doc["stat_t"] = "~/shower_active";
|
||||||
|
|
||||||
Mqtt::add_ha_bool(doc.as<JsonObject>());
|
Mqtt::add_ha_bool(doc.as<JsonObject>());
|
||||||
Mqtt::add_ha_dev_section(doc.as<JsonObject>(), "Shower Sensor", nullptr, nullptr, nullptr, false);
|
Mqtt::add_ha_dev_section(doc.as<JsonObject>(), "Shower Sensors", nullptr, nullptr, nullptr, false);
|
||||||
Mqtt::add_ha_avty_section(doc.as<JsonObject>()); // no conditions
|
Mqtt::add_ha_avty_section(doc.as<JsonObject>()); // no conditions
|
||||||
|
|
||||||
snprintf(topic, sizeof(topic), "binary_sensor/%s/shower_active/config", Mqtt::basename().c_str());
|
snprintf(topic, sizeof(topic), "binary_sensor/%s/shower_active/config", Mqtt::basename().c_str());
|
||||||
@@ -239,7 +239,7 @@ void Shower::create_ha_discovery() {
|
|||||||
doc["dev_cla"] = "duration";
|
doc["dev_cla"] = "duration";
|
||||||
// doc["ent_cat"] = "diagnostic";
|
// doc["ent_cat"] = "diagnostic";
|
||||||
|
|
||||||
Mqtt::add_ha_dev_section(doc.as<JsonObject>(), "Shower Sensor", nullptr, nullptr, nullptr, false);
|
Mqtt::add_ha_dev_section(doc.as<JsonObject>(), "Shower Sensors", nullptr, "EMS-ESP", EMSESP_APP_VERSION, true);
|
||||||
Mqtt::add_ha_avty_section(doc.as<JsonObject>(), "~/shower_data", "value_json.duration is defined");
|
Mqtt::add_ha_avty_section(doc.as<JsonObject>(), "~/shower_data", "value_json.duration is defined");
|
||||||
|
|
||||||
snprintf(topic, sizeof(topic), "sensor/%s/shower_duration/config", Mqtt::basename().c_str());
|
snprintf(topic, sizeof(topic), "sensor/%s/shower_duration/config", Mqtt::basename().c_str());
|
||||||
|
|||||||
@@ -1804,6 +1804,30 @@ std::string System::get_metrics_prometheus() {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// return IP or hostname of the EMS-ESP device
|
||||||
|
String System::get_ip_or_hostname() {
|
||||||
|
String result = "ems-esp";
|
||||||
|
#ifndef EMSESP_STANDALONE
|
||||||
|
EMSESP::esp32React.getNetworkSettingsService()->read([&](NetworkSettings & settings) {
|
||||||
|
if (settings.enableMDNS) {
|
||||||
|
if (EMSESP::system_.ethernet_connected()) {
|
||||||
|
result = ETH.getHostname();
|
||||||
|
} else if (WiFi.status() == WL_CONNECTED) {
|
||||||
|
result = WiFi.getHostname();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// no DNS, use the IP
|
||||||
|
if (EMSESP::system_.ethernet_connected()) {
|
||||||
|
result = ETH.localIP().toString();
|
||||||
|
} else if (WiFi.status() == WL_CONNECTED) {
|
||||||
|
result = WiFi.localIP().toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
#endif
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
// export status information including the device information
|
// export status information including the device information
|
||||||
// http://ems-esp/api/system/info
|
// http://ems-esp/api/system/info
|
||||||
bool System::command_info(const char * value, const int8_t id, JsonObject output) {
|
bool System::command_info(const char * value, const int8_t id, JsonObject output) {
|
||||||
@@ -2371,7 +2395,6 @@ String System::getBBQKeesGatewayDetails(uint8_t detail) {
|
|||||||
// This is to avoid timeouts in callback functions, like calling from a web hook.
|
// This is to avoid timeouts in callback functions, like calling from a web hook.
|
||||||
bool System::uploadFirmwareURL(const char * url) {
|
bool System::uploadFirmwareURL(const char * url) {
|
||||||
#ifndef EMSESP_STANDALONE
|
#ifndef EMSESP_STANDALONE
|
||||||
|
|
||||||
static String saved_url;
|
static String saved_url;
|
||||||
|
|
||||||
if (url && strlen(url) > 0) {
|
if (url && strlen(url) > 0) {
|
||||||
|
|||||||
@@ -92,8 +92,8 @@ class System {
|
|||||||
static bool command_response(const char * value, const int8_t id, JsonObject output);
|
static bool command_response(const char * value, const int8_t id, JsonObject output);
|
||||||
static bool command_service(const char * cmd, const char * value);
|
static bool command_service(const char * cmd, const char * value);
|
||||||
|
|
||||||
static bool get_value_info(JsonObject root, const char * cmd);
|
static bool get_value_info(JsonObject root, const char * cmd);
|
||||||
static void get_value_json(JsonObject output, const std::string & circuit, const std::string & name, JsonVariant val);
|
static void get_value_json(JsonObject output, const std::string & circuit, const std::string & name, JsonVariant val);
|
||||||
static std::string get_metrics_prometheus();
|
static std::string get_metrics_prometheus();
|
||||||
|
|
||||||
#if defined(EMSESP_TEST)
|
#if defined(EMSESP_TEST)
|
||||||
@@ -151,6 +151,8 @@ class System {
|
|||||||
|
|
||||||
static bool readCommand(const char * data);
|
static bool readCommand(const char * data);
|
||||||
|
|
||||||
|
static String get_ip_or_hostname();
|
||||||
|
|
||||||
void dallas_gpio(uint8_t gpio) {
|
void dallas_gpio(uint8_t gpio) {
|
||||||
dallas_gpio_ = gpio;
|
dallas_gpio_ = gpio;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -545,7 +545,7 @@ void TemperatureSensor::publish_values(const bool force) {
|
|||||||
|
|
||||||
// see if we need to create the [devs] discovery section, as this needs only to be done once for all sensors
|
// see if we need to create the [devs] discovery section, as this needs only to be done once for all sensors
|
||||||
if (std::none_of(sensors_.begin(), sensors_.end(), [](const auto & sensor) { return sensor.ha_registered; })) {
|
if (std::none_of(sensors_.begin(), sensors_.end(), [](const auto & sensor) { return sensor.ha_registered; })) {
|
||||||
Mqtt::add_ha_dev_section(config.as<JsonObject>(), "Temperature Sensors", nullptr, nullptr, nullptr, false);
|
Mqtt::add_ha_dev_section(config.as<JsonObject>(), "Temperature Sensors", nullptr, "EMS-ESP", EMSESP_APP_VERSION, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
Mqtt::add_ha_avty_section(config.as<JsonObject>(), stat_t, val_cond);
|
Mqtt::add_ha_avty_section(config.as<JsonObject>(), stat_t, val_cond);
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ class TemperatureSensor {
|
|||||||
char name_[20];
|
char name_[20];
|
||||||
int16_t offset_;
|
int16_t offset_;
|
||||||
|
|
||||||
bool is_system_;
|
bool is_system_;
|
||||||
};
|
};
|
||||||
|
|
||||||
TemperatureSensor() = default;
|
TemperatureSensor() = default;
|
||||||
@@ -124,7 +124,7 @@ class TemperatureSensor {
|
|||||||
return sensors_.size();
|
return sensors_.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool update(const char* id, const char* name, int16_t offset, bool hide = false, bool is_system = false);
|
bool update(const char * id, const char * name, int16_t offset, bool hide = false, bool is_system = false);
|
||||||
|
|
||||||
#if defined(EMSESP_TEST)
|
#if defined(EMSESP_TEST)
|
||||||
void load_test_data();
|
void load_test_data();
|
||||||
@@ -166,7 +166,7 @@ class TemperatureSensor {
|
|||||||
int16_t get_temperature_c(const uint8_t addr[]);
|
int16_t get_temperature_c(const uint8_t addr[]);
|
||||||
uint64_t get_id(const uint8_t addr[]);
|
uint64_t get_id(const uint8_t addr[]);
|
||||||
void get_value_json(JsonObject output, const Sensor & sensor);
|
void get_value_json(JsonObject output, const Sensor & sensor);
|
||||||
void remove_ha_topic(const char* id);
|
void remove_ha_topic(const char * id);
|
||||||
|
|
||||||
std::vector<Sensor, AllocatorPSRAM<Sensor>> sensors_; // our list of active sensors
|
std::vector<Sensor, AllocatorPSRAM<Sensor>> sensors_; // our list of active sensors
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
#define EMSESP_APP_VERSION "3.7.3-dev.35"
|
#define EMSESP_APP_VERSION "3.7.3-dev.36"
|
||||||
|
|||||||
@@ -466,7 +466,7 @@ void WebCustomEntityService::publish(const bool force) {
|
|||||||
Mqtt::add_ha_classes(config.as<JsonObject>(), EMSdevice::DeviceType::SYSTEM, entityItem.value_type, entityItem.uom);
|
Mqtt::add_ha_classes(config.as<JsonObject>(), EMSdevice::DeviceType::SYSTEM, entityItem.value_type, entityItem.uom);
|
||||||
|
|
||||||
if (!ha_created) {
|
if (!ha_created) {
|
||||||
Mqtt::add_ha_dev_section(config.as<JsonObject>(), "Custom Entities", nullptr, nullptr, nullptr, false);
|
Mqtt::add_ha_dev_section(config.as<JsonObject>(), "Custom Entities", nullptr, "EMS-ESP", EMSESP_APP_VERSION, true);
|
||||||
}
|
}
|
||||||
Mqtt::add_ha_avty_section(config.as<JsonObject>(), stat_t, val_cond);
|
Mqtt::add_ha_avty_section(config.as<JsonObject>(), stat_t, val_cond);
|
||||||
|
|
||||||
|
|||||||
@@ -276,7 +276,7 @@ void WebSchedulerService::publish(const bool force) {
|
|||||||
|
|
||||||
Mqtt::add_ha_bool(config.as<JsonObject>());
|
Mqtt::add_ha_bool(config.as<JsonObject>());
|
||||||
if (!ha_created) {
|
if (!ha_created) {
|
||||||
Mqtt::add_ha_dev_section(config.as<JsonObject>(), F_(scheduler), nullptr, nullptr, nullptr, false);
|
Mqtt::add_ha_dev_section(config.as<JsonObject>(), F_(scheduler), nullptr, "EMS-ESP", EMSESP_APP_VERSION, true);
|
||||||
}
|
}
|
||||||
Mqtt::add_ha_avty_section(config.as<JsonObject>(), stat_t, val_cond);
|
Mqtt::add_ha_avty_section(config.as<JsonObject>(), stat_t, val_cond);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user