@iobroker/adapter-react-v5 4.0.21 → 4.0.22

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"_Connection.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","CONNECTING","CONNECTED","OBJECTS_LOADED","READY","exports","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","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","log","text","warn","info","silly","startSocket","_createClass2","key","_this2","io","registerSocketOnLoad","scriptLoadCounter","setTimeout","alert","_socket","path","pathname","socketUrl","parts","split","includes","pos","lastIndexOf","substring","pop","match","join","endsWith","url","connect","query","timeout","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","operation","type","id","objectChange","state","stateChange","fileName","size","fileChange","onCmdStdoutHandler","onCmdStderrHandler","exitCode","onCmdExitHandler","_this3","clearTimeout","onConnect","isConnected","waitForFirstConnection","_getUserPermissions","_this4","vendorPrefix","getCompactSystemConfig","getSystemConfig","data","systemConfig","language","navigator","userLanguage","onLanguage","getObjects","onReady","search","hash","subscribeState","binary","reg","indexOf","RegExp","cbs","push","getBinaryState","base64","keys","unsubscribeState","splice","subscribeObject","unsubscribeObject","_i","_Object$values","values","sub","regId","regFilePattern","_iterator","_step","_subscribeFiles","_asyncToGenerator2","_regenerator","mark","_callee","filePattern","wrap","_callee$","_context","prev","Error","stop","subscribeFiles","_x","_x2","_x3","apply","arguments","unsubscribeFiles","_this5","oldObj","changed","_rev","onObjectChange","task","hasOwnProperty","getStates","disableProgressUpdate","_this6","reject","res","STATES_LOADED","getState","_this7","_this8","setBinaryState","_this9","setState","val","ack","_this10","update","_this11","isEnable","_this12","requireLog","isEnabled","_this13","delObject","maintenance","_this14","delObjects","_this15","setObject","_this16","parse","user","ts","getObject","_this17","getAdapterInstances","adapter","_this18","getObjectView","items","map","instances","getAdapters","_this19","adapters","_renameGroups","objs","_this20","oldId","newId","renameGroup","newName","_this21","getGroups","groups","groupsToRename","filter","group","startsWith","find","sendTo","instance","command","_this22","result","extendObject","_this23","registerLogHandler","handler","unregisterLogHandler","registerConnectionHandler","unregisterConnectionHandler","registerCmdStdoutHandler","unregisterCmdStdoutHandler","registerCmdStderrHandler","unregisterCmdStderrHandler","registerCmdExitHandler","unregisterCmdExitHandler","getEnums","_enum","_this24","startkey","endkey","_res","rows","start","end","_this25","getCertificates","cert","certs","certificates","c","_cert","toLowerCase","m","t","trim","getLogs","linesNumber","_this26","lines","getLogsFiles","_this27","files","delLogs","_this28","readMetaItems","_this29","readDir","_this30","readFile","_this31","writeFile64","_this32","btoa","Uint8Array","reduce","byte","String","fromCharCode","rename","oldName","_this33","deleteFile","_this34","deleteFolder","folderName","_this35","getHosts","_this36","hosts","doc","item","getUsers","_this37","users","_this38","getHostInfo","timeoutMs","_this39","getHostInfoShort","_this40","getRepository","args","_this41","repo","getInstalled","_this42","installed","cmdExec","cmd","cmdId","_this43","checkFeatureSupported","feature","_this44","features","readBaseSettings","_this45","writeBaseSettings","_this46","restartController","_this47","getDiagData","typeOfDiag","_this48","getForeignStates","_this49","getForeignObjects","_this50","setSystemConfig","_this51","getRawSocket","getHistory","options","_this52","getHistoryEx","_this53","stepIgnore","sessionId","changePassword","password","_this54","getIpAddresses","address","getHostByIp","ipOrHostName","_this55","ip","_host$native","_host$native$hardware","IPs4","family","IPs6","hardware","networkInterfaces","eth","num","encrypt","_this56","decrypt","encryptedText","_this57","_this58","serverName","getWebServerName","_this59","webName","getAdminVersion","chmodFile","filename","_this60","entries","chownFile","_this61","fileExists","_this62","exists","getNotifications","category","_this63","notifications","clearNotifications","_this64","getIsEasyModeStrict","_this65","isStrict","getEasyMode","_this66","getCurrentUser","_this67","getCurrentSession","controller","AbortController","abort","fetch","signal","json","getRatings","_this68","ratings","getCurrentInstance","_this69","currentInstance","namespace","getCompactAdapters","_this70","compactAdapters","getAdaptersResetCache","getCompactInstances","_this71","compactInstances","getAdapternInstancesResetCache","getCompactInstalled","_this72","installedCompact","getCompactSystemRepositories","_this73","getInstalledResetCache","repoCompact","_this74","systemConfigCommon","getCompactRepository","_this75","getCompactHosts","_this76","hostsCompact","getUuid","uuid","_obj$native","level","logout","_this77","adapterName","PropTypes","func","_default"],"sources":["_Connection.js"],"sourcesContent":["/**\n * Copyright 2020-2022, bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport PropTypes from 'prop-types';\n\n/** Possible progress states. */\nexport const PROGRESS = {\n /** The socket is connecting. */\n CONNECTING: 0,\n /** The socket is successfully connected. */\n CONNECTED: 1,\n /** All objects are loaded. */\n OBJECTS_LOADED: 2,\n /** The socket is ready for use. */\n READY: 3\n};\n\nconst PERMISSION_ERROR = 'permissionError';\nconst NOT_CONNECTED = 'notConnectedError';\nconst TIMEOUT_FOR_ADMIN4 = 1300;\n\nexport const ERRORS = {\n PERMISSION_ERROR,\n NOT_CONNECTED\n};\n\nfunction fixAdminUI(obj) {\n if (obj && obj.common && !obj.common.adminUI) {\n if (obj.common.noConfig) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.config = 'none';\n } else if (obj.common.jsonConfig) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.config = 'json';\n } else if (obj.common.materialize) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.config = 'materialize';\n } else {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.config = 'html';\n }\n\n if (obj.common.jsonCustom) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.custom = 'json';\n } else if (obj.common.supportCustoms) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.custom = 'json';\n }\n\n if (obj.common.materializeTab && obj.common.adminTab) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.tab = 'materialize';\n } else if (obj.common.adminTab) {\n obj.common.adminUI = obj.common.adminUI || {};\n obj.common.adminUI.tab = 'html';\n }\n\n obj.common.adminUI && console.debug(`Please add to \"${obj._id.replace(/\\.\\d+$/, '')}\" common.adminUI=${JSON.stringify(obj.common.adminUI)}`);\n }\n return obj;\n}\n\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\n // breaking change. Do not load all objects by default is true\n this.doNotLoadAllObjects = this.props.doNotLoadAllObjects === undefined ? true : this.props.doNotLoadAllObjects;\n this.doNotLoadACL = this.props.doNotLoadACL === undefined ? true : this.props.doNotLoadACL;\n\n /** @type {Record<string, ioBroker.State>} */\n this.states = {};\n this.objects = null;\n this.acl = null;\n this.firstConnect = true;\n this.waitForRestart = false;\n /** @type {ioBroker.Languages} */\n this.systemLang = 'en';\n this.connected = false;\n this._waitForFirstConnection = new Promise(resolve => { this._waitForFirstConnectionResolve = resolve });\n\n /** @type {Record<string, { reg: RegExp; cbs: ioBroker.StateChangeHandler[]}>} */\n this.statesSubscribes = {}; // subscribe for states\n\n /** @type {Record<string, { reg: RegExp; cbs: import('./types').ObjectChangeHandler[]}>} */\n this.objectsSubscribes = {}; // subscribe for objects\n this.filesSubscribes = {}; // subscribe for files\n this.onProgress = this.props.onProgress || function () { };\n this.onError = this.props.onError || function (err) { console.error(err); };\n this.loaded = false;\n this.loadTimer = null;\n this.loadCounter = 0;\n this.admin5only = this.props.admin5only || false;\n\n /** @type {((connected: boolean) => void)[]} */\n this.onConnectionHandlers = [];\n /** @type {((message: string) => void)[]} */\n this.onLogHandlers = [];\n\n /** @type {Record<string, Promise<any>>} */\n this._promises = {};\n\n this.log.error = text => this.log(text, 'error');\n this.log.warn = text => this.log(text, 'warn');\n this.log.info = text => this.log(text, 'info');\n this.log.debug = text => this.log(text, 'debug');\n this.log.silly = text => this.log(text, 'silly');\n\n this.startSocket();\n }\n\n /**\n * Checks if this connection is running in a web adapter and not in an admin.\n * @returns {boolean} True if running in a web adapter or in a socketio adapter.\n */\n static isWeb() {\n return window.adapterName === 'material' ||\n window.adapterName === 'vis' ||\n (window.adapterName && 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 } else {\n window.alert('Cannot load socket.io.js!');\n }\n } else {\n // register on load\n window.registerSocketOnLoad(() => this.startSocket());\n }\n return;\n } else {\n // socket was initialized, do not repeat\n if (this._socket) {\n return;\n }\n }\n\n let host = this.props.host;\n let port = this.props.port;\n let protocol = this.props.protocol.replace(':', '');\n let path = window.location.pathname;\n\n if (\n window.location.hostname === 'iobroker.net' ||\n window.location.hostname === 'iobroker.pro'\n ) {\n path = '';\n } else {\n // if web adapter, socket io could be on other port or even host\n if (window.socketUrl) {\n let parts = window.socketUrl.split(':');\n host = parts[0] || host;\n port = parts[1] || port;\n if (host.includes('://')) {\n parts = host.split('://');\n protocol = parts[0];\n host = parts[1];\n }\n }\n // get current path\n const pos = path.lastIndexOf('/');\n if (pos !== -1) {\n path = path.substring(0, pos + 1);\n }\n\n if (Connection.isWeb()) {\n // remove one level, like echarts, vis, .... We have here: '/echarts/'\n const parts = path.split('/');\n if (parts.length > 2) {\n parts.pop();\n // if it is 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 }\n );\n\n this._socket.on('connect', noTimeout => {\n // If the user is not admin it takes some time to install the handlers, because all rights must be checked\n if (noTimeout !== true) {\n setTimeout(() =>\n this.getVersion()\n .then(info => {\n const [major, minor, patch] = info.version.split('.');\n const v = parseInt(major, 10) * 10000 + parseInt(minor, 10) * 100 + parseInt(patch, 10);\n if (v < 40102) {\n this._authTimer = null;\n // possible this is old version of admin\n this.onPreConnect(false, false);\n } else {\n this._socket.emit('authenticate', (isOk, isSecure) => this.onPreConnect(isOk, isSecure));\n }\n }), 500);\n } else {\n // iobroker websocket waits, till all handlers are installed\n this._socket.emit('authenticate', (isOk, isSecure) => this.onPreConnect(isOk, isSecure));\n }\n });\n\n this._socket.on('reconnect', () => {\n this.onProgress(PROGRESS.READY);\n this.connected = true;\n\n if (this.waitForRestart) {\n window.location.reload(false);\n } else {\n this._subscribe(true);\n this.onConnectionHandlers.forEach(cb => cb(true));\n }\n });\n\n this._socket.on('disconnect', () => {\n this.connected = false;\n this.subscribed = false;\n this.onProgress(PROGRESS.CONNECTING);\n this.onConnectionHandlers.forEach(cb => cb(false));\n });\n\n this._socket.on('reauthenticate', () =>\n this.authenticate());\n\n this._socket.on('log', message => {\n this.props.onLog && this.props.onLog(message);\n this.onLogHandlers.forEach(cb => cb(message));\n });\n\n this._socket.on('error', err => {\n let _err = err || '';\n if (typeof _err.toString !== 'function') {\n _err = JSON.stringify(_err);\n console.error(`Received strange error: ${_err}`);\n }\n _err = _err.toString();\n if (_err.includes('User not authorized')) {\n this.authenticate();\n } else {\n window.alert(`Socket Error: ${err}`);\n }\n });\n\n this._socket.on('connect_error', err =>\n console.error(`Connect error: ${err}`));\n\n this._socket.on('permissionError', err =>\n this.onError({ message: 'no permission', operation: err.operation, type: err.type, id: (err.id || '') }));\n\n this._socket.on('objectChange', (id, obj) =>\n setTimeout(() => this.objectChange(id, obj), 0));\n\n this._socket.on('stateChange', (id, state) =>\n setTimeout(() => this.stateChange(id, state), 0));\n\n this._socket.on('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 return cb && cb();\n } else {\n this._socket.emit('getUserPermissions', cb);\n }\n }\n\n /**\n * Called internally.\n * @private\n */\n onConnect() {\n this._getUserPermissions((err, acl) => {\n if (err) {\n return this.onError('Cannot read user permissions: ' + err);\n } else\n if (!this.doNotLoadACL) {\n if (this.loaded) {\n return;\n }\n this.loaded = true;\n clearTimeout(this.loadTimer);\n this.loadTimer = null;\n\n this.onProgress(PROGRESS.CONNECTED);\n this.firstConnect = false;\n\n this.acl = acl;\n }\n\n // Read system configuration\n return (this.admin5only && !window.vendorPrefix ? this.getCompactSystemConfig() : this.getSystemConfig())\n .then(data => {\n if (this.doNotLoadACL) {\n if (this.loaded) {\n return undefined;\n }\n this.loaded = true;\n clearTimeout(this.loadTimer);\n this.loadTimer = null;\n\n this.onProgress(PROGRESS.CONNECTED);\n this.firstConnect = false;\n }\n\n this.systemConfig = data;\n if (this.systemConfig && this.systemConfig.common) {\n this.systemLang = this.systemConfig.common.language;\n } else {\n this.systemLang = window.navigator.userLanguage || window.navigator.language;\n\n if (this.systemLang !== 'en' && this.systemLang !== 'de' && this.systemLang !== 'ru') {\n this.systemConfig.common.language = 'en';\n this.systemLang = 'en';\n }\n }\n\n this.props.onLanguage && this.props.onLanguage(this.systemLang);\n\n if (!this.doNotLoadAllObjects) {\n return this.getObjects()\n .then(() => {\n this.onProgress(PROGRESS.READY);\n this.props.onReady && this.props.onReady(this.objects);\n });\n } else {\n this.objects = this.admin5only ? {} : { 'system.config': data };\n this.onProgress(PROGRESS.READY);\n this.props.onReady && this.props.onReady(this.objects);\n }\n return undefined;\n })\n .catch(e => this.onError('Cannot read system config: ' + e));\n });\n }\n\n /**\n * Called internally.\n * @private\n */\n authenticate() {\n if (window.location.search.includes('&href=')) {\n window.location = `${window.location.protocol}//${window.location.host}${window.location.pathname}${window.location.search}${window.location.hash}`;\n } else {\n window.location = `${window.location.protocol}//${window.location.host}${window.location.pathname}?login&href=${window.location.search}${window.location.hash}`;\n }\n }\n\n /**\n * Subscribe to changes of the given state.\n * @param {string} id The ioBroker state ID.\n * @param {ioBroker.StateChangeHandler} cb The callback.\n */\n /**\n * Subscribe to changes of the given state.\n * @param {string} id The ioBroker state ID.\n * @param {boolean} binary Set to true if the given state is binary and requires Base64 decoding.\n * @param {ioBroker.StateChangeHandler} cb The callback.\n */\n subscribeState(id, binary, cb) {\n if (typeof binary === 'function') {\n cb = binary;\n binary = false;\n }\n\n if (!this.statesSubscribes[id]) {\n let reg = id\n .replace(/\\./g, '\\\\.')\n .replace(/\\*/g, '.*')\n .replace(/\\(/g, '\\\\(')\n .replace(/\\)/g, '\\\\)')\n .replace(/\\+/g, '\\\\+')\n .replace(/\\[/g, '\\\\[');\n\n if (reg.indexOf('*') === -1) {\n reg += '$';\n }\n this.statesSubscribes[id] = { reg: new RegExp(reg), cbs: [] };\n this.statesSubscribes[id].cbs.push(cb);\n if (this.connected) {\n this._socket.emit('subscribe', id);\n }\n } else {\n !this.statesSubscribes[id].cbs.includes(cb) && this.statesSubscribes[id].cbs.push(cb);\n }\n if (typeof cb === 'function' && this.connected) {\n if (binary) {\n this.getBinaryState(id)\n .then(base64 => cb(id, base64))\n .catch(e => console.error(`Cannot getForeignStates \"${id}\": ${JSON.stringify(e)}`));\n } else {\n if (Connection.isWeb()) {\n this._socket.emit('getStates', id, (err, states) => {\n err && console.error(`Cannot getForeignStates \"${id}\": ${JSON.stringify(err)}`);\n states && Object.keys(states).forEach(id => cb(id, states[id]));\n });\n } else {\n this._socket.emit('getForeignStates', id, (err, states) => {\n err && console.error(`Cannot getForeignStates \"${id}\": ${JSON.stringify(err)}`);\n states && Object.keys(states).forEach(id => cb(id, states[id]));\n });\n }\n }\n }\n }\n\n /**\n * Unsubscribes all callbacks from changes of the given state.\n * @param {string} id The ioBroker state ID.\n */\n /**\n * Unsubscribes the given callback from changes of the given state.\n * @param {string} id The ioBroker state ID.\n * @param {ioBroker.StateChangeHandler} cb The callback.\n */\n unsubscribeState(id, cb) {\n if (this.statesSubscribes[id]) {\n if (cb) {\n const pos = this.statesSubscribes[id].cbs.indexOf(cb);\n pos !== -1 && this.statesSubscribes[id].cbs.splice(pos, 1);\n } else {\n this.statesSubscribes[id].cbs = [];\n }\n\n if (!this.statesSubscribes[id].cbs || !this.statesSubscribes[id].cbs.length) {\n delete this.statesSubscribes[id];\n this.connected && this._socket.emit('unsubscribe', id);\n }\n }\n }\n\n /**\n * Subscribe to changes of the given object.\n * @param {string} id The ioBroker object ID.\n * @param {import('./types').ObjectChangeHandler} cb The callback.\n * @returns {Promise<void>}\n */\n subscribeObject(id, cb) {\n if (!this.objectsSubscribes[id]) {\n let reg = id.replace(/\\./g, '\\\\.').replace(/\\*/g, '.*');\n if (!reg.includes('*')) {\n reg += '$';\n }\n this.objectsSubscribes[id] = { reg: new RegExp(reg), cbs: [] };\n this.objectsSubscribes[id].cbs.push(cb);\n this.connected && this._socket.emit('subscribeObjects', id);\n } else {\n !this.objectsSubscribes[id].cbs.includes(cb) && this.objectsSubscribes[id].cbs.push(cb);\n }\n return Promise.resolve();\n }\n\n /**\n * Unsubscribes all callbacks from changes of the given object.\n * @param {string} id The ioBroker object ID.\n * @returns {Promise<void>}\n */\n /**\n * Unsubscribes the given callback from changes of the given object.\n * @param {string} id The ioBroker object ID.\n * @param {import('./types').ObjectChangeHandler} cb The callback.\n * @returns {Promise<void>}\n */\n unsubscribeObject(id, cb) {\n if (this.objectsSubscribes[id]) {\n if (cb) {\n const pos = this.objectsSubscribes[id].cbs.indexOf(cb);\n pos !== -1 && this.objectsSubscribes[id].cbs.splice(pos, 1);\n } else {\n this.objectsSubscribes[id].cbs = [];\n }\n\n if (this.connected && (!this.objectsSubscribes[id].cbs || !this.objectsSubscribes[id].cbs.length)) {\n delete this.objectsSubscribes[id];\n this.connected && this._socket.emit('unsubscribeObjects', id);\n }\n }\n return Promise.resolve();\n }\n\n /**\n * Called internally.\n * @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 cb(id, fileName, size);\n }\n }\n }\n }\n\n /**\n * Subscribe to changes of the files.\n * @param {string} id The ioBroker state ID for meat 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 const key = `${id}$%$${filePattern}`;\n\n if (!this.filesSubscribes[key]) {\n this.filesSubscribes[key] = {\n regId: new RegExp(pattern2RegEx(id)),\n regFilePattern: new RegExp(pattern2RegEx(filePattern)),\n cbs: [cb],\n };\n this.connected && this._socket.emit('subscribeFiles', id, filePattern);\n } else {\n !this.filesSubscribes[key].cbs.includes(cb) &&\n this.filesSubscribes[key].cbs.push(cb);\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 const key = `${id}$%$${filePattern}`;\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 this._socket.emit('unsubscribeFiles', id, filePattern);\n }\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 => cb(id, obj, oldObj));\n }\n });\n\n if (changed && this.props.onObjectChange) {\n this.props.onObjectChange(id, obj);\n }\n }\n\n /**\n * Called internally.\n * @private\n * @param {string} id\n * @param {ioBroker.State | null | undefined} state\n */\n stateChange(id, state) {\n for (const task in this.statesSubscribes) {\n if (this.statesSubscribes.hasOwnProperty(task) && this.statesSubscribes[task].reg.test(id)) {\n this.statesSubscribes[task].cbs.forEach(cb => cb(id, state));\n }\n }\n }\n\n /**\n * Gets all states.\n * @param {boolean} disableProgressUpdate don't call onProgress() when done\n * @returns {Promise<Record<string, ioBroker.State>>}\n */\n getStates(disableProgressUpdate) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getStates', (err, res) => {\n this.states = res;\n //@ts-ignore\n !disableProgressUpdate && this.onProgress(PROGRESS.STATES_LOADED);\n return err ? reject(err) : resolve(this.states);\n }));\n }\n\n /**\n * Gets the given state.\n * @param {string} id The state ID.\n * @returns {Promise<ioBroker.State | null | undefined>}\n */\n getState(id) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getState', id, (err, state) => err ? reject(err) : resolve(state)));\n }\n\n /**\n * Gets the given binary state.\n * @param {string} id The state ID.\n * @returns {Promise<Buffer | undefined>}\n */\n getBinaryState(id) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n // the data will come in base64\n return new Promise((resolve, reject) =>\n this._socket.emit('getBinaryState', id, (err, state) => err ? reject(err) : resolve(state)));\n }\n\n /**\n * Sets the given binary state.\n * @param {string} id The state ID.\n * @param {string} base64 The Base64 encoded binary data.\n * @returns {Promise<void>}\n */\n setBinaryState(id, base64) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n // the data will come in base64\n return new Promise((resolve, reject) =>\n this._socket.emit('setBinaryState', id, base64, err => err ? reject(err) : resolve()));\n }\n\n /**\n * Sets the given state value.\n * @param {string} id The state ID.\n * @param {string | number | boolean | ioBroker.State | ioBroker.SettableState | null} val The state value.\n * @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 return new Promise((resolve, reject) =>\n this._socket.emit('setState', id, val, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Gets all objects.\n * @param {(objects?: Record<string, ioBroker.Object>) => void} update Callback that is executed when all objects are retrieved.\n * @returns {void}\n */\n /**\n * Gets all objects.\n * @param {boolean} update Set to true to retrieve all objects from the server (instead of using the local cache).\n * @param {boolean} disableProgressUpdate don't call onProgress() when done\n * @returns {Promise<Record<string, ioBroker.Object>> | undefined}\n */\n getObjects(update, disableProgressUpdate) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n } else {\n return new Promise((resolve, reject) => {\n if (!update && this.objects) {\n return resolve(this.objects);\n }\n\n this._socket.emit(Connection.isWeb() ? 'getObjects' : 'getAllObjects', (err, res) => {\n this.objects = res;\n disableProgressUpdate && this.onProgress(PROGRESS.OBJECTS_LOADED);\n err ? reject(err) : resolve(this.objects);\n });\n });\n }\n }\n\n /**\n * Called internally.\n * @private\n * @param {boolean} isEnable\n */\n _subscribe(isEnable) {\n if (isEnable && !this.subscribed) {\n this.subscribed = true;\n this.autoSubscribes.forEach(id => this._socket.emit('subscribeObjects', id));\n // re subscribe objects\n Object.keys(this.objectsSubscribes).forEach(id => this._socket.emit('subscribeObjects', id));\n // re-subscribe logs\n this.autoSubscribeLog && this._socket.emit('requireLog', true);\n // re subscribe states\n Object.keys(this.statesSubscribes).forEach(id => this._socket.emit('subscribe', id));\n } else if (!isEnable && this.subscribed) {\n this.subscribed = false;\n // un-subscribe objects\n this.autoSubscribes.forEach(id => this._socket.emit('unsubscribeObjects', id));\n Object.keys(this.objectsSubscribes).forEach(id => this._socket.emit('unsubscribeObjects', id));\n // un-subscribe logs\n this.autoSubscribeLog && this._socket.emit('requireLog', false);\n\n // un-subscribe states\n Object.keys(this.statesSubscribes).forEach(id => this._socket.emit('unsubscribe', id));\n }\n }\n\n /**\n * Requests log updates.\n * @param {boolean} isEnabled Set to true to get logs.\n * @returns {Promise<void>}\n */\n requireLog(isEnabled) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('requireLog', isEnabled, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Deletes the given object.\n * @param {string} id The object ID.\n * @param {boolean} maintenance Force deletion of non conform IDs.\n * @returns {Promise<void>}\n */\n delObject(id, maintenance) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('delObject', id, { maintenance: !!maintenance }, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Deletes the given object and all its children.\n * @param {string} id The object ID.\n * @param {boolean} maintenance Force deletion of non conform IDs.\n * @returns {Promise<void>}\n */\n delObjects(id, maintenance) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('delObjects', id, {maintenance: !!maintenance}, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Sets the object.\n * @param {string} id The object ID.\n * @param {ioBroker.SettableObject} obj The object.\n * @returns {Promise<void>}\n */\n setObject(id, obj) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (!obj) {\n return Promise.reject('Null object is not allowed');\n }\n\n obj = JSON.parse(JSON.stringify(obj));\n\n if (obj.hasOwnProperty('from')) {\n delete obj.from;\n }\n if (obj.hasOwnProperty('user')) {\n delete obj.user;\n }\n if (obj.hasOwnProperty('ts')) {\n delete obj.ts;\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('setObject', id, obj, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Gets the object with the given id from the server.\n * @param {string} id The object ID.\n * @returns {ioBroker.GetObjectPromise} The object.\n */\n getObject(id) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getObject', id, (err, obj) =>\n err ? reject(err) : resolve(obj)));\n }\n\n /**\n * Get all adapter instances.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n /**\n * Get all instances of the given adapter.\n * @param {string} adapter The name of the adapter.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getAdapterInstances(adapter, update) {\n if (typeof adapter === 'boolean') {\n update = adapter;\n adapter = '';\n }\n adapter = adapter || '';\n\n if (!update && this._promises['instances_' + adapter]) {\n return this._promises['instances_' + adapter];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['instances_' + adapter] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n timeout = null;\n this.getObjectView(\n `system.adapter.${adapter ? adapter + '.' : ''}`,\n `system.adapter.${adapter ? adapter + '.' : ''}\\u9999`,\n 'instance'\n )\n .then(items => resolve(Object.keys(items).map(id => fixAdminUI(items[id]))))\n .catch(e => reject(e));\n }, TIMEOUT_FOR_ADMIN4);\n\n this._socket.emit('getAdapterInstances', adapter, (err, instances) => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n return err ? reject(err) : resolve(instances);\n }\n });\n });\n\n return this._promises['instances_' + adapter];\n }\n\n /**\n * Get all adapters.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n /**\n * Get adapters with the given name.\n * @param {string} adapter The name of the adapter.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getAdapters(adapter, update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n if (typeof adapter === 'boolean') {\n update = adapter;\n adapter = '';\n }\n\n adapter = adapter || '';\n\n if (!update && this._promises['adapter_' + adapter]) {\n return this._promises['adapter_' + adapter];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['adapter_' + adapter] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n timeout = null;\n this.getObjectView(\n `system.adapter.${adapter}.`,\n `system.adapter.${adapter}.\\u9999`,\n 'adapter'\n )\n .then(items => resolve(Object.keys(items).map(id => fixAdminUI(items[id]))))\n .catch(e => reject(e));\n }, TIMEOUT_FOR_ADMIN4);\n\n this._socket.emit('getAdapters', adapter, (err, adapters) => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n return err ? reject(err) : resolve(adapters);\n }\n });\n });\n\n return this._promises['adapter_' + adapter];\n }\n\n /**\n * Called internally.\n * @private\n * @param {any[]} objs\n * @param {(err?: any) => void} cb\n */\n _renameGroups(objs, cb) {\n if (!objs || !objs.length) {\n cb && cb();\n } else {\n let obj = objs.pop();\n let oldId = obj._id;\n obj._id = obj.newId;\n delete obj.newId;\n\n this.setObject(obj._id, obj)\n .then(() => this.delObject(oldId))\n .then(() => setTimeout(() => this._renameGroups(objs, cb), 0))\n .catch(err => cb && cb(err));\n }\n }\n\n /**\n * Rename a group.\n * @param {string} id The id.\n * @param {string} newId The new id.\n * @param {string | { [lang in ioBroker.Languages]?: string; }} newName The new name.\n */\n renameGroup(id, newId, newName) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n return this.getGroups(true)\n .then(groups => {\n if (groups.length) {\n // find all elements\n const groupsToRename = groups\n .filter(group => group._id.startsWith(id + '.'));\n\n groupsToRename.forEach(group => group.newId = newId + group._id.substring(id.length));\n\n return new Promise((resolve, reject) =>\n this._renameGroups(groupsToRename, err => err ? reject(err) : resolve()))\n .then(() => {\n const obj = groups.find(group => group._id === id);\n\n if (obj) {\n obj._id = newId;\n if (newName !== undefined) {\n obj.common = obj.common || {};\n obj.common.name = newName;\n }\n\n return this.setObject(obj._id, obj)\n .then(() => this.delObject(id));\n }\n });\n }\n });\n }\n\n /**\n * Sends a message to a specific instance or all instances of some specific adapter.\n * @param {string} instance The instance to send this message to.\n * @param {string} [command] Command name of the target instance.\n * @param {ioBroker.MessagePayload} [data] The message data to send.\n * @returns {Promise<ioBroker.Message | undefined>}\n */\n sendTo(instance, command, data) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise(resolve =>\n this._socket.emit('sendTo', instance, command, data, result =>\n resolve(result)));\n }\n\n /**\n * Extend an object and create it if it might not exist.\n * @param {string} id The id.\n * @param {ioBroker.PartialObject} obj The object.\n */\n extendObject(id, obj) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n obj = JSON.parse(JSON.stringify(obj));\n\n if (obj.hasOwnProperty('from')) {\n delete obj.from;\n }\n if (obj.hasOwnProperty('user')) {\n delete obj.user;\n }\n if (obj.hasOwnProperty('ts')) {\n delete obj.ts;\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('extendObject', id, obj, err => err ? reject(err) : resolve()));\n }\n\n /**\n * Register a handler for log messages.\n * @param {(message: string) => void} handler The handler.\n */\n registerLogHandler(handler) {\n !this.onLogHandlers.includes(handler) && this.onLogHandlers.push(handler);\n }\n\n /**\n * Unregister a handler for log messages.\n * @param {(message: string) => void} handler The handler.\n */\n unregisterLogHandler(handler) {\n const pos = this.onLogHandlers.indexOf(handler);\n pos !== -1 && this.onLogHandlers.splice(pos, 1);\n }\n\n /**\n * Register a handler for the connection state.\n * @param {(connected: boolean) => void} handler The handler.\n */\n registerConnectionHandler(handler) {\n !this.onConnectionHandlers.includes(handler) && this.onConnectionHandlers.push(handler);\n }\n\n /**\n * Unregister a handler for the connection state.\n * @param {(connected: boolean) => void} handler The handler.\n */\n unregisterConnectionHandler(handler) {\n const pos = this.onConnectionHandlers.indexOf(handler);\n pos !== -1 && this.onConnectionHandlers.splice(pos, 1);\n }\n\n /**\n * Set the handler for standard output of a command.\n * @param {(id: string, text: string) => void} handler The handler.\n */\n registerCmdStdoutHandler(handler) {\n this.onCmdStdoutHandler = handler;\n }\n\n /**\n * Unset the handler for standard output of a command.\n * @param {(id: string, text: string) => void} handler The handler.\n */\n unregisterCmdStdoutHandler(handler) {\n this.onCmdStdoutHandler = null;\n }\n\n /**\n * Set the handler for standard error of a command.\n * @param {(id: string, text: string) => void} handler The handler.\n */\n registerCmdStderrHandler(handler) {\n this.onCmdStderrHandler = handler;\n }\n\n /**\n * Unset the handler for standard error of a command.\n * @param {(id: string, text: string) => void} handler The handler.\n */\n unregisterCmdStderrHandler(handler) {\n this.onCmdStderrHandler = null;\n }\n\n /**\n * Set the handler for exit of a command.\n * @param {(id: string, exitCode: number) => void} handler The handler.\n */\n registerCmdExitHandler(handler) {\n this.onCmdExitHandler = handler;\n }\n\n /**\n * Unset the handler for exit of a command.\n * @param {(id: string, exitCode: number) => void} handler The handler.\n */\n unregisterCmdExitHandler(handler) {\n this.onCmdExitHandler = null;\n }\n\n /**\n * Get all enums with the given name.\n * @param {string} [_enum] The name of the enum\n * @param {boolean} [update] Force update.\n * @returns {Promise<Record<string, ioBroker.Object>>}\n */\n getEnums(_enum, update) {\n if (!update && this._promises['enums_' + (_enum || 'all')]) {\n return this._promises['enums_' + (_enum || 'all')];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['enums_' + (_enum || 'all')] = new Promise((resolve, reject) => {\n this._socket.emit('getObjectView', 'system', 'enum', { startkey: 'enum.' + (_enum || ''), endkey: 'enum.' + (_enum ? (_enum + '.') : '') + '\\u9999' }, (err, res) => {\n if (!err && res) {\n const _res = {};\n for (let i = 0; i < res.rows.length; i++) {\n if (_enum && res.rows[i].id === 'enum.' + _enum) {\n continue;\n }\n _res[res.rows[i].id] = res.rows[i].value;\n }\n resolve(_res);\n } else {\n reject(err);\n }\n });\n });\n\n return this._promises['enums_' + (_enum || 'all')];\n }\n\n /**\n * Query a predefined object view.\n * @param {string} start The start ID.\n * @param {string} end The end ID.\n * @param {string} type The type of object.\n * @returns {Promise<Record<string, ioBroker.Object>>}\n */\n getObjectView(start, end, type) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n start = start || '';\n end = end || '\\u9999';\n\n return new Promise((resolve, reject) => {\n this._socket.emit('getObjectView', 'system', type, { startkey: start, endkey: end }, (err, res) => {\n if (!err) {\n const _res = {};\n if (res && res.rows) {\n for (let i = 0; i < res.rows.length; i++) {\n _res[res.rows[i].id] = res.rows[i].value;\n }\n }\n resolve(_res);\n } else {\n reject(err);\n }\n });\n });\n }\n\n /**\n * Get the stored certificates.\n * @param {boolean} [update] Force update.\n * @returns {Promise<{name: string; type: 'public' | 'private' | 'chained'}[]>}\n */\n getCertificates(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n if (this._promises.cert && !update) {\n return this._promises.cert;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.cert = this.getObject('system.certificates')\n .then(res => {\n const certs = [];\n if (res && res.native && res.native.certificates) {\n Object.keys(res.native.certificates).forEach(c => {\n const cert = res.native.certificates[c];\n if (!cert) {\n return;\n }\n const _cert = {\n name: c,\n type: ''\n };\n // If it is filename, it could be everything\n if (cert.length < 700 && (cert.indexOf('/') !== -1 || cert.indexOf('\\\\') !== -1)) {\n if (c.toLowerCase().includes('private')) {\n _cert.type = 'private';\n } else if (cert.toLowerCase().includes('private')) {\n _cert.type = 'private';\n } else if (c.toLowerCase().includes('public')) {\n _cert.type = 'public';\n } else if (cert.toLowerCase().includes('public')) {\n _cert.type = 'public';\n }\n certs.push(_cert);\n } else {\n _cert.type = (cert.substring(0, '-----BEGIN RSA PRIVATE KEY'.length) === '-----BEGIN RSA PRIVATE KEY' || cert.substring(0, '-----BEGIN PRIVATE KEY'.length) === '-----BEGIN PRIVATE KEY') ? 'private' : 'public';\n\n if (_cert.type === 'public') {\n const m = cert.split('-----END CERTIFICATE-----');\n if (m.filter(t => t.replace(/\\r\\n|\\r|\\n/, '').trim()).length > 1) {\n _cert.type = 'chained';\n }\n }\n\n certs.push(_cert);\n }\n });\n }\n return certs;\n });\n\n return this._promises.cert;\n }\n\n /**\n * Get the logs from a host (only for admin connection).\n * @param {string} host\n * @param {number} [linesNumber]\n * @returns {Promise<string[]>}\n */\n getLogs(host, linesNumber) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise(resolve =>\n this._socket.emit('sendToHost', host, 'getLogs', linesNumber || 200, lines =>\n resolve(lines)));\n }\n\n /**\n * Get the log files (only for admin connection).\n * @returns {Promise<string[]>}\n */\n getLogsFiles(host) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('readLogs', host, (err, files) =>\n err ? reject(err) : resolve(files)));\n }\n\n /**\n * Delete the logs from a host (only for admin connection).\n * @param {string} host\n * @returns {Promise<void>}\n */\n delLogs(host) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('sendToHost', host, 'delLogs', null, error =>\n error ? reject(error) : resolve()));\n }\n\n /**\n * Read the meta items.\n * @returns {Promise<ioBroker.Object[]>}\n */\n readMetaItems() {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getObjectView', 'system', 'meta', { startkey: '', endkey: '\\u9999' }, (err, objs) =>\n err ? reject(err) : resolve(objs.rows && objs.rows.map(obj => obj.value))));\n }\n\n /**\n * Read the directory of an adapter.\n * @param {string} adapter The adapter name.\n * @param {string} fileName The directory name.\n * @returns {Promise<ioBroker.ReadDirResult[]>}\n */\n readDir(adapter, fileName) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('readDir', adapter, fileName, (err, files) =>\n err ? reject(err) : resolve(files)));\n }\n\n /**\n * Read a file of an adapter.\n * @param {string} adapter The adapter name.\n * @param {string} fileName The file name.\n * @param {boolean} base64 If it must be a base64 format\n * @returns {Promise<string>}\n */\n readFile(adapter, fileName, base64) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) => {\n if (!base64) {\n this._socket.emit('readFile', adapter, fileName, (err, data, type) => {\n //@ts-ignore\n err ? reject(err) : resolve({data, type});\n });\n } else {\n this._socket.emit('readFile64', adapter, fileName, base64, (err, data) =>\n err ? reject(err) : resolve(data));\n }\n });\n }\n\n /**\n * Write a file of an adapter.\n * @param {string} adapter The adapter name.\n * @param {string} fileName The file name.\n * @param {Buffer | string} data The data (if it's a Buffer, it will be converted to Base64).\n * @returns {Promise<void>}\n */\n writeFile64(adapter, fileName, data) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) => {\n if (typeof data === 'string') {\n this._socket.emit('writeFile', adapter, fileName, data, err =>\n err ? reject(err) : resolve());\n } else {\n const base64 = btoa(\n new Uint8Array(data)\n .reduce((data, byte) => data + String.fromCharCode(byte), '')\n );\n\n this._socket.emit('writeFile64', adapter, fileName, base64, err =>\n err ? reject(err) : resolve());\n }\n });\n }\n\n /**\n * Rename a file or folder of an adapter.\n *\n * All files in folder will be renamed too.\n * @param {string} adapter The adapter name.\n * @param {string} oldName The file name of the file to be renamed.\n * @param {string} newName The new file name.\n * @returns {Promise<void>}\n */\n rename(adapter, oldName, newName) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('rename', adapter, oldName, newName, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Delete a file of an adapter.\n * @param {string} adapter The adapter name.\n * @param {string} fileName The file name.\n * @returns {Promise<void>}\n */\n deleteFile(adapter, fileName) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('unlink', adapter, fileName, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Delete a folder of an adapter.\n * All files in folder will be deleted.\n * @param {string} adapter The adapter name.\n * @param {string} folderName The folder name.\n * @returns {Promise<void>}\n */\n deleteFolder(adapter, folderName) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('deleteFolder', adapter, folderName, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Get the list of all hosts.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getHosts(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.hosts) {\n return this._promises.hosts;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.hosts = new Promise((resolve, reject) =>\n this._socket.emit(\n 'getObjectView',\n 'system',\n 'host',\n {startkey: 'system.host.', endkey: 'system.host.\\u9999'},\n (err, doc) => {\n if (err) {\n reject(err);\n } else {\n resolve(doc.rows.map(item => item.value));\n }\n }));\n\n return this._promises.hosts;\n }\n\n /**\n * Get the list of all users.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getUsers(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.users) {\n return this._promises.users;\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.users = new Promise((resolve, reject) =>\n this._socket.emit(\n 'getObjectView',\n 'system',\n 'user',\n {startkey: 'system.user.', endkey: 'system.user.\\u9999'},\n (err, doc) => {\n if (err) {\n reject(err);\n } else {\n resolve(doc.rows.map(item => item.value));\n }\n }));\n\n return this._promises.users;\n }\n\n /**\n * Get the list of all groups.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.Object[]>}\n */\n getGroups(update) {\n if (!update && this._promises.groups) {\n return this._promises.groups;\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.groups = new Promise((resolve, reject) =>\n this._socket.emit(\n 'getObjectView',\n 'system',\n 'group',\n {startkey: 'system.group.', endkey: 'system.group.\\u9999'},\n (err, doc) => {\n if (err) {\n reject(err);\n } else {\n resolve(doc.rows.map(item => item.value));\n }\n }));\n\n return this._promises.groups;\n }\n\n /**\n * Get the host information.\n * @param {string} host\n * @param {boolean} [update] Force update.\n * @param {number} [timeoutMs] optional read timeout.\n * @returns {Promise<any>}\n */\n getHostInfo(host, update, timeoutMs) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!host.startsWith('system.host.')) {\n host += 'system.host.' + host;\n }\n\n if (!update && this._promises['hostInfo' + host]) {\n return this._promises['hostInfo' + host];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['hostInfo' + host] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('getHostInfo timeout');\n }\n }, timeoutMs || this.props.cmdTimeout);\n\n this._socket.emit('sendToHost', host, 'getHostInfo', null, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getHostInfo\"');\n } else if (!data) {\n reject('Cannot read \"getHostInfo\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises['hostInfo' + host];\n }\n\n /**\n * Get the host information (short version).\n * @param {string} host\n * @param {boolean} [update] Force update.\n * @param {number} [timeoutMs] optional read timeout.\n * @returns {Promise<any>}\n */\n getHostInfoShort(host, update, timeoutMs) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!host.startsWith('system.host.')) {\n host += 'system.host.' + host;\n }\n\n if (!update && this._promises['hostInfoShort' + host]) {\n return this._promises['hostInfoShort' + host];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['hostInfoShort' + host] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('hostInfoShort timeout');\n }\n }, timeoutMs || this.props.cmdTimeout);\n\n this._socket.emit('sendToHost', host, 'getHostInfoShort', null, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getHostInfoShort\"');\n } else if (!data) {\n reject('Cannot read \"getHostInfoShort\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises['hostInfoShort' + host];\n }\n\n /**\n * Get the repository.\n * @param {string} host\n * @param {any} [args]\n * @param {boolean} [update] Force update.\n * @param {number} [timeoutMs] timeout in ms.\n * @returns {Promise<any>}\n */\n getRepository(host, args, update, timeoutMs) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.repo) {\n return this._promises.repo;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (!host.startsWith('system.host.')) {\n host += 'system.host.' + host;\n }\n\n this._promises.repo = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('getRepository timeout');\n }\n }, timeoutMs || this.props.cmdTimeout);\n\n this._socket.emit('sendToHost', host, 'getRepository', args, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getRepository\"');\n } else if (!data) {\n reject('Cannot read \"getRepository\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises.repo;\n }\n\n /**\n * Get the installed.\n * @param {string} host\n * @param {boolean} [update] Force update.\n * @param {number} [cmdTimeout] timeout in ms (optional)\n * @returns {Promise<any>}\n */\n getInstalled(host, update, cmdTimeout) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n this._promises.installed = this._promises.installed || {};\n\n if (!update && this._promises.installed[host]) {\n return this._promises.installed[host];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (!host.startsWith('system.host.')) {\n host += 'system.host.' + host;\n }\n\n this._promises.installed[host] = new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('getInstalled timeout');\n }\n }, cmdTimeout || this.props.cmdTimeout);\n\n this._socket.emit('sendToHost', host, 'getInstalled', null, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n if (data === PERMISSION_ERROR) {\n reject('May not read \"getInstalled\"');\n } else if (!data) {\n reject('Cannot read \"getInstalled\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n\n return this._promises.installed[host];\n }\n\n /**\n * Execute a command on a host.\n * @param {string} host The host name.\n * @param {string} cmd The command.\n * @param {string} cmdId The command ID.\n * @param {number} cmdTimeout Timeout of command in ms\n * @returns {Promise<void>}\n */\n cmdExec(host, cmd, cmdId, cmdTimeout) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n if (!host.startsWith(host)) {\n host += 'system.host.' + host;\n }\n\n return new Promise((resolve, reject) => {\n let timeout = cmdTimeout && setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('cmdExec timeout');\n }\n }, cmdTimeout);\n\n this._socket.emit('cmdExec', host, cmdId, cmd, null, err => {\n if (!cmdTimeout || timeout) {\n timeout && clearTimeout(timeout);\n timeout = null;\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n }\n });\n });\n }\n\n /**\n * Checks if a given feature is supported.\n * @param {string} feature The feature to check.\n * @param {boolean} [update] Force update.\n * @returns {Promise<any>}\n */\n checkFeatureSupported(feature, update) {\n if (!update && this._promises['supportedFeatures_' + feature]) {\n return this._promises['supportedFeatures_' + feature];\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises['supportedFeatures_' + feature] = new Promise((resolve, reject) =>\n this._socket.emit('checkFeatureSupported', feature, (err, features) => {\n err ? reject(err) : resolve(features)\n }));\n\n return this._promises['supportedFeatures_' + feature];\n }\n\n /**\n * Read the base settings of a given host.\n * @param {string} host\n * @returns {Promise<any>}\n */\n readBaseSettings(host) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return this.checkFeatureSupported('CONTROLLER_READWRITE_BASE_SETTINGS')\n .then(result => {\n if (result) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('readBaseSettings timeout');\n }\n }, this.props.cmdTimeout);\n\n if (host.startsWith('system.host.')) {\n host = host.replace(/^system\\.host\\./, '');\n }\n\n this._socket.emit('sendToHost', host, 'readBaseSettings', null, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n\n if (data === PERMISSION_ERROR) {\n reject('May not read \"BaseSettings\"');\n } else if (!data) {\n reject('Cannot read \"BaseSettings\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n } else {\n return Promise.reject('Not supported');\n }\n });\n }\n\n /**\n * Write the base settings of a given host.\n * @param {string} host\n * @param {any} config\n * @returns {Promise<any>}\n */\n writeBaseSettings(host, config) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return this.checkFeatureSupported('CONTROLLER_READWRITE_BASE_SETTINGS')\n .then(result => {\n if (result) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) => {\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject('writeBaseSettings timeout');\n }\n }, this.props.cmdTimeout);\n\n this._socket.emit('sendToHost', host, 'writeBaseSettings', config, data => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n\n if (data === PERMISSION_ERROR) {\n reject('May not write \"BaseSettings\"');\n } else if (!data) {\n reject('Cannot write \"BaseSettings\"');\n } else {\n resolve(data);\n }\n }\n });\n });\n } else {\n return Promise.reject('Not supported');\n }\n })\n }\n\n /**\n * Send command to restart the iobroker on host\n * @param {string} host\n * @returns {Promise<any>}\n */\n restartController(host) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return new Promise((resolve, reject) => {\n this._socket.emit('sendToHost', host, 'restartController', null, error => {\n error ? reject(error) : resolve(true);\n });\n });\n }\n\n /**\n * Read statistics information from host\n * @param {string} host\n * @param {string} typeOfDiag one of none, normal, no-city, extended\n * @returns {Promise<any>}\n */\n getDiagData(host, typeOfDiag) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return new Promise(resolve => {\n this._socket.emit('sendToHost', host, 'getDiagData', typeOfDiag, result =>\n resolve(result));\n });\n }\n\n /**\n * Read all states (which might not belong to this adapter) which match the given pattern.\n * @param {string} pattern\n * @returns {ioBroker.GetStatesPromise}\n */\n getForeignStates(pattern) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n if (Connection.isWeb()) {\n return new Promise((resolve, reject) =>\n this._socket.emit('getStates', pattern || '*', (err, states) =>\n err ? reject(err) : resolve(states)));\n } else {\n return new Promise((resolve, reject) =>\n this._socket.emit('getForeignStates', pattern || '*', (err, states) =>\n err ? reject(err) : resolve(states)));\n }\n }\n\n /**\n * Get foreign objects by pattern, by specific type and resolve their enums.\n * @param {string} pattern\n * @param {string} [type]\n * @returns {ioBroker.GetObjectsPromise}\n */\n getForeignObjects(pattern, type) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getForeignObjects', pattern || '*', type, (err, states) =>\n err ? reject(err) : resolve(states)));\n }\n\n /**\n * Gets the system configuration.\n * @param {boolean} [update] Force update.\n * @returns {Promise<ioBroker.OtherObject>}\n */\n getSystemConfig(update) {\n if (!update && this._promises.systemConfig) {\n return this._promises.systemConfig;\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.systemConfig = this.getObject('system.config')\n .then(systemConfig => {\n //@ts-ignore\n systemConfig = systemConfig || {};\n //@ts-ignore\n systemConfig.common = systemConfig.common || {};\n //@ts-ignore\n systemConfig.native = systemConfig.native || {};\n return systemConfig;\n });\n\n return this._promises.systemConfig;\n }\n\n /**\n * Sets the system configuration.\n * @param {ioBroker.SettableObjectWorker<ioBroker.OtherObject>} obj\n * @returns {Promise<ioBroker.SettableObjectWorker<ioBroker.OtherObject>>}\n */\n setSystemConfig(obj) {\n return this.setObject('system.config', obj)\n .then(() => this._promises.systemConfig = Promise.resolve(obj));\n }\n\n /**\n * Get the raw socket.io socket.\n * @returns {any}\n */\n getRawSocket() {\n return this._socket;\n }\n\n /**\n * Get the history of a given state.\n * @param {string} id\n * @param {ioBroker.GetHistoryOptions} options\n * @returns {Promise<ioBroker.GetHistoryResult>}\n */\n getHistory(id, options) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getHistory', id, options, (err, values) =>\n err ? reject(err) : resolve(values)));\n }\n\n /**\n * Get the history of a given state.\n * @param {string} id\n * @param {ioBroker.GetHistoryOptions} options\n * @returns {Promise<{values: ioBroker.GetHistoryResult; sesionId: string; stepIgnore: number}>}\n */\n getHistoryEx(id, options) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('getHistory', id, options, (err, values, stepIgnore, sessionId) =>\n err ? reject(err) : resolve({ values, sessionId, stepIgnore })));\n }\n\n /**\n * Change the password of the given user.\n * @param {string} user\n * @param {string} password\n * @returns {Promise<void>}\n */\n changePassword(user, password) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('changePassword', user, password, err =>\n err ? reject(err) : resolve()));\n }\n\n /**\n * Get the IP addresses of the given host.\n * @param {string} host\n * @param {boolean} [update] Force update.\n * @returns {Promise<string[]>}\n */\n getIpAddresses(host, update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!host.startsWith('system.host.')) {\n host = 'system.host.' + host;\n }\n\n if (!update && this._promises['IPs_' + host]) {\n return this._promises['IPs_' + host];\n }\n this._promises['IPs_' + host] = this.getObject(host)\n .then(obj => obj && obj.common ? obj.common.address || [] : []);\n\n return this._promises['IPs_' + host];\n }\n\n /**\n * Get the IP addresses with interface names of the given host or find host by IP.\n * @param {string} ipOrHostName\n * @param {boolean} [update] Force update.\n * @returns {Promise<any[<name, address, family>]>}\n */\n getHostByIp(ipOrHostName, update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (ipOrHostName.startsWith('system.host.')) {\n ipOrHostName = ipOrHostName.replace(/^system\\.host\\./, '');\n }\n\n if (!update && this._promises['rIPs_' + ipOrHostName]) {\n return this._promises['rIPs_' + ipOrHostName];\n }\n this._promises['rIPs_' + ipOrHostName] = new Promise(resolve =>\n this._socket.emit('getHostByIp', ipOrHostName, (ip, host) => {\n const IPs4 = [{name: '[IPv4] 0.0.0.0 - Listen on all IPs', address: '0.0.0.0', family: 'ipv4'}];\n const IPs6 = [{name: '[IPv6] :: - Listen on all IPs', address: '::', family: 'ipv6'}];\n if (host?.native?.hardware?.networkInterfaces) {\n for (const eth in host.native.hardware.networkInterfaces) {\n if (!host.native.hardware.networkInterfaces.hasOwnProperty(eth)) {\n continue;\n }\n for (let num = 0; num < host.native.hardware.networkInterfaces[eth].length; num++) {\n if (host.native.hardware.networkInterfaces[eth][num].family !== 'IPv6') {\n IPs4.push({name: `[${host.native.hardware.networkInterfaces[eth][num].family}] ${host.native.hardware.networkInterfaces[eth][num].address} - ${eth}`, address: host.native.hardware.networkInterfaces[eth][num].address, family: 'ipv4'});\n } else {\n IPs6.push({name: `[${host.native.hardware.networkInterfaces[eth][num].family}] ${host.native.hardware.networkInterfaces[eth][num].address} - ${eth}`, address: host.native.hardware.networkInterfaces[eth][num].address, family: 'ipv6'});\n }\n }\n }\n }\n for (let i = 0; i < IPs6.length; i++) {\n IPs4.push(IPs6[i]);\n }\n resolve(IPs4);\n }));\n\n return this._promises['rIPs_' + ipOrHostName];\n }\n\n /**\n * Encrypt a text\n * @param {string} text\n * @returns {Promise<string>}\n */\n encrypt(text) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('encrypt', text, (err, text) =>\n err ? reject(err) : resolve(text)));\n }\n\n /**\n * Decrypt a text\n * @param {string} encryptedText\n * @returns {Promise<string>}\n */\n decrypt(encryptedText) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('decrypt', encryptedText, (err, text) =>\n err ? reject(err) : resolve(text)));\n }\n\n /**\n * Gets the version.\n * @returns {Promise<{version: string; serverName: string}>}\n */\n getVersion(update) {\n if (update && this._promises.version) {\n this._promises.version = null;\n }\n\n this._promises.version = this._promises.version || new Promise((resolve, reject) =>\n this._socket.emit('getVersion', (err, version, serverName) => {\n // support of old socket.io\n if (err && !version && typeof err === 'string' && err.match(/\\d+\\.\\d+\\.\\d+/)) {\n resolve({ version: err, serverName: 'socketio' });\n } else {\n return err ? reject(err) : resolve({ version, serverName });\n }\n }));\n\n return this._promises.version;\n }\n\n /**\n * Gets the web server name.\n * @returns {Promise<string>}\n */\n getWebServerName() {\n this._promises.webName = this._promises.webName || new Promise((resolve, reject) =>\n this._socket.emit('getAdapterName', (err, name) =>\n err ? reject(err) : resolve(name)));\n\n return this._promises.webName;\n }\n\n /**\n * Gets the admin version.\n * @deprecated use getVersion()\n * @returns {Promise<{version: string; serverName: string}>}\n */\n getAdminVersion() {\n console.log('Deprecated: use getVersion');\n return this.getVersion();\n }\n\n /**\n * Change access rights for file\n * @param {string} [adapter] adapter name\n * @param {string} [filename] file name with full path. it could be like vis.0/*\n * @param {object} [options] like {mode: 0x644}\n * @returns {Promise<{entries: array}>}\n */\n chmodFile(adapter, filename, options) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('chmodFile', adapter, filename, options, (err, entries, id) =>\n err ? reject(err) : resolve({entries, id})));\n }\n\n /**\n * Change owner or/and owner group for file\n * @param {string} [adapter] adapter name\n * @param {string} [filename] file name with full path. it could be like vis.0/*\n * @param {object} [options] like {owner: 'newOwner', ownerGroup: 'newGroup'}\n * @returns {Promise<{entries: array}>}\n */\n chownFile(adapter, filename, options) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('chownFile', adapter, filename, options, (err, entries, id) =>\n err ? reject(err) : resolve({entries, id})));\n }\n\n /**\n * Check if the file exists\n * @param {string} [adapter] adapter name\n * @param {string} [filename] file name with full path. it could be like vis.0/*\n * @returns {Promise<boolean>}\n */\n fileExists(adapter, filename) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('fileExists', adapter, filename, (err, exists) =>\n err ? reject(err) : resolve(exists)));\n }\n\n /**\n * Get the alarm notifications from a host (only for admin connection).\n * @param {string} host\n * @param {string} [category] - optional\n * @returns {Promise<any>}\n */\n getNotifications(host, category) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise(resolve =>\n this._socket.emit('sendToHost', host, 'getNotifications', { category }, notifications =>\n resolve(notifications)));\n }\n\n /**\n * Clear the alarm notifications on a host (only for admin connection).\n * @param {string} host\n * @param {string} [category] - optional\n * @returns {Promise<any>}\n */\n clearNotifications(host, category) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise(resolve =>\n this._socket.emit('sendToHost', host, 'clearNotifications', {category}, notifications =>\n resolve(notifications)));\n }\n\n /**\n * Read if only easy mode is allowed (only for admin connection).\n * @returns {Promise<boolean>}\n */\n getIsEasyModeStrict() {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getIsEasyModeStrict', (error, isStrict) =>\n error ? reject(error) : resolve(isStrict)));\n }\n\n /**\n * Read easy mode configuration (only for admin connection).\n * @returns {Promise<any>}\n */\n getEasyMode() {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getEasyMode', (error, config) =>\n error ? reject(error) : resolve(config)));\n }\n\n /**\n * Read current user\n * @returns {Promise<string>}\n */\n getCurrentUser() {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise(resolve =>\n this._socket.emit('authEnabled', (isSecure, user) =>\n resolve(user)));\n }\n\n getCurrentSession(cmdTimeout) {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) => {\n const controller = new AbortController();\n\n let timeout = setTimeout(() => {\n if (timeout) {\n timeout = null;\n controller.abort();\n reject('getCurrentSession timeout');\n }\n }, cmdTimeout || 5000);\n\n return fetch('./session', { signal: controller.signal })\n .then(res => res.json())\n .then(json => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n resolve(json);\n }\n })\n .catch(e =>\n reject('getCurrentSession: ' + e));\n });\n }\n\n /**\n * Read adapter ratings\n * @returns {Promise<any>}\n */\n getRatings(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n return new Promise((resolve, reject) =>\n this._socket.emit('getRatings', update, (err, ratings) =>\n err ? reject(err) : resolve(ratings)));\n }\n\n /**\n * Read current web, socketio or admin namespace, like admin.0\n * @returns {Promise<string>}\n */\n getCurrentInstance() {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n this._promises.currentInstance = this._promises.currentInstance ||\n new Promise((resolve, reject) =>\n this._socket.emit('getCurrentInstance', (err, namespace) =>\n err ? reject(err) : resolve(namespace)));\n\n return this._promises.currentInstance;\n }\n\n // returns very optimized information for adapters to minimize connection load\n getCompactAdapters(update) {\n if (Connection.isWeb()) {\n return Promise.reject('Allowed only in admin');\n }\n if (!update && this._promises.compactAdapters) {\n return this._promises.compactAdapters;\n }\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n this._promises.compactAdapters = new Promise((resolve, reject) =>\n this._socket.emit('getCompactAdapters', (err, adapters) =>\n err ? reject(err) : resolve(adapters)));\n\n return this._promises.compactAdapters;\n }\n\n 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 * Send log to ioBroker log\n * @param {string} [text] Log text\n * @param {string} [level] `info`, `debug`, `warn`, `error` or `silly`\n * @returns {void}\n */\n log(text, level) {\n text && this._socket.emit('log', text, level || 'debug');\n }\n\n /**\n * Logout current user\n * @returns {Promise<null>}\n */\n logout() {\n if (!this.connected) {\n return Promise.reject(NOT_CONNECTED);\n }\n\n return new Promise((resolve, reject) =>\n this._socket.emit('logout', err =>\n err ? reject(err) : resolve(null)));\n }\n}\n\nConnection.Connection = {\n onLog: PropTypes.func,\n onReady: PropTypes.func,\n onProgress: PropTypes.func,\n};\n\nexport default Connection;\n"],"mappings":"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"}