@iobroker/adapter-react-v5 4.7.3 → 4.7.5
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/404.js +3 -3
- package/Components/ColorPicker.d.ts +1 -1
- package/Components/ColorPicker.js +14 -14
- package/Components/ComplexCron.js +3 -6
- package/Components/ComplexCron.js.map +1 -1
- package/Components/FileBrowser.js +5 -5
- package/Components/FileBrowser.js.map +1 -1
- package/Components/JsonConfigComponent/ChipInput.js +4 -5
- package/Components/JsonConfigComponent/ChipInput.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCheckLicense.js +2 -2
- package/Components/JsonConfigComponent/ConfigTable.js +2 -2
- package/Components/Loader.js +5 -5
- package/Components/Loaders/PT.js +5 -5
- package/Components/Loaders/Vendor.js +5 -5
- package/Components/ObjectBrowser.js +9 -8
- package/Components/ObjectBrowser.js.map +1 -1
- package/Components/TableResize.js +5 -5
- package/Dialogs/Confirm.js +5 -5
- package/Dialogs/Confirm.js.map +1 -1
- package/Dialogs/Error.js +5 -5
- package/Dialogs/Error.js.map +1 -1
- package/Dialogs/Message.js +5 -5
- package/Dialogs/Message.js.map +1 -1
- package/Dialogs/SelectFile.js +5 -5
- package/Dialogs/SelectFile.js.map +1 -1
- package/Dialogs/SelectID.js +5 -5
- package/Dialogs/SelectID.js.map +1 -1
- package/GenericApp.js +5 -5
- package/LegacyConnection.d.ts +2 -1
- package/LegacyConnection.js +15 -9
- package/LegacyConnection.js.map +1 -1
- package/README.md +7 -0
- package/package.json +6 -6
package/LegacyConnection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegacyConnection.js","names":["_propTypes","_interopRequireDefault","require","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","PROGRESS","exports","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","concat","_id","replace","JSON","stringify","pattern2RegEx","pattern","startsWithWildcard","endsWithWildcard","Connection","props","_this","_classCallCheck2","protocol","window","location","host","hostname","autoSubscribes","autoSubscribeLog","port","isWeb","ioTimeout","Math","max","cmdTimeout","_instanceSubscriptions","doNotLoadAllObjects","undefined","doNotLoadACL","states","objects","acl","firstConnect","waitForRestart","systemLang","connected","_waitForFirstConnection","Promise","resolve","_waitForFirstConnectionResolve","statesSubscribes","objectsSubscribes","filesSubscribes","onProgress","onError","error","loaded","loadTimer","loadCounter","admin5only","onConnectionHandlers","onLogHandlers","_promises","ignoreState","simStates","log","text","warn","info","silly","startSocket","_createClass2","key","_this2","io","registerSocketOnLoad","scriptLoadCounter","setTimeout","alert","_socket","path","pathname","socketUrl","parsed","URL","pos","lastIndexOf","substring","parts","split","pop","match","join","endsWith","url","connect","query","timeout","uuid","on","noTimeout","getVersion","then","_info$version$split","version","_info$version$split2","_slicedToArray2","major","minor","patch","v","parseInt","_authTimer","onPreConnect","emit","isOk","isSecure","reload","_subscribe","forEach","cb","subscribed","authenticate","message","onLog","_err","includes","operation","type","id","objectChange","state","stateChange","messageType","data","instanceMessage","fileName","size","fileChange","onCmdStdoutHandler","onCmdStderrHandler","exitCode","onCmdExitHandler","_this3","clearTimeout","onConnect","isConnected","waitForFirstConnection","_getUserPermissions","_this4","vendorPrefix","getCompactSystemConfig","getSystemConfig","systemConfig","language","navigator","userLanguage","_systemLang","substr","onLanguage","getObjects","onReady","search","hash","subscribeState","binary","ids","toSubscribe","reg","RegExp","cbs","push","getBinaryState","base64","keys","subscribeStateAsync","_this5","reject","Error","unsubscribeState","toUnsubscribe","indexOf","splice","subscribeObject","unsubscribeObject","_i","_Object$values","values","sub","regId","regFilePattern","_iterator","_step","_subscribeFiles","_asyncToGenerator2","_regenerator","mark","_callee","filePattern","filePatterns","wrap","_callee$","_context","prev","stop","subscribeFiles","_x","_x2","_x3","apply","arguments","unsubscribeFiles","_this6","oldObj","changed","_rev","onObjectChange","task","hasOwnProperty","sourceInstance","callback","getStates","disableProgressUpdate","_this7","res","STATES_LOADED","getState","_this8","val","ack","_this9","setBinaryState","_this10","setState","_this11","_typeof2","ts","Date","now","lc","_iterator2","_step2","update","_this12","getObjectsById","list","_this13","isEnable","_this14","requireLog","isEnabled","_this15","delObject","maintenance","_this16","delObjects","_this17","setObject","_this18","parse","user","getObject","_this19","getAdapterInstances","adapter","_this20","getObjectView","items","map","instances","getAdapters","_this21","adapters","_renameGroups","objs","_this22","oldId","newId","renameGroup","newName","_this23","getGroups","groups","groupsToRename","filter","group","startsWith","find","sendTo","instance","command","_this24","result","extendObject","_this25","registerLogHandler","handler","unregisterLogHandler","registerConnectionHandler","unregisterConnectionHandler","registerCmdStdoutHandler","unregisterCmdStdoutHandler","registerCmdStderrHandler","unregisterCmdStderrHandler","registerCmdExitHandler","unregisterCmdExitHandler","getEnums","_enum","_this26","startkey","endkey","_res","rows","getObjectViewCustom","design","start","end","_this27","getObjectViewSystem","getCertificates","cert","certs","certificates","c","_cert","toLowerCase","m","t","trim","getLogs","linesNumber","_this28","lines","getLogsFiles","_this29","files","delLogs","_this30","readMetaItems","_this31","readDir","_this32","readFile","_this33","writeFile64","_this34","btoa","Uint8Array","reduce","byte","String","fromCharCode","deleteFile","_this35","deleteFolder","folderName","_this36","getHosts","_this37","hosts","doc","item","getUsers","_this38","users","_this39","getHostInfo","timeoutMs","_this40","cache","getHostInfoShort","_this41","getRepository","args","_this42","repo","getInstalled","_this43","installed","rename","oldName","_this44","renameFile","_this45","cmdExec","cmd","cmdId","_this46","checkFeatureSupported","feature","_this47","features","readBaseSettings","_this48","writeBaseSettings","_this49","restartController","_this50","getDiagData","typeOfDiag","_this51","getForeignStates","_this52","getForeignObjects","_this53","setSystemConfig","_this54","getRawSocket","getHistory","options","_this55","getHistoryEx","_this56","stepIgnore","sessionId","changePassword","password","_this57","getIpAddresses","address","getHostByIp","ipOrHostName","_this58","ip","_host$native","IPs4","family","IPs6","hardware","networkInterfaces","eth","num","encrypt","_this59","_text","decrypt","encryptedText","_this60","_this61","serverName","getWebServerName","_this62","webName","getAdminVersion","chmodFile","filename","_this63","entries","chownFile","_this64","fileExists","_this65","exists","getNotifications","category","_this66","notifications","clearNotifications","_this67","getIsEasyModeStrict","_this68","isStrict","getEasyMode","_this69","getCurrentUser","_this70","getCurrentSession","controller","AbortController","abort","fetch","signal","json","getRatings","_this71","ratings","getCurrentInstance","_this72","currentInstance","namespace","getCompactAdapters","_this73","compactAdapters","getAdaptersResetCache","getCompactInstances","_this74","compactInstances","getAdapternInstancesResetCache","getCompactInstalled","_this75","installedCompact","getCompactSystemRepositories","_this76","getInstalledResetCache","repoCompact","_this77","systemConfigCommon","getCompactRepository","_this78","getCompactHosts","_this79","hostsCompact","getUuid","_obj$native","subscribeOnInstance","targetInstance","_this80","unsubscribeFromInstance","_this81","deleted","promiseResults","_loop","_this81$_instanceSubs","index","findIndex","_messageType","found","wasSubscribed","all","results","level","logout","_this82","setStateToIgnore","adapterName","PropTypes","func","_default"],"sources":["LegacyConnection.js"],"sourcesContent":["/**\n * Copyright 2020-2023, Denis Haev (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\n/** Converts ioB pattern into regex\n * @param {string} pattern\n * @returns {string}\n */\n\nexport function pattern2RegEx(pattern) {\n pattern = (pattern || '').toString();\n\n const startsWithWildcard = pattern[0] === '*';\n const endsWithWildcard = pattern[pattern.length - 1] === '*';\n\n pattern = pattern\n .replace(/[-/\\\\^$+?.()|[\\]{}]/g, '\\\\$&')\n .replace(/\\*/g, '.*');\n\n return (startsWithWildcard ? '' : '^') + pattern + (endsWithWildcard ? '' : '$');\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 this._instanceSubscriptions = {};\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 => {\n this._waitForFirstConnectionResolve = resolve;\n });\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.filesSubscribes = {}; // subscribe for files\n this.onProgress = this.props.onProgress || (() => {});\n this.onError = this.props.onError || (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 this.ignoreState = '';\n this.simStates = {};\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 && window.adapterName.startsWith('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 }\n window.alert('Cannot load socket.io.js!');\n } else {\n // register on load\n window.registerSocketOnLoad(() => this.startSocket());\n }\n return;\n }\n if (this._socket) {\n // socket was initialized, do not repeat\n return;\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 another port or even host\n if (window.socketUrl) {\n const parsed = new URL(window.socketUrl);\n host = parsed.hostname;\n port = parsed.port;\n protocol = parsed.protocol.replace(':', '');\n }\n // get a 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 // if it is a version, like in material, so remove it too\n if (parts[parts.length - 1].match(/\\d+\\.\\d+\\.\\d+/)) {\n parts.pop();\n }\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 uuid: this.props.uuid,\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 an 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({\n message: 'no permission',\n operation: err.operation,\n type: err.type,\n id: (err.id || ''),\n }));\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('im', (messageType, from, data) =>\n setTimeout(() => this.instanceMessage(messageType, from, data), 0));\n\n this._socket.on('fileChange', (id, fileName, size) =>\n setTimeout(() => this.fileChange(id, fileName, size), 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 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 this.onError(`Cannot read user permissions: ${err}`);\n return;\n }\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 (/^(en|de|ru|pt|nl|fr|it|es|pl|uk)-?/.test(this._systemLang)) {\n this.systemLang = this._systemLang.substr(0, 2);\n } else if (\n !/^(en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn)$/.test(this._systemLang)\n ) {\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 }\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 let ids;\n if (!Array.isArray(id)) {\n ids = [id];\n } else {\n ids = id;\n }\n const toSubscribe = [];\n for (let i = 0; i < ids.length; i++) {\n const _id = ids[i];\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.includes('*')) {\n reg += '$';\n }\n this.statesSubscribes[_id] = { reg: new RegExp(reg), cbs: [] };\n this.statesSubscribes[_id].cbs.push(cb);\n if (_id !== this.ignoreState) {\n toSubscribe.push(_id);\n }\n } else {\n !this.statesSubscribes[_id].cbs.includes(cb) && this.statesSubscribes[_id].cbs.push(cb);\n }\n }\n\n if (toSubscribe.length && this.connected) {\n // no answer from server required\n this._socket.emit('subscribe', toSubscribe);\n }\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 this._socket.emit(Connection.isWeb() ? 'getStates' : '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 * Subscribe to changes of the given state.\n * @param {string | string[]} id The ioBroker state ID or array of states\n * @param {ioBroker.StateChangeHandler} cb The callback.\n */\n subscribeStateAsync(id, cb) {\n let ids;\n if (!Array.isArray(id)) {\n ids = [id];\n } else {\n ids = id;\n }\n const toSubscribe = [];\n for (let i = 0; i < ids.length; i++) {\n const _id = ids[i];\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.includes('*')) {\n reg += '$';\n }\n this.statesSubscribes[_id] = { reg: new RegExp(reg), cbs: [] };\n this.statesSubscribes[_id].cbs.push(cb);\n if (_id !== this.ignoreState) {\n // no answer from server required\n toSubscribe.push(_id);\n }\n } else {\n !this.statesSubscribes[_id].cbs.includes(cb) && this.statesSubscribes[_id].cbs.push(cb);\n }\n }\n\n if (toSubscribe.length && this.connected) {\n // no answer from server required\n this._socket.emit('subscribe', toSubscribe);\n }\n\n return new Promise((resolve, reject) => {\n if (typeof cb === 'function' && this.connected) {\n this._socket.emit(Connection.isWeb() ? 'getStates' : '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 states ? resolve(null) : reject(new Error(`Cannot getForeignStates \"${id}\": ${JSON.stringify(err)}`));\n });\n } else {\n this.connected ? reject(new Error('callback is not a function')) : reject(new Error('not connected'));\n }\n });\n }\n\n /**\n * Unsubscribes all callbacks from changes of the given state.\n * @param {string | string[]} id The ioBroker state ID or array of states\n */\n /**\n * Unsubscribes the given callback from changes of the given state.\n * @param {string | string[]} id The ioBroker state ID or array of states\n * @param {ioBroker.StateChangeHandler} cb The callback.\n */\n unsubscribeState(id, cb) {\n let ids;\n if (!Array.isArray(id)) {\n ids = [id];\n } else {\n ids = id;\n }\n const toUnsubscribe = [];\n for (let i = 0; i < ids.length; i++) {\n const _id = ids[i];\n\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 if (_id !== this.ignoreState) {\n toUnsubscribe.push(_id);\n }\n }\n }\n }\n\n if (toUnsubscribe.length && this.connected) {\n // no answer from server required\n this._socket.emit('unsubscribe', toUnsubscribe);\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 let ids;\n if (!Array.isArray(id)) {\n ids = [id];\n } else {\n ids = id;\n }\n const toSubscribe = [];\n for (let i = 0; i < ids.length; i++) {\n const _id = ids[i];\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 ids.push(_id);\n } else {\n !this.objectsSubscribes[_id].cbs.includes(cb) && this.objectsSubscribes[_id].cbs.push(cb);\n }\n }\n if (this.connected && toSubscribe.length) {\n this._socket.emit('subscribeObjects', toSubscribe);\n }\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 let ids;\n if (!Array.isArray(id)) {\n ids = [id];\n } else {\n ids = id;\n }\n const toUnsubscribe = [];\n for (let i = 0; i < ids.length; i++) {\n const _id = ids[i];\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 toUnsubscribe.push(_id);\n }\n }\n }\n\n if (this.connected && toUnsubscribe.length) {\n this._socket.emit('unsubscribeObjects', toUnsubscribe);\n }\n\n return Promise.resolve();\n }\n\n /**\n * Called internally.\n * @param id\n * @param fileName\n * @param size\n */\n fileChange(id, fileName, size) {\n for (const sub of Object.values(this.filesSubscribes)) {\n if (sub.regId.test(id) && sub.regFilePattern.test(fileName)) {\n for (const cb of sub.cbs) {\n try {\n cb(id, fileName, size);\n } catch (e) {\n console.error(\n `Error by callback of fileChange: ${e}`,\n );\n }\n }\n }\n }\n }\n\n /**\n * Subscribe to changes of the files.\n * @param {string} id The ioBroker state ID for meta-object. Could be a pattern\n * @param {string} filePattern Pattern or file name, like 'main/*' or 'main/visViews.json`\n * @param {function} cb The callback.\n */\n async subscribeFiles(id, filePattern, cb) {\n if (typeof cb !== 'function') {\n throw new Error('The state change handler must be a function!');\n }\n let filePatterns;\n if (Array.isArray(filePattern)) {\n filePatterns = filePattern;\n } else {\n filePatterns = [filePattern];\n }\n const toSubscribe = [];\n for (let f = 0; f < filePatterns.length; f++) {\n const pattern = filePatterns[f];\n const key = `${id}$%$${pattern}`;\n\n if (!this.filesSubscribes[key]) {\n this.filesSubscribes[key] = {\n regId: new RegExp(pattern2RegEx(id)),\n regFilePattern: new RegExp(pattern2RegEx(pattern)),\n cbs: [cb],\n };\n\n toSubscribe.push(pattern);\n } else {\n !this.filesSubscribes[key].cbs.includes(cb) &&\n this.filesSubscribes[key].cbs.push(cb);\n }\n }\n if (this.connected && toSubscribe.length) {\n this._socket.emit('subscribeFiles', id, toSubscribe);\n }\n }\n\n /**\n * Unsubscribes the given callback from changes of files.\n * @param {string} id The ioBroker state ID.\n * @param {string} filePattern Pattern or file name, like 'main/*' or 'main/visViews.json`\n * @param {function} cb The callback.\n */\n unsubscribeFiles(id, filePattern, cb) {\n let filePatterns;\n if (Array.isArray(filePattern)) {\n filePatterns = filePattern;\n } else {\n filePatterns = [filePattern];\n }\n const toUnsubscribe = [];\n for (let f = 0; f < filePatterns.length; f++) {\n const pattern = filePatterns[f];\n const key = `${id}$%$${pattern}`;\n if (this.filesSubscribes[key]) {\n const sub = this.filesSubscribes[key];\n if (cb) {\n const pos = sub.cbs.indexOf(cb);\n pos !== -1 && sub.cbs.splice(pos, 1);\n } else {\n sub.cbs = [];\n }\n\n if (!sub.cbs || !sub.cbs.length) {\n delete this.filesSubscribes[key];\n this.connected &&\n toUnsubscribe.push(pattern);\n }\n }\n }\n\n if (this.connected && toUnsubscribe.length) {\n this._socket.emit('unsubscribeFiles', id, toUnsubscribe);\n }\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 => {\n try {\n cb(id, obj, oldObj);\n } catch (e) {\n console.error(`Error by callback of objectChange: ${e}`);\n }\n });\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 (Object.prototype.hasOwnProperty.call(this.statesSubscribes, task) && this.statesSubscribes[task].reg.test(id)) {\n this.statesSubscribes[task].cbs.forEach(cb => {\n try {\n cb(id, state);\n } catch (e) {\n console.error(`Error by callback of stateChange: ${e}`);\n }\n });\n }\n }\n }\n\n /**\n * Called internally.\n * @param {string} messageType\n * @param {string} sourceInstance\n * @param {object} data\n */\n instanceMessage(messageType, sourceInstance, data) {\n if (this._instanceSubscriptions[sourceInstance]) {\n this._instanceSubscriptions[sourceInstance].forEach(sub => {\n if (sub.messageType === messageType) {\n sub.callback(data, sourceInstance, messageType);\n }\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 if (id && id === this.ignoreState) {\n return Promise.resolve(this.simStates[id] || { val: null, ack: true });\n }\n return new Promise((resolve, reject) =>\n (this._socket.emit('getState', id, (err, state) => err ? reject(err) : resolve(state))));\n }\n\n /**\n * @deprecated since js-controller 5.0. Use files instead.\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 * @deprecated since js-controller 5.0. Use files instead.\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 * @param {boolean | null} ack Acknowledge flag\n * @returns {Promise<void>}\n */\n setState(id, val, ack) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (typeof ack === 'boolean') {\n val = { val, ack };\n }\n\n // extra handling for \"nothing_selected\" state for vis\n if (id && id === this.ignoreState) {\n let state;\n\n if (typeof ack === 'boolean') {\n state = val;\n } else if (typeof val === 'object' && val.val !== undefined) {\n state = val;\n } else {\n state = {\n val,\n ack: false,\n ts: Date.now(),\n lc: Date.now(),\n from: 'system.adapter.vis.0',\n };\n }\n\n this.simStates[id] = state;\n\n // inform subscribers about changes\n if (this.statesSubscribes[id]) {\n for (const cb of this.statesSubscribes[id].cbs) {\n try {\n cb(id, state);\n } catch (e) {\n console.error(\n `Error by callback of stateChanged: ${e}`,\n );\n }\n }\n }\n\n return Promise.resolve();\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 }\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 * Gets objects by list of IDs.\n * @param {string[]} list Array of object IDs to retrieve.\n * @returns {void}\n */\n getObjectsById(list) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getObjects', list, (err, res) =>\n err ? reject(err) : resolve(res)));\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 const ids = Object.keys(this.statesSubscribes);\n ids.forEach(id => this._socket.emit('subscribe', id));\n ids.length && this._socket.emit(Connection.isWeb() ? 'getStates' : 'getForeignStates', ids, (err, states) => {\n err && console.error(`Cannot getForeignStates: ${JSON.stringify(err)}`);\n // inform about states\n states && Object.keys(states).forEach(id => this.stateChange(id, states[id]));\n });\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 (Object.prototype.hasOwnProperty.call(obj, 'from')) {\n delete obj.from;\n }\n if (Object.prototype.hasOwnProperty.call(obj, 'user')) {\n delete obj.user;\n }\n if (Object.prototype.hasOwnProperty.call(obj, '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 if (id && id === this.ignoreState) {\n return Promise.resolve({\n _id: this.ignoreState,\n type: 'state',\n common: {\n name: 'ignored state',\n type: 'mixed',\n },\n });\n }\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 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 const obj = objs.pop();\n const 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 design design - 'system' or other designs like `custom`.\n * @param type The type of object.\n * @param start The start ID.\n * @param [end] The end ID.\n */\n getObjectViewCustom(design, type, start, end) {\n return new Promise((resolve, reject) => {\n this._socket.emit('getObjectView', design, 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 * Query a predefined object view.\n * @param type The type of object.\n * @param start The start ID.\n * @param [end] The end ID.\n */\n getObjectViewSystem(type, start, end) {\n return this.getObjectViewCustom('system', type, start, end);\n }\n\n /**\n * @deprecated since version 1.1.15, cause parameter order does not match backend\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 return this.getObjectViewCustom('system', type, start, end);\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 a filename, it could be everything\n if (cert.length < 700 && (cert.includes('/') || cert.includes('\\\\'))) {\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 * 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\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\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 const cache = `hostInfo${host}`;\n\n if (!update && this._promises[cache]) {\n return this._promises[cache];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises[cache] = 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[cache];\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 const cache = `hostInfoShort${host}`;\n\n if (!update && this._promises[cache]) {\n return this._promises[cache];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises[cache] = 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[cache];\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 * Rename file or folder in ioBroker DB\n * @param adapter instance name\n * @param oldName current file name, e.g main/vis-views.json\n * @param newName new file name, e.g main/vis-views-new.json\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 => err ? reject(err) : resolve()));\n }\n\n /**\n * Rename file in ioBroker DB\n * @param adapter instance name\n * @param oldName current file name, e.g, main/vis-views.json\n * @param newName new file name, e.g, main/vis-views-new.json\n */\n renameFile(adapter, oldName, newName) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('renameFile', adapter, oldName, newName, err => err ? reject(err) : resolve()));\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 const cache = `supportedFeatures_${feature}`;\n if (!update && this._promises[cache]) {\n return this._promises[cache];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises[cache] = new Promise((resolve, reject) =>\n this._socket.emit('checkFeatureSupported', feature, (err, features) => {\n err ? reject(err) : resolve(features);\n }));\n\n return this._promises[cache];\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 }\n\n return Promise.reject('Not supported');\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(new Error('May not write \"BaseSettings\"'));\n } else if (!data) {\n reject(new Error('Cannot write \"BaseSettings\"'));\n } else {\n resolve(data);\n }\n }\n });\n });\n }\n\n return Promise.reject(new Error('Not supported'));\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 }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getForeignStates', pattern || '*', (err, states) =>\n err ? reject(err) : resolve(states)));\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 const cache = `rIPs_${ipOrHostName}`;\n\n if (!update && this._promises[cache]) {\n return this._promises[cache];\n }\n this._promises[cache] = 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[cache];\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 getAdaptersResetCache(adapter) {\n adapter = adapter || '';\n this._promises.compactAdapters = null;\n this._promises['adapter_' + adapter] = null;\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 getAdapternInstancesResetCache(adapter) {\n adapter = adapter || '';\n this._promises.compactInstances = null;\n this._promises['instances_' + adapter] = null;\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 // reads only version of installed adapter\n getCompactSystemRepositories(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 (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.getCompactSystemRepositories = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('getCompactSystemRepositories timeout');\n }\n }, cmdTimeout || this.props.cmdTimeout);\n\n this._socket.emit('getCompactSystemRepositories', data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getCompactSystemRepositories\"');\n } else if (!data) {\n reject('Cannot read \"getCompactSystemRepositories\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises.getCompactSystemRepositories;\n }\n\n getInstalledResetCache(host) {\n if (this._promises.installedCompact) {\n this._promises.installedCompact[host] = null;\n }\n if (this._promises.installed) {\n this._promises.installed[host] = null;\n }\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\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 getInstalledResetCache(/* host */) {\n this._promises.repoCompact = null;\n this._promises.repo = null;\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 * Subscribe on instance message\n * @param {string} [targetInstance] instance, like 'cameras.0'\n * @param {string} [messageType] message type like 'startCamera/cam3'\n * @param {object} [data] optional data object\n * @param {function} [callback] message handler\n * @returns {Promise<null>}\n */\n subscribeOnInstance(targetInstance, messageType, data, callback) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('clientSubscribe', targetInstance, messageType, data, (err, result) => {\n if (err) {\n reject(err);\n } else if (result && result.error) {\n reject(result.error);\n } else {\n if (!targetInstance.startsWith('system.adapter.')) {\n targetInstance = `system.adapter.${targetInstance}`;\n }\n // save callback\n this._instanceSubscriptions[targetInstance] = this._instanceSubscriptions[targetInstance] || [];\n if (!this._instanceSubscriptions[targetInstance].find(sub =>\n sub.messageType === messageType &&\n sub.callback === callback)\n ) {\n this._instanceSubscriptions[targetInstance].push({\n messageType,\n callback,\n });\n }\n resolve(result);\n }\n }));\n }\n\n /**\n * Unsubscribe from instance message\n * @param {string} [targetInstance] instance, like 'cameras.0'\n * @param {string} [messageType] message type like 'startCamera/cam3'\n * @param {function} [callback] message handler. Could be null if all callbacks for this messageType should be unsubscribed\n * @returns {Promise<boolean>}\n */\n unsubscribeFromInstance(targetInstance, messageType, callback) {\n if (!targetInstance.startsWith('system.adapter.')) {\n targetInstance = `system.adapter.${targetInstance}`;\n }\n let deleted;\n const promiseResults = [];\n do {\n deleted = false;\n const index = this._instanceSubscriptions[targetInstance]?.findIndex(sub =>\n (!messageType || sub.messageType === messageType) && (!callback || sub.callback === callback));\n\n if (index !== undefined && index !== null && index !== -1) {\n deleted = true;\n // remember messageType\n const _messageType =\n this._instanceSubscriptions[targetInstance][index].messageType;\n\n this._instanceSubscriptions[targetInstance].splice(index, 1);\n if (!this._instanceSubscriptions[targetInstance].length) {\n delete this._instanceSubscriptions[targetInstance];\n }\n\n // try to find another subscription for this instance and messageType\n const found = this._instanceSubscriptions[targetInstance] &&\n this._instanceSubscriptions[targetInstance].find(sub => sub.messageType === _messageType);\n\n if (!found) {\n promiseResults.push(new Promise((resolve, reject) =>\n this._socket.emit('clientUnsubscribe', targetInstance, messageType, (err, wasSubscribed) => {\n if (err) {\n reject(err);\n } else {\n resolve(wasSubscribed);\n }\n })));\n }\n }\n } while (deleted && (!callback || !messageType));\n\n if (promiseResults.length) {\n return Promise.all(promiseResults)\n .then(results => results.find(result => result) || false);\n }\n\n return Promise.resolve(false);\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 /**\n * This is special method for vis.\n * It is used to not send to server the changes about \"nothing_selected\" state\n * @param id The state that has to be ignored by communication\n */\n setStateToIgnore(id) {\n this.ignoreState = id;\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":"LegacyConnection.js","names":["_propTypes","_interopRequireDefault","require","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","PROGRESS","exports","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","concat","_id","replace","JSON","stringify","pattern2RegEx","pattern","startsWithWildcard","endsWithWildcard","Connection","props","_this","_classCallCheck2","protocol","window","location","host","hostname","autoSubscribes","autoSubscribeLog","port","isWeb","ioTimeout","Math","max","cmdTimeout","_instanceSubscriptions","doNotLoadAllObjects","undefined","doNotLoadACL","states","objects","acl","firstConnect","waitForRestart","systemLang","connected","_waitForFirstConnection","Promise","resolve","_waitForFirstConnectionResolve","statesSubscribes","objectsSubscribes","filesSubscribes","onProgress","onError","error","loaded","loadTimer","loadCounter","admin5only","onConnectionHandlers","onLogHandlers","_promises","ignoreState","simStates","log","text","warn","info","silly","startSocket","_createClass2","key","_this2","io","registerSocketOnLoad","scriptLoadCounter","setTimeout","alert","_socket","path","pathname","socketUrl","parsed","URL","pos","lastIndexOf","substring","parts","split","pop","match","join","endsWith","url","connect","query","timeout","uuid","on","noTimeout","getVersion","then","_info$version$split","version","_info$version$split2","_slicedToArray2","major","minor","patch","v","parseInt","_authTimer","onPreConnect","emit","isOk","isSecure","reload","_subscribe","forEach","cb","subscribed","authenticate","message","onLog","_err","includes","operation","type","id","objectChange","state","stateChange","messageType","data","instanceMessage","fileName","size","fileChange","onCmdStdoutHandler","onCmdStderrHandler","exitCode","onCmdExitHandler","_this3","clearTimeout","onConnect","isConnected","waitForFirstConnection","_getUserPermissions","_this4","vendorPrefix","getCompactSystemConfig","getSystemConfig","systemConfig","language","navigator","userLanguage","_systemLang","substr","onLanguage","getObjects","onReady","search","hash","subscribeState","binary","ids","toSubscribe","reg","RegExp","cbs","push","getBinaryState","base64","keys","subscribeStateAsync","_this5","reject","Error","unsubscribeState","toUnsubscribe","indexOf","splice","subscribeObject","unsubscribeObject","_i","_Object$values","values","sub","regId","regFilePattern","_iterator","_step","_subscribeFiles","_asyncToGenerator2","_regenerator","mark","_callee","filePattern","filePatterns","wrap","_callee$","_context","prev","stop","subscribeFiles","_x","_x2","_x3","apply","arguments","unsubscribeFiles","_this6","oldObj","changed","_rev","onObjectChange","task","hasOwnProperty","sourceInstance","callback","getStates","disableProgressUpdate","_this7","res","STATES_LOADED","getState","_this8","val","ack","_this9","setBinaryState","_this10","setState","_this11","_typeof2","ts","Date","now","lc","_iterator2","_step2","update","_this12","getObjectsById","list","_this13","isEnable","_this14","requireLog","isEnabled","_this15","delObject","maintenance","_this16","delObjects","_this17","setObject","_this18","parse","user","getObject","_this19","getAdapterInstances","adapter","_this20","getObjectView","items","map","instances","getAdapters","_this21","adapters","_renameGroups","objs","_this22","oldId","newId","renameGroup","newName","_this23","getGroups","groups","groupsToRename","filter","group","startsWith","find","sendTo","instance","command","_this24","result","extendObject","_this25","registerLogHandler","handler","unregisterLogHandler","registerConnectionHandler","unregisterConnectionHandler","registerCmdStdoutHandler","unregisterCmdStdoutHandler","registerCmdStderrHandler","unregisterCmdStderrHandler","registerCmdExitHandler","unregisterCmdExitHandler","getEnums","_enum","_this26","startkey","endkey","_res","rows","getObjectViewCustom","design","start","end","_this27","getObjectViewSystem","getCertificates","cert","certs","certificates","c","_cert","toLowerCase","m","t","trim","getLogs","linesNumber","_this28","lines","getLogsFiles","_this29","files","delLogs","_this30","readMetaItems","_this31","readDir","_this32","readFile","_this33","writeFile64","_this34","btoa","Uint8Array","reduce","byte","String","fromCharCode","deleteFile","_this35","deleteFolder","folderName","_this36","getHosts","_this37","hosts","doc","item","getUsers","_this38","users","_this39","getHostInfo","timeoutMs","_this40","cache","getHostInfoShort","_this41","getRepository","args","_this42","repo","getInstalled","_this43","installed","rename","oldName","_this44","renameFile","_this45","cmdExec","cmd","cmdId","_this46","checkFeatureSupported","feature","_this47","features","readBaseSettings","_this48","writeBaseSettings","_this49","restartController","_this50","getDiagData","typeOfDiag","_this51","getForeignStates","_this52","getForeignObjects","_this53","setSystemConfig","_this54","getRawSocket","getHistory","options","_this55","getHistoryEx","_this56","stepIgnore","sessionId","changePassword","password","_this57","getIpAddresses","address","getHostByIp","ipOrHostName","_this58","ip","_host$native","IPs4","family","IPs6","hardware","networkInterfaces","eth","num","encrypt","_this59","_text","decrypt","encryptedText","_this60","_this61","serverName","getWebServerName","_this62","webName","getAdminVersion","chmodFile","filename","_this63","entries","chownFile","_this64","fileExists","_this65","exists","getNotifications","category","_this66","notifications","clearNotifications","_this67","getIsEasyModeStrict","_this68","isStrict","getEasyMode","_this69","getCurrentUser","_this70","getCurrentSession","controller","AbortController","abort","fetch","signal","json","getRatings","_this71","ratings","getCurrentInstance","_this72","currentInstance","namespace","getCompactAdapters","_this73","compactAdapters","getAdaptersResetCache","getCompactInstances","_this74","compactInstances","getAdapternInstancesResetCache","getCompactInstalled","_this75","installedCompact","getCompactSystemRepositories","_this76","getInstalledResetCache","repoCompact","_this77","systemConfigCommon","getCompactRepository","_this78","getCompactHosts","_this79","hostsCompact","getUuid","_obj$native","subscribeOnInstance","targetInstance","_this80","unsubscribeFromInstance","_this81","deleted","promiseResults","_loop","_this81$_instanceSubs","index","findIndex","_messageType","found","wasSubscribed","all","results","level","logout","_this82","setStateToIgnore","adapterName","PropTypes","func","_default"],"sources":["LegacyConnection.js"],"sourcesContent":["/**\n * Copyright 2020-2023, Denis Haev (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\n/** Converts ioB pattern into regex\n * @param {string} pattern\n * @returns {string}\n */\n\nexport function pattern2RegEx(pattern) {\n pattern = (pattern || '').toString();\n\n const startsWithWildcard = pattern[0] === '*';\n const endsWithWildcard = pattern[pattern.length - 1] === '*';\n\n pattern = pattern\n .replace(/[-/\\\\^$+?.()|[\\]{}]/g, '\\\\$&')\n .replace(/\\*/g, '.*');\n\n return (startsWithWildcard ? '' : '^') + pattern + (endsWithWildcard ? '' : '$');\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 this._instanceSubscriptions = {};\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 => {\n this._waitForFirstConnectionResolve = resolve;\n });\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.filesSubscribes = {}; // subscribe for files\n this.onProgress = this.props.onProgress || (() => {});\n this.onError = this.props.onError || (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 this.ignoreState = '';\n this.simStates = {};\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 && window.adapterName.startsWith('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 }\n window.alert('Cannot load socket.io.js!');\n } else {\n // register on load\n window.registerSocketOnLoad(() => this.startSocket());\n }\n return;\n }\n if (this._socket) {\n // socket was initialized, do not repeat\n return;\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 another port or even host\n if (window.socketUrl) {\n const parsed = new URL(window.socketUrl);\n host = parsed.hostname;\n port = parsed.port;\n protocol = parsed.protocol.replace(':', '');\n }\n // get a 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 // if it is a version, like in material, so remove it too\n if (parts[parts.length - 1].match(/\\d+\\.\\d+\\.\\d+/)) {\n parts.pop();\n }\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 uuid: this.props.uuid,\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 an 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({\n message: 'no permission',\n operation: err.operation,\n type: err.type,\n id: (err.id || ''),\n }));\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('im', (messageType, from, data) =>\n setTimeout(() => this.instanceMessage(messageType, from, data), 0));\n\n this._socket.on('fileChange', (id, fileName, size) =>\n setTimeout(() => this.fileChange(id, fileName, size), 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 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 this.onError(`Cannot read user permissions: ${err}`);\n return;\n }\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 (/^(en|de|ru|pt|nl|fr|it|es|pl|uk)-?/.test(this._systemLang)) {\n this.systemLang = this._systemLang.substr(0, 2);\n } else if (\n !/^(en|de|ru|pt|nl|fr|it|es|pl|uk|zh-cn)$/.test(this._systemLang)\n ) {\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 }\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 let ids;\n if (!Array.isArray(id)) {\n ids = [id];\n } else {\n ids = id;\n }\n const toSubscribe = [];\n for (let i = 0; i < ids.length; i++) {\n const _id = ids[i];\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.includes('*')) {\n reg += '$';\n }\n this.statesSubscribes[_id] = { reg: new RegExp(reg), cbs: [] };\n this.statesSubscribes[_id].cbs.push(cb);\n if (_id !== this.ignoreState) {\n toSubscribe.push(_id);\n }\n } else {\n !this.statesSubscribes[_id].cbs.includes(cb) && this.statesSubscribes[_id].cbs.push(cb);\n }\n }\n\n if (toSubscribe.length && this.connected) {\n // no answer from server required\n this._socket.emit('subscribe', toSubscribe);\n }\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 this._socket.emit(Connection.isWeb() ? 'getStates' : '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 * Subscribe to changes of the given state.\n * @param {string | string[]} id The ioBroker state ID or array of states\n * @param {ioBroker.StateChangeHandler} cb The callback.\n */\n subscribeStateAsync(id, cb) {\n let ids;\n if (!Array.isArray(id)) {\n ids = [id];\n } else {\n ids = id;\n }\n const toSubscribe = [];\n for (let i = 0; i < ids.length; i++) {\n const _id = ids[i];\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.includes('*')) {\n reg += '$';\n }\n this.statesSubscribes[_id] = { reg: new RegExp(reg), cbs: [] };\n this.statesSubscribes[_id].cbs.push(cb);\n if (_id !== this.ignoreState) {\n // no answer from server required\n toSubscribe.push(_id);\n }\n } else {\n !this.statesSubscribes[_id].cbs.includes(cb) && this.statesSubscribes[_id].cbs.push(cb);\n }\n }\n\n if (toSubscribe.length && this.connected) {\n // no answer from server required\n this._socket.emit('subscribe', toSubscribe);\n }\n\n return new Promise((resolve, reject) => {\n if (typeof cb === 'function' && this.connected) {\n this._socket.emit(Connection.isWeb() ? 'getStates' : '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 states ? resolve(null) : reject(new Error(`Cannot getForeignStates \"${id}\": ${JSON.stringify(err)}`));\n });\n } else {\n this.connected ? reject(new Error('callback is not a function')) : reject(new Error('not connected'));\n }\n });\n }\n\n /**\n * Unsubscribes all callbacks from changes of the given state.\n * @param {string | string[]} id The ioBroker state ID or array of states\n */\n /**\n * Unsubscribes the given callback from changes of the given state.\n * @param {string | string[]} id The ioBroker state ID or array of states\n * @param {ioBroker.StateChangeHandler} cb The callback.\n */\n unsubscribeState(id, cb) {\n let ids;\n if (!Array.isArray(id)) {\n ids = [id];\n } else {\n ids = id;\n }\n const toUnsubscribe = [];\n for (let i = 0; i < ids.length; i++) {\n const _id = ids[i];\n\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 if (_id !== this.ignoreState) {\n toUnsubscribe.push(_id);\n }\n }\n }\n }\n\n if (toUnsubscribe.length && this.connected) {\n // no answer from server required\n this._socket.emit('unsubscribe', toUnsubscribe);\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 let ids;\n if (!Array.isArray(id)) {\n ids = [id];\n } else {\n ids = id;\n }\n const toSubscribe = [];\n for (let i = 0; i < ids.length; i++) {\n const _id = ids[i];\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 toSubscribe.push(_id);\n } else {\n !this.objectsSubscribes[_id].cbs.includes(cb) && this.objectsSubscribes[_id].cbs.push(cb);\n }\n }\n if (this.connected && toSubscribe.length) {\n this._socket.emit('subscribeObjects', toSubscribe);\n }\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 let ids;\n if (!Array.isArray(id)) {\n ids = [id];\n } else {\n ids = id;\n }\n const toUnsubscribe = [];\n for (let i = 0; i < ids.length; i++) {\n const _id = ids[i];\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 toUnsubscribe.push(_id);\n }\n }\n }\n\n if (this.connected && toUnsubscribe.length) {\n this._socket.emit('unsubscribeObjects', toUnsubscribe);\n }\n\n return Promise.resolve();\n }\n\n /**\n * Called internally.\n * @param id\n * @param fileName\n * @param size\n */\n fileChange(id, fileName, size) {\n for (const sub of Object.values(this.filesSubscribes)) {\n if (sub.regId.test(id) && sub.regFilePattern.test(fileName)) {\n for (const cb of sub.cbs) {\n try {\n cb(id, fileName, size);\n } catch (e) {\n console.error(\n `Error by callback of fileChange: ${e}`,\n );\n }\n }\n }\n }\n }\n\n /**\n * Subscribe to changes of the files.\n * @param {string} id The ioBroker state ID for meta-object. Could be a pattern\n * @param {string} filePattern Pattern or file name, like 'main/*' or 'main/visViews.json`\n * @param {function} cb The callback.\n */\n async subscribeFiles(id, filePattern, cb) {\n if (typeof cb !== 'function') {\n throw new Error('The state change handler must be a function!');\n }\n let filePatterns;\n if (Array.isArray(filePattern)) {\n filePatterns = filePattern;\n } else {\n filePatterns = [filePattern];\n }\n const toSubscribe = [];\n for (let f = 0; f < filePatterns.length; f++) {\n const pattern = filePatterns[f];\n const key = `${id}$%$${pattern}`;\n\n if (!this.filesSubscribes[key]) {\n this.filesSubscribes[key] = {\n regId: new RegExp(pattern2RegEx(id)),\n regFilePattern: new RegExp(pattern2RegEx(pattern)),\n cbs: [cb],\n };\n\n toSubscribe.push(pattern);\n } else {\n !this.filesSubscribes[key].cbs.includes(cb) &&\n this.filesSubscribes[key].cbs.push(cb);\n }\n }\n if (this.connected && toSubscribe.length) {\n this._socket.emit('subscribeFiles', id, toSubscribe);\n }\n }\n\n /**\n * Unsubscribes the given callback from changes of files.\n * @param {string} id The ioBroker state ID.\n * @param {string} filePattern Pattern or file name, like 'main/*' or 'main/visViews.json`\n * @param {function} cb The callback.\n */\n unsubscribeFiles(id, filePattern, cb) {\n let filePatterns;\n if (Array.isArray(filePattern)) {\n filePatterns = filePattern;\n } else {\n filePatterns = [filePattern];\n }\n const toUnsubscribe = [];\n for (let f = 0; f < filePatterns.length; f++) {\n const pattern = filePatterns[f];\n const key = `${id}$%$${pattern}`;\n if (this.filesSubscribes[key]) {\n const sub = this.filesSubscribes[key];\n if (cb) {\n const pos = sub.cbs.indexOf(cb);\n pos !== -1 && sub.cbs.splice(pos, 1);\n } else {\n sub.cbs = [];\n }\n\n if (!sub.cbs || !sub.cbs.length) {\n delete this.filesSubscribes[key];\n this.connected &&\n toUnsubscribe.push(pattern);\n }\n }\n }\n\n if (this.connected && toUnsubscribe.length) {\n this._socket.emit('unsubscribeFiles', id, toUnsubscribe);\n }\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 => {\n try {\n cb(id, obj, oldObj);\n } catch (e) {\n console.error(`Error by callback of objectChange: ${e}`);\n }\n });\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 (Object.prototype.hasOwnProperty.call(this.statesSubscribes, task) && this.statesSubscribes[task].reg.test(id)) {\n this.statesSubscribes[task].cbs.forEach(cb => {\n try {\n cb(id, state);\n } catch (e) {\n console.error(`Error by callback of stateChange: ${e}`);\n }\n });\n }\n }\n }\n\n /**\n * Called internally.\n * @param {string} messageType\n * @param {string} sourceInstance\n * @param {object} data\n */\n instanceMessage(messageType, sourceInstance, data) {\n if (this._instanceSubscriptions[sourceInstance]) {\n this._instanceSubscriptions[sourceInstance].forEach(sub => {\n if (sub.messageType === messageType) {\n sub.callback(data, sourceInstance, messageType);\n }\n });\n }\n }\n\n /**\n * Gets all states.\n * @param {string} pattern The pattern to filter states.\n * @param {boolean} disableProgressUpdate don't call onProgress() when done\n * @returns {Promise<Record<string, ioBroker.State>>}\n */\n getStates(pattern, disableProgressUpdate) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (typeof pattern === 'boolean') {\n disableProgressUpdate = pattern;\n pattern = undefined;\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getStates', pattern, (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 if (id && id === this.ignoreState) {\n return Promise.resolve(this.simStates[id] || { val: null, ack: true });\n }\n return new Promise((resolve, reject) =>\n (this._socket.emit('getState', id, (err, state) => err ? reject(err) : resolve(state))));\n }\n\n /**\n * @deprecated since js-controller 5.0. Use files instead.\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 * @deprecated since js-controller 5.0. Use files instead.\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 * @param {boolean | null} ack Acknowledge flag\n * @returns {Promise<void>}\n */\n setState(id, val, ack) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (typeof ack === 'boolean') {\n val = { val, ack };\n }\n\n // extra handling for \"nothing_selected\" state for vis\n if (id && id === this.ignoreState) {\n let state;\n\n if (typeof ack === 'boolean') {\n state = val;\n } else if (typeof val === 'object' && val.val !== undefined) {\n state = val;\n } else {\n state = {\n val,\n ack: false,\n ts: Date.now(),\n lc: Date.now(),\n from: 'system.adapter.vis.0',\n };\n }\n\n this.simStates[id] = state;\n\n // inform subscribers about changes\n if (this.statesSubscribes[id]) {\n for (const cb of this.statesSubscribes[id].cbs) {\n try {\n cb(id, state);\n } catch (e) {\n console.error(\n `Error by callback of stateChanged: ${e}`,\n );\n }\n }\n }\n\n return Promise.resolve();\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 }\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 * Gets objects by list of IDs.\n * @param {string[]} list Array of object IDs to retrieve.\n * @returns {void}\n */\n getObjectsById(list) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getObjects', list, (err, res) =>\n err ? reject(err) : resolve(res)));\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 const ids = Object.keys(this.statesSubscribes);\n ids.forEach(id => this._socket.emit('subscribe', id));\n ids.length && this._socket.emit(Connection.isWeb() ? 'getStates' : 'getForeignStates', ids, (err, states) => {\n err && console.error(`Cannot getForeignStates: ${JSON.stringify(err)}`);\n // inform about states\n states && Object.keys(states).forEach(id => this.stateChange(id, states[id]));\n });\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 (Object.prototype.hasOwnProperty.call(obj, 'from')) {\n delete obj.from;\n }\n if (Object.prototype.hasOwnProperty.call(obj, 'user')) {\n delete obj.user;\n }\n if (Object.prototype.hasOwnProperty.call(obj, '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 if (id && id === this.ignoreState) {\n return Promise.resolve({\n _id: this.ignoreState,\n type: 'state',\n common: {\n name: 'ignored state',\n type: 'mixed',\n },\n });\n }\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 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 const obj = objs.pop();\n const 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 design design - 'system' or other designs like `custom`.\n * @param type The type of object.\n * @param start The start ID.\n * @param [end] The end ID.\n */\n getObjectViewCustom(design, type, start, end) {\n return new Promise((resolve, reject) => {\n this._socket.emit('getObjectView', design, 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 * Query a predefined object view.\n * @param type The type of object.\n * @param start The start ID.\n * @param [end] The end ID.\n */\n getObjectViewSystem(type, start, end) {\n return this.getObjectViewCustom('system', type, start, end);\n }\n\n /**\n * @deprecated since version 1.1.15, cause parameter order does not match backend\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 return this.getObjectViewCustom('system', type, start, end);\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 a filename, it could be everything\n if (cert.length < 700 && (cert.includes('/') || cert.includes('\\\\'))) {\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 * 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\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\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 const cache = `hostInfo${host}`;\n\n if (!update && this._promises[cache]) {\n return this._promises[cache];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises[cache] = 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[cache];\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 const cache = `hostInfoShort${host}`;\n\n if (!update && this._promises[cache]) {\n return this._promises[cache];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises[cache] = 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[cache];\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 * Rename file or folder in ioBroker DB\n * @param adapter instance name\n * @param oldName current file name, e.g main/vis-views.json\n * @param newName new file name, e.g main/vis-views-new.json\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 => err ? reject(err) : resolve()));\n }\n\n /**\n * Rename file in ioBroker DB\n * @param adapter instance name\n * @param oldName current file name, e.g, main/vis-views.json\n * @param newName new file name, e.g, main/vis-views-new.json\n */\n renameFile(adapter, oldName, newName) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('renameFile', adapter, oldName, newName, err => err ? reject(err) : resolve()));\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 const cache = `supportedFeatures_${feature}`;\n if (!update && this._promises[cache]) {\n return this._promises[cache];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises[cache] = new Promise((resolve, reject) =>\n this._socket.emit('checkFeatureSupported', feature, (err, features) => {\n err ? reject(err) : resolve(features);\n }));\n\n return this._promises[cache];\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 }\n\n return Promise.reject('Not supported');\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(new Error('May not write \"BaseSettings\"'));\n } else if (!data) {\n reject(new Error('Cannot write \"BaseSettings\"'));\n } else {\n resolve(data);\n }\n }\n });\n });\n }\n\n return Promise.reject(new Error('Not supported'));\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 }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getForeignStates', pattern || '*', (err, states) =>\n err ? reject(err) : resolve(states)));\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 const cache = `rIPs_${ipOrHostName}`;\n\n if (!update && this._promises[cache]) {\n return this._promises[cache];\n }\n this._promises[cache] = 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[cache];\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 getAdaptersResetCache(adapter) {\n adapter = adapter || '';\n this._promises.compactAdapters = null;\n this._promises['adapter_' + adapter] = null;\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 getAdapternInstancesResetCache(adapter) {\n adapter = adapter || '';\n this._promises.compactInstances = null;\n this._promises['instances_' + adapter] = null;\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 // reads only version of installed adapter\n getCompactSystemRepositories(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 (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.getCompactSystemRepositories = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('getCompactSystemRepositories timeout');\n }\n }, cmdTimeout || this.props.cmdTimeout);\n\n this._socket.emit('getCompactSystemRepositories', data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getCompactSystemRepositories\"');\n } else if (!data) {\n reject('Cannot read \"getCompactSystemRepositories\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises.getCompactSystemRepositories;\n }\n\n getInstalledResetCache(host) {\n if (this._promises.installedCompact) {\n this._promises.installedCompact[host] = null;\n }\n if (this._promises.installed) {\n this._promises.installed[host] = null;\n }\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\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 getInstalledResetCache(/* host */) {\n this._promises.repoCompact = null;\n this._promises.repo = null;\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 * Subscribe on instance message\n * @param {string} [targetInstance] instance, like 'cameras.0'\n * @param {string} [messageType] message type like 'startCamera/cam3'\n * @param {object} [data] optional data object\n * @param {function} [callback] message handler\n * @returns {Promise<null>}\n */\n subscribeOnInstance(targetInstance, messageType, data, callback) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('clientSubscribe', targetInstance, messageType, data, (err, result) => {\n if (err) {\n reject(err);\n } else if (result && result.error) {\n reject(result.error);\n } else {\n if (!targetInstance.startsWith('system.adapter.')) {\n targetInstance = `system.adapter.${targetInstance}`;\n }\n // save callback\n this._instanceSubscriptions[targetInstance] = this._instanceSubscriptions[targetInstance] || [];\n if (!this._instanceSubscriptions[targetInstance].find(sub =>\n sub.messageType === messageType &&\n sub.callback === callback)\n ) {\n this._instanceSubscriptions[targetInstance].push({\n messageType,\n callback,\n });\n }\n resolve(result);\n }\n }));\n }\n\n /**\n * Unsubscribe from instance message\n * @param {string} [targetInstance] instance, like 'cameras.0'\n * @param {string} [messageType] message type like 'startCamera/cam3'\n * @param {function} [callback] message handler. Could be null if all callbacks for this messageType should be unsubscribed\n * @returns {Promise<boolean>}\n */\n unsubscribeFromInstance(targetInstance, messageType, callback) {\n if (!targetInstance.startsWith('system.adapter.')) {\n targetInstance = `system.adapter.${targetInstance}`;\n }\n let deleted;\n const promiseResults = [];\n do {\n deleted = false;\n const index = this._instanceSubscriptions[targetInstance]?.findIndex(sub =>\n (!messageType || sub.messageType === messageType) && (!callback || sub.callback === callback));\n\n if (index !== undefined && index !== null && index !== -1) {\n deleted = true;\n // remember messageType\n const _messageType =\n this._instanceSubscriptions[targetInstance][index].messageType;\n\n this._instanceSubscriptions[targetInstance].splice(index, 1);\n if (!this._instanceSubscriptions[targetInstance].length) {\n delete this._instanceSubscriptions[targetInstance];\n }\n\n // try to find another subscription for this instance and messageType\n const found = this._instanceSubscriptions[targetInstance] &&\n this._instanceSubscriptions[targetInstance].find(sub => sub.messageType === _messageType);\n\n if (!found) {\n promiseResults.push(new Promise((resolve, reject) =>\n this._socket.emit('clientUnsubscribe', targetInstance, messageType, (err, wasSubscribed) => {\n if (err) {\n reject(err);\n } else {\n resolve(wasSubscribed);\n }\n })));\n }\n }\n } while (deleted && (!callback || !messageType));\n\n if (promiseResults.length) {\n return Promise.all(promiseResults)\n .then(results => results.find(result => result) || false);\n }\n\n return Promise.resolve(false);\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 /**\n * This is special method for vis.\n * It is used to not send to server the changes about \"nothing_selected\" state\n * @param id The state that has to be ignored by communication\n */\n setStateToIgnore(id) {\n this.ignoreState = id;\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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"}
|