homebridge-easy-mqtt 1.4.0-beta.9 → 1.4.0
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/CHANGELOG.md +20 -6
- package/README.md +237 -22
- package/config.schema.json +1361 -92
- package/dist/accessory/abstract/base.js +5 -5
- package/dist/accessory/abstract/base.js.map +1 -1
- package/dist/accessory/abstract/common.d.ts +43 -0
- package/dist/accessory/abstract/common.js +172 -0
- package/dist/accessory/abstract/common.js.map +1 -0
- package/dist/accessory/abstract/helper.d.ts +1 -0
- package/dist/accessory/abstract/helper.js +21 -2
- package/dist/accessory/abstract/helper.js.map +1 -1
- package/dist/accessory/abstract/mqtt.d.ts +15 -26
- package/dist/accessory/abstract/mqtt.js +26 -143
- package/dist/accessory/abstract/mqtt.js.map +1 -1
- package/dist/accessory/addons/addon.d.ts +24 -0
- package/dist/accessory/addons/addon.js +52 -0
- package/dist/accessory/addons/addon.js.map +1 -0
- package/dist/accessory/addons/filter.d.ts +11 -0
- package/dist/accessory/addons/filter.js +37 -0
- package/dist/accessory/addons/filter.js.map +1 -0
- package/dist/accessory/button.d.ts +10 -0
- package/dist/accessory/button.js +43 -0
- package/dist/accessory/button.js.map +1 -0
- package/dist/accessory/climate/active.js +14 -8
- package/dist/accessory/climate/active.js.map +1 -1
- package/dist/accessory/climate/fan2.d.ts +20 -0
- package/dist/accessory/climate/fan2.js +122 -0
- package/dist/accessory/climate/fan2.js.map +1 -0
- package/dist/accessory/climate/heaterCooler.js +4 -2
- package/dist/accessory/climate/heaterCooler.js.map +1 -1
- package/dist/accessory/climate/purifier.js +5 -3
- package/dist/accessory/climate/purifier.js.map +1 -1
- package/dist/accessory/climate/temperatureControl.d.ts +1 -1
- package/dist/accessory/climate/temperatureControl.js +10 -8
- package/dist/accessory/climate/temperatureControl.js.map +1 -1
- package/dist/accessory/climate/thermostat.js +8 -8
- package/dist/accessory/climate/thermostat.js.map +1 -1
- package/dist/accessory/garage.d.ts +17 -0
- package/dist/accessory/garage.js +110 -0
- package/dist/accessory/garage.js.map +1 -0
- package/dist/accessory/lock.d.ts +2 -2
- package/dist/accessory/lock.js +3 -3
- package/dist/accessory/lock.js.map +1 -1
- package/dist/accessory/onoff/lightbulb.js +9 -4
- package/dist/accessory/onoff/lightbulb.js.map +1 -1
- package/dist/accessory/onoff/onoff.js +1 -1
- package/dist/accessory/onoff/onoff.js.map +1 -1
- package/dist/accessory/onoff/outlet.js +1 -1
- package/dist/accessory/onoff/outlet.js.map +1 -1
- package/dist/accessory/position/blind.d.ts +10 -0
- package/dist/accessory/position/blind.js +22 -0
- package/dist/accessory/position/blind.js.map +1 -0
- package/dist/accessory/position/position.d.ts +14 -0
- package/dist/accessory/position/position.js +88 -0
- package/dist/accessory/position/position.js.map +1 -0
- package/dist/accessory/security.js +4 -4
- package/dist/accessory/security.js.map +1 -1
- package/dist/accessory/sensor/air.d.ts +14 -0
- package/dist/accessory/sensor/air.js +96 -0
- package/dist/accessory/sensor/air.js.map +1 -0
- package/dist/accessory/sensor/carbonDioxide.js +3 -3
- package/dist/accessory/sensor/carbonDioxide.js.map +1 -1
- package/dist/accessory/sensor/carbonMonoxide.js +3 -3
- package/dist/accessory/sensor/carbonMonoxide.js.map +1 -1
- package/dist/accessory/sensor/contact.js +1 -1
- package/dist/accessory/sensor/contact.js.map +1 -1
- package/dist/accessory/sensor/humidity.js +1 -1
- package/dist/accessory/sensor/humidity.js.map +1 -1
- package/dist/accessory/sensor/leak.js +1 -1
- package/dist/accessory/sensor/leak.js.map +1 -1
- package/dist/accessory/sensor/light.js +1 -1
- package/dist/accessory/sensor/light.js.map +1 -1
- package/dist/accessory/sensor/motion.js +1 -1
- package/dist/accessory/sensor/motion.js.map +1 -1
- package/dist/accessory/sensor/occupancy.js +1 -1
- package/dist/accessory/sensor/occupancy.js.map +1 -1
- package/dist/accessory/sensor/sensor.js +4 -4
- package/dist/accessory/sensor/sensor.js.map +1 -1
- package/dist/accessory/sensor/smoke.js +1 -1
- package/dist/accessory/sensor/smoke.js.map +1 -1
- package/dist/accessory/sensor/temperature.js +1 -1
- package/dist/accessory/sensor/temperature.js.map +1 -1
- package/dist/accessory/valve.js +7 -7
- package/dist/accessory/valve.js.map +1 -1
- package/dist/homebridge/platform.js +4 -2
- package/dist/homebridge/platform.js.map +1 -1
- package/dist/homebridge-ui/public/index.html +1 -1
- package/dist/homebridge-ui/public/ui.js +1 -1
- package/dist/i18n/en.d.ts +183 -16
- package/dist/i18n/en.js +236 -69
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/fr.d.ts +452 -18
- package/dist/i18n/fr.js +269 -2
- package/dist/i18n/fr.js.map +1 -1
- package/dist/i18n/i18n.d.ts +185 -17
- package/dist/i18n/i18n.js +6 -0
- package/dist/i18n/i18n.js.map +1 -1
- package/dist/i18n/ro.d.ts +347 -33
- package/dist/i18n/ro.js +164 -17
- package/dist/i18n/ro.js.map +1 -1
- package/dist/i18n/template.d.ts +183 -16
- package/dist/i18n/template.js +1 -1
- package/dist/i18n/vi.d.ts +1059 -0
- package/dist/i18n/vi.js +528 -0
- package/dist/i18n/vi.js.map +1 -0
- package/dist/model/enums.d.ts +35 -6
- package/dist/model/enums.js +34 -5
- package/dist/model/enums.js.map +1 -1
- package/dist/model/mqtt.d.ts +4 -3
- package/dist/model/mqtt.js +30 -9
- package/dist/model/mqtt.js.map +1 -1
- package/dist/model/types.d.ts +97 -4
- package/dist/tools/log.d.ts +7 -5
- package/dist/tools/log.js.map +1 -1
- package/dist/tools/properties.d.ts +11 -0
- package/dist/tools/properties.js +73 -0
- package/dist/tools/properties.js.map +1 -0
- package/dist/tools/temperature.d.ts +7 -3
- package/dist/tools/temperature.js +20 -9
- package/dist/tools/temperature.js.map +1 -1
- package/dist/tools/validation.d.ts +2 -0
- package/dist/tools/validation.js +11 -0
- package/dist/tools/validation.js.map +1 -1
- package/package.json +1 -1
package/dist/model/enums.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export declare enum AccessoryType {
|
|
2
2
|
AirPurifier = "AirPurifier",
|
|
3
|
+
AirQualitySensor = "AirQualitySensor",
|
|
3
4
|
CarbonDioxideSensor = "CarbonDioxideSensor",
|
|
4
5
|
CarbonMonoxideSensor = "CarbonMonoxideSensor",
|
|
5
6
|
ContactSensor = "ContactSensor",
|
|
7
|
+
Fanv2 = "Fanv2",
|
|
8
|
+
GarageDoorOpener = "GarageDoorOpener",
|
|
6
9
|
HeaterCooler = "HeaterCooler",
|
|
7
10
|
HumiditySensor = "HumiditySensor",
|
|
8
11
|
LeakSensor = "LeakSensor",
|
|
@@ -14,13 +17,19 @@ export declare enum AccessoryType {
|
|
|
14
17
|
Outlet = "Outlet",
|
|
15
18
|
SecuritySystem = "SecuritySystem",
|
|
16
19
|
SmokeSensor = "SmokeSensor",
|
|
20
|
+
StatelessProgrammableSwitch = "StatelessProgrammableSwitch",
|
|
17
21
|
Switch = "Switch",
|
|
18
22
|
TemperatureSensor = "TemperatureSensor",
|
|
19
23
|
Thermostat = "Thermostat",
|
|
20
|
-
Valve = "Valve"
|
|
24
|
+
Valve = "Valve",
|
|
25
|
+
WindowCovering = "WindowCovering"
|
|
26
|
+
}
|
|
27
|
+
export declare enum AddonType {
|
|
28
|
+
FilterMaintenance = "FilterMaintenance"
|
|
21
29
|
}
|
|
22
30
|
export declare enum CharacteristicKey {
|
|
23
31
|
Active = "Active",
|
|
32
|
+
AirQuality = "AirQuality",
|
|
24
33
|
BatteryLevel = "BatteryLevel",
|
|
25
34
|
Brightness = "Brightness",
|
|
26
35
|
CarbonDioxideDetected = "CarbonDioxideDetected",
|
|
@@ -34,11 +43,19 @@ export declare enum CharacteristicKey {
|
|
|
34
43
|
CoolingThresholdTemperature = "CoolingThresholdTemperature",
|
|
35
44
|
CurrentAmbientLightLevel = "CurrentAmbientLightLevel",
|
|
36
45
|
CurrentAirPurifierState = "CurrentAirPurifierState",
|
|
46
|
+
CurrentDoorState = "CurrentDoorState",
|
|
47
|
+
CurrentFanState = "CurrentFanState",
|
|
37
48
|
CurrentHeaterCoolerState = "CurrentHeaterCoolerState",
|
|
38
49
|
CurrentHeatingCoolingState = "CurrentHeatingCoolingState",
|
|
50
|
+
CurrentHorizontalTiltAngle = "CurrentHorizontalTiltAngle",
|
|
51
|
+
CurrentPosition = "CurrentPosition",
|
|
39
52
|
CurrentRelativeHumidity = "CurrentRelativeHumidity",
|
|
40
53
|
CurrentTemperature = "CurrentTemperature",
|
|
54
|
+
CurrentVerticalTiltAngle = "CurrentVerticalTiltAngle",
|
|
55
|
+
FilterChangeIndication = "FilterChangeIndication",
|
|
56
|
+
FilterLifeLevel = "FilterLifeLevel",
|
|
41
57
|
HeatingThresholdTemperature = "HeatingThresholdTemperature",
|
|
58
|
+
HoldPosition = "HoldPosition",
|
|
42
59
|
Hue = "Hue",
|
|
43
60
|
InUse = "InUse",
|
|
44
61
|
IsConfigured = "IsConfigured",
|
|
@@ -47,10 +64,19 @@ export declare enum CharacteristicKey {
|
|
|
47
64
|
LockPhysicalControls = "LockPhysicalControls",
|
|
48
65
|
LockTargetState = "LockTargetState",
|
|
49
66
|
MotionDetected = "MotionDetected",
|
|
67
|
+
NitrogenDioxideDensity = "NitrogenDioxideDensity",
|
|
68
|
+
ObstructionDetected = "ObstructionDetected",
|
|
50
69
|
OccupancyDetected = "OccupancyDetected",
|
|
51
70
|
On = "On",
|
|
52
71
|
OutletInUse = "OutletInUse",
|
|
72
|
+
OzoneDensity = "OzoneDensity",
|
|
73
|
+
PM10Density = "PM10Density",
|
|
74
|
+
PM2_5Density = "PM2_5Density",
|
|
75
|
+
PositionState = "PositionState",
|
|
76
|
+
ProgrammableSwitchEvent = "ProgrammableSwitchEvent",
|
|
53
77
|
RemainingDuration = "RemainingDuration",
|
|
78
|
+
ResetFilterIndication = "ResetFilterIndication",
|
|
79
|
+
RotationDirection = "RotationDirection",
|
|
54
80
|
RotationSpeed = "RotationSpeed",
|
|
55
81
|
Saturation = "Saturation",
|
|
56
82
|
SecuritySystemCurrentState = "SecuritySystemCurrentState",
|
|
@@ -61,18 +87,21 @@ export declare enum CharacteristicKey {
|
|
|
61
87
|
StatusFault = "StatusFault",
|
|
62
88
|
StatusLowBattery = "StatusLowBattery",
|
|
63
89
|
StatusTampered = "StatusTampered",
|
|
90
|
+
SulphurDioxideDensity = "SulphurDioxideDensity",
|
|
64
91
|
SwingMode = "SwingMode",
|
|
65
92
|
TargetAirPurifierState = "TargetAirPurifierState",
|
|
93
|
+
TargetDoorState = "TargetDoorState",
|
|
94
|
+
TargetFanState = "TargetFanState",
|
|
66
95
|
TargetHeaterCoolerState = "TargetHeaterCoolerState",
|
|
67
96
|
TargetHeatingCoolingState = "TargetHeatingCoolingState",
|
|
97
|
+
TargetHorizontalTiltAngle = "TargetHorizontalTiltAngle",
|
|
98
|
+
TargetPosition = "TargetPosition",
|
|
68
99
|
TargetRelativeHumidity = "TargetRelativeHumidity",
|
|
69
100
|
TargetTemperature = "TargetTemperature",
|
|
101
|
+
TargetVerticalTiltAngle = "TargetVerticalTiltAngle",
|
|
70
102
|
TemperatureDisplayUnits = "TemperatureDisplayUnits",
|
|
71
|
-
ValveType = "ValveType"
|
|
72
|
-
|
|
73
|
-
export declare enum TemperatureUnits {
|
|
74
|
-
CELSIUS = "C",
|
|
75
|
-
FAHRENHEIT = "F"
|
|
103
|
+
ValveType = "ValveType",
|
|
104
|
+
VOCDensity = "VOCDensity"
|
|
76
105
|
}
|
|
77
106
|
export declare enum ValveType {
|
|
78
107
|
GENERIC_VALVE = "GENERIC_VALVE",
|
package/dist/model/enums.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
export var AccessoryType;
|
|
2
2
|
(function (AccessoryType) {
|
|
3
3
|
AccessoryType["AirPurifier"] = "AirPurifier";
|
|
4
|
+
AccessoryType["AirQualitySensor"] = "AirQualitySensor";
|
|
4
5
|
AccessoryType["CarbonDioxideSensor"] = "CarbonDioxideSensor";
|
|
5
6
|
AccessoryType["CarbonMonoxideSensor"] = "CarbonMonoxideSensor";
|
|
6
7
|
AccessoryType["ContactSensor"] = "ContactSensor";
|
|
8
|
+
AccessoryType["Fanv2"] = "Fanv2";
|
|
9
|
+
AccessoryType["GarageDoorOpener"] = "GarageDoorOpener";
|
|
7
10
|
AccessoryType["HeaterCooler"] = "HeaterCooler";
|
|
8
11
|
AccessoryType["HumiditySensor"] = "HumiditySensor";
|
|
9
12
|
AccessoryType["LeakSensor"] = "LeakSensor";
|
|
@@ -15,14 +18,21 @@ export var AccessoryType;
|
|
|
15
18
|
AccessoryType["Outlet"] = "Outlet";
|
|
16
19
|
AccessoryType["SecuritySystem"] = "SecuritySystem";
|
|
17
20
|
AccessoryType["SmokeSensor"] = "SmokeSensor";
|
|
21
|
+
AccessoryType["StatelessProgrammableSwitch"] = "StatelessProgrammableSwitch";
|
|
18
22
|
AccessoryType["Switch"] = "Switch";
|
|
19
23
|
AccessoryType["TemperatureSensor"] = "TemperatureSensor";
|
|
20
24
|
AccessoryType["Thermostat"] = "Thermostat";
|
|
21
25
|
AccessoryType["Valve"] = "Valve";
|
|
26
|
+
AccessoryType["WindowCovering"] = "WindowCovering";
|
|
22
27
|
})(AccessoryType || (AccessoryType = {}));
|
|
28
|
+
export var AddonType;
|
|
29
|
+
(function (AddonType) {
|
|
30
|
+
AddonType["FilterMaintenance"] = "FilterMaintenance";
|
|
31
|
+
})(AddonType || (AddonType = {}));
|
|
23
32
|
export var CharacteristicKey;
|
|
24
33
|
(function (CharacteristicKey) {
|
|
25
34
|
CharacteristicKey["Active"] = "Active";
|
|
35
|
+
CharacteristicKey["AirQuality"] = "AirQuality";
|
|
26
36
|
CharacteristicKey["BatteryLevel"] = "BatteryLevel";
|
|
27
37
|
CharacteristicKey["Brightness"] = "Brightness";
|
|
28
38
|
CharacteristicKey["CarbonDioxideDetected"] = "CarbonDioxideDetected";
|
|
@@ -36,11 +46,19 @@ export var CharacteristicKey;
|
|
|
36
46
|
CharacteristicKey["CoolingThresholdTemperature"] = "CoolingThresholdTemperature";
|
|
37
47
|
CharacteristicKey["CurrentAmbientLightLevel"] = "CurrentAmbientLightLevel";
|
|
38
48
|
CharacteristicKey["CurrentAirPurifierState"] = "CurrentAirPurifierState";
|
|
49
|
+
CharacteristicKey["CurrentDoorState"] = "CurrentDoorState";
|
|
50
|
+
CharacteristicKey["CurrentFanState"] = "CurrentFanState";
|
|
39
51
|
CharacteristicKey["CurrentHeaterCoolerState"] = "CurrentHeaterCoolerState";
|
|
40
52
|
CharacteristicKey["CurrentHeatingCoolingState"] = "CurrentHeatingCoolingState";
|
|
53
|
+
CharacteristicKey["CurrentHorizontalTiltAngle"] = "CurrentHorizontalTiltAngle";
|
|
54
|
+
CharacteristicKey["CurrentPosition"] = "CurrentPosition";
|
|
41
55
|
CharacteristicKey["CurrentRelativeHumidity"] = "CurrentRelativeHumidity";
|
|
42
56
|
CharacteristicKey["CurrentTemperature"] = "CurrentTemperature";
|
|
57
|
+
CharacteristicKey["CurrentVerticalTiltAngle"] = "CurrentVerticalTiltAngle";
|
|
58
|
+
CharacteristicKey["FilterChangeIndication"] = "FilterChangeIndication";
|
|
59
|
+
CharacteristicKey["FilterLifeLevel"] = "FilterLifeLevel";
|
|
43
60
|
CharacteristicKey["HeatingThresholdTemperature"] = "HeatingThresholdTemperature";
|
|
61
|
+
CharacteristicKey["HoldPosition"] = "HoldPosition";
|
|
44
62
|
CharacteristicKey["Hue"] = "Hue";
|
|
45
63
|
CharacteristicKey["InUse"] = "InUse";
|
|
46
64
|
CharacteristicKey["IsConfigured"] = "IsConfigured";
|
|
@@ -49,10 +67,19 @@ export var CharacteristicKey;
|
|
|
49
67
|
CharacteristicKey["LockPhysicalControls"] = "LockPhysicalControls";
|
|
50
68
|
CharacteristicKey["LockTargetState"] = "LockTargetState";
|
|
51
69
|
CharacteristicKey["MotionDetected"] = "MotionDetected";
|
|
70
|
+
CharacteristicKey["NitrogenDioxideDensity"] = "NitrogenDioxideDensity";
|
|
71
|
+
CharacteristicKey["ObstructionDetected"] = "ObstructionDetected";
|
|
52
72
|
CharacteristicKey["OccupancyDetected"] = "OccupancyDetected";
|
|
53
73
|
CharacteristicKey["On"] = "On";
|
|
54
74
|
CharacteristicKey["OutletInUse"] = "OutletInUse";
|
|
75
|
+
CharacteristicKey["OzoneDensity"] = "OzoneDensity";
|
|
76
|
+
CharacteristicKey["PM10Density"] = "PM10Density";
|
|
77
|
+
CharacteristicKey["PM2_5Density"] = "PM2_5Density";
|
|
78
|
+
CharacteristicKey["PositionState"] = "PositionState";
|
|
79
|
+
CharacteristicKey["ProgrammableSwitchEvent"] = "ProgrammableSwitchEvent";
|
|
55
80
|
CharacteristicKey["RemainingDuration"] = "RemainingDuration";
|
|
81
|
+
CharacteristicKey["ResetFilterIndication"] = "ResetFilterIndication";
|
|
82
|
+
CharacteristicKey["RotationDirection"] = "RotationDirection";
|
|
56
83
|
CharacteristicKey["RotationSpeed"] = "RotationSpeed";
|
|
57
84
|
CharacteristicKey["Saturation"] = "Saturation";
|
|
58
85
|
CharacteristicKey["SecuritySystemCurrentState"] = "SecuritySystemCurrentState";
|
|
@@ -63,20 +90,22 @@ export var CharacteristicKey;
|
|
|
63
90
|
CharacteristicKey["StatusFault"] = "StatusFault";
|
|
64
91
|
CharacteristicKey["StatusLowBattery"] = "StatusLowBattery";
|
|
65
92
|
CharacteristicKey["StatusTampered"] = "StatusTampered";
|
|
93
|
+
CharacteristicKey["SulphurDioxideDensity"] = "SulphurDioxideDensity";
|
|
66
94
|
CharacteristicKey["SwingMode"] = "SwingMode";
|
|
67
95
|
CharacteristicKey["TargetAirPurifierState"] = "TargetAirPurifierState";
|
|
96
|
+
CharacteristicKey["TargetDoorState"] = "TargetDoorState";
|
|
97
|
+
CharacteristicKey["TargetFanState"] = "TargetFanState";
|
|
68
98
|
CharacteristicKey["TargetHeaterCoolerState"] = "TargetHeaterCoolerState";
|
|
69
99
|
CharacteristicKey["TargetHeatingCoolingState"] = "TargetHeatingCoolingState";
|
|
100
|
+
CharacteristicKey["TargetHorizontalTiltAngle"] = "TargetHorizontalTiltAngle";
|
|
101
|
+
CharacteristicKey["TargetPosition"] = "TargetPosition";
|
|
70
102
|
CharacteristicKey["TargetRelativeHumidity"] = "TargetRelativeHumidity";
|
|
71
103
|
CharacteristicKey["TargetTemperature"] = "TargetTemperature";
|
|
104
|
+
CharacteristicKey["TargetVerticalTiltAngle"] = "TargetVerticalTiltAngle";
|
|
72
105
|
CharacteristicKey["TemperatureDisplayUnits"] = "TemperatureDisplayUnits";
|
|
73
106
|
CharacteristicKey["ValveType"] = "ValveType";
|
|
107
|
+
CharacteristicKey["VOCDensity"] = "VOCDensity";
|
|
74
108
|
})(CharacteristicKey || (CharacteristicKey = {}));
|
|
75
|
-
export var TemperatureUnits;
|
|
76
|
-
(function (TemperatureUnits) {
|
|
77
|
-
TemperatureUnits["CELSIUS"] = "C";
|
|
78
|
-
TemperatureUnits["FAHRENHEIT"] = "F";
|
|
79
|
-
})(TemperatureUnits || (TemperatureUnits = {}));
|
|
80
109
|
export var ValveType;
|
|
81
110
|
(function (ValveType) {
|
|
82
111
|
ValveType["GENERIC_VALVE"] = "GENERIC_VALVE";
|
package/dist/model/enums.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/model/enums.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/model/enums.ts"],"names":[],"mappings":"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"}
|
package/dist/model/mqtt.d.ts
CHANGED
|
@@ -7,13 +7,14 @@ export declare class MQTT {
|
|
|
7
7
|
private readonly log;
|
|
8
8
|
private readonly broker;
|
|
9
9
|
private readonly options;
|
|
10
|
-
private static INSTANCES;
|
|
11
|
-
private onConnectCallbacks;
|
|
10
|
+
private static readonly INSTANCES;
|
|
11
|
+
private readonly onConnectCallbacks;
|
|
12
|
+
private readonly onConnectMessages;
|
|
12
13
|
private client;
|
|
13
14
|
private shouldReconnect;
|
|
14
15
|
private isReconnecting;
|
|
15
16
|
private reconnectCount;
|
|
16
|
-
private listeners;
|
|
17
|
+
private readonly listeners;
|
|
17
18
|
static connect(log: Log, config: MQTTConfig | undefined, caller: string, onConnect: OnConnectCallback): MQTT | undefined;
|
|
18
19
|
private constructor();
|
|
19
20
|
private get host();
|
package/dist/model/mqtt.js
CHANGED
|
@@ -34,6 +34,7 @@ export class MQTT {
|
|
|
34
34
|
options;
|
|
35
35
|
static INSTANCES = new Map();
|
|
36
36
|
onConnectCallbacks = [];
|
|
37
|
+
onConnectMessages = new Map();
|
|
37
38
|
client = undefined;
|
|
38
39
|
shouldReconnect = false;
|
|
39
40
|
isReconnecting = false;
|
|
@@ -46,7 +47,7 @@ export class MQTT {
|
|
|
46
47
|
additionalOptions = JSON.parse(configOptions);
|
|
47
48
|
}
|
|
48
49
|
catch (err) {
|
|
49
|
-
log.error(`${strings.mqttClient.badOptions}:\n"${configOptions}"`,
|
|
50
|
+
log.error(`${strings.mqttClient.badOptions}:\n"${configOptions}"`, caller);
|
|
50
51
|
return;
|
|
51
52
|
}
|
|
52
53
|
const options = {
|
|
@@ -72,14 +73,31 @@ export class MQTT {
|
|
|
72
73
|
if (instance.client?.connected) {
|
|
73
74
|
onConnect(instance);
|
|
74
75
|
}
|
|
75
|
-
instance.onConnectCallbacks.push(onConnect);
|
|
76
|
-
return instance;
|
|
77
76
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
else {
|
|
78
|
+
log.ifVerbose(strings.mqttClient.new, caller, id);
|
|
79
|
+
instance = new MQTT(log, broker, options);
|
|
80
|
+
MQTT.INSTANCES.set(id, instance);
|
|
81
|
+
instance.connect();
|
|
82
|
+
}
|
|
81
83
|
instance.onConnectCallbacks.push(onConnect);
|
|
82
|
-
|
|
84
|
+
const onConnectMessages = config?.onConnect;
|
|
85
|
+
if (onConnectMessages !== undefined) {
|
|
86
|
+
const errorLog = '\n[ { "topic": "example/topic", "message": "example message" } ]';
|
|
87
|
+
if (!Array.isArray(onConnectMessages)) {
|
|
88
|
+
log.error(strings.mqttClient.badMessages, errorLog);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
for (const message of onConnectMessages) {
|
|
92
|
+
if (message.topic === undefined || message.message === undefined) {
|
|
93
|
+
log.error(strings.mqttClient.badMessages, errorLog);
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
const key = `${message.topic}|${message.message}`;
|
|
97
|
+
instance?.onConnectMessages.set(key, message);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
83
101
|
return instance;
|
|
84
102
|
}
|
|
85
103
|
constructor(log, broker, options) {
|
|
@@ -101,9 +119,12 @@ export class MQTT {
|
|
|
101
119
|
this.client = mqtt.connect(this.broker, this.options);
|
|
102
120
|
this.client.on('connect', () => {
|
|
103
121
|
this.log.ifVerbose(strings.mqttClient.connected, this.host);
|
|
104
|
-
this.onConnectCallbacks.forEach(
|
|
122
|
+
this.onConnectCallbacks.forEach(callback => {
|
|
105
123
|
callback(this);
|
|
106
124
|
});
|
|
125
|
+
this.onConnectMessages.forEach(message => {
|
|
126
|
+
this.publish(message.topic, message.message);
|
|
127
|
+
});
|
|
107
128
|
});
|
|
108
129
|
this.client.on('message', (topic, message) => this.messageReceived(topic, message.toString()));
|
|
109
130
|
this.client.on('close', () => this.connectionClosed());
|
|
@@ -151,7 +172,7 @@ export class MQTT {
|
|
|
151
172
|
else {
|
|
152
173
|
message = value.toString();
|
|
153
174
|
}
|
|
154
|
-
this.client.publish(topic.base, message);
|
|
175
|
+
this.client.publish(topic.base, message, this.options);
|
|
155
176
|
this.log.ifVerbose(`${strings.mqttClient.publish} — ${topic.base} ${message}`, this.host);
|
|
156
177
|
}
|
|
157
178
|
messageReceived(topic, message) {
|
package/dist/model/mqtt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mqtt.js","sourceRoot":"","sources":["../../src/model/mqtt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAO,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;AAE9E,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAM3C,SAAS,aAAa,CAAC,QAAgB;IAErC,IAAI,IAAY,CAAC;IACjB,IAAI,QAAkB,CAAC;IAEvB,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,IAAI,GAAG,QAAQ,CAAC;QAChB,QAAQ,GAAG,EAAE,CAAC;IAChB,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAChC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,YAAY;IAML;IAJX,KAAK,CAAQ;IAEb,YACE,QAAgB,EACP,OAA2B;QAA3B,YAAO,GAAP,OAAO,CAAoB;QAEpC,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;CACF;AAQD,MAAM,OAAO,IAAI;
|
|
1
|
+
{"version":3,"file":"mqtt.js","sourceRoot":"","sources":["../../src/model/mqtt.ts"],"names":[],"mappings":"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"}
|
package/dist/model/types.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { PlatformConfig as HBPlatformConfig } from 'homebridge';
|
|
2
2
|
export type ServiceType = typeof import('homebridge').Service;
|
|
3
3
|
export type CharacteristicType = typeof import('homebridge').Characteristic;
|
|
4
|
-
import { AccessoryType,
|
|
4
|
+
import { AccessoryType, ValveType } from './enums.js';
|
|
5
|
+
import { TemperatureUnits } from '../tools/temperature.js';
|
|
5
6
|
import { Assertable } from '../tools/validation.js';
|
|
6
7
|
export type PlatformConfig = HBPlatformConfig & {
|
|
7
8
|
accessories?: BaseAccessoryConfig[];
|
|
@@ -9,13 +10,21 @@ export type PlatformConfig = HBPlatformConfig & {
|
|
|
9
10
|
export type TemperatureConfig = {
|
|
10
11
|
temperatureUnits?: TemperatureUnits;
|
|
11
12
|
};
|
|
13
|
+
export type AddonConfig = Assertable & {};
|
|
14
|
+
export type FilterMaintenanceConfig = AddonConfig & {
|
|
15
|
+
topicGetFilterChangeIndication: string;
|
|
16
|
+
topicGetFilterLifeLevel?: string;
|
|
17
|
+
topicResetFilterIndication?: string;
|
|
18
|
+
valueFilterChange: string;
|
|
19
|
+
valueFilterReset: string;
|
|
20
|
+
};
|
|
12
21
|
type ErrorStatusConfig = {
|
|
13
22
|
topicGetStatusFault?: string;
|
|
14
23
|
topicGetStatusTampered?: string;
|
|
15
24
|
valueFault?: string;
|
|
16
25
|
valueTampered?: string;
|
|
17
26
|
};
|
|
18
|
-
type InfoConfig = Assertable & {
|
|
27
|
+
export type InfoConfig = Assertable & {
|
|
19
28
|
id: string;
|
|
20
29
|
name: string;
|
|
21
30
|
type: AccessoryType;
|
|
@@ -27,16 +36,22 @@ type AdditionalInfoConfig = InfoConfig & {
|
|
|
27
36
|
serialNumber?: string;
|
|
28
37
|
version?: string;
|
|
29
38
|
};
|
|
39
|
+
export type MQTTMessage = Assertable & {
|
|
40
|
+
topic: string;
|
|
41
|
+
message: string;
|
|
42
|
+
};
|
|
30
43
|
export type MQTTConfig = Assertable & {
|
|
31
44
|
broker?: string;
|
|
32
45
|
username?: string;
|
|
33
46
|
password?: string;
|
|
34
47
|
options?: string;
|
|
48
|
+
onConnect?: MQTTMessage[];
|
|
35
49
|
};
|
|
36
50
|
export type MQTTAccessoryConfig = Assertable & {
|
|
37
51
|
info: InfoConfig;
|
|
38
52
|
mqtt?: MQTTConfig;
|
|
39
53
|
customCharacteristics?: CustomCharacteristicConfig[];
|
|
54
|
+
resetOnRestart?: boolean;
|
|
40
55
|
disableLogging: boolean;
|
|
41
56
|
};
|
|
42
57
|
export type CustomCharacteristicConfig = Assertable & {
|
|
@@ -60,6 +75,7 @@ export type OnOffConfig = BaseAccessoryConfig & {
|
|
|
60
75
|
valueOff: string;
|
|
61
76
|
};
|
|
62
77
|
export type LightbulbConfig = OnOffConfig & {
|
|
78
|
+
maximumBrightness?: number;
|
|
63
79
|
topicGetBrightness?: string;
|
|
64
80
|
topicGetColorTemperature?: string;
|
|
65
81
|
topicGetHue?: string;
|
|
@@ -75,6 +91,21 @@ export type OutletConfig = OnOffConfig & {
|
|
|
75
91
|
};
|
|
76
92
|
export type SwitchConfig = OnOffConfig & {};
|
|
77
93
|
export type SensorConfig = BaseAccessoryConfig & ErrorStatusConfig & {};
|
|
94
|
+
export type AirSensorConfig = SensorConfig & {
|
|
95
|
+
topicGetAirQuality: string;
|
|
96
|
+
topicGetNitrogenDioxideDensity?: string;
|
|
97
|
+
topicGetOzoneDensity?: string;
|
|
98
|
+
topicGetPM10Density?: string;
|
|
99
|
+
topicGetPM2_5Density?: string;
|
|
100
|
+
topicGetSulphurDioxideDensity?: string;
|
|
101
|
+
topicGetVOCDensity?: string;
|
|
102
|
+
valueAQExcellent?: string;
|
|
103
|
+
valueAQFair?: string;
|
|
104
|
+
valueAQGood?: string;
|
|
105
|
+
valueAQInferior?: string;
|
|
106
|
+
valueAQPoor?: string;
|
|
107
|
+
valueAQUnknown?: string;
|
|
108
|
+
};
|
|
78
109
|
export type COSensorConfig = SensorConfig & {
|
|
79
110
|
topicGetCarbonMonoxideDetected: string;
|
|
80
111
|
topicGetCarbonMonoxideLevel?: string;
|
|
@@ -138,6 +169,7 @@ export type ThermostatConfig = TemperatureControlConfig & {
|
|
|
138
169
|
valueModeOff?: string;
|
|
139
170
|
};
|
|
140
171
|
export type ActiveClimateConfig = TemperatureControlConfig & {
|
|
172
|
+
maximumRotationSpeed?: number;
|
|
141
173
|
topicGetActive: string;
|
|
142
174
|
topicGetLockPhysicalControls?: string;
|
|
143
175
|
topicGetRotationSpeed?: string;
|
|
@@ -153,7 +185,21 @@ export type ActiveClimateConfig = TemperatureControlConfig & {
|
|
|
153
185
|
valueSwingEnabled?: string;
|
|
154
186
|
valueSwingDisabled?: string;
|
|
155
187
|
};
|
|
156
|
-
export type
|
|
188
|
+
export type FanV2Config = ActiveClimateConfig & {
|
|
189
|
+
topicGetCurrentFanState?: string;
|
|
190
|
+
topicGetRotationDirection?: string;
|
|
191
|
+
topicGetTargetFanState?: string;
|
|
192
|
+
topicSetRotationDirection?: string;
|
|
193
|
+
topicSetTargetFanState?: string;
|
|
194
|
+
valueDirectionClockwise?: string;
|
|
195
|
+
valueDirectionCounterClockwise?: string;
|
|
196
|
+
valueModeAuto?: string;
|
|
197
|
+
valueModeBlowing?: string;
|
|
198
|
+
valueModeIdle?: string;
|
|
199
|
+
valueModeInactive?: string;
|
|
200
|
+
valueModeManual?: string;
|
|
201
|
+
};
|
|
202
|
+
export type HeaterCoolerConfig = ActiveClimateConfig & FilterMaintenanceConfig & {
|
|
157
203
|
topicGetCurrentHeaterCoolerState: string;
|
|
158
204
|
topicGetTargetHeaterCoolerState: string;
|
|
159
205
|
topicSetTargetHeaterCoolerState: string;
|
|
@@ -163,7 +209,7 @@ export type HeaterCoolerConfig = ActiveClimateConfig & {
|
|
|
163
209
|
valueModeIdle?: string;
|
|
164
210
|
valueModeInactive?: string;
|
|
165
211
|
};
|
|
166
|
-
export type PurifierConfig = ActiveClimateConfig & {
|
|
212
|
+
export type PurifierConfig = ActiveClimateConfig & FilterMaintenanceConfig & {
|
|
167
213
|
topicGetCurrentPurifierState: string;
|
|
168
214
|
topicGetTargetPurifierState: string;
|
|
169
215
|
topicSetTargetPurifierState: string;
|
|
@@ -173,6 +219,47 @@ export type PurifierConfig = ActiveClimateConfig & {
|
|
|
173
219
|
valueModeManual?: string;
|
|
174
220
|
valueModePurifying?: string;
|
|
175
221
|
};
|
|
222
|
+
export type GarageDoorConfig = LockConfig & {
|
|
223
|
+
topicGetCurrentDoorState: string;
|
|
224
|
+
topicGetCurrentLockState?: string;
|
|
225
|
+
topicGetObstructionDetected: string;
|
|
226
|
+
topicGetTargetDoorState: string;
|
|
227
|
+
topicGetTargetLockState?: string;
|
|
228
|
+
topicSetTargetDoorState: string;
|
|
229
|
+
topicSetTargetLockState?: string;
|
|
230
|
+
valueDoorObstructed: string;
|
|
231
|
+
valueDoorStateClosed?: string;
|
|
232
|
+
valueDoorStateClosing?: string;
|
|
233
|
+
valueDoorStateOpen?: string;
|
|
234
|
+
valueDoorStateOpening?: string;
|
|
235
|
+
valueDoorStateStopped?: string;
|
|
236
|
+
valueLockStateJammed?: string;
|
|
237
|
+
valueLockStateSecured?: string;
|
|
238
|
+
valueLockStateUnsecured?: string;
|
|
239
|
+
};
|
|
240
|
+
export type PositionConfig = BaseAccessoryConfig & {
|
|
241
|
+
maximumPosition?: number;
|
|
242
|
+
topicGetCurrentPosition: string;
|
|
243
|
+
topicSetHoldPosition?: string;
|
|
244
|
+
topicGetObstructionDetected?: string;
|
|
245
|
+
topicGetPositionState: string;
|
|
246
|
+
topicGetTargetPosition: string;
|
|
247
|
+
topicSetTargetPosition: string;
|
|
248
|
+
valuePositionHold?: string;
|
|
249
|
+
valuePositionDecreasing?: string;
|
|
250
|
+
valuePositionIncreasing?: string;
|
|
251
|
+
valuePositionObstructed?: string;
|
|
252
|
+
valuePositionResume?: string;
|
|
253
|
+
valuePositionStopped?: string;
|
|
254
|
+
};
|
|
255
|
+
export type BlindConfig = PositionConfig & {
|
|
256
|
+
topicGetCurrentHorizontalTiltAngle?: string;
|
|
257
|
+
topicGetCurrentVerticalTiltAngle?: string;
|
|
258
|
+
topicGetTargetHorizontalTiltAngle?: string;
|
|
259
|
+
topicGetTargetVerticalTiltAngle?: string;
|
|
260
|
+
topicSetTargetHorizontalTiltAngle?: string;
|
|
261
|
+
topicSetTargetVerticalTiltAngle?: string;
|
|
262
|
+
};
|
|
176
263
|
export type LockConfig = BaseAccessoryConfig & {
|
|
177
264
|
topicGetCurrentLockState: string;
|
|
178
265
|
topicGetTargetLockState: string;
|
|
@@ -194,6 +281,12 @@ export type SecurityConfig = BaseAccessoryConfig & ErrorStatusConfig & {
|
|
|
194
281
|
valueDisarm?: string;
|
|
195
282
|
valueAlarmTriggered?: string;
|
|
196
283
|
};
|
|
284
|
+
export type ButtonConfig = BaseAccessoryConfig & {
|
|
285
|
+
topicEventButtonPress: string;
|
|
286
|
+
valueSinglePress?: string;
|
|
287
|
+
valueDoublePress?: string;
|
|
288
|
+
valueLongPress?: string;
|
|
289
|
+
};
|
|
197
290
|
export type ValveConfig = BaseAccessoryConfig & {
|
|
198
291
|
valveType?: ValveType;
|
|
199
292
|
topicGetStatusFault?: string;
|
package/dist/tools/log.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Logger } from 'homebridge';
|
|
2
|
+
type Param = string | boolean | number;
|
|
2
3
|
export declare enum LogType {
|
|
3
4
|
ALWAYS = 0,
|
|
4
5
|
WARNING = 1,
|
|
@@ -8,9 +9,10 @@ export declare class Log {
|
|
|
8
9
|
private readonly logger;
|
|
9
10
|
readonly verbose: boolean;
|
|
10
11
|
constructor(logger: Logger, verbose: boolean);
|
|
11
|
-
always(message: string, ...parameters:
|
|
12
|
-
warning(message: string, ...parameters:
|
|
13
|
-
error(message: string, ...parameters:
|
|
14
|
-
ifVerbose(message: string, ...parameters:
|
|
15
|
-
ifVerbose(level: LogType, message: string, ...parameters:
|
|
12
|
+
always(message: string, ...parameters: Param[]): void;
|
|
13
|
+
warning(message: string, ...parameters: Param[]): void;
|
|
14
|
+
error(message: string, ...parameters: Param[]): void;
|
|
15
|
+
ifVerbose(message: string, ...parameters: Param[]): void;
|
|
16
|
+
ifVerbose(level: LogType, message: string, ...parameters: Param[]): void;
|
|
16
17
|
}
|
|
18
|
+
export {};
|
package/dist/tools/log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/tools/log.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/tools/log.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,OAIX;AAJD,WAAY,OAAO;IACjB,yCAAM,CAAA;IACN,2CAAO,CAAA;IACP,uCAAK,CAAA;AACP,CAAC,EAJW,OAAO,KAAP,OAAO,QAIlB;AAED,MAAM,OAAO,GAAG;IAGK;IACD;IAFlB,YACmB,MAAc,EACf,OAAgB;QADf,WAAM,GAAN,MAAM,CAAQ;QACf,YAAO,GAAP,OAAO,CAAS;IAC/B,CAAC;IAEG,MAAM,CAAC,OAAe,EAAE,GAAG,UAAmB;QACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;IAC3C,CAAC;IAEM,OAAO,CAAC,OAAe,EAAE,GAAG,UAAmB;QACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;IAC3C,CAAC;IAEM,KAAK,CAAC,OAAe,EAAE,GAAG,UAAmB;QAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;IAC5C,CAAC;IAIM,SAAS,CAAC,cAAgC,EAAE,GAAG,IAAa;QACjE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,MAAM,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;QACtC,QAAO,cAAc,EAAE,CAAC;YACxB,KAAK,OAAO,CAAC,MAAM;gBACjB,IAAI,CAAC,MAAM,CAAC,OAAiB,EAAE,GAAG,UAAU,CAAC,CAAC;gBAC9C,MAAM;YACR,KAAK,OAAO,CAAC,OAAO;gBAClB,IAAI,CAAC,OAAO,CAAC,OAAiB,EAAE,GAAG,UAAU,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,OAAO,CAAC,KAAK;gBAChB,IAAI,CAAC,KAAK,CAAC,OAAiB,EAAE,GAAG,UAAU,CAAC,CAAC;gBAC7C,MAAM;QACR,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CharacteristicValue } from 'homebridge';
|
|
2
|
+
import { CharacteristicKey } from '../model/enums.js';
|
|
3
|
+
export declare class Properties {
|
|
4
|
+
private readonly identifier;
|
|
5
|
+
private readonly useStorage;
|
|
6
|
+
static initStorage(persistPath: string): Promise<void>;
|
|
7
|
+
private readonly properties;
|
|
8
|
+
constructor(identifier: string, useStorage: boolean);
|
|
9
|
+
get(key: CharacteristicKey): CharacteristicValue | undefined;
|
|
10
|
+
set(key: CharacteristicKey, value: CharacteristicValue): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import storage from 'node-persist';
|
|
2
|
+
function propertyStorageKey(id) {
|
|
3
|
+
return `${id}:Properties`;
|
|
4
|
+
}
|
|
5
|
+
const PRELOAD_KEYS_UUID = 'a6ac8cc1-5112-41c9-98b8-198601281ebb';
|
|
6
|
+
const PRELOAD_KEYS = new Set;
|
|
7
|
+
const PRELOADED = new Map;
|
|
8
|
+
function cacheKey(key) {
|
|
9
|
+
if (PRELOAD_KEYS.has(key)) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
PRELOAD_KEYS.add(key);
|
|
13
|
+
const keysArray = Array.from(PRELOAD_KEYS);
|
|
14
|
+
const keysJson = JSON.stringify(keysArray);
|
|
15
|
+
storage.set(PRELOAD_KEYS_UUID, keysJson);
|
|
16
|
+
}
|
|
17
|
+
export class Properties {
|
|
18
|
+
identifier;
|
|
19
|
+
useStorage;
|
|
20
|
+
static async initStorage(persistPath) {
|
|
21
|
+
await storage.init({ dir: persistPath, forgiveParseErrors: true });
|
|
22
|
+
const keysJson = await storage.get(PRELOAD_KEYS_UUID);
|
|
23
|
+
if (keysJson === undefined) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
const keysArray = JSON.parse(keysJson);
|
|
28
|
+
keysArray.forEach(key => PRELOAD_KEYS.add(key));
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// ignore
|
|
32
|
+
}
|
|
33
|
+
for (const key of PRELOAD_KEYS) {
|
|
34
|
+
try {
|
|
35
|
+
const propertiesJson = await storage.get(key);
|
|
36
|
+
if (propertiesJson === undefined) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const array = JSON.parse(propertiesJson);
|
|
40
|
+
const properties = new Map(array);
|
|
41
|
+
PRELOADED.set(key, properties);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// ignore
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
properties = new Map();
|
|
49
|
+
constructor(identifier, useStorage) {
|
|
50
|
+
this.identifier = identifier;
|
|
51
|
+
this.useStorage = useStorage;
|
|
52
|
+
if (!useStorage) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const key = propertyStorageKey(identifier);
|
|
56
|
+
this.properties = PRELOADED.get(key) ?? this.properties;
|
|
57
|
+
}
|
|
58
|
+
get(key) {
|
|
59
|
+
return this.properties.get(key);
|
|
60
|
+
}
|
|
61
|
+
set(key, value) {
|
|
62
|
+
this.properties.set(key, value);
|
|
63
|
+
if (!this.useStorage) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const storageKey = propertyStorageKey(this.identifier);
|
|
67
|
+
cacheKey(storageKey);
|
|
68
|
+
const propertiesArray = Array.from(this.properties.entries());
|
|
69
|
+
const propertiesJson = JSON.stringify(propertiesArray);
|
|
70
|
+
storage.set(storageKey, propertiesJson);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=properties.js.map
|