@iobroker/adapter-react-v5 3.1.8 → 3.1.11
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/Components/TextWithIcon.js +0 -1
- package/Components/TextWithIcon.js.map +1 -1
- package/Connection.js +33 -23
- package/Connection.js.map +1 -1
- package/README.md +7 -1
- package/i18n/de.json +2 -1
- package/i18n/en.json +2 -1
- package/i18n/es.json +2 -1
- package/i18n/fr.json +2 -1
- package/i18n/it.json +2 -1
- package/i18n/nl.json +2 -1
- package/i18n/pl.json +2 -1
- package/i18n/pt.json +2 -1
- package/i18n/ru.json +2 -1
- package/i18n/zh-cn.json +2 -1
- package/package.json +1 -1
|
@@ -129,7 +129,6 @@ var TextWithIcon = function TextWithIcon(props) {
|
|
|
129
129
|
};
|
|
130
130
|
|
|
131
131
|
TextWithIcon.propTypes = {
|
|
132
|
-
t: _propTypes["default"].func.isRequired,
|
|
133
132
|
lang: _propTypes["default"].string.isRequired,
|
|
134
133
|
themeType: _propTypes["default"].string,
|
|
135
134
|
value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]).isRequired,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextWithIcon.js","names":["styles","theme","div","borderRadius","padding","lineHeight","whiteSpace","overflow","display","alignItems","icon","width","height","marginRight","verticalAlign","text","textOverflow","TextWithIcon","props","item","value","prefix","removePrefix","list","options","Array","isArray","_item","find","obj","_id","name","Utils","getObjectNameFromObj","lang","replace","common","color","style","border","invertColor","getInvertedColor","themeType","undefined","backgroundColor","Object","assign","clsx","className","classes","moreClasses","root","title","propTypes","
|
|
1
|
+
{"version":3,"file":"TextWithIcon.js","names":["styles","theme","div","borderRadius","padding","lineHeight","whiteSpace","overflow","display","alignItems","icon","width","height","marginRight","verticalAlign","text","textOverflow","TextWithIcon","props","item","value","prefix","removePrefix","list","options","Array","isArray","_item","find","obj","_id","name","Utils","getObjectNameFromObj","lang","replace","common","color","style","border","invertColor","getInvertedColor","themeType","undefined","backgroundColor","Object","assign","clsx","className","classes","moreClasses","root","title","propTypes","PropTypes","string","isRequired","oneOfType","object","array","withStyles"],"sources":["TextWithIcon.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Icon from './Icon';\nimport Utils from './Utils';\n\nconst styles = theme => ({\n div: {\n borderRadius: 3,\n padding: '0 3px',\n lineHeight: '20px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center'\n },\n icon: {\n width: 16,\n height: 16,\n marginRight: 8,\n verticalAlign: 'middle',\n },\n text: {\n display: 'inline-block',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n }\n});\n\nconst TextWithIcon = props => {\n let item = props.value;\n let prefix = props.removePrefix || '';\n\n if (typeof item === 'string') {\n const list = props.list || props.options;\n if (props.list) {\n if (Array.isArray(list)) {\n const _item = list.find(obj => obj._id === prefix + item);\n if (_item) {\n item = {\n name: Utils.getObjectNameFromObj(_item, props.lang).replace('system.group.', ''),\n value: _item._id,\n icon: _item.common?.icon,\n color: _item.common?.color,\n };\n } else {\n item = {\n name: item,\n value: prefix + item,\n };\n }\n } else if (list[prefix + item]) {\n item = {\n name: Utils.getObjectNameFromObj(list[prefix + item], props.lang).replace('system.group.', ''),\n value: list[prefix + item]._id,\n icon: list[prefix + item].common?.icon,\n color: list[prefix + item].common?.color,\n };\n } else {\n item = {\n name: item,\n value: prefix + item,\n };\n }\n } else {\n item = {\n name: item,\n value: prefix + item,\n };\n }\n } else if (!item || typeof item !== 'object') {\n item = {\n name: '',\n value: '',\n };\n } else {\n item = {\n name: Utils.getObjectNameFromObj(item, props.lang)\n .replace('system.group.', '')\n .replace('system.user.', '')\n .replace('enum.rooms.', '')\n .replace('enum.functions.', ''),\n value: item._id,\n icon: item.common?.icon,\n color: item.common?.color,\n };\n }\n\n const style = item?.color ? {\n border:`1px solid ${Utils.invertColor(item?.color)}`,\n color: Utils.getInvertedColor(item?.color, props.themeType, true) || undefined,\n backgroundColor: item?.color\n } : {};\n\n return <div style={Object.assign({}, props.style, style)} className={Utils.clsx(props.className, props.classes.div, props.moreClasses?.root)} title={props.title || item.value}>\n {item?.icon ? <Icon src={item?.icon} className={Utils.clsx(props.classes.icon, props.moreClasses?.icon)} /> : null}<div className={Utils.clsx(props.classes.text, props.moreClasses?.text)}>{item?.name}</div>\n </div>;\n}\n\nTextWithIcon.propTypes = {\n lang: PropTypes.string.isRequired,\n themeType: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n list: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), // one of \"list\"(Array) or \"options\"(object) is required\n options: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), // one of \"list\"(Array) or \"options\"(object) is required\n className: PropTypes.string,\n style: PropTypes.object,\n title: PropTypes.string,\n removePrefix: PropTypes.string,\n moreClasses: PropTypes.object,\n};\n\nexport default withStyles(styles)(TextWithIcon);"],"mappings":"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"}
|
package/Connection.js
CHANGED
|
@@ -221,43 +221,53 @@ var Connection = /*#__PURE__*/function () {
|
|
|
221
221
|
|
|
222
222
|
var host = this.props.host;
|
|
223
223
|
var port = this.props.port;
|
|
224
|
-
var protocol = this.props.protocol.replace(':', '');
|
|
224
|
+
var protocol = this.props.protocol.replace(':', '');
|
|
225
|
+
var path = window.location.pathname;
|
|
225
226
|
|
|
226
|
-
if (window.
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
227
|
+
if (window.location.hostname === 'iobroker.net' || window.location.hostname === 'iobroker.pro') {
|
|
228
|
+
path = '';
|
|
229
|
+
} else {
|
|
230
|
+
// if web adapter, socket io could be on other port or even host
|
|
231
|
+
if (window.socketUrl) {
|
|
232
|
+
var parts = window.socketUrl.split(':');
|
|
233
|
+
host = parts[0] || host;
|
|
234
|
+
port = parts[1] || port;
|
|
235
|
+
|
|
236
|
+
if (host.includes('://')) {
|
|
237
|
+
parts = host.split('://');
|
|
238
|
+
protocol = parts[0];
|
|
239
|
+
host = parts[1];
|
|
240
|
+
}
|
|
241
|
+
} // get current path
|
|
230
242
|
|
|
231
|
-
if (host.includes('://')) {
|
|
232
|
-
parts = host.split('://');
|
|
233
|
-
protocol = parts[0];
|
|
234
|
-
host = parts[1];
|
|
235
|
-
}
|
|
236
|
-
} // get current path
|
|
237
243
|
|
|
244
|
+
var pos = path.lastIndexOf('/');
|
|
238
245
|
|
|
239
|
-
|
|
240
|
-
|
|
246
|
+
if (pos !== -1) {
|
|
247
|
+
path = path.substring(0, pos + 1);
|
|
248
|
+
}
|
|
241
249
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
250
|
+
if (Connection.isWeb()) {
|
|
251
|
+
// remove one level, like echarts, vis, .... We have here: '/echarts/'
|
|
252
|
+
var _parts = path.split('/');
|
|
245
253
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
var _parts = path.split('/');
|
|
254
|
+
if (_parts.length > 2) {
|
|
255
|
+
_parts.pop();
|
|
249
256
|
|
|
250
|
-
|
|
251
|
-
_parts.pop();
|
|
257
|
+
_parts.pop();
|
|
252
258
|
|
|
253
|
-
|
|
259
|
+
path = _parts.join('/');
|
|
254
260
|
|
|
255
|
-
|
|
261
|
+
if (!path.endsWith('/')) {
|
|
262
|
+
path += '/';
|
|
263
|
+
}
|
|
264
|
+
}
|
|
256
265
|
}
|
|
257
266
|
}
|
|
258
267
|
|
|
259
268
|
var url = port ? "".concat(protocol, "://").concat(host, ":").concat(port).concat(path) : "".concat(protocol, "://").concat(host).concat(path);
|
|
260
269
|
this._socket = window.io.connect(url, {
|
|
270
|
+
path: path.endsWith('/') ? path + 'socket.io' : path + '/socket.io',
|
|
261
271
|
query: 'ws=true',
|
|
262
272
|
name: this.props.name,
|
|
263
273
|
timeout: this.props.ioTimeout
|
package/Connection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Connection.js","names":["PROGRESS","CONNECTING","CONNECTED","OBJECTS_LOADED","READY","PERMISSION_ERROR","NOT_CONNECTED","TIMEOUT_FOR_ADMIN4","ERRORS","fixAdminUI","obj","common","adminUI","noConfig","config","jsonConfig","materialize","jsonCustom","custom","supportCustoms","materializeTab","adminTab","tab","console","debug","_id","replace","JSON","stringify","Connection","props","protocol","window","location","host","hostname","autoSubscribes","autoSubscribeLog","port","isWeb","ioTimeout","Math","max","cmdTimeout","doNotLoadAllObjects","undefined","doNotLoadACL","states","objects","acl","firstConnect","waitForRestart","systemLang","connected","_waitForFirstConnection","Promise","resolve","_waitForFirstConnectionResolve","statesSubscribes","objectsSubscribes","onProgress","onError","err","error","loaded","loadTimer","loadCounter","admin5only","onConnectionHandlers","onLogHandlers","_promises","log","text","warn","info","silly","startSocket","io","registerSocketOnLoad","scriptLoadCounter","setTimeout","alert","_socket","socketUrl","parts","split","includes","path","pathname","pos","lastIndexOf","substring","length","pop","join","url","connect","query","name","timeout","on","noTimeout","getVersion","then","version","major","minor","patch","v","parseInt","_authTimer","onPreConnect","emit","isOk","isSecure","reload","_subscribe","forEach","cb","subscribed","authenticate","message","onLog","_err","toString","operation","type","id","objectChange","state","stateChange","onCmdStdoutHandler","onCmdStderrHandler","exitCode","onCmdExitHandler","clearTimeout","onConnect","_getUserPermissions","vendorPrefix","getCompactSystemConfig","getSystemConfig","data","systemConfig","language","navigator","userLanguage","onLanguage","getObjects","onReady","e","search","hash","binary","reg","indexOf","RegExp","cbs","push","getBinaryState","base64","Object","keys","splice","oldObj","changed","_rev","test","onObjectChange","task","hasOwnProperty","disableProgressUpdate","reject","res","STATES_LOADED","val","update","isEnable","isEnabled","maintenance","parse","from","user","ts","adapter","getObjectView","items","map","instances","adapters","objs","oldId","newId","setObject","delObject","_renameGroups","newName","getGroups","groups","groupsToRename","filter","group","startsWith","find","instance","command","result","handler","_enum","startkey","endkey","_res","i","rows","value","start","end","cert","getObject","certs","certificates","c","_cert","toLowerCase","m","t","trim","linesNumber","lines","files","fileName","btoa","Uint8Array","reduce","byte","String","fromCharCode","oldName","folderName","hosts","doc","item","users","timeoutMs","args","repo","installed","cmd","cmdId","feature","features","checkFeatureSupported","typeOfDiag","pattern","options","values","stepIgnore","sessionId","password","address","ipOrHostName","ip","IPs4","family","IPs6","hardware","networkInterfaces","eth","num","encryptedText","serverName","match","webName","filename","entries","exists","category","notifications","isStrict","controller","AbortController","abort","fetch","signal","json","ratings","currentInstance","namespace","compactAdapters","compactInstances","installedCompact","systemConfigCommon","repoCompact","hostsCompact","uuid","level","adapterName","PropTypes","func"],"sources":["Connection.js"],"sourcesContent":["/**\n * Copyright 2020-2022, bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport PropTypes from 'prop-types';\n\n/** Possible progress states. */\nexport const PROGRESS = {\n /** The socket is connecting. */\n CONNECTING: 0,\n /** The socket is successfully connected. */\n CONNECTED: 1,\n /** All objects are loaded. */\n OBJECTS_LOADED: 2,\n /** The socket is ready for use. */\n READY: 3\n};\n\nconst PERMISSION_ERROR = 'permissionError';\nconst NOT_CONNECTED = 'notConnectedError';\nconst TIMEOUT_FOR_ADMIN4 = 1300;\n\nexport const ERRORS = {\n PERMISSION_ERROR,\n NOT_CONNECTED\n};\n\nfunction fixAdminUI(obj) {\n if (obj && obj.common && !obj.common.adminUI) {\n if (obj.common.noConfig) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.config = 'none';\n } else if (obj.common.jsonConfig) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.config = 'json';\n } else if (obj.common.materialize) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.config = 'materialize';\n } else {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.config = 'html';\n }\n\n if (obj.common.jsonCustom) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.custom = 'json';\n } else if (obj.common.supportCustoms) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.custom = 'json';\n }\n\n if (obj.common.materializeTab && obj.common.adminTab) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.tab = 'materialize';\n } else if (obj.common.adminTab) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.tab = 'html';\n }\n\n obj.common.adminUI && console.debug(`Please add to \"${obj._id.replace(/\\.\\d+$/, '')}\" common.adminUI=${JSON.stringify(obj.common.adminUI)}`);\n }\n return obj;\n}\n\nclass Connection {\n /**\n * @param {import('./types').ConnectionProps} props\n */\n constructor(props) {\n props = props || { protocol: window.location.protocol, host: window.location.hostname };\n this.props = props;\n\n this.autoSubscribes = this.props.autoSubscribes || [];\n this.autoSubscribeLog = this.props.autoSubscribeLog;\n\n this.props.protocol = this.props.protocol || window.location.protocol;\n this.props.host = this.props.host || window.location.hostname;\n this.props.port = this.props.port || (window.location.port === '3000' ? (Connection.isWeb() ? 8082 : 8081) : window.location.port);\n this.props.ioTimeout = Math.max(this.props.ioTimeout || 20000, 20000);\n this.props.cmdTimeout = Math.max(this.props.cmdTimeout || 5000, 5000);\n\n // breaking change. Do not load all objects by default is true\n this.doNotLoadAllObjects = this.props.doNotLoadAllObjects === undefined ? true : this.props.doNotLoadAllObjects;\n this.doNotLoadACL = this.props.doNotLoadACL === undefined ? true : this.props.doNotLoadACL;\n\n /** @type {Record<string, ioBroker.State>} */\n this.states = {};\n this.objects = null;\n this.acl = null;\n this.firstConnect = true;\n this.waitForRestart = false;\n /** @type {ioBroker.Languages} */\n this.systemLang = 'en';\n this.connected = false;\n this._waitForFirstConnection = new Promise(resolve => { this._waitForFirstConnectionResolve = resolve });\n\n /** @type {Record<string, { reg: RegExp; cbs: ioBroker.StateChangeHandler[]}>} */\n this.statesSubscribes = {}; // subscribe for states\n\n /** @type {Record<string, { reg: RegExp; cbs: import('./types').ObjectChangeHandler[]}>} */\n this.objectsSubscribes = {}; // subscribe for objects\n this.onProgress = this.props.onProgress || function () { };\n this.onError = this.props.onError || function (err) { console.error(err); };\n this.loaded = false;\n this.loadTimer = null;\n this.loadCounter = 0;\n this.admin5only = this.props.admin5only || false;\n\n /** @type {((connected: boolean) => void)[]} */\n this.onConnectionHandlers = [];\n /** @type {((message: string) => void)[]} */\n this.onLogHandlers = [];\n\n /** @type {Record<string, Promise<any>>} */\n this._promises = {};\n\n this.log.error = text => this.log(text, 'error');\n this.log.warn = text => this.log(text, 'warn');\n this.log.info = text => this.log(text, 'info');\n this.log.debug = text => this.log(text, 'debug');\n this.log.silly = text => this.log(text, 'silly');\n\n this.startSocket();\n }\n\n /**\n * Checks if this connection is running in a web adapter and not in an admin.\n * @returns {boolean} True if running in a web adapter or in a socketio adapter.\n */\n static isWeb() {\n return window.adapterName === 'material' ||\n window.adapterName === 'vis' ||\n window.adapterName === 'echarts-show' ||\n window.socketUrl !== undefined;\n }\n\n /**\n * Starts the socket.io connection.\n * @returns {void}\n */\n startSocket() {\n // if socket io is not yet loaded\n if (typeof window.io === 'undefined') {\n // if in index.html the onLoad function not defined\n if (typeof window.registerSocketOnLoad !== 'function') {\n // poll if loaded\n this.scriptLoadCounter = this.scriptLoadCounter || 0;\n this.scriptLoadCounter++;\n\n if (this.scriptLoadCounter < 30) {\n // wait till the script loaded\n setTimeout(() => this.startSocket(), 100);\n return;\n } else {\n window.alert('Cannot load socket.io.js!');\n }\n } else {\n // register on load\n window.registerSocketOnLoad(() => this.startSocket());\n }\n return;\n } else {\n // socket was initialized, do not repeat\n if (this._socket) {\n return;\n }\n }\n\n let host = this.props.host;\n let port = this.props.port;\n let protocol = this.props.protocol.replace(':', '');\n\n // if web adapter, socket io could be on other port or even host\n if (window.socketUrl) {\n let parts = window.socketUrl.split(':');\n host = parts[0] || host;\n port = parts[1] || port;\n if (host.includes('://')) {\n parts = host.split('://');\n protocol = parts[0];\n host = parts[1];\n }\n }\n // get current path\n let path = window.location.pathname;\n const pos = path.lastIndexOf('/');\n if (pos !== -1) {\n path = path.substring(0, pos + 1);\n }\n\n if (Connection.isWeb()) {\n // remove one level, like echarts, vis, .... We have here: '/echarts/'\n const parts = path.split('/');\n if (parts.length > 2) {\n parts.pop();\n parts.pop();\n path = parts.join('/');\n }\n }\n\n const url = port ? `${protocol}://${host}:${port}${path}` : `${protocol}://${host}${path}`;\n\n this._socket = window.io.connect(\n url,\n {\n query: 'ws=true',\n name: this.props.name,\n timeout: this.props.ioTimeout\n }\n );\n\n this._socket.on('connect', noTimeout => {\n // If the user is not admin it takes some time to install the handlers, because all rights must be checked\n if (noTimeout !== true) {\n setTimeout(() =>\n this.getVersion()\n .then(info => {\n const [major, minor, patch] = info.version.split('.');\n const v = parseInt(major, 10) * 10000 + parseInt(minor, 10) * 100 + parseInt(patch, 10);\n if (v < 40102) {\n this._authTimer = null;\n // possible this is old version of admin\n this.onPreConnect(false, false);\n } else {\n this._socket.emit('authenticate', (isOk, isSecure) => this.onPreConnect(isOk, isSecure));\n }\n }), 500);\n } else {\n // iobroker websocket waits, till all handlers are installed\n this._socket.emit('authenticate', (isOk, isSecure) => this.onPreConnect(isOk, isSecure));\n }\n });\n\n this._socket.on('reconnect', () => {\n this.onProgress(PROGRESS.READY);\n this.connected = true;\n\n if (this.waitForRestart) {\n window.location.reload(false);\n } else {\n this._subscribe(true);\n this.onConnectionHandlers.forEach(cb => cb(true));\n }\n });\n\n this._socket.on('disconnect', () => {\n this.connected = false;\n this.subscribed = false;\n this.onProgress(PROGRESS.CONNECTING);\n this.onConnectionHandlers.forEach(cb => cb(false));\n });\n\n this._socket.on('reauthenticate', () =>\n this.authenticate());\n\n this._socket.on('log', message => {\n this.props.onLog && this.props.onLog(message);\n this.onLogHandlers.forEach(cb => cb(message));\n });\n\n this._socket.on('error', err => {\n let _err = err || '';\n if (typeof _err.toString !== 'function') {\n _err = JSON.stringify(_err);\n console.error(`Received strange error: ${_err}`);\n }\n _err = _err.toString();\n if (_err.includes('User not authorized')) {\n this.authenticate();\n } else {\n window.alert(`Socket Error: ${err}`);\n }\n });\n\n this._socket.on('connect_error', err =>\n console.error(`Connect error: ${err}`));\n\n this._socket.on('permissionError', err =>\n this.onError({ message: 'no permission', operation: err.operation, type: err.type, id: (err.id || '') }));\n\n this._socket.on('objectChange', (id, obj) =>\n setTimeout(() => this.objectChange(id, obj), 0));\n\n this._socket.on('stateChange', (id, state) =>\n setTimeout(() => this.stateChange(id, state), 0));\n\n this._socket.on('cmdStdout', (id, text) =>\n this.onCmdStdoutHandler && this.onCmdStdoutHandler(id, text));\n\n this._socket.on('cmdStderr', (id, text) =>\n this.onCmdStderrHandler && this.onCmdStderrHandler(id, text));\n\n this._socket.on('cmdExit', (id, exitCode) =>\n this.onCmdExitHandler && this.onCmdExitHandler(id, exitCode));\n }\n\n /**\n * Called internally.\n * @private\n * @param {boolean} isOk\n * @param {boolean} isSecure\n */\n onPreConnect(isOk, isSecure) {\n if (this._authTimer) {\n clearTimeout(this._authTimer);\n this._authTimer = null;\n }\n\n this.connected = true;\n this.isSecure = isSecure;\n\n if (this.waitForRestart) {\n window.location.reload(false);\n } else {\n if (this.firstConnect) {\n // retry strategy\n this.loadTimer = setTimeout(() => {\n this.loadTimer = null;\n this.loadCounter++;\n if (this.loadCounter < 10) {\n this.onConnect();\n }\n }, 1000);\n\n if (!this.loaded) {\n this.onConnect();\n }\n } else {\n this.onProgress(PROGRESS.READY);\n }\n\n this._subscribe(true);\n this.onConnectionHandlers.forEach(cb => cb(true));\n }\n\n if (this._waitForFirstConnectionResolve) {\n this._waitForFirstConnectionResolve();\n this._waitForFirstConnectionResolve = null;\n }\n }\n\n /**\n * Checks if the socket is connected.\n * @returns {boolean} true if connected.\n */\n isConnected() {\n return this.connected;\n }\n\n /**\n * Checks if the socket is connected.\n * @returns {Promise<void>} Promise resolves if once connected.\n */\n waitForFirstConnection() {\n return this._waitForFirstConnection;\n }\n\n /**\n * Called internally.\n * @private\n */\n _getUserPermissions(cb) {\n if (this.doNotLoadACL) {\n return cb && cb();\n } else {\n this._socket.emit('getUserPermissions', cb);\n }\n }\n\n /**\n * Called internally.\n * @private\n */\n onConnect() {\n this._getUserPermissions((err, acl) => {\n if (err) {\n return this.onError('Cannot read user permissions: ' + err);\n } else\n if (!this.doNotLoadACL) {\n if (this.loaded) {\n return;\n }\n this.loaded = true;\n clearTimeout(this.loadTimer);\n this.loadTimer = null;\n\n this.onProgress(PROGRESS.CONNECTED);\n this.firstConnect = false;\n\n this.acl = acl;\n }\n\n // Read system configuration\n return (this.admin5only && !window.vendorPrefix ? this.getCompactSystemConfig() : this.getSystemConfig())\n .then(data => {\n if (this.doNotLoadACL) {\n if (this.loaded) {\n return undefined;\n }\n this.loaded = true;\n clearTimeout(this.loadTimer);\n this.loadTimer = null;\n\n this.onProgress(PROGRESS.CONNECTED);\n this.firstConnect = false;\n }\n\n this.systemConfig = data;\n if (this.systemConfig && this.systemConfig.common) {\n this.systemLang = this.systemConfig.common.language;\n } else {\n this.systemLang = window.navigator.userLanguage || window.navigator.language;\n\n if (this.systemLang !== 'en' && this.systemLang !== 'de' && this.systemLang !== 'ru') {\n this.systemConfig.common.language = 'en';\n this.systemLang = 'en';\n }\n }\n\n this.props.onLanguage && this.props.onLanguage(this.systemLang);\n\n if (!this.doNotLoadAllObjects) {\n return this.getObjects()\n .then(() => {\n this.onProgress(PROGRESS.READY);\n this.props.onReady && this.props.onReady(this.objects);\n });\n } else {\n this.objects = this.admin5only ? {} : { 'system.config': data };\n this.onProgress(PROGRESS.READY);\n this.props.onReady && this.props.onReady(this.objects);\n }\n return undefined;\n })\n .catch(e => this.onError('Cannot read system config: ' + e));\n });\n }\n\n /**\n * Called internally.\n * @private\n */\n authenticate() {\n if (window.location.search.includes('&href=')) {\n window.location = `${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}${window.location.hash}`;\n } else {\n window.location = `${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${window.location.search}${window.location.hash}`;\n }\n }\n\n /**\n * Subscribe to changes of the given state.\n * @param {string} id The ioBroker state ID.\n * @param {ioBroker.StateChangeHandler} cb The callback.\n */\n /**\n * Subscribe to changes of the given state.\n * @param {string} id The ioBroker state ID.\n * @param {boolean} binary Set to true if the given state is binary and requires Base64 decoding.\n * @param {ioBroker.StateChangeHandler} cb The callback.\n */\n subscribeState(id, binary, cb) {\n if (typeof binary === 'function') {\n cb = binary;\n binary = false;\n }\n\n if (!this.statesSubscribes[id]) {\n let reg = id\n .replace(/\\./g, '\\\\.')\n .replace(/\\*/g, '.*')\n .replace(/\\(/g, '\\\\(')\n .replace(/\\)/g, '\\\\)')\n .replace(/\\+/g, '\\\\+')\n .replace(/\\[/g, '\\\\[');\n\n if (reg.indexOf('*') === -1) {\n reg += '$';\n }\n this.statesSubscribes[id] = { reg: new RegExp(reg), cbs: [] };\n this.statesSubscribes[id].cbs.push(cb);\n if (this.connected) {\n this._socket.emit('subscribe', id);\n }\n } else {\n !this.statesSubscribes[id].cbs.includes(cb) && this.statesSubscribes[id].cbs.push(cb);\n }\n if (typeof cb === 'function' && this.connected) {\n if (binary) {\n this.getBinaryState(id)\n .then(base64 => cb(id, base64))\n .catch(e => console.error(`Cannot getForeignStates \"${id}\": ${JSON.stringify(e)}`));\n } else {\n if (Connection.isWeb()) {\n this._socket.emit('getStates', id, (err, states) => {\n err && console.error(`Cannot getForeignStates \"${id}\": ${JSON.stringify(err)}`);\n states && Object.keys(states).forEach(id => cb(id, states[id]));\n });\n } else {\n this._socket.emit('getForeignStates', id, (err, states) => {\n err && console.error(`Cannot getForeignStates \"${id}\": ${JSON.stringify(err)}`);\n states && Object.keys(states).forEach(id => cb(id, states[id]));\n });\n }\n }\n }\n }\n\n /**\n * Unsubscribes all callbacks from changes of the given state.\n * @param {string} id The ioBroker state ID.\n */\n /**\n * Unsubscribes the given callback from changes of the given state.\n * @param {string} id The ioBroker state ID.\n * @param {ioBroker.StateChangeHandler} cb The callback.\n */\n unsubscribeState(id, cb) {\n if (this.statesSubscribes[id]) {\n if (cb) {\n const pos = this.statesSubscribes[id].cbs.indexOf(cb);\n pos !== -1 && this.statesSubscribes[id].cbs.splice(pos, 1);\n } else {\n this.statesSubscribes[id].cbs = [];\n }\n\n if (!this.statesSubscribes[id].cbs || !this.statesSubscribes[id].cbs.length) {\n delete this.statesSubscribes[id];\n this.connected && this._socket.emit('unsubscribe', id);\n }\n }\n }\n\n /**\n * Subscribe to changes of the given object.\n * @param {string} id The ioBroker object ID.\n * @param {import('./types').ObjectChangeHandler} cb The callback.\n * @returns {Promise<void>}\n */\n subscribeObject(id, cb) {\n if (!this.objectsSubscribes[id]) {\n let reg = id.replace(/\\./g, '\\\\.').replace(/\\*/g, '.*');\n if (!reg.includes('*')) {\n reg += '$';\n }\n this.objectsSubscribes[id] = { reg: new RegExp(reg), cbs: [] };\n this.objectsSubscribes[id].cbs.push(cb);\n this.connected && this._socket.emit('subscribeObjects', id);\n } else {\n !this.objectsSubscribes[id].cbs.includes(cb) && this.objectsSubscribes[id].cbs.push(cb);\n }\n return Promise.resolve();\n }\n\n /**\n * Unsubscribes all callbacks from changes of the given object.\n * @param {string} id The ioBroker object ID.\n * @returns {Promise<void>}\n */\n /**\n * Unsubscribes the given callback from changes of the given object.\n * @param {string} id The ioBroker object ID.\n * @param {import('./types').ObjectChangeHandler} cb The callback.\n * @returns {Promise<void>}\n */\n unsubscribeObject(id, cb) {\n if (this.objectsSubscribes[id]) {\n if (cb) {\n const pos = this.objectsSubscribes[id].cbs.indexOf(cb);\n pos !== -1 && this.objectsSubscribes[id].cbs.splice(pos, 1);\n } else {\n this.objectsSubscribes[id].cbs = [];\n }\n\n if (this.connected && (!this.objectsSubscribes[id].cbs || !this.objectsSubscribes[id].cbs.length)) {\n delete this.objectsSubscribes[id];\n this.connected && this._socket.emit('unsubscribeObjects', id);\n }\n }\n return Promise.resolve();\n }\n\n /**\n * Called internally.\n * @private\n * @param {string} id\n * @param {ioBroker.Object | null | undefined} obj\n */\n objectChange(id, obj) {\n // update main.objects cache\n if (!this.objects) {\n return;\n }\n\n /** @type {import(\"./types\").OldObject} */\n let oldObj;\n\n let changed = false;\n if (obj) {\n if (obj._rev && this.objects[id]) {\n this.objects[id]._rev = obj._rev;\n }\n\n if (this.objects[id]) {\n oldObj = { _id: id, type: this.objects[id].type };\n }\n\n if (!this.objects[id] || JSON.stringify(this.objects[id]) !== JSON.stringify(obj)) {\n this.objects[id] = obj;\n changed = true;\n }\n } else if (this.objects[id]) {\n oldObj = { _id: id, type: this.objects[id].type };\n delete this.objects[id];\n changed = true;\n }\n\n Object.keys(this.objectsSubscribes).forEach(_id => {\n if (_id === id || this.objectsSubscribes[_id].reg.test(id)) {\n //@ts-ignore\n this.objectsSubscribes[_id].cbs.forEach(cb => cb(id, obj, oldObj));\n }\n });\n\n if (changed && this.props.onObjectChange) {\n this.props.onObjectChange(id, obj);\n }\n }\n\n /**\n * Called internally.\n * @private\n * @param {string} id\n * @param {ioBroker.State | null | undefined} state\n */\n stateChange(id, state) {\n for (const task in this.statesSubscribes) {\n if (this.statesSubscribes.hasOwnProperty(task) && this.statesSubscribes[task].reg.test(id)) {\n this.statesSubscribes[task].cbs.forEach(cb => cb(id, state));\n }\n }\n }\n\n /**\n * Gets all states.\n * @param {boolean} disableProgressUpdate don't call onProgress() when done\n * @returns {Promise<Record<string, ioBroker.State>>}\n */\n getStates(disableProgressUpdate) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getStates', (err, res) => {\n this.states = res;\n //@ts-ignore\n !disableProgressUpdate && this.onProgress(PROGRESS.STATES_LOADED);\n return err ? reject(err) : resolve(this.states);\n }));\n }\n\n /**\n * Gets the given state.\n * @param {string} id The state ID.\n * @returns {Promise<ioBroker.State | null | undefined>}\n */\n getState(id) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getState', id, (err, state) => err ? reject(err) : resolve(state)));\n }\n\n /**\n * Gets the given binary state.\n * @param {string} id The state ID.\n * @returns {Promise<Buffer | undefined>}\n */\n getBinaryState(id) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n // the data will come in base64\n return new Promise((resolve, reject) =>\n this._socket.emit('getBinaryState', id, (err, state) => err ? reject(err) : resolve(state)));\n }\n\n /**\n * Sets the given binary state.\n * @param {string} id The state ID.\n * @param {string} base64 The Base64 encoded binary data.\n * @returns {Promise<void>}\n */\n setBinaryState(id, base64) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n // the data will come in base64\n return new Promise((resolve, reject) =>\n this._socket.emit('setBinaryState', id, base64, err => err ? reject(err) : resolve()));\n }\n\n /**\n * Sets the given state value.\n * @param {string} id The state ID.\n * @param {string | number | boolean | ioBroker.State | ioBroker.SettableState | null} val The state value.\n * @returns {Promise<void>}\n */\n setState(id, val) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('setState', id, val, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Gets all objects.\n * @param {(objects?: Record<string, ioBroker.Object>) => void} update Callback that is executed when all objects are retrieved.\n * @returns {void}\n */\n /**\n * Gets all objects.\n * @param {boolean} update Set to true to retrieve all objects from the server (instead of using the local cache).\n * @param {boolean} disableProgressUpdate don't call onProgress() when done\n * @returns {Promise<Record<string, ioBroker.Object>> | undefined}\n */\n getObjects(update, disableProgressUpdate) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n } else {\n return new Promise((resolve, reject) => {\n if (!update && this.objects) {\n return resolve(this.objects);\n }\n\n this._socket.emit(Connection.isWeb() ? 'getObjects' : 'getAllObjects', (err, res) => {\n this.objects = res;\n disableProgressUpdate && this.onProgress(PROGRESS.OBJECTS_LOADED);\n err ? reject(err) : resolve(this.objects);\n });\n });\n }\n }\n\n /**\n * Called internally.\n * @private\n * @param {boolean} isEnable\n */\n _subscribe(isEnable) {\n if (isEnable && !this.subscribed) {\n this.subscribed = true;\n this.autoSubscribes.forEach(id => this._socket.emit('subscribeObjects', id));\n // re subscribe objects\n Object.keys(this.objectsSubscribes).forEach(id => this._socket.emit('subscribeObjects', id));\n // re-subscribe logs\n this.autoSubscribeLog && this._socket.emit('requireLog', true);\n // re subscribe states\n Object.keys(this.statesSubscribes).forEach(id => this._socket.emit('subscribe', id));\n } else if (!isEnable && this.subscribed) {\n this.subscribed = false;\n // un-subscribe objects\n this.autoSubscribes.forEach(id => this._socket.emit('unsubscribeObjects', id));\n Object.keys(this.objectsSubscribes).forEach(id => this._socket.emit('unsubscribeObjects', id));\n // un-subscribe logs\n this.autoSubscribeLog && this._socket.emit('requireLog', false);\n\n // un-subscribe states\n Object.keys(this.statesSubscribes).forEach(id => this._socket.emit('unsubscribe', id));\n }\n }\n\n /**\n * Requests log updates.\n * @param {boolean} isEnabled Set to true to get logs.\n * @returns {Promise<void>}\n */\n requireLog(isEnabled) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('requireLog', isEnabled, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Deletes the given object.\n * @param {string} id The object ID.\n * @param {boolean} maintenance Force deletion of non conform IDs.\n * @returns {Promise<void>}\n */\n delObject(id, maintenance) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('delObject', id, { maintenance: !!maintenance }, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Deletes the given object and all its children.\n * @param {string} id The object ID.\n * @param {boolean} maintenance Force deletion of non conform IDs.\n * @returns {Promise<void>}\n */\n delObjects(id, maintenance) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('delObjects', id, {maintenance: !!maintenance}, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Sets the object.\n * @param {string} id The object ID.\n * @param {ioBroker.SettableObject} obj The object.\n * @returns {Promise<void>}\n */\n setObject(id, obj) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (!obj) {\n return Promise.reject('Null object is not allowed');\n }\n\n obj = JSON.parse(JSON.stringify(obj));\n\n if (obj.hasOwnProperty('from')) {\n delete obj.from;\n }\n if (obj.hasOwnProperty('user')) {\n delete obj.user;\n }\n if (obj.hasOwnProperty('ts')) {\n delete obj.ts;\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('setObject', id, obj, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Gets the object with the given id from the server.\n * @param {string} id The object ID.\n * @returns {ioBroker.GetObjectPromise} The object.\n */\n getObject(id) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getObject', id, (err, obj) =>\n err ? reject(err) : resolve(obj)));\n }\n\n /**\n * Get all adapter instances.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n /**\n * Get all instances of the given adapter.\n * @param {string} adapter The name of the adapter.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getAdapterInstances(adapter, update) {\n if (typeof adapter === 'boolean') {\n update = adapter;\n adapter = '';\n }\n adapter = adapter || '';\n\n if (!update && this._promises['instances_' + adapter]) {\n return this._promises['instances_' + adapter];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['instances_' + adapter] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n timeout = null;\n this.getObjectView(\n `system.adapter.${adapter ? adapter + '.' : ''}`,\n `system.adapter.${adapter ? adapter + '.' : ''}\\u9999`,\n 'instance'\n )\n .then(items => resolve(Object.keys(items).map(id => fixAdminUI(items[id]))))\n .catch(e => reject(e));\n }, TIMEOUT_FOR_ADMIN4);\n\n this._socket.emit('getAdapterInstances', adapter, (err, instances) => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n return err ? reject(err) : resolve(instances);\n }\n });\n });\n\n return this._promises['instances_' + adapter];\n }\n\n /**\n * Get all adapters.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n /**\n * Get adapters with the given name.\n * @param {string} adapter The name of the adapter.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getAdapters(adapter, update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n if (typeof adapter === 'boolean') {\n update = adapter;\n adapter = '';\n }\n\n adapter = adapter || '';\n\n if (!update && this._promises['adapter_' + adapter]) {\n return this._promises['adapter_' + adapter];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['adapter_' + adapter] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n timeout = null;\n this.getObjectView(\n `system.adapter.${adapter}.`,\n `system.adapter.${adapter}.\\u9999`,\n 'adapter'\n )\n .then(items => resolve(Object.keys(items).map(id => fixAdminUI(items[id]))))\n .catch(e => reject(e));\n }, TIMEOUT_FOR_ADMIN4);\n\n this._socket.emit('getAdapters', adapter, (err, adapters) => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n return err ? reject(err) : resolve(adapters);\n }\n });\n });\n\n return this._promises['adapter_' + adapter];\n }\n\n /**\n * Called internally.\n * @private\n * @param {any[]} objs\n * @param {(err?: any) => void} cb\n */\n _renameGroups(objs, cb) {\n if (!objs || !objs.length) {\n cb && cb();\n } else {\n let obj = objs.pop();\n let oldId = obj._id;\n obj._id = obj.newId;\n delete obj.newId;\n\n this.setObject(obj._id, obj)\n .then(() => this.delObject(oldId))\n .then(() => setTimeout(() => this._renameGroups(objs, cb), 0))\n .catch(err => cb && cb(err));\n }\n }\n\n /**\n * Rename a group.\n * @param {string} id The id.\n * @param {string} newId The new id.\n * @param {string | { [lang in ioBroker.Languages]?: string; }} newName The new name.\n */\n renameGroup(id, newId, newName) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n return this.getGroups(true)\n .then(groups => {\n if (groups.length) {\n // find all elements\n const groupsToRename = groups\n .filter(group => group._id.startsWith(id + '.'));\n\n groupsToRename.forEach(group => group.newId = newId + group._id.substring(id.length));\n\n return new Promise((resolve, reject) =>\n this._renameGroups(groupsToRename, err => err ? reject(err) : resolve()))\n .then(() => {\n const obj = groups.find(group => group._id === id);\n\n if (obj) {\n obj._id = newId;\n if (newName !== undefined) {\n obj.common = obj.common || {};\n obj.common.name = newName;\n }\n\n return this.setObject(obj._id, obj)\n .then(() => this.delObject(id));\n }\n });\n }\n });\n }\n\n /**\n * Sends a message to a specific instance or all instances of some specific adapter.\n * @param {string} instance The instance to send this message to.\n * @param {string} [command] Command name of the target instance.\n * @param {ioBroker.MessagePayload} [data] The message data to send.\n * @returns {Promise<ioBroker.Message | undefined>}\n */\n sendTo(instance, command, data) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise(resolve =>\n this._socket.emit('sendTo', instance, command, data, result =>\n resolve(result)));\n }\n\n /**\n * Extend an object and create it if it might not exist.\n * @param {string} id The id.\n * @param {ioBroker.PartialObject} obj The object.\n */\n extendObject(id, obj) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n obj = JSON.parse(JSON.stringify(obj));\n\n if (obj.hasOwnProperty('from')) {\n delete obj.from;\n }\n if (obj.hasOwnProperty('user')) {\n delete obj.user;\n }\n if (obj.hasOwnProperty('ts')) {\n delete obj.ts;\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('extendObject', id, obj, err => err ? reject(err) : resolve()));\n }\n\n /**\n * Register a handler for log messages.\n * @param {(message: string) => void} handler The handler.\n */\n registerLogHandler(handler) {\n !this.onLogHandlers.includes(handler) && this.onLogHandlers.push(handler);\n }\n\n /**\n * Unregister a handler for log messages.\n * @param {(message: string) => void} handler The handler.\n */\n unregisterLogHandler(handler) {\n const pos = this.onLogHandlers.indexOf(handler);\n pos !== -1 && this.onLogHandlers.splice(pos, 1);\n }\n\n /**\n * Register a handler for the connection state.\n * @param {(connected: boolean) => void} handler The handler.\n */\n registerConnectionHandler(handler) {\n !this.onConnectionHandlers.includes(handler) && this.onConnectionHandlers.push(handler);\n }\n\n /**\n * Unregister a handler for the connection state.\n * @param {(connected: boolean) => void} handler The handler.\n */\n unregisterConnectionHandler(handler) {\n const pos = this.onConnectionHandlers.indexOf(handler);\n pos !== -1 && this.onConnectionHandlers.splice(pos, 1);\n }\n\n /**\n * Set the handler for standard output of a command.\n * @param {(id: string, text: string) => void} handler The handler.\n */\n registerCmdStdoutHandler(handler) {\n this.onCmdStdoutHandler = handler;\n }\n\n /**\n * Unset the handler for standard output of a command.\n * @param {(id: string, text: string) => void} handler The handler.\n */\n unregisterCmdStdoutHandler(handler) {\n this.onCmdStdoutHandler = null;\n }\n\n /**\n * Set the handler for standard error of a command.\n * @param {(id: string, text: string) => void} handler The handler.\n */\n registerCmdStderrHandler(handler) {\n this.onCmdStderrHandler = handler;\n }\n\n /**\n * Unset the handler for standard error of a command.\n * @param {(id: string, text: string) => void} handler The handler.\n */\n unregisterCmdStderrHandler(handler) {\n this.onCmdStderrHandler = null;\n }\n\n /**\n * Set the handler for exit of a command.\n * @param {(id: string, exitCode: number) => void} handler The handler.\n */\n registerCmdExitHandler(handler) {\n this.onCmdExitHandler = handler;\n }\n\n /**\n * Unset the handler for exit of a command.\n * @param {(id: string, exitCode: number) => void} handler The handler.\n */\n unregisterCmdExitHandler(handler) {\n this.onCmdExitHandler = null;\n }\n\n /**\n * Get all enums with the given name.\n * @param {string} [_enum] The name of the enum\n * @param {boolean} [update] Force update.\n * @returns {Promise<Record<string, ioBroker.Object>>}\n */\n getEnums(_enum, update) {\n if (!update && this._promises['enums_' + (_enum || 'all')]) {\n return this._promises['enums_' + (_enum || 'all')];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['enums_' + (_enum || 'all')] = new Promise((resolve, reject) => {\n this._socket.emit('getObjectView', 'system', 'enum', { startkey: 'enum.' + (_enum || ''), endkey: 'enum.' + (_enum ? (_enum + '.') : '') + '\\u9999' }, (err, res) => {\n if (!err && res) {\n const _res = {};\n for (let i = 0; i < res.rows.length; i++) {\n if (_enum && res.rows[i].id === 'enum.' + _enum) {\n continue;\n }\n _res[res.rows[i].id] = res.rows[i].value;\n }\n resolve(_res);\n } else {\n reject(err);\n }\n });\n });\n\n return this._promises['enums_' + (_enum || 'all')];\n }\n\n /**\n * Query a predefined object view.\n * @param {string} start The start ID.\n * @param {string} end The end ID.\n * @param {string} type The type of object.\n * @returns {Promise<Record<string, ioBroker.Object>>}\n */\n getObjectView(start, end, type) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n start = start || '';\n end = end || '\\u9999';\n\n return new Promise((resolve, reject) => {\n this._socket.emit('getObjectView', 'system', type, { startkey: start, endkey: end }, (err, res) => {\n if (!err) {\n const _res = {};\n if (res && res.rows) {\n for (let i = 0; i < res.rows.length; i++) {\n _res[res.rows[i].id] = res.rows[i].value;\n }\n }\n resolve(_res);\n } else {\n reject(err);\n }\n });\n });\n }\n\n /**\n * Get the stored certificates.\n * @param {boolean} [update] Force update.\n * @returns {Promise<{name: string; type: 'public' | 'private' | 'chained'}[]>}\n */\n getCertificates(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n if (this._promises.cert && !update) {\n return this._promises.cert;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.cert = this.getObject('system.certificates')\n .then(res => {\n const certs = [];\n if (res && res.native && res.native.certificates) {\n Object.keys(res.native.certificates).forEach(c => {\n const cert = res.native.certificates[c];\n if (!cert) {\n return;\n }\n const _cert = {\n name: c,\n type: ''\n };\n // If it is filename, it could be everything\n if (cert.length < 700 && (cert.indexOf('/') !== -1 || cert.indexOf('\\\\') !== -1)) {\n if (c.toLowerCase().includes('private')) {\n _cert.type = 'private';\n } else if (cert.toLowerCase().includes('private')) {\n _cert.type = 'private';\n } else if (c.toLowerCase().includes('public')) {\n _cert.type = 'public';\n } else if (cert.toLowerCase().includes('public')) {\n _cert.type = 'public';\n }\n certs.push(_cert);\n } else {\n _cert.type = (cert.substring(0, '-----BEGIN RSA PRIVATE KEY'.length) === '-----BEGIN RSA PRIVATE KEY' || cert.substring(0, '-----BEGIN PRIVATE KEY'.length) === '-----BEGIN PRIVATE KEY') ? 'private' : 'public';\n\n if (_cert.type === 'public') {\n const m = cert.split('-----END CERTIFICATE-----');\n if (m.filter(t => t.replace(/\\r\\n|\\r|\\n/, '').trim()).length > 1) {\n _cert.type = 'chained';\n }\n }\n\n certs.push(_cert);\n }\n });\n }\n return certs;\n });\n\n return this._promises.cert;\n }\n\n /**\n * Get the logs from a host (only for admin connection).\n * @param {string} host\n * @param {number} [linesNumber]\n * @returns {Promise<string[]>}\n */\n getLogs(host, linesNumber) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise(resolve =>\n this._socket.emit('sendToHost', host, 'getLogs', linesNumber || 200, lines =>\n resolve(lines)));\n }\n\n /**\n * Get the log files (only for admin connection).\n * @returns {Promise<string[]>}\n */\n getLogsFiles(host) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('readLogs', host, (err, files) =>\n err ? reject(err) : resolve(files)));\n }\n\n /**\n * Delete the logs from a host (only for admin connection).\n * @param {string} host\n * @returns {Promise<void>}\n */\n delLogs(host) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('sendToHost', host, 'delLogs', null, error =>\n error ? reject(error) : resolve()));\n }\n\n /**\n * Read the meta items.\n * @returns {Promise<ioBroker.Object[]>}\n */\n readMetaItems() {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getObjectView', 'system', 'meta', { startkey: '', endkey: '\\u9999' }, (err, objs) =>\n err ? reject(err) : resolve(objs.rows && objs.rows.map(obj => obj.value))));\n }\n\n /**\n * Read the directory of an adapter.\n * @param {string} adapter The adapter name.\n * @param {string} fileName The directory name.\n * @returns {Promise<ioBroker.ReadDirResult[]>}\n */\n readDir(adapter, fileName) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('readDir', adapter, fileName, (err, files) =>\n err ? reject(err) : resolve(files)));\n }\n\n /**\n * Read a file of an adapter.\n * @param {string} adapter The adapter name.\n * @param {string} fileName The file name.\n * @param {boolean} base64 If it must be a base64 format\n * @returns {Promise<string>}\n */\n readFile(adapter, fileName, base64) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) => {\n if (!base64) {\n this._socket.emit('readFile', adapter, fileName, (err, data, type) => {\n //@ts-ignore\n err ? reject(err) : resolve({data, type});\n });\n } else {\n this._socket.emit('readFile64', adapter, fileName, base64, (err, data) =>\n err ? reject(err) : resolve(data));\n }\n });\n }\n\n /**\n * Write a file of an adapter.\n * @param {string} adapter The adapter name.\n * @param {string} fileName The file name.\n * @param {Buffer | string} data The data (if it's a Buffer, it will be converted to Base64).\n * @returns {Promise<void>}\n */\n writeFile64(adapter, fileName, data) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) => {\n if (typeof data === 'string') {\n this._socket.emit('writeFile', adapter, fileName, data, err =>\n err ? reject(err) : resolve());\n } else {\n const base64 = btoa(\n new Uint8Array(data)\n .reduce((data, byte) => data + String.fromCharCode(byte), '')\n );\n\n this._socket.emit('writeFile64', adapter, fileName, base64, err =>\n err ? reject(err) : resolve());\n }\n });\n }\n\n /**\n * Rename a file or folder of an adapter.\n *\n * All files in folder will be renamed too.\n * @param {string} adapter The adapter name.\n * @param {string} oldName The file name of the file to be renamed.\n * @param {string} newName The new file name.\n * @returns {Promise<void>}\n */\n rename(adapter, oldName, newName) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('rename', adapter, oldName, newName, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Delete a file of an adapter.\n * @param {string} adapter The adapter name.\n * @param {string} fileName The file name.\n * @returns {Promise<void>}\n */\n deleteFile(adapter, fileName) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('unlink', adapter, fileName, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Delete a folder of an adapter.\n * All files in folder will be deleted.\n * @param {string} adapter The adapter name.\n * @param {string} folderName The folder name.\n * @returns {Promise<void>}\n */\n deleteFolder(adapter, folderName) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('deleteFolder', adapter, folderName, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Get the list of all hosts.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getHosts(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.hosts) {\n return this._promises.hosts;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.hosts = new Promise((resolve, reject) =>\n this._socket.emit(\n 'getObjectView',\n 'system',\n 'host',\n {startkey: 'system.host.', endkey: 'system.host.\\u9999'},\n (err, doc) => {\n if (err) {\n reject(err);\n } else {\n resolve(doc.rows.map(item => item.value));\n }\n }));\n\n return this._promises.hosts;\n }\n\n /**\n * Get the list of all users.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getUsers(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.users) {\n return this._promises.users;\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.users = new Promise((resolve, reject) =>\n this._socket.emit(\n 'getObjectView',\n 'system',\n 'user',\n {startkey: 'system.user.', endkey: 'system.user.\\u9999'},\n (err, doc) => {\n if (err) {\n reject(err);\n } else {\n resolve(doc.rows.map(item => item.value));\n }\n }));\n\n return this._promises.users;\n }\n\n /**\n * Get the list of all groups.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getGroups(update) {\n if (!update && this._promises.groups) {\n return this._promises.groups;\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.groups = new Promise((resolve, reject) =>\n this._socket.emit(\n 'getObjectView',\n 'system',\n 'group',\n {startkey: 'system.group.', endkey: 'system.group.\\u9999'},\n (err, doc) => {\n if (err) {\n reject(err);\n } else {\n resolve(doc.rows.map(item => item.value));\n }\n }));\n\n return this._promises.groups;\n }\n\n /**\n * Get the host information.\n * @param {string} host\n * @param {boolean} [update] Force update.\n * @param {number} [timeoutMs] optional read timeout.\n * @returns {Promise<any>}\n */\n getHostInfo(host, update, timeoutMs) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!host.startsWith('system.host.')) {\n host += 'system.host.' + host;\n }\n\n if (!update && this._promises['hostInfo' + host]) {\n return this._promises['hostInfo' + host];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['hostInfo' + host] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('getHostInfo timeout');\n }\n }, timeoutMs || this.props.cmdTimeout);\n\n this._socket.emit('sendToHost', host, 'getHostInfo', null, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getHostInfo\"');\n } else if (!data) {\n reject('Cannot read \"getHostInfo\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises['hostInfo' + host];\n }\n\n /**\n * Get the host information (short version).\n * @param {string} host\n * @param {boolean} [update] Force update.\n * @param {number} [timeoutMs] optional read timeout.\n * @returns {Promise<any>}\n */\n getHostInfoShort(host, update, timeoutMs) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!host.startsWith('system.host.')) {\n host += 'system.host.' + host;\n }\n\n if (!update && this._promises['hostInfoShort' + host]) {\n return this._promises['hostInfoShort' + host];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['hostInfoShort' + host] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('hostInfoShort timeout');\n }\n }, timeoutMs || this.props.cmdTimeout);\n\n this._socket.emit('sendToHost', host, 'getHostInfoShort', null, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getHostInfoShort\"');\n } else if (!data) {\n reject('Cannot read \"getHostInfoShort\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises['hostInfoShort' + host];\n }\n\n /**\n * Get the repository.\n * @param {string} host\n * @param {any} [args]\n * @param {boolean} [update] Force update.\n * @param {number} [timeoutMs] timeout in ms.\n * @returns {Promise<any>}\n */\n getRepository(host, args, update, timeoutMs) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.repo) {\n return this._promises.repo;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (!host.startsWith('system.host.')) {\n host += 'system.host.' + host;\n }\n\n this._promises.repo = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('getRepository timeout');\n }\n }, timeoutMs || this.props.cmdTimeout);\n\n this._socket.emit('sendToHost', host, 'getRepository', args, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getRepository\"');\n } else if (!data) {\n reject('Cannot read \"getRepository\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises.repo;\n }\n\n /**\n * Get the installed.\n * @param {string} host\n * @param {boolean} [update] Force update.\n * @param {number} [cmdTimeout] timeout in ms (optional)\n * @returns {Promise<any>}\n */\n getInstalled(host, update, cmdTimeout) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n this._promises.installed = this._promises.installed || {};\n\n if (!update && this._promises.installed[host]) {\n return this._promises.installed[host];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (!host.startsWith('system.host.')) {\n host += 'system.host.' + host;\n }\n\n this._promises.installed[host] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('getInstalled timeout');\n }\n }, cmdTimeout || this.props.cmdTimeout);\n\n this._socket.emit('sendToHost', host, 'getInstalled', null, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getInstalled\"');\n } else if (!data) {\n reject('Cannot read \"getInstalled\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises.installed[host];\n }\n\n /**\n * Execute a command on a host.\n * @param {string} host The host name.\n * @param {string} cmd The command.\n * @param {string} cmdId The command ID.\n * @param {number} cmdTimeout Timeout of command in ms\n * @returns {Promise<void>}\n */\n cmdExec(host, cmd, cmdId, cmdTimeout) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (!host.startsWith(host)) {\n host += 'system.host.' + host;\n }\n\n return new Promise((resolve, reject) => {\n let timeout = cmdTimeout && setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('cmdExec timeout');\n }\n }, cmdTimeout);\n\n this._socket.emit('cmdExec', host, cmdId, cmd, null, err => {\n if (!cmdTimeout || timeout) {\n timeout && clearTimeout(timeout);\n timeout = null;\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n }\n });\n });\n }\n\n /**\n * Checks if a given feature is supported.\n * @param {string} feature The feature to check.\n * @param {boolean} [update] Force update.\n * @returns {Promise<any>}\n */\n checkFeatureSupported(feature, update) {\n if (!update && this._promises['supportedFeatures_' + feature]) {\n return this._promises['supportedFeatures_' + feature];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['supportedFeatures_' + feature] = new Promise((resolve, reject) =>\n this._socket.emit('checkFeatureSupported', feature, (err, features) => {\n err ? reject(err) : resolve(features)\n }));\n\n return this._promises['supportedFeatures_' + feature];\n }\n\n /**\n * Read the base settings of a given host.\n * @param {string} host\n * @returns {Promise<any>}\n */\n readBaseSettings(host) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return this.checkFeatureSupported('CONTROLLER_READWRITE_BASE_SETTINGS')\n .then(result => {\n if (result) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('readBaseSettings timeout');\n }\n }, this.props.cmdTimeout);\n\n if (host.startsWith('system.host.')) {\n host = host.replace(/^system\\.host\\./, '');\n }\n\n this._socket.emit('sendToHost', host, 'readBaseSettings', null, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n\n if (data === PERMISSION_ERROR) {\n reject('May not read \"BaseSettings\"');\n } else if (!data) {\n reject('Cannot read \"BaseSettings\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n } else {\n return Promise.reject('Not supported');\n }\n });\n }\n\n /**\n * Write the base settings of a given host.\n * @param {string} host\n * @param {any} config\n * @returns {Promise<any>}\n */\n writeBaseSettings(host, config) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return this.checkFeatureSupported('CONTROLLER_READWRITE_BASE_SETTINGS')\n .then(result => {\n if (result) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('writeBaseSettings timeout');\n }\n }, this.props.cmdTimeout);\n\n this._socket.emit('sendToHost', host, 'writeBaseSettings', config, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n\n if (data === PERMISSION_ERROR) {\n reject('May not write \"BaseSettings\"');\n } else if (!data) {\n reject('Cannot write \"BaseSettings\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n } else {\n return Promise.reject('Not supported');\n }\n })\n }\n\n /**\n * Send command to restart the iobroker on host\n * @param {string} host\n * @returns {Promise<any>}\n */\n restartController(host) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return new Promise((resolve, reject) => {\n this._socket.emit('sendToHost', host, 'restartController', null, error => {\n error ? reject(error) : resolve(true);\n });\n });\n }\n\n /**\n * Read statistics information from host\n * @param {string} host\n * @param {string} typeOfDiag one of none, normal, no-city, extended\n * @returns {Promise<any>}\n */\n getDiagData(host, typeOfDiag) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return new Promise(resolve => {\n this._socket.emit('sendToHost', host, 'getDiagData', typeOfDiag, result =>\n resolve(result));\n });\n }\n\n /**\n * Read all states (which might not belong to this adapter) which match the given pattern.\n * @param {string} pattern\n * @returns {ioBroker.GetStatesPromise}\n */\n getForeignStates(pattern) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n if (Connection.isWeb()) {\n return new Promise((resolve, reject) =>\n this._socket.emit('getStates', pattern || '*', (err, states) =>\n err ? reject(err) : resolve(states)));\n } else {\n return new Promise((resolve, reject) =>\n this._socket.emit('getForeignStates', pattern || '*', (err, states) =>\n err ? reject(err) : resolve(states)));\n }\n }\n\n /**\n * Get foreign objects by pattern, by specific type and resolve their enums.\n * @param {string} pattern\n * @param {string} [type]\n * @returns {ioBroker.GetObjectsPromise}\n */\n getForeignObjects(pattern, type) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getForeignObjects', pattern || '*', type, (err, states) =>\n err ? reject(err) : resolve(states)));\n }\n\n /**\n * Gets the system configuration.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.OtherObject>}\n */\n getSystemConfig(update) {\n if (!update && this._promises.systemConfig) {\n return this._promises.systemConfig;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.systemConfig = this.getObject('system.config')\n .then(systemConfig => {\n //@ts-ignore\n systemConfig = systemConfig || {};\n //@ts-ignore\n systemConfig.common = systemConfig.common || {};\n //@ts-ignore\n systemConfig.native = systemConfig.native || {};\n return systemConfig;\n });\n\n return this._promises.systemConfig;\n }\n\n /**\n * Sets the system configuration.\n * @param {ioBroker.SettableObjectWorker<ioBroker.OtherObject>} obj\n * @returns {Promise<ioBroker.SettableObjectWorker<ioBroker.OtherObject>>}\n */\n setSystemConfig(obj) {\n return this.setObject('system.config', obj)\n .then(() => this._promises.systemConfig = Promise.resolve(obj));\n }\n\n /**\n * Get the raw socket.io socket.\n * @returns {any}\n */\n getRawSocket() {\n return this._socket;\n }\n\n /**\n * Get the history of a given state.\n * @param {string} id\n * @param {ioBroker.GetHistoryOptions} options\n * @returns {Promise<ioBroker.GetHistoryResult>}\n */\n getHistory(id, options) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getHistory', id, options, (err, values) =>\n err ? reject(err) : resolve(values)));\n }\n\n /**\n * Get the history of a given state.\n * @param {string} id\n * @param {ioBroker.GetHistoryOptions} options\n * @returns {Promise<{values: ioBroker.GetHistoryResult; sesionId: string; stepIgnore: number}>}\n */\n getHistoryEx(id, options) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getHistory', id, options, (err, values, stepIgnore, sessionId) =>\n err ? reject(err) : resolve({ values, sessionId, stepIgnore })));\n }\n\n /**\n * Change the password of the given user.\n * @param {string} user\n * @param {string} password\n * @returns {Promise<void>}\n */\n changePassword(user, password) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('changePassword', user, password, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Get the IP addresses of the given host.\n * @param {string} host\n * @param {boolean} [update] Force update.\n * @returns {Promise<string[]>}\n */\n getIpAddresses(host, update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!host.startsWith('system.host.')) {\n host = 'system.host.' + host;\n }\n\n if (!update && this._promises['IPs_' + host]) {\n return this._promises['IPs_' + host];\n }\n this._promises['IPs_' + host] = this.getObject(host)\n .then(obj => obj && obj.common ? obj.common.address || [] : []);\n\n return this._promises['IPs_' + host];\n }\n\n /**\n * Get the IP addresses with interface names of the given host or find host by IP.\n * @param {string} ipOrHostName\n * @param {boolean} [update] Force update.\n * @returns {Promise<any[<name, address, family>]>}\n */\n getHostByIp(ipOrHostName, update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (ipOrHostName.startsWith('system.host.')) {\n ipOrHostName = ipOrHostName.replace(/^system\\.host\\./, '');\n }\n\n if (!update && this._promises['rIPs_' + ipOrHostName]) {\n return this._promises['rIPs_' + ipOrHostName];\n }\n this._promises['rIPs_' + ipOrHostName] = new Promise(resolve =>\n this._socket.emit('getHostByIp', ipOrHostName, (ip, host) => {\n const IPs4 = [{name: '[IPv4] 0.0.0.0 - Listen on all IPs', address: '0.0.0.0', family: 'ipv4'}];\n const IPs6 = [{name: '[IPv6] :: - Listen on all IPs', address: '::', family: 'ipv6'}];\n if (host?.native?.hardware?.networkInterfaces) {\n for (const eth in host.native.hardware.networkInterfaces) {\n if (!host.native.hardware.networkInterfaces.hasOwnProperty(eth)) {\n continue;\n }\n for (let num = 0; num < host.native.hardware.networkInterfaces[eth].length; num++) {\n if (host.native.hardware.networkInterfaces[eth][num].family !== 'IPv6') {\n IPs4.push({name: `[${host.native.hardware.networkInterfaces[eth][num].family}] ${host.native.hardware.networkInterfaces[eth][num].address} - ${eth}`, address: host.native.hardware.networkInterfaces[eth][num].address, family: 'ipv4'});\n } else {\n IPs6.push({name: `[${host.native.hardware.networkInterfaces[eth][num].family}] ${host.native.hardware.networkInterfaces[eth][num].address} - ${eth}`, address: host.native.hardware.networkInterfaces[eth][num].address, family: 'ipv6'});\n }\n }\n }\n }\n for (let i = 0; i < IPs6.length; i++) {\n IPs4.push(IPs6[i]);\n }\n resolve(IPs4);\n }));\n\n return this._promises['rIPs_' + ipOrHostName];\n }\n\n /**\n * Encrypt a text\n * @param {string} text\n * @returns {Promise<string>}\n */\n encrypt(text) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('encrypt', text, (err, text) =>\n err ? reject(err) : resolve(text)));\n }\n\n /**\n * Decrypt a text\n * @param {string} encryptedText\n * @returns {Promise<string>}\n */\n decrypt(encryptedText) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('decrypt', encryptedText, (err, text) =>\n err ? reject(err) : resolve(text)));\n }\n\n /**\n * Gets the version.\n * @returns {Promise<{version: string; serverName: string}>}\n */\n getVersion(update) {\n if (update && this._promises.version) {\n this._promises.version = null;\n }\n\n this._promises.version = this._promises.version || new Promise((resolve, reject) =>\n this._socket.emit('getVersion', (err, version, serverName) => {\n // support of old socket.io\n if (err && !version && typeof err === 'string' && err.match(/\\d+\\.\\d+\\.\\d+/)) {\n resolve({ version: err, serverName: 'socketio' });\n } else {\n return err ? reject(err) : resolve({ version, serverName });\n }\n }));\n\n return this._promises.version;\n }\n\n /**\n * Gets the web server name.\n * @returns {Promise<string>}\n */\n getWebServerName() {\n this._promises.webName = this._promises.webName || new Promise((resolve, reject) =>\n this._socket.emit('getAdapterName', (err, name) =>\n err ? reject(err) : resolve(name)));\n\n return this._promises.webName;\n }\n\n /**\n * Gets the admin version.\n * @deprecated use getVersion()\n * @returns {Promise<{version: string; serverName: string}>}\n */\n getAdminVersion() {\n console.log('Deprecated: use getVersion');\n return this.getVersion();\n }\n\n /**\n * Change access rights for file\n * @param {string} [adapter] adapter name\n * @param {string} [filename] file name with full path. it could be like vis.0/*\n * @param {object} [options] like {mode: 0x644}\n * @returns {Promise<{entries: array}>}\n */\n chmodFile(adapter, filename, options) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('chmodFile', adapter, filename, options, (err, entries, id) =>\n err ? reject(err) : resolve({entries, id})));\n }\n\n /**\n * Change owner or/and owner group for file\n * @param {string} [adapter] adapter name\n * @param {string} [filename] file name with full path. it could be like vis.0/*\n * @param {object} [options] like {owner: 'newOwner', ownerGroup: 'newGroup'}\n * @returns {Promise<{entries: array}>}\n */\n chownFile(adapter, filename, options) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('chownFile', adapter, filename, options, (err, entries, id) =>\n err ? reject(err) : resolve({entries, id})));\n }\n\n /**\n * Check if the file exists\n * @param {string} [adapter] adapter name\n * @param {string} [filename] file name with full path. it could be like vis.0/*\n * @returns {Promise<boolean>}\n */\n fileExists(adapter, filename) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('fileExists', adapter, filename, (err, exists) =>\n err ? reject(err) : resolve(exists)));\n }\n\n /**\n * Get the alarm notifications from a host (only for admin connection).\n * @param {string} host\n * @param {string} [category] - optional\n * @returns {Promise<any>}\n */\n getNotifications(host, category) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise(resolve =>\n this._socket.emit('sendToHost', host, 'getNotifications', {category}, notifications =>\n resolve(notifications)));\n }\n\n /**\n * Clear the alarm notifications on a host (only for admin connection).\n * @param {string} host\n * @param {string} [category] - optional\n * @returns {Promise<any>}\n */\n clearNotifications(host, category) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise(resolve =>\n this._socket.emit('sendToHost', host, 'clearNotifications', {category}, notifications =>\n resolve(notifications)));\n }\n\n /**\n * Read if only easy mode is allowed (only for admin connection).\n * @returns {Promise<boolean>}\n */\n getIsEasyModeStrict() {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getIsEasyModeStrict', (error, isStrict) =>\n error ? reject(error) : resolve(isStrict)));\n }\n\n /**\n * Read easy mode configuration (only for admin connection).\n * @returns {Promise<any>}\n */\n getEasyMode() {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getEasyMode', (error, config) =>\n error ? reject(error) : resolve(config)));\n }\n\n /**\n * Read current user\n * @returns {Promise<string>}\n */\n getCurrentUser() {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise(resolve =>\n this._socket.emit('authEnabled', (isSecure, user) =>\n resolve(user)));\n }\n\n getCurrentSession(cmdTimeout) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) => {\n const controller = new AbortController();\n\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n controller.abort();\n reject('getCurrentSession timeout');\n }\n }, cmdTimeout || 5000);\n\n return fetch('./session', { signal: controller.signal })\n .then(res => res.json())\n .then(json => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n resolve(json);\n }\n })\n .catch(e =>\n reject('getCurrentSession: ' + e));\n });\n }\n\n /**\n * Read adapter ratings\n * @returns {Promise<any>}\n */\n getRatings(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getRatings', update, (err, ratings) =>\n err ? reject(err) : resolve(ratings)));\n }\n\n /**\n * Read current web, socketio or admin namespace, like admin.0\n * @returns {Promise<string>}\n */\n getCurrentInstance() {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.currentInstance = this._promises.currentInstance ||\n new Promise((resolve, reject) =>\n this._socket.emit('getCurrentInstance', (err, namespace) =>\n err ? reject(err) : resolve(namespace)));\n\n return this._promises.currentInstance;\n }\n\n // returns very optimized information for adapters to minimize connection load\n getCompactAdapters(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.compactAdapters) {\n return this._promises.compactAdapters;\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n this._promises.compactAdapters = new Promise((resolve, reject) =>\n this._socket.emit('getCompactAdapters', (err, adapters) =>\n err ? reject(err) : resolve(adapters)));\n\n return this._promises.compactAdapters;\n }\n\n // returns very optimized information for adapters to minimize connection load\n getCompactInstances(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.compactInstances) {\n return this._promises.compactInstances;\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.compactInstances = new Promise((resolve, reject) =>\n this._socket.emit('getCompactInstances', (err, instances) =>\n err ? reject(err) : resolve(instances)));\n\n return this._promises.compactInstances;\n }\n\n // returns very optimized information for adapters to minimize connection load\n // reads only version of installed adapter\n getCompactInstalled(host, update, cmdTimeout) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n this._promises.installedCompact = this._promises.installedCompact || {};\n\n if (!update && this._promises.installedCompact[host]) {\n return this._promises.installedCompact[host];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (!host.startsWith('system.host.')) {\n host += 'system.host.' + host;\n }\n\n this._promises.installedCompact[host] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('getCompactInstalled timeout');\n }\n }, cmdTimeout || this.props.cmdTimeout);\n\n this._socket.emit('getCompactInstalled', host, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getCompactInstalled\"');\n } else if (!data) {\n reject('Cannot read \"getCompactInstalled\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises.installedCompact[host];\n }\n\n // returns very optimized information for adapters to minimize connection load\n getCompactSystemConfig(update) {\n if (!update && this._promises.systemConfigCommon) {\n return this._promises.systemConfigCommon;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.systemConfigCommon = new Promise((resolve, reject) =>\n this._socket.emit('getCompactSystemConfig', (err, systemConfig) =>\n err ? reject(err) : resolve(systemConfig)));\n\n return this._promises.systemConfigCommon;\n }\n\n /**\n * Get the repository in compact form (only version and icon).\n * @param {string} host\n * @param {boolean} [update] Force update.\n * @param {number} [timeoutMs] timeout in ms.\n * @returns {Promise<any>}\n */\n getCompactRepository(host, update, timeoutMs) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.repoCompact) {\n return this._promises.repoCompact;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (!host.startsWith('system.host.')) {\n host += 'system.host.' + host;\n }\n\n this._promises.repoCompact = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('getCompactRepository timeout');\n }\n }, timeoutMs || this.props.cmdTimeout);\n\n this._socket.emit('getCompactRepository', host, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getCompactRepository\"');\n } else if (!data) {\n reject('Cannot read \"getCompactRepository\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises.repoCompact;\n }\n\n /**\n * Get the list of all hosts in compact form (only _id, common.name, common.icon, common.color, native.hardware.networkInterfaces)\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getCompactHosts(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.hostsCompact) {\n return this._promises.hostsCompact;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.hostsCompact = new Promise((resolve, reject) =>\n this._socket.emit('getCompactHosts', (err, hosts) =>\n err ? reject(err) : resolve(hosts)));\n\n return this._promises.hostsCompact;\n }\n\n /**\n * Get uuid\n * @returns {Promise<ioBroker.Object[]>}\n */\n getUuid() {\n if (this._promises.uuid) {\n return this._promises.uuid;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.uuid = this.getObject('system.meta.uuid')\n //@ts-ignore\n .then(obj => obj?.native?.uuid);\n\n return this._promises.uuid;\n }\n\n /**\n * Send log to ioBroker log\n * @param {string} [text] Log text\n * @param {string} [level] `info`, `debug`, `warn`, `error` or `silly`\n * @returns {void}\n */\n log(text, level) {\n text && this._socket.emit('log', text, level || 'debug');\n }\n\n /**\n * Logout current user\n * @returns {Promise<null>}\n */\n logout() {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('logout', err =>\n err ? reject(err) : resolve(null)));\n }\n}\n\nConnection.Connection = {\n onLog: PropTypes.func,\n onReady: PropTypes.func,\n onProgress: PropTypes.func,\n};\n\nexport default Connection;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Connection.js","names":["PROGRESS","CONNECTING","CONNECTED","OBJECTS_LOADED","READY","PERMISSION_ERROR","NOT_CONNECTED","TIMEOUT_FOR_ADMIN4","ERRORS","fixAdminUI","obj","common","adminUI","noConfig","config","jsonConfig","materialize","jsonCustom","custom","supportCustoms","materializeTab","adminTab","tab","console","debug","_id","replace","JSON","stringify","Connection","props","protocol","window","location","host","hostname","autoSubscribes","autoSubscribeLog","port","isWeb","ioTimeout","Math","max","cmdTimeout","doNotLoadAllObjects","undefined","doNotLoadACL","states","objects","acl","firstConnect","waitForRestart","systemLang","connected","_waitForFirstConnection","Promise","resolve","_waitForFirstConnectionResolve","statesSubscribes","objectsSubscribes","onProgress","onError","err","error","loaded","loadTimer","loadCounter","admin5only","onConnectionHandlers","onLogHandlers","_promises","log","text","warn","info","silly","startSocket","io","registerSocketOnLoad","scriptLoadCounter","setTimeout","alert","_socket","path","pathname","socketUrl","parts","split","includes","pos","lastIndexOf","substring","length","pop","join","endsWith","url","connect","query","name","timeout","on","noTimeout","getVersion","then","version","major","minor","patch","v","parseInt","_authTimer","onPreConnect","emit","isOk","isSecure","reload","_subscribe","forEach","cb","subscribed","authenticate","message","onLog","_err","toString","operation","type","id","objectChange","state","stateChange","onCmdStdoutHandler","onCmdStderrHandler","exitCode","onCmdExitHandler","clearTimeout","onConnect","_getUserPermissions","vendorPrefix","getCompactSystemConfig","getSystemConfig","data","systemConfig","language","navigator","userLanguage","onLanguage","getObjects","onReady","e","search","hash","binary","reg","indexOf","RegExp","cbs","push","getBinaryState","base64","Object","keys","splice","oldObj","changed","_rev","test","onObjectChange","task","hasOwnProperty","disableProgressUpdate","reject","res","STATES_LOADED","val","update","isEnable","isEnabled","maintenance","parse","from","user","ts","adapter","getObjectView","items","map","instances","adapters","objs","oldId","newId","setObject","delObject","_renameGroups","newName","getGroups","groups","groupsToRename","filter","group","startsWith","find","instance","command","result","handler","_enum","startkey","endkey","_res","i","rows","value","start","end","cert","getObject","certs","certificates","c","_cert","toLowerCase","m","t","trim","linesNumber","lines","files","fileName","btoa","Uint8Array","reduce","byte","String","fromCharCode","oldName","folderName","hosts","doc","item","users","timeoutMs","args","repo","installed","cmd","cmdId","feature","features","checkFeatureSupported","typeOfDiag","pattern","options","values","stepIgnore","sessionId","password","address","ipOrHostName","ip","IPs4","family","IPs6","hardware","networkInterfaces","eth","num","encryptedText","serverName","match","webName","filename","entries","exists","category","notifications","isStrict","controller","AbortController","abort","fetch","signal","json","ratings","currentInstance","namespace","compactAdapters","compactInstances","installedCompact","systemConfigCommon","repoCompact","hostsCompact","uuid","level","adapterName","PropTypes","func"],"sources":["Connection.js"],"sourcesContent":["/**\n * Copyright 2020-2022, bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport PropTypes from 'prop-types';\n\n/** Possible progress states. */\nexport const PROGRESS = {\n /** The socket is connecting. */\n CONNECTING: 0,\n /** The socket is successfully connected. */\n CONNECTED: 1,\n /** All objects are loaded. */\n OBJECTS_LOADED: 2,\n /** The socket is ready for use. */\n READY: 3\n};\n\nconst PERMISSION_ERROR = 'permissionError';\nconst NOT_CONNECTED = 'notConnectedError';\nconst TIMEOUT_FOR_ADMIN4 = 1300;\n\nexport const ERRORS = {\n PERMISSION_ERROR,\n NOT_CONNECTED\n};\n\nfunction fixAdminUI(obj) {\n if (obj && obj.common && !obj.common.adminUI) {\n if (obj.common.noConfig) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.config = 'none';\n } else if (obj.common.jsonConfig) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.config = 'json';\n } else if (obj.common.materialize) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.config = 'materialize';\n } else {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.config = 'html';\n }\n\n if (obj.common.jsonCustom) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.custom = 'json';\n } else if (obj.common.supportCustoms) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.custom = 'json';\n }\n\n if (obj.common.materializeTab && obj.common.adminTab) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.tab = 'materialize';\n } else if (obj.common.adminTab) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.tab = 'html';\n }\n\n obj.common.adminUI && console.debug(`Please add to \"${obj._id.replace(/\\.\\d+$/, '')}\" common.adminUI=${JSON.stringify(obj.common.adminUI)}`);\n }\n return obj;\n}\n\nclass Connection {\n /**\n * @param {import('./types').ConnectionProps} props\n */\n constructor(props) {\n props = props || { protocol: window.location.protocol, host: window.location.hostname };\n this.props = props;\n\n this.autoSubscribes = this.props.autoSubscribes || [];\n this.autoSubscribeLog = this.props.autoSubscribeLog;\n\n this.props.protocol = this.props.protocol || window.location.protocol;\n this.props.host = this.props.host || window.location.hostname;\n this.props.port = this.props.port || (window.location.port === '3000' ? (Connection.isWeb() ? 8082 : 8081) : window.location.port);\n this.props.ioTimeout = Math.max(this.props.ioTimeout || 20000, 20000);\n this.props.cmdTimeout = Math.max(this.props.cmdTimeout || 5000, 5000);\n\n // breaking change. Do not load all objects by default is true\n this.doNotLoadAllObjects = this.props.doNotLoadAllObjects === undefined ? true : this.props.doNotLoadAllObjects;\n this.doNotLoadACL = this.props.doNotLoadACL === undefined ? true : this.props.doNotLoadACL;\n\n /** @type {Record<string, ioBroker.State>} */\n this.states = {};\n this.objects = null;\n this.acl = null;\n this.firstConnect = true;\n this.waitForRestart = false;\n /** @type {ioBroker.Languages} */\n this.systemLang = 'en';\n this.connected = false;\n this._waitForFirstConnection = new Promise(resolve => { this._waitForFirstConnectionResolve = resolve });\n\n /** @type {Record<string, { reg: RegExp; cbs: ioBroker.StateChangeHandler[]}>} */\n this.statesSubscribes = {}; // subscribe for states\n\n /** @type {Record<string, { reg: RegExp; cbs: import('./types').ObjectChangeHandler[]}>} */\n this.objectsSubscribes = {}; // subscribe for objects\n this.onProgress = this.props.onProgress || function () { };\n this.onError = this.props.onError || function (err) { console.error(err); };\n this.loaded = false;\n this.loadTimer = null;\n this.loadCounter = 0;\n this.admin5only = this.props.admin5only || false;\n\n /** @type {((connected: boolean) => void)[]} */\n this.onConnectionHandlers = [];\n /** @type {((message: string) => void)[]} */\n this.onLogHandlers = [];\n\n /** @type {Record<string, Promise<any>>} */\n this._promises = {};\n\n this.log.error = text => this.log(text, 'error');\n this.log.warn = text => this.log(text, 'warn');\n this.log.info = text => this.log(text, 'info');\n this.log.debug = text => this.log(text, 'debug');\n this.log.silly = text => this.log(text, 'silly');\n\n this.startSocket();\n }\n\n /**\n * Checks if this connection is running in a web adapter and not in an admin.\n * @returns {boolean} True if running in a web adapter or in a socketio adapter.\n */\n static isWeb() {\n return window.adapterName === 'material' ||\n window.adapterName === 'vis' ||\n window.adapterName === 'echarts-show' ||\n window.socketUrl !== undefined;\n }\n\n /**\n * Starts the socket.io connection.\n * @returns {void}\n */\n startSocket() {\n // if socket io is not yet loaded\n if (typeof window.io === 'undefined') {\n // if in index.html the onLoad function not defined\n if (typeof window.registerSocketOnLoad !== 'function') {\n // poll if loaded\n this.scriptLoadCounter = this.scriptLoadCounter || 0;\n this.scriptLoadCounter++;\n\n if (this.scriptLoadCounter < 30) {\n // wait till the script loaded\n setTimeout(() => this.startSocket(), 100);\n return;\n } else {\n window.alert('Cannot load socket.io.js!');\n }\n } else {\n // register on load\n window.registerSocketOnLoad(() => this.startSocket());\n }\n return;\n } else {\n // socket was initialized, do not repeat\n if (this._socket) {\n return;\n }\n }\n\n let host = this.props.host;\n let port = this.props.port;\n let protocol = this.props.protocol.replace(':', '');\n let path = window.location.pathname;\n\n if (\n window.location.hostname === 'iobroker.net' ||\n window.location.hostname === 'iobroker.pro'\n ) {\n path = '';\n } else {\n // if web adapter, socket io could be on other port or even host\n if (window.socketUrl) {\n let parts = window.socketUrl.split(':');\n host = parts[0] || host;\n port = parts[1] || port;\n if (host.includes('://')) {\n parts = host.split('://');\n protocol = parts[0];\n host = parts[1];\n }\n }\n // get current path\n const pos = path.lastIndexOf('/');\n if (pos !== -1) {\n path = path.substring(0, pos + 1);\n }\n\n if (Connection.isWeb()) {\n // remove one level, like echarts, vis, .... We have here: '/echarts/'\n const parts = path.split('/');\n if (parts.length > 2) {\n parts.pop();\n parts.pop();\n path = parts.join('/');\n if (!path.endsWith('/')) {\n path += '/';\n }\n }\n }\n }\n\n const url = port ? `${protocol}://${host}:${port}${path}` : `${protocol}://${host}${path}`;\n\n this._socket = window.io.connect(\n url,\n {\n path: path.endsWith('/') ? path + 'socket.io' : path + '/socket.io',\n query: 'ws=true',\n name: this.props.name,\n timeout: this.props.ioTimeout\n }\n );\n\n this._socket.on('connect', noTimeout => {\n // If the user is not admin it takes some time to install the handlers, because all rights must be checked\n if (noTimeout !== true) {\n setTimeout(() =>\n this.getVersion()\n .then(info => {\n const [major, minor, patch] = info.version.split('.');\n const v = parseInt(major, 10) * 10000 + parseInt(minor, 10) * 100 + parseInt(patch, 10);\n if (v < 40102) {\n this._authTimer = null;\n // possible this is old version of admin\n this.onPreConnect(false, false);\n } else {\n this._socket.emit('authenticate', (isOk, isSecure) => this.onPreConnect(isOk, isSecure));\n }\n }), 500);\n } else {\n // iobroker websocket waits, till all handlers are installed\n this._socket.emit('authenticate', (isOk, isSecure) => this.onPreConnect(isOk, isSecure));\n }\n });\n\n this._socket.on('reconnect', () => {\n this.onProgress(PROGRESS.READY);\n this.connected = true;\n\n if (this.waitForRestart) {\n window.location.reload(false);\n } else {\n this._subscribe(true);\n this.onConnectionHandlers.forEach(cb => cb(true));\n }\n });\n\n this._socket.on('disconnect', () => {\n this.connected = false;\n this.subscribed = false;\n this.onProgress(PROGRESS.CONNECTING);\n this.onConnectionHandlers.forEach(cb => cb(false));\n });\n\n this._socket.on('reauthenticate', () =>\n this.authenticate());\n\n this._socket.on('log', message => {\n this.props.onLog && this.props.onLog(message);\n this.onLogHandlers.forEach(cb => cb(message));\n });\n\n this._socket.on('error', err => {\n let _err = err || '';\n if (typeof _err.toString !== 'function') {\n _err = JSON.stringify(_err);\n console.error(`Received strange error: ${_err}`);\n }\n _err = _err.toString();\n if (_err.includes('User not authorized')) {\n this.authenticate();\n } else {\n window.alert(`Socket Error: ${err}`);\n }\n });\n\n this._socket.on('connect_error', err =>\n console.error(`Connect error: ${err}`));\n\n this._socket.on('permissionError', err =>\n this.onError({ message: 'no permission', operation: err.operation, type: err.type, id: (err.id || '') }));\n\n this._socket.on('objectChange', (id, obj) =>\n setTimeout(() => this.objectChange(id, obj), 0));\n\n this._socket.on('stateChange', (id, state) =>\n setTimeout(() => this.stateChange(id, state), 0));\n\n this._socket.on('cmdStdout', (id, text) =>\n this.onCmdStdoutHandler && this.onCmdStdoutHandler(id, text));\n\n this._socket.on('cmdStderr', (id, text) =>\n this.onCmdStderrHandler && this.onCmdStderrHandler(id, text));\n\n this._socket.on('cmdExit', (id, exitCode) =>\n this.onCmdExitHandler && this.onCmdExitHandler(id, exitCode));\n }\n\n /**\n * Called internally.\n * @private\n * @param {boolean} isOk\n * @param {boolean} isSecure\n */\n onPreConnect(isOk, isSecure) {\n if (this._authTimer) {\n clearTimeout(this._authTimer);\n this._authTimer = null;\n }\n\n this.connected = true;\n this.isSecure = isSecure;\n\n if (this.waitForRestart) {\n window.location.reload(false);\n } else {\n if (this.firstConnect) {\n // retry strategy\n this.loadTimer = setTimeout(() => {\n this.loadTimer = null;\n this.loadCounter++;\n if (this.loadCounter < 10) {\n this.onConnect();\n }\n }, 1000);\n\n if (!this.loaded) {\n this.onConnect();\n }\n } else {\n this.onProgress(PROGRESS.READY);\n }\n\n this._subscribe(true);\n this.onConnectionHandlers.forEach(cb => cb(true));\n }\n\n if (this._waitForFirstConnectionResolve) {\n this._waitForFirstConnectionResolve();\n this._waitForFirstConnectionResolve = null;\n }\n }\n\n /**\n * Checks if the socket is connected.\n * @returns {boolean} true if connected.\n */\n isConnected() {\n return this.connected;\n }\n\n /**\n * Checks if the socket is connected.\n * @returns {Promise<void>} Promise resolves if once connected.\n */\n waitForFirstConnection() {\n return this._waitForFirstConnection;\n }\n\n /**\n * Called internally.\n * @private\n */\n _getUserPermissions(cb) {\n if (this.doNotLoadACL) {\n return cb && cb();\n } else {\n this._socket.emit('getUserPermissions', cb);\n }\n }\n\n /**\n * Called internally.\n * @private\n */\n onConnect() {\n this._getUserPermissions((err, acl) => {\n if (err) {\n return this.onError('Cannot read user permissions: ' + err);\n } else\n if (!this.doNotLoadACL) {\n if (this.loaded) {\n return;\n }\n this.loaded = true;\n clearTimeout(this.loadTimer);\n this.loadTimer = null;\n\n this.onProgress(PROGRESS.CONNECTED);\n this.firstConnect = false;\n\n this.acl = acl;\n }\n\n // Read system configuration\n return (this.admin5only && !window.vendorPrefix ? this.getCompactSystemConfig() : this.getSystemConfig())\n .then(data => {\n if (this.doNotLoadACL) {\n if (this.loaded) {\n return undefined;\n }\n this.loaded = true;\n clearTimeout(this.loadTimer);\n this.loadTimer = null;\n\n this.onProgress(PROGRESS.CONNECTED);\n this.firstConnect = false;\n }\n\n this.systemConfig = data;\n if (this.systemConfig && this.systemConfig.common) {\n this.systemLang = this.systemConfig.common.language;\n } else {\n this.systemLang = window.navigator.userLanguage || window.navigator.language;\n\n if (this.systemLang !== 'en' && this.systemLang !== 'de' && this.systemLang !== 'ru') {\n this.systemConfig.common.language = 'en';\n this.systemLang = 'en';\n }\n }\n\n this.props.onLanguage && this.props.onLanguage(this.systemLang);\n\n if (!this.doNotLoadAllObjects) {\n return this.getObjects()\n .then(() => {\n this.onProgress(PROGRESS.READY);\n this.props.onReady && this.props.onReady(this.objects);\n });\n } else {\n this.objects = this.admin5only ? {} : { 'system.config': data };\n this.onProgress(PROGRESS.READY);\n this.props.onReady && this.props.onReady(this.objects);\n }\n return undefined;\n })\n .catch(e => this.onError('Cannot read system config: ' + e));\n });\n }\n\n /**\n * Called internally.\n * @private\n */\n authenticate() {\n if (window.location.search.includes('&href=')) {\n window.location = `${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}${window.location.hash}`;\n } else {\n window.location = `${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${window.location.search}${window.location.hash}`;\n }\n }\n\n /**\n * Subscribe to changes of the given state.\n * @param {string} id The ioBroker state ID.\n * @param {ioBroker.StateChangeHandler} cb The callback.\n */\n /**\n * Subscribe to changes of the given state.\n * @param {string} id The ioBroker state ID.\n * @param {boolean} binary Set to true if the given state is binary and requires Base64 decoding.\n * @param {ioBroker.StateChangeHandler} cb The callback.\n */\n subscribeState(id, binary, cb) {\n if (typeof binary === 'function') {\n cb = binary;\n binary = false;\n }\n\n if (!this.statesSubscribes[id]) {\n let reg = id\n .replace(/\\./g, '\\\\.')\n .replace(/\\*/g, '.*')\n .replace(/\\(/g, '\\\\(')\n .replace(/\\)/g, '\\\\)')\n .replace(/\\+/g, '\\\\+')\n .replace(/\\[/g, '\\\\[');\n\n if (reg.indexOf('*') === -1) {\n reg += '$';\n }\n this.statesSubscribes[id] = { reg: new RegExp(reg), cbs: [] };\n this.statesSubscribes[id].cbs.push(cb);\n if (this.connected) {\n this._socket.emit('subscribe', id);\n }\n } else {\n !this.statesSubscribes[id].cbs.includes(cb) && this.statesSubscribes[id].cbs.push(cb);\n }\n if (typeof cb === 'function' && this.connected) {\n if (binary) {\n this.getBinaryState(id)\n .then(base64 => cb(id, base64))\n .catch(e => console.error(`Cannot getForeignStates \"${id}\": ${JSON.stringify(e)}`));\n } else {\n if (Connection.isWeb()) {\n this._socket.emit('getStates', id, (err, states) => {\n err && console.error(`Cannot getForeignStates \"${id}\": ${JSON.stringify(err)}`);\n states && Object.keys(states).forEach(id => cb(id, states[id]));\n });\n } else {\n this._socket.emit('getForeignStates', id, (err, states) => {\n err && console.error(`Cannot getForeignStates \"${id}\": ${JSON.stringify(err)}`);\n states && Object.keys(states).forEach(id => cb(id, states[id]));\n });\n }\n }\n }\n }\n\n /**\n * Unsubscribes all callbacks from changes of the given state.\n * @param {string} id The ioBroker state ID.\n */\n /**\n * Unsubscribes the given callback from changes of the given state.\n * @param {string} id The ioBroker state ID.\n * @param {ioBroker.StateChangeHandler} cb The callback.\n */\n unsubscribeState(id, cb) {\n if (this.statesSubscribes[id]) {\n if (cb) {\n const pos = this.statesSubscribes[id].cbs.indexOf(cb);\n pos !== -1 && this.statesSubscribes[id].cbs.splice(pos, 1);\n } else {\n this.statesSubscribes[id].cbs = [];\n }\n\n if (!this.statesSubscribes[id].cbs || !this.statesSubscribes[id].cbs.length) {\n delete this.statesSubscribes[id];\n this.connected && this._socket.emit('unsubscribe', id);\n }\n }\n }\n\n /**\n * Subscribe to changes of the given object.\n * @param {string} id The ioBroker object ID.\n * @param {import('./types').ObjectChangeHandler} cb The callback.\n * @returns {Promise<void>}\n */\n subscribeObject(id, cb) {\n if (!this.objectsSubscribes[id]) {\n let reg = id.replace(/\\./g, '\\\\.').replace(/\\*/g, '.*');\n if (!reg.includes('*')) {\n reg += '$';\n }\n this.objectsSubscribes[id] = { reg: new RegExp(reg), cbs: [] };\n this.objectsSubscribes[id].cbs.push(cb);\n this.connected && this._socket.emit('subscribeObjects', id);\n } else {\n !this.objectsSubscribes[id].cbs.includes(cb) && this.objectsSubscribes[id].cbs.push(cb);\n }\n return Promise.resolve();\n }\n\n /**\n * Unsubscribes all callbacks from changes of the given object.\n * @param {string} id The ioBroker object ID.\n * @returns {Promise<void>}\n */\n /**\n * Unsubscribes the given callback from changes of the given object.\n * @param {string} id The ioBroker object ID.\n * @param {import('./types').ObjectChangeHandler} cb The callback.\n * @returns {Promise<void>}\n */\n unsubscribeObject(id, cb) {\n if (this.objectsSubscribes[id]) {\n if (cb) {\n const pos = this.objectsSubscribes[id].cbs.indexOf(cb);\n pos !== -1 && this.objectsSubscribes[id].cbs.splice(pos, 1);\n } else {\n this.objectsSubscribes[id].cbs = [];\n }\n\n if (this.connected && (!this.objectsSubscribes[id].cbs || !this.objectsSubscribes[id].cbs.length)) {\n delete this.objectsSubscribes[id];\n this.connected && this._socket.emit('unsubscribeObjects', id);\n }\n }\n return Promise.resolve();\n }\n\n /**\n * Called internally.\n * @private\n * @param {string} id\n * @param {ioBroker.Object | null | undefined} obj\n */\n objectChange(id, obj) {\n // update main.objects cache\n if (!this.objects) {\n return;\n }\n\n /** @type {import(\"./types\").OldObject} */\n let oldObj;\n\n let changed = false;\n if (obj) {\n if (obj._rev && this.objects[id]) {\n this.objects[id]._rev = obj._rev;\n }\n\n if (this.objects[id]) {\n oldObj = { _id: id, type: this.objects[id].type };\n }\n\n if (!this.objects[id] || JSON.stringify(this.objects[id]) !== JSON.stringify(obj)) {\n this.objects[id] = obj;\n changed = true;\n }\n } else if (this.objects[id]) {\n oldObj = { _id: id, type: this.objects[id].type };\n delete this.objects[id];\n changed = true;\n }\n\n Object.keys(this.objectsSubscribes).forEach(_id => {\n if (_id === id || this.objectsSubscribes[_id].reg.test(id)) {\n //@ts-ignore\n this.objectsSubscribes[_id].cbs.forEach(cb => cb(id, obj, oldObj));\n }\n });\n\n if (changed && this.props.onObjectChange) {\n this.props.onObjectChange(id, obj);\n }\n }\n\n /**\n * Called internally.\n * @private\n * @param {string} id\n * @param {ioBroker.State | null | undefined} state\n */\n stateChange(id, state) {\n for (const task in this.statesSubscribes) {\n if (this.statesSubscribes.hasOwnProperty(task) && this.statesSubscribes[task].reg.test(id)) {\n this.statesSubscribes[task].cbs.forEach(cb => cb(id, state));\n }\n }\n }\n\n /**\n * Gets all states.\n * @param {boolean} disableProgressUpdate don't call onProgress() when done\n * @returns {Promise<Record<string, ioBroker.State>>}\n */\n getStates(disableProgressUpdate) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getStates', (err, res) => {\n this.states = res;\n //@ts-ignore\n !disableProgressUpdate && this.onProgress(PROGRESS.STATES_LOADED);\n return err ? reject(err) : resolve(this.states);\n }));\n }\n\n /**\n * Gets the given state.\n * @param {string} id The state ID.\n * @returns {Promise<ioBroker.State | null | undefined>}\n */\n getState(id) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getState', id, (err, state) => err ? reject(err) : resolve(state)));\n }\n\n /**\n * Gets the given binary state.\n * @param {string} id The state ID.\n * @returns {Promise<Buffer | undefined>}\n */\n getBinaryState(id) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n // the data will come in base64\n return new Promise((resolve, reject) =>\n this._socket.emit('getBinaryState', id, (err, state) => err ? reject(err) : resolve(state)));\n }\n\n /**\n * Sets the given binary state.\n * @param {string} id The state ID.\n * @param {string} base64 The Base64 encoded binary data.\n * @returns {Promise<void>}\n */\n setBinaryState(id, base64) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n // the data will come in base64\n return new Promise((resolve, reject) =>\n this._socket.emit('setBinaryState', id, base64, err => err ? reject(err) : resolve()));\n }\n\n /**\n * Sets the given state value.\n * @param {string} id The state ID.\n * @param {string | number | boolean | ioBroker.State | ioBroker.SettableState | null} val The state value.\n * @returns {Promise<void>}\n */\n setState(id, val) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('setState', id, val, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Gets all objects.\n * @param {(objects?: Record<string, ioBroker.Object>) => void} update Callback that is executed when all objects are retrieved.\n * @returns {void}\n */\n /**\n * Gets all objects.\n * @param {boolean} update Set to true to retrieve all objects from the server (instead of using the local cache).\n * @param {boolean} disableProgressUpdate don't call onProgress() when done\n * @returns {Promise<Record<string, ioBroker.Object>> | undefined}\n */\n getObjects(update, disableProgressUpdate) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n } else {\n return new Promise((resolve, reject) => {\n if (!update && this.objects) {\n return resolve(this.objects);\n }\n\n this._socket.emit(Connection.isWeb() ? 'getObjects' : 'getAllObjects', (err, res) => {\n this.objects = res;\n disableProgressUpdate && this.onProgress(PROGRESS.OBJECTS_LOADED);\n err ? reject(err) : resolve(this.objects);\n });\n });\n }\n }\n\n /**\n * Called internally.\n * @private\n * @param {boolean} isEnable\n */\n _subscribe(isEnable) {\n if (isEnable && !this.subscribed) {\n this.subscribed = true;\n this.autoSubscribes.forEach(id => this._socket.emit('subscribeObjects', id));\n // re subscribe objects\n Object.keys(this.objectsSubscribes).forEach(id => this._socket.emit('subscribeObjects', id));\n // re-subscribe logs\n this.autoSubscribeLog && this._socket.emit('requireLog', true);\n // re subscribe states\n Object.keys(this.statesSubscribes).forEach(id => this._socket.emit('subscribe', id));\n } else if (!isEnable && this.subscribed) {\n this.subscribed = false;\n // un-subscribe objects\n this.autoSubscribes.forEach(id => this._socket.emit('unsubscribeObjects', id));\n Object.keys(this.objectsSubscribes).forEach(id => this._socket.emit('unsubscribeObjects', id));\n // un-subscribe logs\n this.autoSubscribeLog && this._socket.emit('requireLog', false);\n\n // un-subscribe states\n Object.keys(this.statesSubscribes).forEach(id => this._socket.emit('unsubscribe', id));\n }\n }\n\n /**\n * Requests log updates.\n * @param {boolean} isEnabled Set to true to get logs.\n * @returns {Promise<void>}\n */\n requireLog(isEnabled) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('requireLog', isEnabled, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Deletes the given object.\n * @param {string} id The object ID.\n * @param {boolean} maintenance Force deletion of non conform IDs.\n * @returns {Promise<void>}\n */\n delObject(id, maintenance) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('delObject', id, { maintenance: !!maintenance }, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Deletes the given object and all its children.\n * @param {string} id The object ID.\n * @param {boolean} maintenance Force deletion of non conform IDs.\n * @returns {Promise<void>}\n */\n delObjects(id, maintenance) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('delObjects', id, {maintenance: !!maintenance}, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Sets the object.\n * @param {string} id The object ID.\n * @param {ioBroker.SettableObject} obj The object.\n * @returns {Promise<void>}\n */\n setObject(id, obj) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (!obj) {\n return Promise.reject('Null object is not allowed');\n }\n\n obj = JSON.parse(JSON.stringify(obj));\n\n if (obj.hasOwnProperty('from')) {\n delete obj.from;\n }\n if (obj.hasOwnProperty('user')) {\n delete obj.user;\n }\n if (obj.hasOwnProperty('ts')) {\n delete obj.ts;\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('setObject', id, obj, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Gets the object with the given id from the server.\n * @param {string} id The object ID.\n * @returns {ioBroker.GetObjectPromise} The object.\n */\n getObject(id) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getObject', id, (err, obj) =>\n err ? reject(err) : resolve(obj)));\n }\n\n /**\n * Get all adapter instances.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n /**\n * Get all instances of the given adapter.\n * @param {string} adapter The name of the adapter.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getAdapterInstances(adapter, update) {\n if (typeof adapter === 'boolean') {\n update = adapter;\n adapter = '';\n }\n adapter = adapter || '';\n\n if (!update && this._promises['instances_' + adapter]) {\n return this._promises['instances_' + adapter];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['instances_' + adapter] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n timeout = null;\n this.getObjectView(\n `system.adapter.${adapter ? adapter + '.' : ''}`,\n `system.adapter.${adapter ? adapter + '.' : ''}\\u9999`,\n 'instance'\n )\n .then(items => resolve(Object.keys(items).map(id => fixAdminUI(items[id]))))\n .catch(e => reject(e));\n }, TIMEOUT_FOR_ADMIN4);\n\n this._socket.emit('getAdapterInstances', adapter, (err, instances) => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n return err ? reject(err) : resolve(instances);\n }\n });\n });\n\n return this._promises['instances_' + adapter];\n }\n\n /**\n * Get all adapters.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n /**\n * Get adapters with the given name.\n * @param {string} adapter The name of the adapter.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getAdapters(adapter, update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n if (typeof adapter === 'boolean') {\n update = adapter;\n adapter = '';\n }\n\n adapter = adapter || '';\n\n if (!update && this._promises['adapter_' + adapter]) {\n return this._promises['adapter_' + adapter];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['adapter_' + adapter] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n timeout = null;\n this.getObjectView(\n `system.adapter.${adapter}.`,\n `system.adapter.${adapter}.\\u9999`,\n 'adapter'\n )\n .then(items => resolve(Object.keys(items).map(id => fixAdminUI(items[id]))))\n .catch(e => reject(e));\n }, TIMEOUT_FOR_ADMIN4);\n\n this._socket.emit('getAdapters', adapter, (err, adapters) => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n return err ? reject(err) : resolve(adapters);\n }\n });\n });\n\n return this._promises['adapter_' + adapter];\n }\n\n /**\n * Called internally.\n * @private\n * @param {any[]} objs\n * @param {(err?: any) => void} cb\n */\n _renameGroups(objs, cb) {\n if (!objs || !objs.length) {\n cb && cb();\n } else {\n let obj = objs.pop();\n let oldId = obj._id;\n obj._id = obj.newId;\n delete obj.newId;\n\n this.setObject(obj._id, obj)\n .then(() => this.delObject(oldId))\n .then(() => setTimeout(() => this._renameGroups(objs, cb), 0))\n .catch(err => cb && cb(err));\n }\n }\n\n /**\n * Rename a group.\n * @param {string} id The id.\n * @param {string} newId The new id.\n * @param {string | { [lang in ioBroker.Languages]?: string; }} newName The new name.\n */\n renameGroup(id, newId, newName) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n return this.getGroups(true)\n .then(groups => {\n if (groups.length) {\n // find all elements\n const groupsToRename = groups\n .filter(group => group._id.startsWith(id + '.'));\n\n groupsToRename.forEach(group => group.newId = newId + group._id.substring(id.length));\n\n return new Promise((resolve, reject) =>\n this._renameGroups(groupsToRename, err => err ? reject(err) : resolve()))\n .then(() => {\n const obj = groups.find(group => group._id === id);\n\n if (obj) {\n obj._id = newId;\n if (newName !== undefined) {\n obj.common = obj.common || {};\n obj.common.name = newName;\n }\n\n return this.setObject(obj._id, obj)\n .then(() => this.delObject(id));\n }\n });\n }\n });\n }\n\n /**\n * Sends a message to a specific instance or all instances of some specific adapter.\n * @param {string} instance The instance to send this message to.\n * @param {string} [command] Command name of the target instance.\n * @param {ioBroker.MessagePayload} [data] The message data to send.\n * @returns {Promise<ioBroker.Message | undefined>}\n */\n sendTo(instance, command, data) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise(resolve =>\n this._socket.emit('sendTo', instance, command, data, result =>\n resolve(result)));\n }\n\n /**\n * Extend an object and create it if it might not exist.\n * @param {string} id The id.\n * @param {ioBroker.PartialObject} obj The object.\n */\n extendObject(id, obj) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n obj = JSON.parse(JSON.stringify(obj));\n\n if (obj.hasOwnProperty('from')) {\n delete obj.from;\n }\n if (obj.hasOwnProperty('user')) {\n delete obj.user;\n }\n if (obj.hasOwnProperty('ts')) {\n delete obj.ts;\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('extendObject', id, obj, err => err ? reject(err) : resolve()));\n }\n\n /**\n * Register a handler for log messages.\n * @param {(message: string) => void} handler The handler.\n */\n registerLogHandler(handler) {\n !this.onLogHandlers.includes(handler) && this.onLogHandlers.push(handler);\n }\n\n /**\n * Unregister a handler for log messages.\n * @param {(message: string) => void} handler The handler.\n */\n unregisterLogHandler(handler) {\n const pos = this.onLogHandlers.indexOf(handler);\n pos !== -1 && this.onLogHandlers.splice(pos, 1);\n }\n\n /**\n * Register a handler for the connection state.\n * @param {(connected: boolean) => void} handler The handler.\n */\n registerConnectionHandler(handler) {\n !this.onConnectionHandlers.includes(handler) && this.onConnectionHandlers.push(handler);\n }\n\n /**\n * Unregister a handler for the connection state.\n * @param {(connected: boolean) => void} handler The handler.\n */\n unregisterConnectionHandler(handler) {\n const pos = this.onConnectionHandlers.indexOf(handler);\n pos !== -1 && this.onConnectionHandlers.splice(pos, 1);\n }\n\n /**\n * Set the handler for standard output of a command.\n * @param {(id: string, text: string) => void} handler The handler.\n */\n registerCmdStdoutHandler(handler) {\n this.onCmdStdoutHandler = handler;\n }\n\n /**\n * Unset the handler for standard output of a command.\n * @param {(id: string, text: string) => void} handler The handler.\n */\n unregisterCmdStdoutHandler(handler) {\n this.onCmdStdoutHandler = null;\n }\n\n /**\n * Set the handler for standard error of a command.\n * @param {(id: string, text: string) => void} handler The handler.\n */\n registerCmdStderrHandler(handler) {\n this.onCmdStderrHandler = handler;\n }\n\n /**\n * Unset the handler for standard error of a command.\n * @param {(id: string, text: string) => void} handler The handler.\n */\n unregisterCmdStderrHandler(handler) {\n this.onCmdStderrHandler = null;\n }\n\n /**\n * Set the handler for exit of a command.\n * @param {(id: string, exitCode: number) => void} handler The handler.\n */\n registerCmdExitHandler(handler) {\n this.onCmdExitHandler = handler;\n }\n\n /**\n * Unset the handler for exit of a command.\n * @param {(id: string, exitCode: number) => void} handler The handler.\n */\n unregisterCmdExitHandler(handler) {\n this.onCmdExitHandler = null;\n }\n\n /**\n * Get all enums with the given name.\n * @param {string} [_enum] The name of the enum\n * @param {boolean} [update] Force update.\n * @returns {Promise<Record<string, ioBroker.Object>>}\n */\n getEnums(_enum, update) {\n if (!update && this._promises['enums_' + (_enum || 'all')]) {\n return this._promises['enums_' + (_enum || 'all')];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['enums_' + (_enum || 'all')] = new Promise((resolve, reject) => {\n this._socket.emit('getObjectView', 'system', 'enum', { startkey: 'enum.' + (_enum || ''), endkey: 'enum.' + (_enum ? (_enum + '.') : '') + '\\u9999' }, (err, res) => {\n if (!err && res) {\n const _res = {};\n for (let i = 0; i < res.rows.length; i++) {\n if (_enum && res.rows[i].id === 'enum.' + _enum) {\n continue;\n }\n _res[res.rows[i].id] = res.rows[i].value;\n }\n resolve(_res);\n } else {\n reject(err);\n }\n });\n });\n\n return this._promises['enums_' + (_enum || 'all')];\n }\n\n /**\n * Query a predefined object view.\n * @param {string} start The start ID.\n * @param {string} end The end ID.\n * @param {string} type The type of object.\n * @returns {Promise<Record<string, ioBroker.Object>>}\n */\n getObjectView(start, end, type) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n start = start || '';\n end = end || '\\u9999';\n\n return new Promise((resolve, reject) => {\n this._socket.emit('getObjectView', 'system', type, { startkey: start, endkey: end }, (err, res) => {\n if (!err) {\n const _res = {};\n if (res && res.rows) {\n for (let i = 0; i < res.rows.length; i++) {\n _res[res.rows[i].id] = res.rows[i].value;\n }\n }\n resolve(_res);\n } else {\n reject(err);\n }\n });\n });\n }\n\n /**\n * Get the stored certificates.\n * @param {boolean} [update] Force update.\n * @returns {Promise<{name: string; type: 'public' | 'private' | 'chained'}[]>}\n */\n getCertificates(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n if (this._promises.cert && !update) {\n return this._promises.cert;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.cert = this.getObject('system.certificates')\n .then(res => {\n const certs = [];\n if (res && res.native && res.native.certificates) {\n Object.keys(res.native.certificates).forEach(c => {\n const cert = res.native.certificates[c];\n if (!cert) {\n return;\n }\n const _cert = {\n name: c,\n type: ''\n };\n // If it is filename, it could be everything\n if (cert.length < 700 && (cert.indexOf('/') !== -1 || cert.indexOf('\\\\') !== -1)) {\n if (c.toLowerCase().includes('private')) {\n _cert.type = 'private';\n } else if (cert.toLowerCase().includes('private')) {\n _cert.type = 'private';\n } else if (c.toLowerCase().includes('public')) {\n _cert.type = 'public';\n } else if (cert.toLowerCase().includes('public')) {\n _cert.type = 'public';\n }\n certs.push(_cert);\n } else {\n _cert.type = (cert.substring(0, '-----BEGIN RSA PRIVATE KEY'.length) === '-----BEGIN RSA PRIVATE KEY' || cert.substring(0, '-----BEGIN PRIVATE KEY'.length) === '-----BEGIN PRIVATE KEY') ? 'private' : 'public';\n\n if (_cert.type === 'public') {\n const m = cert.split('-----END CERTIFICATE-----');\n if (m.filter(t => t.replace(/\\r\\n|\\r|\\n/, '').trim()).length > 1) {\n _cert.type = 'chained';\n }\n }\n\n certs.push(_cert);\n }\n });\n }\n return certs;\n });\n\n return this._promises.cert;\n }\n\n /**\n * Get the logs from a host (only for admin connection).\n * @param {string} host\n * @param {number} [linesNumber]\n * @returns {Promise<string[]>}\n */\n getLogs(host, linesNumber) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise(resolve =>\n this._socket.emit('sendToHost', host, 'getLogs', linesNumber || 200, lines =>\n resolve(lines)));\n }\n\n /**\n * Get the log files (only for admin connection).\n * @returns {Promise<string[]>}\n */\n getLogsFiles(host) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('readLogs', host, (err, files) =>\n err ? reject(err) : resolve(files)));\n }\n\n /**\n * Delete the logs from a host (only for admin connection).\n * @param {string} host\n * @returns {Promise<void>}\n */\n delLogs(host) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('sendToHost', host, 'delLogs', null, error =>\n error ? reject(error) : resolve()));\n }\n\n /**\n * Read the meta items.\n * @returns {Promise<ioBroker.Object[]>}\n */\n readMetaItems() {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getObjectView', 'system', 'meta', { startkey: '', endkey: '\\u9999' }, (err, objs) =>\n err ? reject(err) : resolve(objs.rows && objs.rows.map(obj => obj.value))));\n }\n\n /**\n * Read the directory of an adapter.\n * @param {string} adapter The adapter name.\n * @param {string} fileName The directory name.\n * @returns {Promise<ioBroker.ReadDirResult[]>}\n */\n readDir(adapter, fileName) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('readDir', adapter, fileName, (err, files) =>\n err ? reject(err) : resolve(files)));\n }\n\n /**\n * Read a file of an adapter.\n * @param {string} adapter The adapter name.\n * @param {string} fileName The file name.\n * @param {boolean} base64 If it must be a base64 format\n * @returns {Promise<string>}\n */\n readFile(adapter, fileName, base64) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) => {\n if (!base64) {\n this._socket.emit('readFile', adapter, fileName, (err, data, type) => {\n //@ts-ignore\n err ? reject(err) : resolve({data, type});\n });\n } else {\n this._socket.emit('readFile64', adapter, fileName, base64, (err, data) =>\n err ? reject(err) : resolve(data));\n }\n });\n }\n\n /**\n * Write a file of an adapter.\n * @param {string} adapter The adapter name.\n * @param {string} fileName The file name.\n * @param {Buffer | string} data The data (if it's a Buffer, it will be converted to Base64).\n * @returns {Promise<void>}\n */\n writeFile64(adapter, fileName, data) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) => {\n if (typeof data === 'string') {\n this._socket.emit('writeFile', adapter, fileName, data, err =>\n err ? reject(err) : resolve());\n } else {\n const base64 = btoa(\n new Uint8Array(data)\n .reduce((data, byte) => data + String.fromCharCode(byte), '')\n );\n\n this._socket.emit('writeFile64', adapter, fileName, base64, err =>\n err ? reject(err) : resolve());\n }\n });\n }\n\n /**\n * Rename a file or folder of an adapter.\n *\n * All files in folder will be renamed too.\n * @param {string} adapter The adapter name.\n * @param {string} oldName The file name of the file to be renamed.\n * @param {string} newName The new file name.\n * @returns {Promise<void>}\n */\n rename(adapter, oldName, newName) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('rename', adapter, oldName, newName, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Delete a file of an adapter.\n * @param {string} adapter The adapter name.\n * @param {string} fileName The file name.\n * @returns {Promise<void>}\n */\n deleteFile(adapter, fileName) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('unlink', adapter, fileName, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Delete a folder of an adapter.\n * All files in folder will be deleted.\n * @param {string} adapter The adapter name.\n * @param {string} folderName The folder name.\n * @returns {Promise<void>}\n */\n deleteFolder(adapter, folderName) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('deleteFolder', adapter, folderName, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Get the list of all hosts.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getHosts(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.hosts) {\n return this._promises.hosts;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.hosts = new Promise((resolve, reject) =>\n this._socket.emit(\n 'getObjectView',\n 'system',\n 'host',\n {startkey: 'system.host.', endkey: 'system.host.\\u9999'},\n (err, doc) => {\n if (err) {\n reject(err);\n } else {\n resolve(doc.rows.map(item => item.value));\n }\n }));\n\n return this._promises.hosts;\n }\n\n /**\n * Get the list of all users.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getUsers(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.users) {\n return this._promises.users;\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.users = new Promise((resolve, reject) =>\n this._socket.emit(\n 'getObjectView',\n 'system',\n 'user',\n {startkey: 'system.user.', endkey: 'system.user.\\u9999'},\n (err, doc) => {\n if (err) {\n reject(err);\n } else {\n resolve(doc.rows.map(item => item.value));\n }\n }));\n\n return this._promises.users;\n }\n\n /**\n * Get the list of all groups.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getGroups(update) {\n if (!update && this._promises.groups) {\n return this._promises.groups;\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.groups = new Promise((resolve, reject) =>\n this._socket.emit(\n 'getObjectView',\n 'system',\n 'group',\n {startkey: 'system.group.', endkey: 'system.group.\\u9999'},\n (err, doc) => {\n if (err) {\n reject(err);\n } else {\n resolve(doc.rows.map(item => item.value));\n }\n }));\n\n return this._promises.groups;\n }\n\n /**\n * Get the host information.\n * @param {string} host\n * @param {boolean} [update] Force update.\n * @param {number} [timeoutMs] optional read timeout.\n * @returns {Promise<any>}\n */\n getHostInfo(host, update, timeoutMs) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!host.startsWith('system.host.')) {\n host += 'system.host.' + host;\n }\n\n if (!update && this._promises['hostInfo' + host]) {\n return this._promises['hostInfo' + host];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['hostInfo' + host] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('getHostInfo timeout');\n }\n }, timeoutMs || this.props.cmdTimeout);\n\n this._socket.emit('sendToHost', host, 'getHostInfo', null, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getHostInfo\"');\n } else if (!data) {\n reject('Cannot read \"getHostInfo\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises['hostInfo' + host];\n }\n\n /**\n * Get the host information (short version).\n * @param {string} host\n * @param {boolean} [update] Force update.\n * @param {number} [timeoutMs] optional read timeout.\n * @returns {Promise<any>}\n */\n getHostInfoShort(host, update, timeoutMs) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!host.startsWith('system.host.')) {\n host += 'system.host.' + host;\n }\n\n if (!update && this._promises['hostInfoShort' + host]) {\n return this._promises['hostInfoShort' + host];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['hostInfoShort' + host] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('hostInfoShort timeout');\n }\n }, timeoutMs || this.props.cmdTimeout);\n\n this._socket.emit('sendToHost', host, 'getHostInfoShort', null, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getHostInfoShort\"');\n } else if (!data) {\n reject('Cannot read \"getHostInfoShort\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises['hostInfoShort' + host];\n }\n\n /**\n * Get the repository.\n * @param {string} host\n * @param {any} [args]\n * @param {boolean} [update] Force update.\n * @param {number} [timeoutMs] timeout in ms.\n * @returns {Promise<any>}\n */\n getRepository(host, args, update, timeoutMs) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.repo) {\n return this._promises.repo;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (!host.startsWith('system.host.')) {\n host += 'system.host.' + host;\n }\n\n this._promises.repo = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('getRepository timeout');\n }\n }, timeoutMs || this.props.cmdTimeout);\n\n this._socket.emit('sendToHost', host, 'getRepository', args, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getRepository\"');\n } else if (!data) {\n reject('Cannot read \"getRepository\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises.repo;\n }\n\n /**\n * Get the installed.\n * @param {string} host\n * @param {boolean} [update] Force update.\n * @param {number} [cmdTimeout] timeout in ms (optional)\n * @returns {Promise<any>}\n */\n getInstalled(host, update, cmdTimeout) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n this._promises.installed = this._promises.installed || {};\n\n if (!update && this._promises.installed[host]) {\n return this._promises.installed[host];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (!host.startsWith('system.host.')) {\n host += 'system.host.' + host;\n }\n\n this._promises.installed[host] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('getInstalled timeout');\n }\n }, cmdTimeout || this.props.cmdTimeout);\n\n this._socket.emit('sendToHost', host, 'getInstalled', null, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getInstalled\"');\n } else if (!data) {\n reject('Cannot read \"getInstalled\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises.installed[host];\n }\n\n /**\n * Execute a command on a host.\n * @param {string} host The host name.\n * @param {string} cmd The command.\n * @param {string} cmdId The command ID.\n * @param {number} cmdTimeout Timeout of command in ms\n * @returns {Promise<void>}\n */\n cmdExec(host, cmd, cmdId, cmdTimeout) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (!host.startsWith(host)) {\n host += 'system.host.' + host;\n }\n\n return new Promise((resolve, reject) => {\n let timeout = cmdTimeout && setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('cmdExec timeout');\n }\n }, cmdTimeout);\n\n this._socket.emit('cmdExec', host, cmdId, cmd, null, err => {\n if (!cmdTimeout || timeout) {\n timeout && clearTimeout(timeout);\n timeout = null;\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n }\n });\n });\n }\n\n /**\n * Checks if a given feature is supported.\n * @param {string} feature The feature to check.\n * @param {boolean} [update] Force update.\n * @returns {Promise<any>}\n */\n checkFeatureSupported(feature, update) {\n if (!update && this._promises['supportedFeatures_' + feature]) {\n return this._promises['supportedFeatures_' + feature];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['supportedFeatures_' + feature] = new Promise((resolve, reject) =>\n this._socket.emit('checkFeatureSupported', feature, (err, features) => {\n err ? reject(err) : resolve(features)\n }));\n\n return this._promises['supportedFeatures_' + feature];\n }\n\n /**\n * Read the base settings of a given host.\n * @param {string} host\n * @returns {Promise<any>}\n */\n readBaseSettings(host) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return this.checkFeatureSupported('CONTROLLER_READWRITE_BASE_SETTINGS')\n .then(result => {\n if (result) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('readBaseSettings timeout');\n }\n }, this.props.cmdTimeout);\n\n if (host.startsWith('system.host.')) {\n host = host.replace(/^system\\.host\\./, '');\n }\n\n this._socket.emit('sendToHost', host, 'readBaseSettings', null, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n\n if (data === PERMISSION_ERROR) {\n reject('May not read \"BaseSettings\"');\n } else if (!data) {\n reject('Cannot read \"BaseSettings\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n } else {\n return Promise.reject('Not supported');\n }\n });\n }\n\n /**\n * Write the base settings of a given host.\n * @param {string} host\n * @param {any} config\n * @returns {Promise<any>}\n */\n writeBaseSettings(host, config) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return this.checkFeatureSupported('CONTROLLER_READWRITE_BASE_SETTINGS')\n .then(result => {\n if (result) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('writeBaseSettings timeout');\n }\n }, this.props.cmdTimeout);\n\n this._socket.emit('sendToHost', host, 'writeBaseSettings', config, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n\n if (data === PERMISSION_ERROR) {\n reject('May not write \"BaseSettings\"');\n } else if (!data) {\n reject('Cannot write \"BaseSettings\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n } else {\n return Promise.reject('Not supported');\n }\n })\n }\n\n /**\n * Send command to restart the iobroker on host\n * @param {string} host\n * @returns {Promise<any>}\n */\n restartController(host) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return new Promise((resolve, reject) => {\n this._socket.emit('sendToHost', host, 'restartController', null, error => {\n error ? reject(error) : resolve(true);\n });\n });\n }\n\n /**\n * Read statistics information from host\n * @param {string} host\n * @param {string} typeOfDiag one of none, normal, no-city, extended\n * @returns {Promise<any>}\n */\n getDiagData(host, typeOfDiag) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return new Promise(resolve => {\n this._socket.emit('sendToHost', host, 'getDiagData', typeOfDiag, result =>\n resolve(result));\n });\n }\n\n /**\n * Read all states (which might not belong to this adapter) which match the given pattern.\n * @param {string} pattern\n * @returns {ioBroker.GetStatesPromise}\n */\n getForeignStates(pattern) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n if (Connection.isWeb()) {\n return new Promise((resolve, reject) =>\n this._socket.emit('getStates', pattern || '*', (err, states) =>\n err ? reject(err) : resolve(states)));\n } else {\n return new Promise((resolve, reject) =>\n this._socket.emit('getForeignStates', pattern || '*', (err, states) =>\n err ? reject(err) : resolve(states)));\n }\n }\n\n /**\n * Get foreign objects by pattern, by specific type and resolve their enums.\n * @param {string} pattern\n * @param {string} [type]\n * @returns {ioBroker.GetObjectsPromise}\n */\n getForeignObjects(pattern, type) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getForeignObjects', pattern || '*', type, (err, states) =>\n err ? reject(err) : resolve(states)));\n }\n\n /**\n * Gets the system configuration.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.OtherObject>}\n */\n getSystemConfig(update) {\n if (!update && this._promises.systemConfig) {\n return this._promises.systemConfig;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.systemConfig = this.getObject('system.config')\n .then(systemConfig => {\n //@ts-ignore\n systemConfig = systemConfig || {};\n //@ts-ignore\n systemConfig.common = systemConfig.common || {};\n //@ts-ignore\n systemConfig.native = systemConfig.native || {};\n return systemConfig;\n });\n\n return this._promises.systemConfig;\n }\n\n /**\n * Sets the system configuration.\n * @param {ioBroker.SettableObjectWorker<ioBroker.OtherObject>} obj\n * @returns {Promise<ioBroker.SettableObjectWorker<ioBroker.OtherObject>>}\n */\n setSystemConfig(obj) {\n return this.setObject('system.config', obj)\n .then(() => this._promises.systemConfig = Promise.resolve(obj));\n }\n\n /**\n * Get the raw socket.io socket.\n * @returns {any}\n */\n getRawSocket() {\n return this._socket;\n }\n\n /**\n * Get the history of a given state.\n * @param {string} id\n * @param {ioBroker.GetHistoryOptions} options\n * @returns {Promise<ioBroker.GetHistoryResult>}\n */\n getHistory(id, options) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getHistory', id, options, (err, values) =>\n err ? reject(err) : resolve(values)));\n }\n\n /**\n * Get the history of a given state.\n * @param {string} id\n * @param {ioBroker.GetHistoryOptions} options\n * @returns {Promise<{values: ioBroker.GetHistoryResult; sesionId: string; stepIgnore: number}>}\n */\n getHistoryEx(id, options) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getHistory', id, options, (err, values, stepIgnore, sessionId) =>\n err ? reject(err) : resolve({ values, sessionId, stepIgnore })));\n }\n\n /**\n * Change the password of the given user.\n * @param {string} user\n * @param {string} password\n * @returns {Promise<void>}\n */\n changePassword(user, password) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('changePassword', user, password, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Get the IP addresses of the given host.\n * @param {string} host\n * @param {boolean} [update] Force update.\n * @returns {Promise<string[]>}\n */\n getIpAddresses(host, update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!host.startsWith('system.host.')) {\n host = 'system.host.' + host;\n }\n\n if (!update && this._promises['IPs_' + host]) {\n return this._promises['IPs_' + host];\n }\n this._promises['IPs_' + host] = this.getObject(host)\n .then(obj => obj && obj.common ? obj.common.address || [] : []);\n\n return this._promises['IPs_' + host];\n }\n\n /**\n * Get the IP addresses with interface names of the given host or find host by IP.\n * @param {string} ipOrHostName\n * @param {boolean} [update] Force update.\n * @returns {Promise<any[<name, address, family>]>}\n */\n getHostByIp(ipOrHostName, update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (ipOrHostName.startsWith('system.host.')) {\n ipOrHostName = ipOrHostName.replace(/^system\\.host\\./, '');\n }\n\n if (!update && this._promises['rIPs_' + ipOrHostName]) {\n return this._promises['rIPs_' + ipOrHostName];\n }\n this._promises['rIPs_' + ipOrHostName] = new Promise(resolve =>\n this._socket.emit('getHostByIp', ipOrHostName, (ip, host) => {\n const IPs4 = [{name: '[IPv4] 0.0.0.0 - Listen on all IPs', address: '0.0.0.0', family: 'ipv4'}];\n const IPs6 = [{name: '[IPv6] :: - Listen on all IPs', address: '::', family: 'ipv6'}];\n if (host?.native?.hardware?.networkInterfaces) {\n for (const eth in host.native.hardware.networkInterfaces) {\n if (!host.native.hardware.networkInterfaces.hasOwnProperty(eth)) {\n continue;\n }\n for (let num = 0; num < host.native.hardware.networkInterfaces[eth].length; num++) {\n if (host.native.hardware.networkInterfaces[eth][num].family !== 'IPv6') {\n IPs4.push({name: `[${host.native.hardware.networkInterfaces[eth][num].family}] ${host.native.hardware.networkInterfaces[eth][num].address} - ${eth}`, address: host.native.hardware.networkInterfaces[eth][num].address, family: 'ipv4'});\n } else {\n IPs6.push({name: `[${host.native.hardware.networkInterfaces[eth][num].family}] ${host.native.hardware.networkInterfaces[eth][num].address} - ${eth}`, address: host.native.hardware.networkInterfaces[eth][num].address, family: 'ipv6'});\n }\n }\n }\n }\n for (let i = 0; i < IPs6.length; i++) {\n IPs4.push(IPs6[i]);\n }\n resolve(IPs4);\n }));\n\n return this._promises['rIPs_' + ipOrHostName];\n }\n\n /**\n * Encrypt a text\n * @param {string} text\n * @returns {Promise<string>}\n */\n encrypt(text) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('encrypt', text, (err, text) =>\n err ? reject(err) : resolve(text)));\n }\n\n /**\n * Decrypt a text\n * @param {string} encryptedText\n * @returns {Promise<string>}\n */\n decrypt(encryptedText) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('decrypt', encryptedText, (err, text) =>\n err ? reject(err) : resolve(text)));\n }\n\n /**\n * Gets the version.\n * @returns {Promise<{version: string; serverName: string}>}\n */\n getVersion(update) {\n if (update && this._promises.version) {\n this._promises.version = null;\n }\n\n this._promises.version = this._promises.version || new Promise((resolve, reject) =>\n this._socket.emit('getVersion', (err, version, serverName) => {\n // support of old socket.io\n if (err && !version && typeof err === 'string' && err.match(/\\d+\\.\\d+\\.\\d+/)) {\n resolve({ version: err, serverName: 'socketio' });\n } else {\n return err ? reject(err) : resolve({ version, serverName });\n }\n }));\n\n return this._promises.version;\n }\n\n /**\n * Gets the web server name.\n * @returns {Promise<string>}\n */\n getWebServerName() {\n this._promises.webName = this._promises.webName || new Promise((resolve, reject) =>\n this._socket.emit('getAdapterName', (err, name) =>\n err ? reject(err) : resolve(name)));\n\n return this._promises.webName;\n }\n\n /**\n * Gets the admin version.\n * @deprecated use getVersion()\n * @returns {Promise<{version: string; serverName: string}>}\n */\n getAdminVersion() {\n console.log('Deprecated: use getVersion');\n return this.getVersion();\n }\n\n /**\n * Change access rights for file\n * @param {string} [adapter] adapter name\n * @param {string} [filename] file name with full path. it could be like vis.0/*\n * @param {object} [options] like {mode: 0x644}\n * @returns {Promise<{entries: array}>}\n */\n chmodFile(adapter, filename, options) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('chmodFile', adapter, filename, options, (err, entries, id) =>\n err ? reject(err) : resolve({entries, id})));\n }\n\n /**\n * Change owner or/and owner group for file\n * @param {string} [adapter] adapter name\n * @param {string} [filename] file name with full path. it could be like vis.0/*\n * @param {object} [options] like {owner: 'newOwner', ownerGroup: 'newGroup'}\n * @returns {Promise<{entries: array}>}\n */\n chownFile(adapter, filename, options) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('chownFile', adapter, filename, options, (err, entries, id) =>\n err ? reject(err) : resolve({entries, id})));\n }\n\n /**\n * Check if the file exists\n * @param {string} [adapter] adapter name\n * @param {string} [filename] file name with full path. it could be like vis.0/*\n * @returns {Promise<boolean>}\n */\n fileExists(adapter, filename) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('fileExists', adapter, filename, (err, exists) =>\n err ? reject(err) : resolve(exists)));\n }\n\n /**\n * Get the alarm notifications from a host (only for admin connection).\n * @param {string} host\n * @param {string} [category] - optional\n * @returns {Promise<any>}\n */\n getNotifications(host, category) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise(resolve =>\n this._socket.emit('sendToHost', host, 'getNotifications', {category}, notifications =>\n resolve(notifications)));\n }\n\n /**\n * Clear the alarm notifications on a host (only for admin connection).\n * @param {string} host\n * @param {string} [category] - optional\n * @returns {Promise<any>}\n */\n clearNotifications(host, category) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise(resolve =>\n this._socket.emit('sendToHost', host, 'clearNotifications', {category}, notifications =>\n resolve(notifications)));\n }\n\n /**\n * Read if only easy mode is allowed (only for admin connection).\n * @returns {Promise<boolean>}\n */\n getIsEasyModeStrict() {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getIsEasyModeStrict', (error, isStrict) =>\n error ? reject(error) : resolve(isStrict)));\n }\n\n /**\n * Read easy mode configuration (only for admin connection).\n * @returns {Promise<any>}\n */\n getEasyMode() {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getEasyMode', (error, config) =>\n error ? reject(error) : resolve(config)));\n }\n\n /**\n * Read current user\n * @returns {Promise<string>}\n */\n getCurrentUser() {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise(resolve =>\n this._socket.emit('authEnabled', (isSecure, user) =>\n resolve(user)));\n }\n\n getCurrentSession(cmdTimeout) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) => {\n const controller = new AbortController();\n\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n controller.abort();\n reject('getCurrentSession timeout');\n }\n }, cmdTimeout || 5000);\n\n return fetch('./session', { signal: controller.signal })\n .then(res => res.json())\n .then(json => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n resolve(json);\n }\n })\n .catch(e =>\n reject('getCurrentSession: ' + e));\n });\n }\n\n /**\n * Read adapter ratings\n * @returns {Promise<any>}\n */\n getRatings(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getRatings', update, (err, ratings) =>\n err ? reject(err) : resolve(ratings)));\n }\n\n /**\n * Read current web, socketio or admin namespace, like admin.0\n * @returns {Promise<string>}\n */\n getCurrentInstance() {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.currentInstance = this._promises.currentInstance ||\n new Promise((resolve, reject) =>\n this._socket.emit('getCurrentInstance', (err, namespace) =>\n err ? reject(err) : resolve(namespace)));\n\n return this._promises.currentInstance;\n }\n\n // returns very optimized information for adapters to minimize connection load\n getCompactAdapters(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.compactAdapters) {\n return this._promises.compactAdapters;\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n this._promises.compactAdapters = new Promise((resolve, reject) =>\n this._socket.emit('getCompactAdapters', (err, adapters) =>\n err ? reject(err) : resolve(adapters)));\n\n return this._promises.compactAdapters;\n }\n\n // returns very optimized information for adapters to minimize connection load\n getCompactInstances(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.compactInstances) {\n return this._promises.compactInstances;\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.compactInstances = new Promise((resolve, reject) =>\n this._socket.emit('getCompactInstances', (err, instances) =>\n err ? reject(err) : resolve(instances)));\n\n return this._promises.compactInstances;\n }\n\n // returns very optimized information for adapters to minimize connection load\n // reads only version of installed adapter\n getCompactInstalled(host, update, cmdTimeout) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n this._promises.installedCompact = this._promises.installedCompact || {};\n\n if (!update && this._promises.installedCompact[host]) {\n return this._promises.installedCompact[host];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (!host.startsWith('system.host.')) {\n host += 'system.host.' + host;\n }\n\n this._promises.installedCompact[host] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('getCompactInstalled timeout');\n }\n }, cmdTimeout || this.props.cmdTimeout);\n\n this._socket.emit('getCompactInstalled', host, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getCompactInstalled\"');\n } else if (!data) {\n reject('Cannot read \"getCompactInstalled\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises.installedCompact[host];\n }\n\n // returns very optimized information for adapters to minimize connection load\n getCompactSystemConfig(update) {\n if (!update && this._promises.systemConfigCommon) {\n return this._promises.systemConfigCommon;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.systemConfigCommon = new Promise((resolve, reject) =>\n this._socket.emit('getCompactSystemConfig', (err, systemConfig) =>\n err ? reject(err) : resolve(systemConfig)));\n\n return this._promises.systemConfigCommon;\n }\n\n /**\n * Get the repository in compact form (only version and icon).\n * @param {string} host\n * @param {boolean} [update] Force update.\n * @param {number} [timeoutMs] timeout in ms.\n * @returns {Promise<any>}\n */\n getCompactRepository(host, update, timeoutMs) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.repoCompact) {\n return this._promises.repoCompact;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (!host.startsWith('system.host.')) {\n host += 'system.host.' + host;\n }\n\n this._promises.repoCompact = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('getCompactRepository timeout');\n }\n }, timeoutMs || this.props.cmdTimeout);\n\n this._socket.emit('getCompactRepository', host, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getCompactRepository\"');\n } else if (!data) {\n reject('Cannot read \"getCompactRepository\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises.repoCompact;\n }\n\n /**\n * Get the list of all hosts in compact form (only _id, common.name, common.icon, common.color, native.hardware.networkInterfaces)\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getCompactHosts(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.hostsCompact) {\n return this._promises.hostsCompact;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.hostsCompact = new Promise((resolve, reject) =>\n this._socket.emit('getCompactHosts', (err, hosts) =>\n err ? reject(err) : resolve(hosts)));\n\n return this._promises.hostsCompact;\n }\n\n /**\n * Get uuid\n * @returns {Promise<ioBroker.Object[]>}\n */\n getUuid() {\n if (this._promises.uuid) {\n return this._promises.uuid;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.uuid = this.getObject('system.meta.uuid')\n //@ts-ignore\n .then(obj => obj?.native?.uuid);\n\n return this._promises.uuid;\n }\n\n /**\n * Send log to ioBroker log\n * @param {string} [text] Log text\n * @param {string} [level] `info`, `debug`, `warn`, `error` or `silly`\n * @returns {void}\n */\n log(text, level) {\n text && this._socket.emit('log', text, level || 'debug');\n }\n\n /**\n * Logout current user\n * @returns {Promise<null>}\n */\n logout() {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('logout', err =>\n err ? reject(err) : resolve(null)));\n }\n}\n\nConnection.Connection = {\n onLog: PropTypes.func,\n onReady: PropTypes.func,\n onProgress: PropTypes.func,\n};\n\nexport default Connection;\n"],"mappings":"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"}
|
package/README.md
CHANGED
|
@@ -641,7 +641,13 @@ If you still have questions, try to find an answer [here](https://mui.com/guides
|
|
|
641
641
|
-->
|
|
642
642
|
|
|
643
643
|
## Changelog
|
|
644
|
-
### 3.1.
|
|
644
|
+
### 3.1.11 (2022-06-22)
|
|
645
|
+
* (bluefox) Added preparations for iobroker cloud
|
|
646
|
+
|
|
647
|
+
### 3.1.10 (2022-06-22)
|
|
648
|
+
* (bluefox) Added translations
|
|
649
|
+
|
|
650
|
+
### 3.1.9 (2022-06-20)
|
|
645
651
|
* (bluefox) Allowed to work behind reverse proxy
|
|
646
652
|
|
|
647
653
|
### 3.1.7 (2022-06-19)
|
package/i18n/de.json
CHANGED
|
@@ -311,5 +311,6 @@
|
|
|
311
311
|
"ra_Move down": "Nach unten",
|
|
312
312
|
"ra_Delete current row": "Aktuelle Zeile löschen",
|
|
313
313
|
"ra_All items are filtered out": "Alle Elemente werden herausgefiltert",
|
|
314
|
-
"ra_Double click to reset table layout": "Doppelklicken, um das Tabellenlayout zurückzusetzen"
|
|
314
|
+
"ra_Double click to reset table layout": "Doppelklicken, um das Tabellenlayout zurückzusetzen",
|
|
315
|
+
"ra_Cannot retrieve options, as instance is offline": "Optionen können nicht abgerufen werden, da die Instanz offline ist"
|
|
315
316
|
}
|
package/i18n/en.json
CHANGED
|
@@ -311,5 +311,6 @@
|
|
|
311
311
|
"ra_Move down": "Move down",
|
|
312
312
|
"ra_Delete current row": "Delete current row",
|
|
313
313
|
"ra_All items are filtered out": "All items are filtered out",
|
|
314
|
-
"ra_Double click to reset table layout": "Double click to reset table layout"
|
|
314
|
+
"ra_Double click to reset table layout": "Double click to reset table layout",
|
|
315
|
+
"ra_Cannot retrieve options, as instance is offline": "Cannot retrieve options, as instance is offline"
|
|
315
316
|
}
|
package/i18n/es.json
CHANGED
|
@@ -298,5 +298,6 @@
|
|
|
298
298
|
"ra_Move down": "Mover hacia abajo",
|
|
299
299
|
"ra_Delete current row": "Eliminar fila actual",
|
|
300
300
|
"ra_All items are filtered out": "Todos los elementos se filtran",
|
|
301
|
-
"ra_Double click to reset table layout": "Haga doble clic para restablecer el diseño de la tabla"
|
|
301
|
+
"ra_Double click to reset table layout": "Haga doble clic para restablecer el diseño de la tabla",
|
|
302
|
+
"ra_Cannot retrieve options, as instance is offline": "No se pueden recuperar las opciones, ya que la instancia está fuera de línea"
|
|
302
303
|
}
|
package/i18n/fr.json
CHANGED
|
@@ -298,5 +298,6 @@
|
|
|
298
298
|
"ra_Move down": "Descendre",
|
|
299
299
|
"ra_Delete current row": "Supprimer la ligne actuelle",
|
|
300
300
|
"ra_All items are filtered out": "Tous les éléments sont filtrés",
|
|
301
|
-
"ra_Double click to reset table layout": "Double-cliquez pour réinitialiser la disposition du tableau"
|
|
301
|
+
"ra_Double click to reset table layout": "Double-cliquez pour réinitialiser la disposition du tableau",
|
|
302
|
+
"ra_Cannot retrieve options, as instance is offline": "Impossible de récupérer les options, car l'instance est hors ligne"
|
|
302
303
|
}
|
package/i18n/it.json
CHANGED
|
@@ -298,5 +298,6 @@
|
|
|
298
298
|
"ra_Move down": "Abbassati",
|
|
299
299
|
"ra_Delete current row": "Elimina la riga corrente",
|
|
300
300
|
"ra_All items are filtered out": "Tutti gli elementi vengono filtrati",
|
|
301
|
-
"ra_Double click to reset table layout": "Fare doppio clic per ripristinare il layout della tabella"
|
|
301
|
+
"ra_Double click to reset table layout": "Fare doppio clic per ripristinare il layout della tabella",
|
|
302
|
+
"ra_Cannot retrieve options, as instance is offline": "Impossibile recuperare le opzioni, poiché l'istanza è offline"
|
|
302
303
|
}
|
package/i18n/nl.json
CHANGED
|
@@ -298,5 +298,6 @@
|
|
|
298
298
|
"ra_Move down": "Naar beneden verplaatsen",
|
|
299
299
|
"ra_Delete current row": "Huidige rij verwijderen",
|
|
300
300
|
"ra_All items are filtered out": "Alle items zijn uitgefilterd",
|
|
301
|
-
"ra_Double click to reset table layout": "Dubbelklik om de tafelindeling te resetten"
|
|
301
|
+
"ra_Double click to reset table layout": "Dubbelklik om de tafelindeling te resetten",
|
|
302
|
+
"ra_Cannot retrieve options, as instance is offline": "Kan opties niet ophalen, omdat instantie offline is"
|
|
302
303
|
}
|
package/i18n/pl.json
CHANGED
|
@@ -298,5 +298,6 @@
|
|
|
298
298
|
"ra_Move down": "Padnij",
|
|
299
299
|
"ra_Delete current row": "Usuń bieżący wiersz",
|
|
300
300
|
"ra_All items are filtered out": "Wszystkie pozycje są odfiltrowane",
|
|
301
|
-
"ra_Double click to reset table layout": "Kliknij dwukrotnie, aby zresetować układ tabeli"
|
|
301
|
+
"ra_Double click to reset table layout": "Kliknij dwukrotnie, aby zresetować układ tabeli",
|
|
302
|
+
"ra_Cannot retrieve options, as instance is offline": "Nie można pobrać opcji, ponieważ instancja jest w trybie offline"
|
|
302
303
|
}
|
package/i18n/pt.json
CHANGED
|
@@ -298,5 +298,6 @@
|
|
|
298
298
|
"ra_Move down": "Mover para baixo",
|
|
299
299
|
"ra_Delete current row": "Excluir linha atual",
|
|
300
300
|
"ra_All items are filtered out": "Todos os itens são filtrados",
|
|
301
|
-
"ra_Double click to reset table layout": "Clique duas vezes para redefinir o layout da tabela"
|
|
301
|
+
"ra_Double click to reset table layout": "Clique duas vezes para redefinir o layout da tabela",
|
|
302
|
+
"ra_Cannot retrieve options, as instance is offline": "Não é possível recuperar opções, pois a instância está off-line"
|
|
302
303
|
}
|
package/i18n/ru.json
CHANGED
|
@@ -311,5 +311,6 @@
|
|
|
311
311
|
"ra_Move down": "Вниз",
|
|
312
312
|
"ra_Delete current row": "Удалить текущую строку",
|
|
313
313
|
"ra_All items are filtered out": "Все элементы отфильтрованы",
|
|
314
|
-
"ra_Double click to reset table layout": "Дважды щелкните, чтобы сбросить макет таблицы"
|
|
314
|
+
"ra_Double click to reset table layout": "Дважды щелкните, чтобы сбросить макет таблицы",
|
|
315
|
+
"ra_Cannot retrieve options, as instance is offline": "Невозможно получить параметры, так как экземпляр находится в автономном режиме."
|
|
315
316
|
}
|
package/i18n/zh-cn.json
CHANGED
|
@@ -298,5 +298,6 @@
|
|
|
298
298
|
"ra_Move down": "下移",
|
|
299
299
|
"ra_Delete current row": "删除当前行",
|
|
300
300
|
"ra_All items are filtered out": "所有项目都被过滤掉",
|
|
301
|
-
"ra_Double click to reset table layout": "双击重置表格布局"
|
|
301
|
+
"ra_Double click to reset table layout": "双击重置表格布局",
|
|
302
|
+
"ra_Cannot retrieve options, as instance is offline": "无法检索选项,因为实例处于脱机状态"
|
|
302
303
|
}
|