iobroker.iot 3.6.0 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -4
- package/admin/assets/index-5zouxn2w.js +680 -0
- package/admin/index_m.html +1 -1
- package/admin/rules/assets/{index-BRdNnGcA.js → index-DwYdaT5M.js} +80 -81
- package/admin/rules/customRuleBlocks.js +2 -2
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/AlexaResponse.js +101 -95
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/AlexaResponse.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Capabilities/Base.js +22 -36
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/Base.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/BrightnessController.js +19 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/BrightnessController.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorController.js +14 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorController.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorTemperatureController.js +19 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorTemperatureController.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ContactSensor.js +16 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ContactSensor.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/LockController.js +14 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/LockController.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Capabilities/ModeController.js +27 -28
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ModeController.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/MotionSensor.js +14 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/MotionSensor.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/PercentageController.js +14 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/PercentageController.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/PowerController.js +19 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/PowerController.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/Speaker.js +25 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/Speaker.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/TemperatureSensor.js +14 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/TemperatureSensor.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ThermostatController.js +37 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/ThermostatController.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/index.js +32 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Capabilities/index.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/Base.js +29 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/Base.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Directives/ChangeReport.js +34 -27
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/ChangeReport.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/Discovery.js +39 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/Discovery.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Directives/ReportState.js +19 -22
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/ReportState.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/index.js +14 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Directives/index.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Base.js +36 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Base.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Closed.js +57 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Closed.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Open.js +57 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/Open.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/index.js +12 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/ModeValues/index.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/AdjustableProperty.js +16 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/AdjustableProperty.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Base.js +127 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Base.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Brightness.js +18 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Brightness.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Color.js +38 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Color.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Properties/ColorTemperatureInKelvin.js +20 -29
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/ColorTemperatureInKelvin.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/DetectionState.js +23 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/DetectionState.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Properties/LockState.js +9 -12
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/LockState.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Mode.js +34 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Mode.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Muted.js +19 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Muted.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Percentage.js +18 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Percentage.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Alexa/Properties/PowerState.js +9 -9
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/PowerState.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/TargetSetpoint.js +31 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/TargetSetpoint.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Temperature.js +22 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Temperature.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/ThermostatMode.js +49 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/ThermostatMode.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Volume.js +21 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/Volume.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/index.js +38 -0
- package/build-backend/lib/AlexaSmartHomeV3/Alexa/Properties/index.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/AdjustableControl.js +20 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/AdjustableControl.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/AdjustablePercentageControl.js +26 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/AdjustablePercentageControl.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/AirCondition.js +148 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/AirCondition.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Blind.js +13 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Blind.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/ContactSensor.js +17 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/ContactSensor.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Controls/Control.js +73 -104
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Control.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Ct.js +182 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Ct.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Dimmer.js +127 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Dimmer.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Door.js +10 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Door.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Gate.js +38 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Gate.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Hue.js +208 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Hue.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Controls/Light.js +15 -22
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Light.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Lock.js +35 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Lock.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Motion.js +17 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Motion.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/ReadOnlyDetector.js +26 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/ReadOnlyDetector.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Slider.js +10 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Slider.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Socket.js +21 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Socket.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Temperature.js +21 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Temperature.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Thermostat.js +85 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Thermostat.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/VacuumCleaner.js +27 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/VacuumCleaner.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Volume.js +116 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Volume.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/VolumeGroup.js +10 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/VolumeGroup.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Window.js +10 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/Window.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/index.js +121 -0
- package/build-backend/lib/AlexaSmartHomeV3/Controls/index.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Device.js +29 -30
- package/build-backend/lib/AlexaSmartHomeV3/Device.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/DeviceManager.js +392 -0
- package/build-backend/lib/AlexaSmartHomeV3/DeviceManager.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Exceptions/AlexaV3Exception.js +10 -0
- package/build-backend/lib/AlexaSmartHomeV3/Exceptions/AlexaV3Exception.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Exceptions/HourlyDeviceRateLimitExceeded.js +10 -0
- package/build-backend/lib/AlexaSmartHomeV3/Exceptions/HourlyDeviceRateLimitExceeded.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Exceptions/OverallDailyRateLimitExceeded.js +10 -0
- package/build-backend/lib/AlexaSmartHomeV3/Exceptions/OverallDailyRateLimitExceeded.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Helpers/AdapterProvider.js +12 -21
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/AdapterProvider.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/FileHelper.js +53 -0
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/FileHelper.js.map +1 -0
- package/{lib → build-backend/lib}/AlexaSmartHomeV3/Helpers/IotProxy.js +9 -26
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/IotProxy.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/Logger.js +93 -0
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/Logger.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/RateLimiter.js +112 -0
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/RateLimiter.js.map +1 -0
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/Utils.js +625 -0
- package/build-backend/lib/AlexaSmartHomeV3/Helpers/Utils.js.map +1 -0
- package/build-backend/lib/Utils.js +96 -0
- package/build-backend/lib/Utils.js.map +1 -0
- package/build-backend/lib/adminCommonSocket.js +715 -0
- package/build-backend/lib/adminCommonSocket.js.map +1 -0
- package/build-backend/lib/alexaCustom.js +542 -0
- package/build-backend/lib/alexaCustom.js.map +1 -0
- package/{lib → build-backend/lib}/alexaSmartHomeV2.js +4 -8
- package/{lib → build-backend/lib}/alexaSmartHomeV3.js +25 -45
- package/build-backend/lib/alexaSmartHomeV3.js.map +1 -0
- package/{lib → build-backend/lib}/alisa.js +41 -44
- package/{lib → build-backend/lib}/devices.js +11 -8
- package/build-backend/lib/devices.js.map +1 -0
- package/{lib → build-backend/lib}/functions.js +11 -8
- package/build-backend/lib/functions.js.map +1 -0
- package/{lib → build-backend/lib}/googleHome.js +25 -26
- package/{lib → build-backend/lib}/notifications.js +15 -22
- package/build-backend/lib/notifications.js.map +1 -0
- package/{lib → build-backend/lib}/remote.js +615 -636
- package/build-backend/lib/remote.js.map +1 -0
- package/{lib → build-backend/lib}/rooms.js +11 -8
- package/build-backend/lib/rooms.js.map +1 -0
- package/{lib → build-backend/lib}/texts.js +6 -4
- package/build-backend/lib/texts.js.map +1 -0
- package/build-backend/lib/translate.js +21 -0
- package/build-backend/lib/translate.js.map +1 -0
- package/{lib → build-backend/lib}/visuApp.js +45 -65
- package/build-backend/lib/visuApp.js.map +1 -0
- package/build-backend/main.js +1361 -0
- package/build-backend/main.js.map +1 -0
- package/io-package.json +14 -14
- package/package.json +18 -15
- package/admin/assets/index-DCbOB3g_.js +0 -681
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/BrightnessController.js +0 -15
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorController.js +0 -10
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/ColorTemperatureController.js +0 -15
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/ContactSensor.js +0 -10
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/LockController.js +0 -10
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/MotionSensor.js +0 -10
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/PercentageController.js +0 -10
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/PowerController.js +0 -15
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/Speaker.js +0 -20
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/TemperatureSensor.js +0 -10
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/ThermostatController.js +0 -34
- package/lib/AlexaSmartHomeV3/Alexa/Capabilities/index.js +0 -14
- package/lib/AlexaSmartHomeV3/Alexa/Directives/Base.js +0 -27
- package/lib/AlexaSmartHomeV3/Alexa/Directives/Discovery.js +0 -39
- package/lib/AlexaSmartHomeV3/Alexa/Directives/index.js +0 -13
- package/lib/AlexaSmartHomeV3/Alexa/ModeValues/Base.js +0 -38
- package/lib/AlexaSmartHomeV3/Alexa/ModeValues/Closed.js +0 -55
- package/lib/AlexaSmartHomeV3/Alexa/ModeValues/Open.js +0 -56
- package/lib/AlexaSmartHomeV3/Alexa/ModeValues/index.js +0 -14
- package/lib/AlexaSmartHomeV3/Alexa/Properties/AdjustableProperty.js +0 -11
- package/lib/AlexaSmartHomeV3/Alexa/Properties/Base.js +0 -108
- package/lib/AlexaSmartHomeV3/Alexa/Properties/Brightness.js +0 -14
- package/lib/AlexaSmartHomeV3/Alexa/Properties/Color.js +0 -40
- package/lib/AlexaSmartHomeV3/Alexa/Properties/DetectionState.js +0 -22
- package/lib/AlexaSmartHomeV3/Alexa/Properties/Mode.js +0 -32
- package/lib/AlexaSmartHomeV3/Alexa/Properties/Muted.js +0 -17
- package/lib/AlexaSmartHomeV3/Alexa/Properties/Percentage.js +0 -14
- package/lib/AlexaSmartHomeV3/Alexa/Properties/TargetSetpoint.js +0 -28
- package/lib/AlexaSmartHomeV3/Alexa/Properties/Temperature.js +0 -20
- package/lib/AlexaSmartHomeV3/Alexa/Properties/ThermostatMode.js +0 -52
- package/lib/AlexaSmartHomeV3/Alexa/Properties/Volume.js +0 -19
- package/lib/AlexaSmartHomeV3/Alexa/Properties/index.js +0 -14
- package/lib/AlexaSmartHomeV3/Controls/AdjustableControl.js +0 -22
- package/lib/AlexaSmartHomeV3/Controls/AdjustablePercentageControl.js +0 -28
- package/lib/AlexaSmartHomeV3/Controls/AirCondition.js +0 -144
- package/lib/AlexaSmartHomeV3/Controls/Blind.js +0 -12
- package/lib/AlexaSmartHomeV3/Controls/ContactSensor.js +0 -17
- package/lib/AlexaSmartHomeV3/Controls/Ct.js +0 -172
- package/lib/AlexaSmartHomeV3/Controls/Dimmer.js +0 -124
- package/lib/AlexaSmartHomeV3/Controls/Door.js +0 -9
- package/lib/AlexaSmartHomeV3/Controls/Gate.js +0 -42
- package/lib/AlexaSmartHomeV3/Controls/Hue.js +0 -207
- package/lib/AlexaSmartHomeV3/Controls/Lock.js +0 -36
- package/lib/AlexaSmartHomeV3/Controls/Motion.js +0 -17
- package/lib/AlexaSmartHomeV3/Controls/ReadOnlyDetector.js +0 -25
- package/lib/AlexaSmartHomeV3/Controls/Slider.js +0 -10
- package/lib/AlexaSmartHomeV3/Controls/Socket.js +0 -21
- package/lib/AlexaSmartHomeV3/Controls/Temperature.js +0 -22
- package/lib/AlexaSmartHomeV3/Controls/Thermostat.js +0 -86
- package/lib/AlexaSmartHomeV3/Controls/VacuumCleaner.js +0 -28
- package/lib/AlexaSmartHomeV3/Controls/Volume.js +0 -109
- package/lib/AlexaSmartHomeV3/Controls/VolumeGroup.js +0 -9
- package/lib/AlexaSmartHomeV3/Controls/Window.js +0 -9
- package/lib/AlexaSmartHomeV3/Controls/index.js +0 -14
- package/lib/AlexaSmartHomeV3/DeviceManager.js +0 -415
- package/lib/AlexaSmartHomeV3/Exceptions/AlexaV3Exception.js +0 -8
- package/lib/AlexaSmartHomeV3/Exceptions/HourlyDeviceRateLimitExceeded.js +0 -5
- package/lib/AlexaSmartHomeV3/Exceptions/OverallDailyRateLimitExceeded.js +0 -5
- package/lib/AlexaSmartHomeV3/Helpers/FileHelper.js +0 -70
- package/lib/AlexaSmartHomeV3/Helpers/Logger.js +0 -95
- package/lib/AlexaSmartHomeV3/Helpers/RateLimiter.js +0 -82
- package/lib/AlexaSmartHomeV3/Helpers/Utils.js +0 -583
- package/lib/Utils.js +0 -608
- package/lib/adminCommonSocket.js +0 -781
- package/lib/alexaCustom.js +0 -622
- package/lib/translate.js +0 -19
- package/main.js +0 -1454
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adminCommonSocket.js","sourceRoot":"","sources":["../../src/lib/adminCommonSocket.ts"],"names":[],"mappings":"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","sourcesContent":["import { normalize } from 'node:path';\nimport { existsSync, lstatSync, readdirSync } from 'node:fs';\nimport axios from 'axios';\nimport type { IotAdapter } from '../main';\n\nconst ALLOW_CACHE = [\n 'getRepository',\n 'getInstalled',\n 'getInstalledAdapter',\n 'getVersion',\n 'getDiagData',\n 'getLocationOnDisk',\n 'getDevList',\n 'getLogs',\n 'getHostInfo',\n];\nexport type SocketOperation = 'read' | 'write' | 'list' | 'delete' | 'create' | 'http' | 'execute' | 'sendto' | '';\ninterface AdminConfig {\n accessAllowedConfigs: string[];\n accessAllowedTabs: string[];\n accessApplyRights: boolean;\n accessLimit: boolean;\n allowInternalAccess?: { [adapterName: string]: string }; // adapterName: UserName (without system.user)\n auth: boolean;\n autoUpdate: number;\n bind: string;\n cache: boolean;\n certChained: string;\n certPrivate: string;\n certPublic: string;\n defaultUser: string;\n doNotCheckPublicIP: boolean;\n language: ioBroker.Languages;\n leCollection: boolean;\n loadingBackgroundColor: string;\n loadingBackgroundImage: boolean;\n loadingHideLogo: boolean;\n loginBackgroundColor: string;\n loginBackgroundImage: boolean;\n loginHideLogo: boolean;\n loginMotto: string;\n noBasicAuth: boolean;\n port: number;\n secure: boolean;\n thresholdValue: number;\n tmpPath: string;\n tmpPathAllow: boolean;\n ttl: number;\n reverseProxy: {\n globalPath: string;\n paths: { path: string; instance: string }[];\n }[];\n}\n// const SUPPORTED_ADAPTERS = ['admin', 'vis-2'];\nexport type PermissionCommands =\n | 'subscribe'\n | 'unsubscribe'\n | 'subscribeFiles'\n | 'unsubscribeFiles'\n | 'getStateHistory'\n | 'httpGet'\n | 'sendTo'\n | 'cmdExec'\n | 'sendToHost'\n | 'authEnabled'\n | 'getUserPermissions'\n | 'getVersion'\n | 'getAdapterName'\n | 'readFile'\n | 'readFile64'\n | 'writeFile64'\n | 'writeFile'\n | 'unlink'\n | 'rename'\n | 'renameFile'\n | 'mkdir'\n | 'readDir'\n | 'chmodFile'\n | 'chownFile'\n | 'fileExists'\n | 'getObject'\n | 'setObject'\n | 'getObjects'\n | 'subscribeObjects'\n | 'unsubscribeObjects'\n | 'getStates'\n | 'getState'\n | 'setState'\n | 'getObjectView'\n | 'delObject'\n | 'requireLog'\n | 'createState'\n | 'createFile'\n | 'deleteFile'\n | 'disconnect'\n | 'listPermissions'\n\n // admin\n | 'getHostByIp'\n | 'delGroup'\n | 'addGroup'\n | 'delUser'\n | 'addUser'\n | 'changePassword'\n | 'readLogs'\n | 'delState'\n | 'extendObject';\n\nexport const COMMANDS_PERMISSIONS: Record<\n PermissionCommands,\n { type: 'object' | 'state' | 'users' | 'other' | 'file' | ''; operation: SocketOperation }\n> = {\n getObject: { type: 'object', operation: 'read' },\n getObjects: { type: 'object', operation: 'list' },\n getObjectView: { type: 'object', operation: 'list' },\n setObject: { type: 'object', operation: 'write' },\n requireLog: { type: 'object', operation: 'write' }, // just mapping to some command\n delObject: { type: 'object', operation: 'delete' },\n extendObject: { type: 'object', operation: 'write' },\n getHostByIp: { type: 'object', operation: 'list' },\n subscribeObjects: { type: 'object', operation: 'read' },\n unsubscribeObjects: { type: 'object', operation: 'read' },\n\n getStates: { type: 'state', operation: 'list' },\n getState: { type: 'state', operation: 'read' },\n setState: { type: 'state', operation: 'write' },\n delState: { type: 'state', operation: 'delete' },\n createState: { type: 'state', operation: 'create' },\n subscribe: { type: 'state', operation: 'read' },\n unsubscribe: { type: 'state', operation: 'read' },\n getStateHistory: { type: 'state', operation: 'read' },\n getVersion: { type: '', operation: '' },\n getAdapterName: { type: '', operation: '' },\n\n addUser: { type: 'users', operation: 'create' },\n delUser: { type: 'users', operation: 'delete' },\n addGroup: { type: 'users', operation: 'create' },\n delGroup: { type: 'users', operation: 'delete' },\n changePassword: { type: 'users', operation: 'write' },\n\n httpGet: { type: 'other', operation: 'http' },\n cmdExec: { type: 'other', operation: 'execute' },\n sendTo: { type: 'other', operation: 'sendto' },\n sendToHost: { type: 'other', operation: 'sendto' },\n readLogs: { type: 'other', operation: 'execute' },\n\n readDir: { type: 'file', operation: 'list' },\n createFile: { type: 'file', operation: 'create' },\n writeFile: { type: 'file', operation: 'write' },\n readFile: { type: 'file', operation: 'read' },\n fileExists: { type: 'file', operation: 'read' },\n deleteFile: { type: 'file', operation: 'delete' },\n readFile64: { type: 'file', operation: 'read' },\n writeFile64: { type: 'file', operation: 'write' },\n unlink: { type: 'file', operation: 'delete' },\n renameFile: { type: 'file', operation: 'write' },\n rename: { type: 'file', operation: 'write' },\n mkdir: { type: 'file', operation: 'write' },\n chmodFile: { type: 'file', operation: 'write' },\n chownFile: { type: 'file', operation: 'write' },\n subscribeFiles: { type: 'file', operation: 'read' },\n unsubscribeFiles: { type: 'file', operation: 'read' },\n\n authEnabled: { type: '', operation: '' },\n disconnect: { type: '', operation: '' },\n listPermissions: { type: '', operation: '' },\n getUserPermissions: { type: 'object', operation: 'read' },\n};\n\nexport type InstanceDescription = {\n id: string;\n title?: ioBroker.StringOrTranslated;\n desc?: ioBroker.StringOrTranslated;\n color?: string;\n url: string;\n icon?: string;\n materialize: boolean;\n jsonConfig: boolean;\n tab?: boolean;\n config?: boolean;\n};\n\nconst cache: { [commandAndHost: string]: { ts: number; res: string } } = {};\nlet cacheGB: NodeJS.Timeout | null = null;\n\nfunction fixAdminUI(obj: ioBroker.InstanceObject | ioBroker.AdapterObject): void {\n if (obj?.common) {\n if (!obj.common.adminUI) {\n if (obj.common.noConfig) {\n obj.common.adminUI ||= { config: 'none' };\n obj.common.adminUI.config = 'none';\n } else if ((obj.common as any).jsonConfig) {\n obj.common.adminUI ||= { config: 'json' };\n obj.common.adminUI.config = 'json';\n } else if (obj.common.materialize) {\n obj.common.adminUI ||= { config: 'materialize' };\n obj.common.adminUI.config = 'materialize';\n } else {\n obj.common.adminUI ||= { config: 'html' };\n obj.common.adminUI.config = 'html';\n }\n\n if ((obj.common as any).jsonCustom) {\n obj.common.adminUI ||= { config: 'html' };\n obj.common.adminUI.custom = 'json';\n } else if (obj.common.supportCustoms) {\n obj.common.adminUI ||= { config: 'html' };\n obj.common.adminUI.custom = 'json';\n }\n\n if (obj.common.materializeTab && obj.common.adminTab) {\n obj.common.adminUI ||= { config: 'html' };\n obj.common.adminUI.tab = 'materialize';\n } else if (obj.common.adminTab) {\n obj.common.adminUI ||= { config: 'html' };\n obj.common.adminUI.tab = 'html';\n }\n\n if (obj.common.adminUI) {\n console.warn(\n `Please add to \"${obj._id.replace(/\\.\\d+$/, '')}\" common.adminUI=${JSON.stringify(obj.common.adminUI)}`,\n );\n }\n } else {\n let changed = false;\n if (obj.common.materializeTab && obj.common.adminTab) {\n if (obj.common.adminUI.tab !== 'materialize') {\n obj.common.adminUI.tab = 'materialize';\n changed = true;\n }\n } else if (obj.common.adminTab) {\n if (obj.common.adminUI.tab !== 'html' && obj.common.adminUI.tab !== 'materialize') {\n obj.common.adminUI.tab = 'html';\n changed = true;\n }\n }\n\n if ((obj.common as any).jsonCustom || obj.common.supportCustoms) {\n if (obj.common.adminUI.custom !== 'json') {\n obj.common.adminUI.custom = 'json';\n changed = true;\n }\n }\n\n if (obj.common.noConfig) {\n if (obj.common.adminUI.config !== 'none') {\n obj.common.adminUI.config = 'none';\n changed = true;\n }\n } else if ((obj.common as any).jsonConfig) {\n if (obj.common.adminUI.config !== 'json') {\n obj.common.adminUI.config = 'json';\n changed = true;\n }\n obj.common.adminUI.config = 'json';\n } else if (obj.common.materialize) {\n if (obj.common.adminUI.config !== 'materialize') {\n if (!obj.common.adminUI.config) {\n obj.common.adminUI.config = 'materialize';\n changed = true;\n }\n }\n } else if (!obj.common.adminUI.config) {\n obj.common.adminUI.config = 'html';\n changed = true;\n }\n if (changed) {\n console.warn(\n `Please modify \"${obj._id.replace(/\\.\\d+$/, '')}\" common.adminUI=${JSON.stringify(obj.common.adminUI)}`,\n );\n }\n }\n }\n}\n\nasync function _readInstanceConfig(\n adapter: IotAdapter,\n id: string,\n user: string,\n isTab: boolean,\n configs: InstanceDescription[],\n): Promise<void> {\n const obj = await adapter.getForeignObjectAsync(`system.adapter.${id}`, { user });\n if (obj?.common) {\n const instance = id.split('.').pop();\n const config: InstanceDescription = {\n id,\n title: obj.common.titleLang || obj.common.title,\n desc: obj.common.desc,\n color: obj.common.color,\n url: `/adapter/${obj.common.name}/${isTab ? 'tab' : 'index'}${!isTab && obj.common.materialize ? '_m' : ''}.html${instance ? `?${instance}` : ''}`,\n icon: obj.common.icon,\n materialize: obj.common.adminUI?.config === 'materialize',\n jsonConfig: obj.common.adminUI?.config === 'json',\n };\n if (isTab) {\n config.tab = true;\n } else {\n config.config = true;\n }\n /*if (typeof config.title === 'object') {\n config.title = config.title[adapter.systemConfig.language] || config.title.en;\n }\n if (typeof config.desc === 'object') {\n config.desc = config.desc[adapter.systemConfig.language] || config.desc.en;\n }*/\n configs.push(config);\n }\n}\n\nexport async function getEasyMode(\n adapter: IotAdapter,\n adminObj: ioBroker.InstanceObject | undefined | null,\n): Promise<{\n strict: boolean;\n configs: InstanceDescription[];\n}> {\n const adapterConfig = adminObj?.native as AdminConfig;\n\n const configs: InstanceDescription[] = [];\n if (adapterConfig?.accessLimit) {\n adapterConfig.accessAllowedConfigs ||= [];\n adapterConfig.accessAllowedTabs ||= [];\n\n for (let a = 0; a < adapterConfig.accessAllowedConfigs.length; a++) {\n await _readInstanceConfig(\n adapter,\n adapterConfig.accessAllowedConfigs[a],\n 'system.user.admin',\n false,\n configs,\n );\n }\n\n return { strict: true, configs };\n }\n const doc = await adapter.getObjectViewAsync(\n 'system',\n 'instance',\n {\n startkey: 'system.adapter.',\n endkey: 'system.adapter.\\u9999',\n },\n { user: 'system.user.admin' },\n );\n\n if (doc?.rows.length) {\n for (let i = 0; i < doc.rows.length; i++) {\n const obj = doc.rows[i].value;\n if (obj.common.noConfig && !obj.common.adminTab) {\n continue;\n }\n if (!obj.common.enabled) {\n continue;\n }\n if (!obj.common.noConfig) {\n await _readInstanceConfig(\n adapter,\n obj._id.substring('system.adapter.'.length),\n 'system.user.admin',\n false,\n configs,\n );\n }\n }\n }\n return { strict: false, configs };\n}\n\nexport function getAdapterInstances(adapter: IotAdapter, adapterName: string): Promise<ioBroker.InstanceObject[]> {\n return adapter\n .getObjectViewAsync('system', 'instance', {\n startkey: `system.adapter.${adapterName ? `${adapterName}.` : ''}`,\n endkey: `system.adapter.${adapterName ? `${adapterName}.` : ''}\\u9999`,\n })\n .then(doc =>\n doc.rows\n .map(item => {\n const obj = item.value;\n if (obj.common) {\n delete obj.common.news;\n }\n fixAdminUI(obj);\n return obj;\n })\n .filter(obj => obj && (!adapterName || obj.common?.name === adapterName)),\n );\n}\n\nexport function getAdapters(adapter: IotAdapter, adapterName: string): Promise<ioBroker.AdapterObject[]> {\n return adapter\n .getObjectViewAsync('system', 'adapter', {\n startkey: `system.adapter.${adapterName || ''}`,\n endkey: `system.adapter.${adapterName || '\\u9999'}`,\n })\n .then(doc =>\n doc.rows\n .filter(obj => obj && (!adapterName || obj.value.common?.name === adapterName))\n .map(item => {\n const obj = item.value;\n if (obj.common) {\n delete obj.common.news;\n delete (obj as any).native;\n }\n fixAdminUI(obj);\n return obj;\n }),\n );\n}\n\nexport function getCompactInstances(adapter: IotAdapter): Promise<\n Record<\n string,\n {\n adminTab: ioBroker.AdapterCommon['adminTab'];\n name: string;\n icon?: string;\n enabled: boolean;\n }\n >\n> {\n return adapter\n .getObjectViewAsync('system', 'instance', { startkey: `system.adapter.`, endkey: `system.adapter.\\u9999` })\n .then(doc => {\n // calculate\n const result: Record<\n string,\n {\n adminTab: ioBroker.AdapterCommon['adminTab'];\n name: string;\n icon?: string;\n enabled: boolean;\n }\n > = {};\n\n doc.rows.forEach(item => {\n const obj = item.value;\n result[item.id] = {\n adminTab: obj.common.adminTab,\n name: obj.common.name,\n icon: obj.common.icon,\n enabled: obj.common.enabled,\n };\n });\n\n return result;\n });\n}\n\nexport function getCompactSystemRepositories(\n adapter: IotAdapter,\n): Promise<ioBroker.RepositoryObject | null | undefined> {\n return adapter.getForeignObjectAsync('system.repositories').then(obj => {\n obj?.native?.repositories &&\n Object.keys(obj.native.repositories).forEach(name => {\n if (obj.native.repositories[name].json) {\n // limit information to _repoInfo\n obj.native.repositories[name].json = {\n _repoInfo: obj.native.repositories[name].json._repoInfo,\n };\n }\n });\n return obj;\n });\n}\n\nexport function getCompactAdapters(\n adapter: IotAdapter,\n): Promise<{ [adapter: string]: { icon?: string; v: string; iv?: string } }> {\n return adapter\n .getObjectViewAsync('system', 'adapter', { startkey: `system.adapter.`, endkey: `system.adapter.\\u9999` })\n .then(doc => {\n // calculate\n const result: { [adapter: string]: { icon?: string; v: string; iv?: string } } = {};\n\n doc.rows.forEach(item => {\n const obj = item.value;\n if (obj?.common?.name) {\n result[obj.common.name] = { icon: obj.common.icon, v: obj.common.version };\n if (obj.common.ignoreVersion) {\n result[obj.common.name].iv = obj.common.ignoreVersion;\n }\n }\n });\n\n return result;\n });\n}\n\nfunction sendToHost(adapter: IotAdapter, host: string, command: string, message: any): Promise<any> {\n return new Promise(resolve => {\n if (!message && ALLOW_CACHE.includes(command) && cache[`${host}_${command}`]) {\n if (Date.now() - cache[`${host}_${command}`].ts < 500) {\n resolve(JSON.parse(cache[`${host}_${command}`].res));\n } else {\n delete cache[`${host}_${command}`];\n }\n }\n\n void adapter.getForeignStateAsync(`${host}.alive`).then(state => {\n if (state?.val) {\n adapter.sendToHost(host, command, message, res => {\n if (!message && ALLOW_CACHE.includes(command)) {\n cache[`${host}_${command}`] = { ts: Date.now(), res: JSON.stringify(res) };\n cacheGB =\n cacheGB ||\n setInterval(() => {\n const commands = Object.keys(cache);\n commands.forEach(cmd => {\n if (Date.now() - cache[cmd].ts > 500) {\n delete cache[cmd];\n }\n });\n if (!commands.length) {\n if (cacheGB) {\n clearInterval(cacheGB);\n cacheGB = null;\n }\n }\n }, 2000);\n }\n resolve(res);\n });\n } else {\n resolve({});\n }\n });\n });\n}\n\nexport function sendTo(adapter: IotAdapter, adapterInstance: string, command: string, message: any): Promise<any> {\n return adapter.sendToAsync(adapterInstance, command, message);\n}\n\nexport function stopGB(): void {\n if (cacheGB) {\n clearInterval(cacheGB);\n cacheGB = null;\n }\n\n const commands = Object.keys(cache);\n commands.forEach(cmd => delete cache[cmd]);\n}\n\nexport function updateLicenses(\n adapter: IotAdapter,\n login: string,\n password: string,\n adminObj: ioBroker.InstanceObject | null | undefined,\n): Promise<any> {\n return new Promise((resolve, reject) => {\n let timeout: NodeJS.Timeout | null = setTimeout(() => {\n if (timeout) {\n timeout = null;\n reject(new Error('updateLicenses timeout'));\n }\n }, 7000);\n\n void sendToHost(adapter, adminObj?.common.host || adapter.common!.host, 'updateLicenses', {\n login,\n password,\n }).then(result => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n result?.error ? reject(new Error(result.error)) : resolve(result?.result);\n }\n });\n });\n}\n\nexport function getIsEasyModeStrict(\n _adapter: IotAdapter,\n adminObj: ioBroker.InstanceObject | null | undefined,\n): Promise<boolean> {\n return Promise.resolve(!!(adminObj?.native as AdminConfig)?.accessLimit);\n}\n\nexport function getCompactInstalled(\n adapter: IotAdapter,\n host: string,\n): Promise<{ [adapterName: string]: { version: string } }> {\n return sendToHost(adapter, host, 'getInstalled', null).then(data => {\n const result: { [adapterName: string]: { version: string } } = {};\n Object.keys(data).forEach(name => (result[name] = { version: data[name].version }));\n return result;\n });\n}\n\nexport function getCompactSystemConfig(adapter: IotAdapter): Promise<ioBroker.SystemConfigObject> {\n return adapter.getForeignObjectAsync('system.config').then(obj => {\n obj ||= {} as ioBroker.SystemConfigObject;\n const secret = obj.native?.secret;\n delete (obj as any).native;\n if (secret) {\n obj.native = { secret };\n }\n return obj;\n });\n}\n\nexport function getCompactRepository(\n adapter: IotAdapter,\n host: string,\n): Promise<{\n [adapterName: string]: {\n version: string;\n icon?: string;\n };\n}> {\n return sendToHost(adapter, host, 'getRepository', null).then(data => {\n // Extract only version and icon\n const result: {\n [adapterName: string]: {\n version: string;\n icon?: string;\n };\n } = {};\n if (data) {\n Object.keys(data).forEach(\n name =>\n (result[name] = {\n version: data[name].version,\n icon: data[name].extIcon,\n }),\n );\n }\n return result;\n });\n}\n\nexport function getCompactHosts(adapter: IotAdapter): Promise<\n {\n _id: string;\n common: {\n name: string;\n icon?: string;\n color?: string;\n installedVersion: string;\n };\n native: {\n hardware: {\n networkInterfaces: any;\n };\n };\n }[]\n> {\n return adapter\n .getObjectViewAsync('system', 'host', { startkey: 'system.host.', endkey: 'system.host.\\u9999' })\n .then(doc => {\n const result: {\n _id: string;\n common: {\n name: string;\n icon?: string;\n color?: string;\n installedVersion: string;\n };\n native: {\n hardware: {\n networkInterfaces: any;\n };\n };\n }[] = [];\n doc.rows.map(item => {\n const host = item.value;\n if (host) {\n host.common ||= {} as ioBroker.HostCommon;\n result.push({\n _id: host._id,\n common: {\n name: host.common.name,\n icon: host.common.icon,\n color: host.common.color,\n installedVersion: host.common.installedVersion,\n },\n native: {\n hardware: {\n networkInterfaces: host.native?.hardware?.networkInterfaces || undefined,\n },\n },\n });\n }\n });\n\n return result;\n });\n}\n\nexport function readLogs(\n adapter: IotAdapter,\n host: string,\n): Promise<\n {\n fileName: string;\n size: number;\n }[]\n> {\n return new Promise((resolve, reject) => {\n let timeout: NodeJS.Timeout | null = setTimeout(() => {\n if (timeout) {\n timeout = null;\n const list: {\n fileName: string;\n size: number;\n }[] = [];\n\n // deliver a file list\n try {\n const config = adapter.systemConfig;\n // detect file log\n if (config?.log?.transport) {\n for (const transport in config.log.transport) {\n if (\n Object.prototype.hasOwnProperty.call(config.log.transport, transport) &&\n config.log.transport[transport].type === 'file'\n ) {\n let filename = config.log.transport[transport].filename || 'log/';\n const parts = filename.replace(/\\\\/g, '/').split('/');\n parts.pop();\n filename = parts.join('/');\n if (filename[0] !== '/' && !filename.match(/^\\W:/)) {\n const _filename = normalize(`${__dirname}/../../../`) + filename;\n if (!existsSync(_filename)) {\n filename = normalize(`${__dirname}/../../`) + filename;\n } else {\n filename = _filename;\n }\n }\n if (existsSync(filename)) {\n const files = readdirSync(filename);\n\n for (let f = 0; f < files.length; f++) {\n try {\n if (!files[f].endsWith('-audit.json')) {\n const stat = lstatSync(`${filename}/${files[f]}`);\n if (!stat.isDirectory()) {\n list.push({\n fileName: `log/${transport}/${files[f]}`,\n size: stat.size,\n });\n }\n }\n } catch {\n // push unchecked\n // result.list.push('log/' + transport + '/' + files[f]);\n adapter.log.error(`Cannot check file: ${filename}/${files[f]}`);\n }\n }\n }\n }\n }\n } else {\n reject(new Error('no file loggers'));\n return;\n }\n } catch (e) {\n adapter.log.error(e);\n reject(new Error(e.toString()));\n }\n\n resolve(list);\n }\n }, 500);\n\n void sendToHost(adapter, host, 'getLogFiles', null).then(result => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n result.error ? reject(new Error(result.error)) : resolve(result.list);\n }\n });\n });\n}\n\nlet ratingsCached: {\n [adapterNameShot: string]: {\n // key = 'rating' | `${number}.${number}.${number}`\n [key: string]: {\n r: number;\n c: number;\n };\n };\n} = {};\n\nlet ratingTimeout: NodeJS.Timeout | null = null;\nexport function getRatings(\n adapter: IotAdapter,\n forceUpdate?: boolean,\n autoUpdate?: boolean,\n): Promise<{\n [adapterNameShot: string]: {\n // key = 'rating' | `${number}.${number}.${number}`\n [key: string]: {\n r: number;\n c: number;\n };\n };\n}> {\n if (!forceUpdate && ratingsCached) {\n return Promise.resolve(ratingsCached);\n }\n\n return adapter.getForeignObjectAsync('system.meta.uuid').then(obj =>\n axios(`https://rating.iobroker.net/rating?uuid=${obj!.native.uuid}`).then(response => {\n const body: {\n [adapterNameShot: string]: {\n // key = 'rating' | `${number}.${number}.${number}`\n [key: string]: {\n r: number;\n c: number;\n };\n };\n } = response.data;\n if (body) {\n if (typeof body !== 'object') {\n try {\n ratingsCached = JSON.parse(body);\n } catch (e) {\n adapter.log.error(`Cannot parse ratings: ${e}`);\n }\n } else if (body) {\n ratingsCached = body;\n }\n if (!ratingsCached || typeof ratingsCached !== 'object' || Array.isArray(ratingsCached)) {\n ratingsCached = {};\n }\n ratingsCached.uuid = obj!.native.uuid;\n return ratingsCached;\n }\n\n if (ratingTimeout) {\n clearTimeout(ratingTimeout);\n ratingTimeout = null;\n }\n\n if (autoUpdate) {\n ratingTimeout = setTimeout(() => {\n ratingTimeout = null;\n void getRatings(adapter, forceUpdate, true).then(() => adapter.log.info('Adapter rating updated'));\n }, 24 * 3_600_000);\n }\n return ratingsCached;\n }),\n );\n}\n\nexport function listPermissions(\n _adapter: IotAdapter,\n): Promise<\n Record<\n PermissionCommands,\n { type: 'object' | 'state' | 'users' | 'other' | 'file' | ''; operation: SocketOperation }\n >\n> {\n return Promise.resolve(COMMANDS_PERMISSIONS);\n}\n\nexport function getHostByIp(adapter: IotAdapter, ip: string): Promise<{ ip: string; obj: ioBroker.HostObject | null }> {\n return adapter.getObjectViewAsync('system', 'host', {}).then(data => {\n if (data?.rows?.length) {\n for (let i = 0; i < data.rows.length; i++) {\n const obj = data.rows[i].value;\n // if we requested specific name\n if (obj.common.hostname === ip) {\n return { ip, obj };\n } else if (obj.native.hardware && obj.native.hardware.networkInterfaces) {\n // try to find this IP in the list\n const net = obj.native.hardware.networkInterfaces;\n for (const eth in net) {\n if (!Object.prototype.hasOwnProperty.call(net, eth)) {\n continue;\n }\n for (let j = 0; j < net[eth]!.length; j++) {\n if (net[eth]![j].address === ip) {\n return { ip, obj };\n }\n }\n }\n }\n }\n }\n return { ip, obj: null };\n });\n}\n\nexport async function getListOfAllAdapters(\n adapter: IotAdapter,\n): Promise<{ link: string; name: string; color: string; order: number }[]> {\n // read all instances\n const instances = await adapter.getObjectViewAsync('system', 'instance', {});\n const adapters = await adapter.getObjectViewAsync('system', 'adapter', {});\n\n // TODO: ignore disabled web adapters\n\n const objects: { [instance: string]: ioBroker.InstanceObject | ioBroker.AdapterObject } = {};\n\n const list: { link: string; name: string; color: string; order: number }[] = [];\n const mapInstance: { [instance: string]: ioBroker.InstanceObject } = {};\n for (let r = 0; r < instances.rows.length; r++) {\n mapInstance[instances.rows[r].id] = instances.rows[r].value;\n objects[instances.rows[r].id] = instances.rows[r].value;\n }\n\n for (let a = 0; a < adapters.rows.length; a++) {\n const obj = adapters.rows[a].value;\n objects[adapters.rows[a].id] = adapters.rows[a].value;\n let found;\n if (instances?.rows) {\n found = [];\n // find if any instance of this adapter exists and started\n for (let i = 0; i < instances.rows.length; i++) {\n let id: string = instances.rows[i].id;\n const ids = id.split('.');\n ids.pop();\n id = ids.join('.');\n if (id === obj._id && instances.rows[i].value.common?.enabled) {\n found.push(instances.rows[i].id);\n }\n }\n }\n }\n const config = adapter.config;\n\n if (\n config.remoteWebInstance &&\n objects[`system.adapter.${config.remoteWebInstance}`]?.common?.enabled &&\n objects[`system.adapter.vis-2.0`]?.common?.enabled\n ) {\n list.push({\n link: 'vis-2/index.html',\n // @ts-expect-error fix later\n name: objects[`system.adapter.vis-2.0`].common.welcomeScreen?.[0]?.name || 'vis 2 runtime',\n // @ts-expect-error fix later\n color: objects[`system.adapter.vis-2.0`].common.welcomeScreen?.[0]?.color || '#ffe9c8',\n order: 0,\n });\n list.push({\n link: 'vis-2/edit.html',\n // @ts-expect-error fix later\n name: objects[`system.adapter.vis-2.0`].common.welcomeScreenPro?.[0]?.name || 'vis 2 editor',\n // @ts-expect-error fix later\n color: objects[`system.adapter.vis-2.0`].common.welcomeScreenPro?.[0]?.color || '#c8ffe1',\n order: 1,\n });\n }\n const common: ioBroker.AdapterCommon | undefined = config.remoteAdminInstance\n ? objects[`system.adapter.${config.remoteAdminInstance}`].common\n : undefined;\n if (common?.enabled) {\n list.push({\n link: 'admin/index.html',\n // @ts-expect-error fix later\n name: common.welcomeScreenPro?.[0]?.name || 'Admin',\n // @ts-expect-error fix later\n color: common.welcomeScreenPro?.[0]?.color || 'pink',\n order: 5,\n });\n }\n\n return list;\n}\n\nlet objectsTs: number | null = null;\nlet cachedObjects: { [key: string]: ioBroker.Object } | null = null;\n\nexport async function getAllObjects(adapter: IotAdapter): Promise<{ [key: string]: ioBroker.Object }> {\n const now = Date.now();\n if (cachedObjects && objectsTs && now - objectsTs < 20000) {\n return cachedObjects;\n }\n const res = await adapter.getObjectListAsync({ include_docs: true });\n\n const objects: { [key: string]: ioBroker.Object } = {};\n\n if (res) {\n const rows = res.rows;\n for (let i = 0; i < rows.length; i++) {\n objects[rows[i].doc._id] = rows[i].doc;\n }\n }\n\n adapter.log.info(`[REMOTE] received all objects in ${Date.now() - now}`);\n objectsTs = Date.now();\n cachedObjects = objects;\n\n return objects;\n}\n\nexport default {\n stopGB,\n getListOfAllAdapters,\n getHostByIp,\n getEasyMode,\n getAdapterInstances,\n getIsEasyModeStrict,\n getAdapters,\n updateLicenses,\n getCompactInstances,\n getCompactSystemRepositories,\n getCompactAdapters,\n getCompactInstalled,\n getCompactSystemConfig,\n getCompactRepository,\n getCompactHosts,\n readLogs,\n getRatings,\n listPermissions,\n sendToHost,\n sendTo,\n getAllObjects,\n};\n"]}
|