@iobroker/adapter-react-v5 8.1.0 → 8.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -690,7 +690,10 @@ You can find the migration instructions:
690
690
  -->
691
691
 
692
692
  ## Changelog
693
- ### 8.1.0 (2026-03-02)
693
+ ### 8.1.2 (2026-03-05)
694
+ - (@GermanBluefox) Updated packages
695
+
696
+ ### 8.1.1 (2026-03-02)
694
697
  - (@GermanBluefox) Force react 18
695
698
 
696
699
  ### 8.0.21 (2026-02-10)
@@ -105,7 +105,7 @@ export function iobUriParse(uri) {
105
105
  return result;
106
106
  }
107
107
  export function getAttrInObject(obj, path, _position) {
108
- _position = _position || 0;
108
+ _position ||= 0;
109
109
  if (obj === undefined || obj === null || !path) {
110
110
  return obj;
111
111
  }
@@ -118,7 +118,7 @@ export function getAttrInObject(obj, path, _position) {
118
118
  return undefined;
119
119
  }
120
120
  export function setAttrInObject(obj, path, value, _position) {
121
- _position = _position || 0;
121
+ _position ||= 0;
122
122
  if (obj === undefined || obj === null || !path) {
123
123
  return value;
124
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IobUri.js","sourceRoot":"./src/","sources":["Components/IobUri.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Connection } from '../index';\n\nexport type IobUri = string;\nexport type IobUriType = 'object' | 'state' | 'file' | 'http' | 'base64';\n\nexport type IobUriParsed = { type: IobUriType; address: string; path?: string };\n\nexport function iobUriToString(uri: IobUriParsed): IobUri {\n if (uri.type === 'object') {\n return `iobobject://${uri.address}/${uri.path || ''}`;\n }\n if (uri.type === 'state') {\n return `iobstate://${uri.address}`;\n }\n if (uri.type === 'file') {\n return `iobfile://${uri.address}/${uri.path || ''}`;\n }\n if (uri.type === 'http') {\n return uri.address;\n }\n if (uri.path?.includes('/')) {\n return `iobfile://${uri.address}/${uri.path}`;\n }\n if (uri.path) {\n return `iobobject://${uri.address}/${uri.path}`;\n }\n return `iobstate://${uri.address}`;\n}\n\n/** Parse ioBroker URI */\nexport function iobUriParse(uri: string): IobUriParsed {\n const result: IobUriParsed = {\n type: 'object',\n address: '',\n };\n if (uri.startsWith('iobobject://')) {\n result.type = 'object';\n uri = uri.replace('iobobject://', '');\n const parts = uri.split('/');\n result.address = parts[0];\n result.path = parts[1]; // native.schemas.myObject\n } else if (uri.startsWith('iobstate://')) {\n result.type = 'state';\n uri = uri.replace('iobstate://', '');\n const parts = uri.split('/');\n result.address = parts[0];\n result.path = parts[1]; // val, ts, lc, from, q, ...\n } else if (uri.startsWith('iobfile://')) {\n result.type = 'file';\n uri = uri.replace('iobfile://', '');\n const parts = uri.split('/');\n result.address = parts.shift();\n result.path = parts.join('/'); // main/img/hello.png\n } else if (uri.startsWith('http://') || uri.startsWith('https://')) {\n result.type = 'http';\n result.address = uri; // https://googlw.com/path/uri?lakds=7889\n } else if (uri.startsWith('data:')) {\n // data:image/jpeg;base64,\n result.type = 'base64';\n result.address = uri; // data:image/jpeg;base64,...\n } else {\n // no protocol provided\n const parts = uri.split('/');\n if (parts.length === 2) {\n result.address = parts[0];\n result.path = parts[1];\n if (result.path.includes('.')) {\n result.type = 'object';\n } else if (result.path) {\n if (\n result.path === 'val' ||\n result.path === 'q' ||\n result.path === 'ack' ||\n result.path === 'ts' ||\n result.path === 'lc' ||\n result.path === 'from' ||\n result.path === 'user' ||\n result.path === 'expire' ||\n result.path === 'c'\n ) {\n result.type = 'state';\n } else if (\n result.path === 'common' ||\n result.path === 'native' ||\n result.path === 'from' ||\n result.path === 'acl' ||\n result.path === 'type'\n ) {\n result.type = 'object';\n } else {\n throw new Error(`Unknown path: ${result.path}`);\n }\n } else {\n result.type = 'state';\n }\n } else if (parts.length === 1) {\n result.address = parts[0];\n result.type = 'state';\n } else {\n // it is a file\n result.address = parts.shift();\n result.type = 'file';\n result.path = parts.join('/');\n }\n }\n return result;\n}\n\nexport function getAttrInObject(\n obj: Record<string, any> | null | undefined,\n path: string[] | undefined,\n _position?: number,\n): any {\n _position = _position || 0;\n if (obj === undefined || obj === null || !path) {\n return obj;\n }\n if (path.length - 1 === _position) {\n return obj[path[_position]];\n }\n if (typeof obj === 'object') {\n return getAttrInObject(obj[path[_position]], path, _position + 1);\n }\n return undefined;\n}\n\nexport function setAttrInObject(\n obj: Record<string, any> | null | undefined,\n path: string[] | undefined,\n value: any,\n _position?: number,\n): any {\n _position = _position || 0;\n if (obj === undefined || obj === null || !path) {\n return value;\n }\n if (path.length - 1 === _position) {\n obj[path[_position]] = value;\n return obj;\n }\n if (typeof obj === 'object') {\n return setAttrInObject(obj[path[_position]], path, value, _position + 1);\n }\n}\n\nexport async function iobUriRead(uri: IobUri | IobUriParsed, socket: Connection): Promise<any> {\n if (typeof uri === 'string') {\n uri = iobUriParse(uri);\n }\n if (uri.type === 'object') {\n const obj: ioBroker.Object | null | undefined = await socket.getObject(uri.address);\n return getAttrInObject(obj, uri.path?.split('.'));\n }\n if (uri.type === 'state') {\n const state: ioBroker.State | null | undefined = await socket.getState(uri.address);\n if (!uri.path) {\n return state;\n }\n return (state as Record<string, any>)?.[uri.path];\n }\n if (uri.type === 'file') {\n return await socket.readFile(uri.address, uri.path, true);\n }\n if (uri.type === 'http') {\n return fetch(uri.address)\n .then(response => response.text())\n .then(text => {\n if ((text.startsWith('{') && text.endsWith('}')) || (text.startsWith('[') && text.endsWith(']'))) {\n try {\n return JSON.parse(text);\n } catch {\n // ignore\n }\n }\n return text;\n });\n }\n throw new Error(`Unknown type: ${uri.type}`);\n}\n"]}
1
+ {"version":3,"file":"IobUri.js","sourceRoot":"./src/","sources":["Components/IobUri.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Connection } from '../index';\n\nexport type IobUri = string;\nexport type IobUriType = 'object' | 'state' | 'file' | 'http' | 'base64';\n\nexport type IobUriParsed = { type: IobUriType; address: string; path?: string };\n\nexport function iobUriToString(uri: IobUriParsed): IobUri {\n if (uri.type === 'object') {\n return `iobobject://${uri.address}/${uri.path || ''}`;\n }\n if (uri.type === 'state') {\n return `iobstate://${uri.address}`;\n }\n if (uri.type === 'file') {\n return `iobfile://${uri.address}/${uri.path || ''}`;\n }\n if (uri.type === 'http') {\n return uri.address;\n }\n if (uri.path?.includes('/')) {\n return `iobfile://${uri.address}/${uri.path}`;\n }\n if (uri.path) {\n return `iobobject://${uri.address}/${uri.path}`;\n }\n return `iobstate://${uri.address}`;\n}\n\n/** Parse ioBroker URI */\nexport function iobUriParse(uri: string): IobUriParsed {\n const result: IobUriParsed = {\n type: 'object',\n address: '',\n };\n if (uri.startsWith('iobobject://')) {\n result.type = 'object';\n uri = uri.replace('iobobject://', '');\n const parts = uri.split('/');\n result.address = parts[0];\n result.path = parts[1]; // native.schemas.myObject\n } else if (uri.startsWith('iobstate://')) {\n result.type = 'state';\n uri = uri.replace('iobstate://', '');\n const parts = uri.split('/');\n result.address = parts[0];\n result.path = parts[1]; // val, ts, lc, from, q, ...\n } else if (uri.startsWith('iobfile://')) {\n result.type = 'file';\n uri = uri.replace('iobfile://', '');\n const parts = uri.split('/');\n result.address = parts.shift();\n result.path = parts.join('/'); // main/img/hello.png\n } else if (uri.startsWith('http://') || uri.startsWith('https://')) {\n result.type = 'http';\n result.address = uri; // https://googlw.com/path/uri?lakds=7889\n } else if (uri.startsWith('data:')) {\n // data:image/jpeg;base64,\n result.type = 'base64';\n result.address = uri; // data:image/jpeg;base64,...\n } else {\n // no protocol provided\n const parts = uri.split('/');\n if (parts.length === 2) {\n result.address = parts[0];\n result.path = parts[1];\n if (result.path.includes('.')) {\n result.type = 'object';\n } else if (result.path) {\n if (\n result.path === 'val' ||\n result.path === 'q' ||\n result.path === 'ack' ||\n result.path === 'ts' ||\n result.path === 'lc' ||\n result.path === 'from' ||\n result.path === 'user' ||\n result.path === 'expire' ||\n result.path === 'c'\n ) {\n result.type = 'state';\n } else if (\n result.path === 'common' ||\n result.path === 'native' ||\n result.path === 'from' ||\n result.path === 'acl' ||\n result.path === 'type'\n ) {\n result.type = 'object';\n } else {\n throw new Error(`Unknown path: ${result.path}`);\n }\n } else {\n result.type = 'state';\n }\n } else if (parts.length === 1) {\n result.address = parts[0];\n result.type = 'state';\n } else {\n // it is a file\n result.address = parts.shift();\n result.type = 'file';\n result.path = parts.join('/');\n }\n }\n return result;\n}\n\nexport function getAttrInObject(\n obj: Record<string, any> | null | undefined,\n path: string[] | undefined,\n _position?: number,\n): any {\n _position ||= 0;\n if (obj === undefined || obj === null || !path) {\n return obj;\n }\n if (path.length - 1 === _position) {\n return obj[path[_position]];\n }\n if (typeof obj === 'object') {\n return getAttrInObject(obj[path[_position]], path, _position + 1);\n }\n return undefined;\n}\n\nexport function setAttrInObject(\n obj: Record<string, any> | null | undefined,\n path: string[] | undefined,\n value: any,\n _position?: number,\n): any {\n _position ||= 0;\n if (obj === undefined || obj === null || !path) {\n return value;\n }\n if (path.length - 1 === _position) {\n obj[path[_position]] = value;\n return obj;\n }\n if (typeof obj === 'object') {\n return setAttrInObject(obj[path[_position]], path, value, _position + 1);\n }\n}\n\nexport async function iobUriRead(uri: IobUri | IobUriParsed, socket: Connection): Promise<any> {\n if (typeof uri === 'string') {\n uri = iobUriParse(uri);\n }\n if (uri.type === 'object') {\n const obj: ioBroker.Object | null | undefined = await socket.getObject(uri.address);\n return getAttrInObject(obj, uri.path?.split('.'));\n }\n if (uri.type === 'state') {\n const state: ioBroker.State | null | undefined = await socket.getState(uri.address);\n if (!uri.path) {\n return state;\n }\n return (state as Record<string, any>)?.[uri.path];\n }\n if (uri.type === 'file') {\n return await socket.readFile(uri.address, uri.path, true);\n }\n if (uri.type === 'http') {\n return fetch(uri.address)\n .then(response => response.text())\n .then(text => {\n if ((text.startsWith('{') && text.endsWith('}')) || (text.startsWith('[') && text.endsWith(']'))) {\n try {\n return JSON.parse(text);\n } catch {\n // ignore\n }\n }\n return text;\n });\n }\n throw new Error(`Unknown type: ${uri.type}`);\n}\n"]}
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Löschen",
38
38
  "ra_Clear filter": "Filter löschen",
39
39
  "ra_Clear icon": "Symbol löschen",
40
+ "ra_Click to show": "Zum Anzeigen klicken",
40
41
  "ra_Clone current row": "Aktuelle Zeile klonen",
41
42
  "ra_Close": "Schließen",
42
43
  "ra_Collapse all nodes": "Alle Knoten zuklappen",
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Delete",
38
38
  "ra_Clear filter": "Clear filter",
39
39
  "ra_Clear icon": "Clear icon",
40
+ "ra_Click to show": "Click to show",
40
41
  "ra_Clone current row": "Clone current row",
41
42
  "ra_Close": "Close",
42
43
  "ra_Collapse all nodes": "Collapse all nodes",
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Borrar",
38
38
  "ra_Clear filter": "Filtro claro",
39
39
  "ra_Clear icon": "Icono claro",
40
+ "ra_Click to show": "Haga clic para mostrar",
40
41
  "ra_Clone current row": "Clonar fila actual",
41
42
  "ra_Close": "Cerca",
42
43
  "ra_Collapse all nodes": "Contraer todos los nodos",
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Effacer",
38
38
  "ra_Clear filter": "Effacer le filtre",
39
39
  "ra_Clear icon": "Effacer l'icône",
40
+ "ra_Click to show": "Cliquez pour afficher",
40
41
  "ra_Clone current row": "Cloner la ligne actuelle",
41
42
  "ra_Close": "Fermer",
42
43
  "ra_Collapse all nodes": "Réduire tous les nœuds",
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Elimina",
38
38
  "ra_Clear filter": "Filtro pulito",
39
39
  "ra_Clear icon": "Cancella icona",
40
+ "ra_Click to show": "Clicca per mostrare",
40
41
  "ra_Clone current row": "Clona riga corrente",
41
42
  "ra_Close": "Vicino",
42
43
  "ra_Collapse all nodes": "Comprimi tutti i nodi",
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Verwijderen",
38
38
  "ra_Clear filter": "Filter wissen",
39
39
  "ra_Clear icon": "Pictogram wissen",
40
+ "ra_Click to show": "Klik om te tonen",
40
41
  "ra_Clone current row": "Kloon de huidige rij",
41
42
  "ra_Close": "Dichtbij",
42
43
  "ra_Collapse all nodes": "Vouw alle knooppunten samen",
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Kasować",
38
38
  "ra_Clear filter": "Czysty filtr",
39
39
  "ra_Clear icon": "Wyczyść ikonę",
40
+ "ra_Click to show": "Kliknij, aby pokazać",
40
41
  "ra_Clone current row": "Sklonuj bieżący wiersz",
41
42
  "ra_Close": "Blisko",
42
43
  "ra_Collapse all nodes": "Zwiń wszystkie węzły",
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Excluir",
38
38
  "ra_Clear filter": "Filtro limpo",
39
39
  "ra_Clear icon": "Ícone de limpeza",
40
+ "ra_Click to show": "Clique para mostrar",
40
41
  "ra_Clone current row": "Clonar linha atual",
41
42
  "ra_Close": "Perto",
42
43
  "ra_Collapse all nodes": "Recolher todos os nós",
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Удалить",
38
38
  "ra_Clear filter": "Очистить фильтр",
39
39
  "ra_Clear icon": "Очистить значок",
40
+ "ra_Click to show": "Нажмите, чтобы показать",
40
41
  "ra_Clone current row": "Клонировать текущую строку",
41
42
  "ra_Close": "Закрыть",
42
43
  "ra_Collapse all nodes": "Свернуть все узлы",
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Видалити",
38
38
  "ra_Clear filter": "Очистити фільтр",
39
39
  "ra_Clear icon": "Очистити значок",
40
+ "ra_Click to show": "Натисніть, щоб показати",
40
41
  "ra_Clone current row": "Клонувати поточний рядок",
41
42
  "ra_Close": "Закрити",
42
43
  "ra_Collapse all nodes": "Згорнути всі вузли",
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "删除",
38
38
  "ra_Clear filter": "清除筛选",
39
39
  "ra_Clear icon": "清除图标",
40
+ "ra_Click to show": "点击显示",
40
41
  "ra_Clone current row": "克隆当前行",
41
42
  "ra_Close": "关",
42
43
  "ra_Collapse all nodes": "收合所有节点",
package/i18n/de.json CHANGED
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Löschen",
38
38
  "ra_Clear filter": "Filter löschen",
39
39
  "ra_Clear icon": "Symbol löschen",
40
+ "ra_Click to show": "Zum Anzeigen klicken",
40
41
  "ra_Clone current row": "Aktuelle Zeile klonen",
41
42
  "ra_Close": "Schließen",
42
43
  "ra_Collapse all nodes": "Alle Knoten zuklappen",
package/i18n/en.json CHANGED
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Delete",
38
38
  "ra_Clear filter": "Clear filter",
39
39
  "ra_Clear icon": "Clear icon",
40
+ "ra_Click to show": "Click to show",
40
41
  "ra_Clone current row": "Clone current row",
41
42
  "ra_Close": "Close",
42
43
  "ra_Collapse all nodes": "Collapse all nodes",
package/i18n/es.json CHANGED
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Borrar",
38
38
  "ra_Clear filter": "Filtro claro",
39
39
  "ra_Clear icon": "Icono claro",
40
+ "ra_Click to show": "Haga clic para mostrar",
40
41
  "ra_Clone current row": "Clonar fila actual",
41
42
  "ra_Close": "Cerca",
42
43
  "ra_Collapse all nodes": "Contraer todos los nodos",
package/i18n/fr.json CHANGED
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Effacer",
38
38
  "ra_Clear filter": "Effacer le filtre",
39
39
  "ra_Clear icon": "Effacer l'icône",
40
+ "ra_Click to show": "Cliquez pour afficher",
40
41
  "ra_Clone current row": "Cloner la ligne actuelle",
41
42
  "ra_Close": "Fermer",
42
43
  "ra_Collapse all nodes": "Réduire tous les nœuds",
package/i18n/it.json CHANGED
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Elimina",
38
38
  "ra_Clear filter": "Filtro pulito",
39
39
  "ra_Clear icon": "Cancella icona",
40
+ "ra_Click to show": "Clicca per mostrare",
40
41
  "ra_Clone current row": "Clona riga corrente",
41
42
  "ra_Close": "Vicino",
42
43
  "ra_Collapse all nodes": "Comprimi tutti i nodi",
package/i18n/nl.json CHANGED
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Verwijderen",
38
38
  "ra_Clear filter": "Filter wissen",
39
39
  "ra_Clear icon": "Pictogram wissen",
40
+ "ra_Click to show": "Klik om te tonen",
40
41
  "ra_Clone current row": "Kloon de huidige rij",
41
42
  "ra_Close": "Dichtbij",
42
43
  "ra_Collapse all nodes": "Vouw alle knooppunten samen",
package/i18n/pl.json CHANGED
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Kasować",
38
38
  "ra_Clear filter": "Czysty filtr",
39
39
  "ra_Clear icon": "Wyczyść ikonę",
40
+ "ra_Click to show": "Kliknij, aby pokazać",
40
41
  "ra_Clone current row": "Sklonuj bieżący wiersz",
41
42
  "ra_Close": "Blisko",
42
43
  "ra_Collapse all nodes": "Zwiń wszystkie węzły",
package/i18n/pt.json CHANGED
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Excluir",
38
38
  "ra_Clear filter": "Filtro limpo",
39
39
  "ra_Clear icon": "Ícone de limpeza",
40
+ "ra_Click to show": "Clique para mostrar",
40
41
  "ra_Clone current row": "Clonar linha atual",
41
42
  "ra_Close": "Perto",
42
43
  "ra_Collapse all nodes": "Recolher todos os nós",
package/i18n/ru.json CHANGED
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Удалить",
38
38
  "ra_Clear filter": "Очистить фильтр",
39
39
  "ra_Clear icon": "Очистить значок",
40
+ "ra_Click to show": "Нажмите, чтобы показать",
40
41
  "ra_Clone current row": "Клонировать текущую строку",
41
42
  "ra_Close": "Закрыть",
42
43
  "ra_Collapse all nodes": "Свернуть все узлы",
package/i18n/uk.json CHANGED
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "Видалити",
38
38
  "ra_Clear filter": "Очистити фільтр",
39
39
  "ra_Clear icon": "Очистити значок",
40
+ "ra_Click to show": "Натисніть, щоб показати",
40
41
  "ra_Clone current row": "Клонувати поточний рядок",
41
42
  "ra_Close": "Закрити",
42
43
  "ra_Collapse all nodes": "Згорнути всі вузли",
package/i18n/zh-cn.json CHANGED
@@ -37,6 +37,7 @@
37
37
  "ra_Clear": "删除",
38
38
  "ra_Clear filter": "清除筛选",
39
39
  "ra_Clear icon": "清除图标",
40
+ "ra_Click to show": "点击显示",
40
41
  "ra_Clone current row": "克隆当前行",
41
42
  "ra_Close": "关",
42
43
  "ra_Collapse all nodes": "收合所有节点",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iobroker/adapter-react-v5",
3
- "version": "8.1.0",
3
+ "version": "8.1.2",
4
4
  "description": "React components to develop ioBroker interfaces with react.",
5
5
  "author": {
6
6
  "name": "bluefox",
@@ -56,19 +56,19 @@
56
56
  "@emotion/styled": "^11.14.1",
57
57
  "@iobroker/js-controller-common": "^7.1.0",
58
58
  "@iobroker/js-controller-common-db": "^7.1.0",
59
- "@iobroker/socket-client": "5.0.3",
59
+ "@iobroker/socket-client": "5.1.1",
60
60
  "@iobroker/type-detector": "^5.0.10",
61
61
  "@iobroker/types": "^7.1.0",
62
62
  "@mui/icons-material": "^6.5.0",
63
63
  "@mui/material": "^6.5.0",
64
- "@sentry/browser": "^10.38.0",
65
- "cronstrue": "^3.11.0",
64
+ "@sentry/browser": "^10.42.0",
65
+ "cronstrue": "^3.13.0",
66
66
  "file-selector": "^2.1.2",
67
67
  "react-color": "^2.19.3",
68
68
  "react-colorful": "^5.6.1",
69
69
  "react-cropper": "^2.3.3",
70
- "react-dropzone": "^14.4.0",
71
- "react-icons": "^5.5.0",
70
+ "react-dropzone": "^15.0.0",
71
+ "react-icons": "^5.6.0",
72
72
  "react-inlinesvg": "^4.2.0"
73
73
  },
74
74
  "peerDependencies": {
@@ -76,11 +76,11 @@
76
76
  "react-dom": "^18.3.1"
77
77
  },
78
78
  "devDependencies": {
79
- "@alcalzone/release-script": "^5.0.0",
80
- "@alcalzone/release-script-plugin-license": "^4.0.0",
79
+ "@alcalzone/release-script": "^5.1.1",
80
+ "@alcalzone/release-script-plugin-license": "^5.1.1",
81
81
  "@iobroker/build-tools": "^3.0.1",
82
82
  "@iobroker/eslint-config": "^2.2.0",
83
- "@types/node": "^25.2.2",
83
+ "@types/node": "^25.3.3",
84
84
  "@types/react": "^18.3.28",
85
85
  "@types/react-color": "^3.0.13",
86
86
  "ajv": "^8.17.1",