@iobroker/adapter-react-v5 8.1.1 → 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,6 +690,9 @@ You can find the migration instructions:
690
690
  -->
691
691
 
692
692
  ## Changelog
693
+ ### 8.1.2 (2026-03-05)
694
+ - (@GermanBluefox) Updated packages
695
+
693
696
  ### 8.1.1 (2026-03-02)
694
697
  - (@GermanBluefox) Force react 18
695
698
 
@@ -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":"AAOA,MAAM,UAAU,cAAc,CAAC,GAAiB;IAC5C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,eAAe,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;IAC1D,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO,cAAc,GAAG,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,aAAa,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,aAAa,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,eAAe,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IACD,OAAO,cAAc,GAAG,CAAC,OAAO,EAAE,CAAC;AACvC,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,WAAW,CAAC,GAAW;IACnC,MAAM,MAAM,GAAiB;QACzB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;KACd,CAAC;IACF,IAAI,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B;IACtD,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;QACtB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;IACxD,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;QACrB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB;IACxD,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACjE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;QACrB,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,yCAAyC;IACnE,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,0BAA0B;QAC1B,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,6BAA6B;IACvD,CAAC;SAAM,CAAC;QACJ,uBAAuB;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;YAC3B,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBACrB,IACI,MAAM,CAAC,IAAI,KAAK,KAAK;oBACrB,MAAM,CAAC,IAAI,KAAK,GAAG;oBACnB,MAAM,CAAC,IAAI,KAAK,KAAK;oBACrB,MAAM,CAAC,IAAI,KAAK,IAAI;oBACpB,MAAM,CAAC,IAAI,KAAK,IAAI;oBACpB,MAAM,CAAC,IAAI,KAAK,MAAM;oBACtB,MAAM,CAAC,IAAI,KAAK,MAAM;oBACtB,MAAM,CAAC,IAAI,KAAK,QAAQ;oBACxB,MAAM,CAAC,IAAI,KAAK,GAAG,EACrB,CAAC;oBACC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;gBAC1B,CAAC;qBAAM,IACH,MAAM,CAAC,IAAI,KAAK,QAAQ;oBACxB,MAAM,CAAC,IAAI,KAAK,QAAQ;oBACxB,MAAM,CAAC,IAAI,KAAK,MAAM;oBACtB,MAAM,CAAC,IAAI,KAAK,KAAK;oBACrB,MAAM,CAAC,IAAI,KAAK,MAAM,EACxB,CAAC;oBACC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpD,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;YAC1B,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,eAAe;YACf,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;YACrB,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAC3B,GAA2C,EAC3C,IAA0B,EAC1B,SAAkB;IAElB,SAAS,GAAG,SAAS,IAAI,CAAC,CAAC;IAC3B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7C,OAAO,GAAG,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,eAAe,CAC3B,GAA2C,EAC3C,IAA0B,EAC1B,KAAU,EACV,SAAkB;IAElB,SAAS,GAAG,SAAS,IAAI,CAAC,CAAC;IAC3B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC;QAC7B,OAAO,GAAG,CAAC;IACf,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;IAC7E,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAA0B,EAAE,MAAkB;IAC3E,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1B,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,GAAG,GAAuC,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpF,OAAO,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACvB,MAAM,KAAK,GAAsC,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpF,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAQ,KAA6B,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;aACpB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;aACjC,IAAI,CAAC,IAAI,CAAC,EAAE;YACT,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC/F,IAAI,CAAC;oBACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACL,SAAS;gBACb,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;IACX,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC","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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iobroker/adapter-react-v5",
3
- "version": "8.1.1",
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",