homebridge-easy-mqtt 1.4.0-beta.10 → 1.4.0-beta.12
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 +2 -2
- package/README.md +25 -2
- package/config.schema.json +217 -3
- package/dist/accessory/abstract/common.d.ts +3 -3
- package/dist/accessory/abstract/common.js +5 -5
- package/dist/accessory/abstract/common.js.map +1 -1
- package/dist/accessory/abstract/helper.js +5 -2
- package/dist/accessory/abstract/helper.js.map +1 -1
- package/dist/accessory/abstract/mqtt.d.ts +1 -1
- package/dist/accessory/abstract/mqtt.js +1 -1
- package/dist/accessory/abstract/mqtt.js.map +1 -1
- package/dist/accessory/addons/addon.d.ts +3 -3
- package/dist/accessory/addons/addon.js +13 -11
- package/dist/accessory/addons/addon.js.map +1 -1
- package/dist/accessory/addons/filter.d.ts +2 -2
- package/dist/accessory/addons/filter.js +4 -4
- package/dist/accessory/addons/filter.js.map +1 -1
- package/dist/accessory/climate/heaterCooler.js +1 -1
- package/dist/accessory/climate/heaterCooler.js.map +1 -1
- package/dist/accessory/climate/purifier.js +1 -1
- package/dist/accessory/climate/purifier.js.map +1 -1
- package/dist/accessory/climate/thermostat.js +1 -1
- 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/homebridge-ui/public/index.html +1 -1
- package/dist/homebridge-ui/public/ui.js +1 -1
- package/dist/i18n/en.d.ts +30 -0
- package/dist/i18n/en.js +30 -0
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/fr.d.ts +30 -0
- package/dist/i18n/i18n.d.ts +30 -0
- package/dist/i18n/ro.d.ts +30 -0
- package/dist/i18n/template.d.ts +30 -0
- package/dist/model/enums.d.ts +4 -0
- package/dist/model/enums.js +4 -0
- package/dist/model/enums.js.map +1 -1
- package/dist/model/types.d.ts +18 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to homebridge-dummy will be documented in this file.
|
|
4
4
|
|
|
5
|
-
## 1.4.0-beta.
|
|
5
|
+
## 1.4.0-beta.12 (2025-09-24)
|
|
6
6
|
|
|
7
7
|
### Added
|
|
8
|
-
- Support for Air Purifier, HeaterCooler, LightSensor, and Valve
|
|
8
|
+
- Support for Air Purifier, GarageDoorOpener, HeaterCooler, LightSensor, and Valve
|
|
9
9
|
- FilterMaintenance to climate control accessories
|
|
10
10
|
- Broker, username, and password can be set via environment variables ([documentation](https://github.com/mpatfield/homebridge-easy-mqtt#environment-variables))
|
|
11
11
|
- Publish arbitrary MQTT messages on connect ([documentation] (https://github.com/mpatfield/homebridge-easy-mqtt#mqtt-onconnect))
|
package/README.md
CHANGED
|
@@ -25,12 +25,16 @@ This plugin is designed to be a simple replacement for the fantastic [homebridge
|
|
|
25
25
|
|
|
26
26
|
**HomebridgeEasyMQTT** currently supports the following accessory types but will be expanded over time as more use cases are requested. If there is an accessory type you'd like to see supported, please [create an issue in GitHub](https://github.com/mpatfield/homebridge-easy-mqtt/issues/new/choose).
|
|
27
27
|
|
|
28
|
+
- `AirPurifier`
|
|
28
29
|
- `CarbonDioxideSensor`
|
|
29
30
|
- `CarbonMonoxideSensor`
|
|
30
31
|
- `ContactSensor`
|
|
32
|
+
- `GarageDoorOpener`
|
|
33
|
+
- `HeaterCooler`
|
|
31
34
|
- `HumiditySensor`
|
|
32
35
|
- `LeakSensor`
|
|
33
36
|
- `Lightbulb`
|
|
37
|
+
- `LightSensor`
|
|
34
38
|
- `LockMechanism`
|
|
35
39
|
- `MotionSensor`
|
|
36
40
|
- `OccupancySensor`
|
|
@@ -40,6 +44,7 @@ This plugin is designed to be a simple replacement for the fantastic [homebridge
|
|
|
40
44
|
- `Switch`
|
|
41
45
|
- `TemperatureSensor`
|
|
42
46
|
- `Thermostat`
|
|
47
|
+
- `Valve`
|
|
43
48
|
|
|
44
49
|
## Configuration
|
|
45
50
|
|
|
@@ -95,7 +100,7 @@ Required fields are marked with an asterisk (*)
|
|
|
95
100
|
### Info
|
|
96
101
|
- `id*` - A unique ID to identify this accessory. Changing this value will result in a new accessory.
|
|
97
102
|
- `name*` - The display name for the accessory in HomeKit
|
|
98
|
-
- `type*` - The type of accessory
|
|
103
|
+
- `type*` - The type of accessory. See list of currently supported types above.
|
|
99
104
|
- `group` - Items sharing the same group name will be grouped together in the Home app UI
|
|
100
105
|
- ⚠️ Changing the group name will require you to reconfigure any HomeKit scenes/automations for those accessories
|
|
101
106
|
- `manufacturer` - The accessory manufacturer which will display in HomeKit device details
|
|
@@ -277,7 +282,7 @@ These values are used for both determining current state and, where appropriate,
|
|
|
277
282
|
- `valueModeOff` - Thermostat off
|
|
278
283
|
- `valueFilterChange` - Indicates that the filter needs to be changed. *Required if `topicGetFilterChangeIndication` is defined.
|
|
279
284
|
|
|
280
|
-
####
|
|
285
|
+
#### AirPurifier
|
|
281
286
|
- `topicGetActive*` - Get whether or not the accessory is currently active
|
|
282
287
|
- `topicSetActive*` - Set whether or not the accessory is currently active
|
|
283
288
|
- `topicGetCurrentPurifierState*` - Get the current mode (i.e. inactive, idle, purifying)
|
|
@@ -341,6 +346,24 @@ These values are used for both determining current state and, where appropriate,
|
|
|
341
346
|
|
|
342
347
|
### Others
|
|
343
348
|
|
|
349
|
+
#### GarageDoorOpener
|
|
350
|
+
- `topicGetCurrentDoorState*` - Current state of the garage door, i.e. open/opening/closed/closing/stopped
|
|
351
|
+
- `topicGetTargetDoorState*` - Target state of the garage door, i.e. open/closed
|
|
352
|
+
- `topicSetTargetDoorState*` - Set the target door state, i.e. open/closed
|
|
353
|
+
- `topicGetObstructionDetected*` - Whether or not the garage door is obstructed
|
|
354
|
+
- `topicGetCurrentLockState` - The current state of the garage lock, i.e. locked/unlocked
|
|
355
|
+
- `topicGetTargetLockState` - The target (i.e. desired) state of the garage lock
|
|
356
|
+
- `topicSetTargetLockState` - For setting the target (i.e. desired) state of the garage lock
|
|
357
|
+
- `valueDoorObstructed*` - Door is obstructed
|
|
358
|
+
- `valueDoorStateClosed` - Door is closed
|
|
359
|
+
- `valueDoorStateClosing` - Door is closing
|
|
360
|
+
- `valueDoorStateOpen` - Door is open
|
|
361
|
+
- `valueDoorStateOpening` - Door is opening
|
|
362
|
+
- `valueDoorStateStopped` - Door is stopped
|
|
363
|
+
- `valueLockStateJammed` - Door lock is jammed
|
|
364
|
+
- `valueLockStateSecured` - Door is locked
|
|
365
|
+
- `valueLockStateUnsecured` - Door is unlocked
|
|
366
|
+
|
|
344
367
|
#### LockMechanism
|
|
345
368
|
- `topicGetCurrentLockState*` - The current state of the lock, i.e. locked/unlocked
|
|
346
369
|
- `topicGetTargetLockState*` - The target (i.e. desired) state of the lock
|
package/config.schema.json
CHANGED
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"type": {
|
|
22
22
|
"type": "string",
|
|
23
23
|
"title": "${config.title.type}",
|
|
24
|
-
"enum": [ "AirPurifier", "CarbonMonoxideSensor", "CarbonDioxideSensor", "ContactSensor", "HeaterCooler", "HumiditySensor", "LeakSensor", "Lightbulb", "LightSensor", "LockMechanism", "MotionSensor", "OccupancySensor", "Outlet", "SecuritySystem", "SmokeSensor", "Switch", "TemperatureSensor", "Thermostat", "Valve"],
|
|
25
|
-
"enumNames": ["${config.enumNames.airPurifier}", "${config.enumNames.carbonMonoxideSensor}", "${config.enumNames.carbonDioxideSensor}", "${config.enumNames.contactSensor}", "${config.enumNames.heaterCooler}", "${config.enumNames.humiditySensor}", "${config.enumNames.leakSensor}", "${config.enumNames.lightbulb}", "${config.enumNames.lightSensor}", "${config.enumNames.lockMechanism}", "${config.enumNames.motionSensor}", "${config.enumNames.occupancySensor}", "${config.enumNames.outlet}", "${config.enumNames.securitySystem}", "${config.enumNames.smokeSensor}", "${config.enumNames.switch}", "${config.enumNames.temperatureSensor}", "${config.enumNames.thermostat}", "${config.enumNames.valve}"],
|
|
24
|
+
"enum": [ "AirPurifier", "CarbonMonoxideSensor", "CarbonDioxideSensor", "ContactSensor", "GarageDoorOpener", "HeaterCooler", "HumiditySensor", "LeakSensor", "Lightbulb", "LightSensor", "LockMechanism", "MotionSensor", "OccupancySensor", "Outlet", "SecuritySystem", "SmokeSensor", "Switch", "TemperatureSensor", "Thermostat", "Valve"],
|
|
25
|
+
"enumNames": ["${config.enumNames.airPurifier}", "${config.enumNames.carbonMonoxideSensor}", "${config.enumNames.carbonDioxideSensor}", "${config.enumNames.contactSensor}", "${config.enumNames.garageDoorOpener}", "${config.enumNames.heaterCooler}", "${config.enumNames.humiditySensor}", "${config.enumNames.leakSensor}", "${config.enumNames.lightbulb}", "${config.enumNames.lightSensor}", "${config.enumNames.lockMechanism}", "${config.enumNames.motionSensor}", "${config.enumNames.occupancySensor}", "${config.enumNames.outlet}", "${config.enumNames.securitySystem}", "${config.enumNames.smokeSensor}", "${config.enumNames.switch}", "${config.enumNames.temperatureSensor}", "${config.enumNames.thermostat}", "${config.enumNames.valve}"],
|
|
26
26
|
"required": true
|
|
27
27
|
},
|
|
28
28
|
"group": {
|
|
@@ -422,6 +422,22 @@
|
|
|
422
422
|
"type": "string",
|
|
423
423
|
"title": "${config.title.topicResetFilterIndication}"
|
|
424
424
|
},
|
|
425
|
+
"topicGetCurrentDoorState": {
|
|
426
|
+
"type": "string",
|
|
427
|
+
"title": "${config.title.topicGetCurrentDoorState}"
|
|
428
|
+
},
|
|
429
|
+
"topicGetObstructionDetected": {
|
|
430
|
+
"type": "string",
|
|
431
|
+
"title": "${config.title.topicGetObstructionDetected}"
|
|
432
|
+
},
|
|
433
|
+
"topicGetTargetDoorState": {
|
|
434
|
+
"type": "string",
|
|
435
|
+
"title": "${config.title.topicGetTargetDoorState}"
|
|
436
|
+
},
|
|
437
|
+
"topicSetTargetDoorState": {
|
|
438
|
+
"type": "string",
|
|
439
|
+
"title": "${config.title.topicSetTargetDoorState}"
|
|
440
|
+
},
|
|
425
441
|
"valueBatteryLow": {
|
|
426
442
|
"type": "string",
|
|
427
443
|
"title": "${config.title.valueBatteryLow}"
|
|
@@ -594,6 +610,30 @@
|
|
|
594
610
|
"type": "string",
|
|
595
611
|
"title": "${config.title.valueFilterReset}"
|
|
596
612
|
},
|
|
613
|
+
"valueDoorObstructed": {
|
|
614
|
+
"type": "string",
|
|
615
|
+
"title": "${config.title.valueDoorObstructed}"
|
|
616
|
+
},
|
|
617
|
+
"valueDoorStateClosed": {
|
|
618
|
+
"type": "string",
|
|
619
|
+
"title": "${config.title.valueDoorStateClosed}"
|
|
620
|
+
},
|
|
621
|
+
"valueDoorStateClosing": {
|
|
622
|
+
"type": "string",
|
|
623
|
+
"title": "${config.title.valueDoorStateClosing}"
|
|
624
|
+
},
|
|
625
|
+
"valueDoorStateOpen": {
|
|
626
|
+
"type": "string",
|
|
627
|
+
"title": "${config.title.valueDoorStateOpen}"
|
|
628
|
+
},
|
|
629
|
+
"valueDoorStateOpening": {
|
|
630
|
+
"type": "string",
|
|
631
|
+
"title": "${config.title.valueDoorStateOpening}"
|
|
632
|
+
},
|
|
633
|
+
"valueDoorStateStopped": {
|
|
634
|
+
"type": "string",
|
|
635
|
+
"title": "${config.title.valueDoorStateStopped}"
|
|
636
|
+
},
|
|
597
637
|
"disableLogging": {
|
|
598
638
|
"type": "boolean",
|
|
599
639
|
"title": "${config.title.disableLogging}"
|
|
@@ -879,6 +919,26 @@
|
|
|
879
919
|
]
|
|
880
920
|
}
|
|
881
921
|
},
|
|
922
|
+
{
|
|
923
|
+
"if": {
|
|
924
|
+
"properties": {
|
|
925
|
+
"info": {
|
|
926
|
+
"properties": {
|
|
927
|
+
"type" : {
|
|
928
|
+
"const": "GarageDoorOpener"
|
|
929
|
+
}
|
|
930
|
+
}
|
|
931
|
+
}
|
|
932
|
+
}
|
|
933
|
+
},
|
|
934
|
+
"then": {
|
|
935
|
+
"required": ["topicGetCurrentDoorState", "topicGetTargetDoorState", "topicSetTargetDoorState", "topicGetObstructionDetected", "valueDoorObstructed"],
|
|
936
|
+
"anyOf": [
|
|
937
|
+
{ "required": ["valueDoorStateOpen"] },
|
|
938
|
+
{ "required": ["valueDoorStateClosed"] }
|
|
939
|
+
]
|
|
940
|
+
}
|
|
941
|
+
},
|
|
882
942
|
{
|
|
883
943
|
"if": {
|
|
884
944
|
"properties": {
|
|
@@ -1114,6 +1174,45 @@
|
|
|
1114
1174
|
"then": {
|
|
1115
1175
|
"required": ["topicGetFilterChangeIndication", "valueFilterReset"]
|
|
1116
1176
|
}
|
|
1177
|
+
},
|
|
1178
|
+
{
|
|
1179
|
+
"if": {
|
|
1180
|
+
"properties": {
|
|
1181
|
+
"topicGetCurrentLockState": {
|
|
1182
|
+
"minLength": 1
|
|
1183
|
+
}
|
|
1184
|
+
},
|
|
1185
|
+
"required": ["topicGetCurrentLockState"]
|
|
1186
|
+
},
|
|
1187
|
+
"then": {
|
|
1188
|
+
"required": ["valueLockStateSecured", "valueLockStateUnsecured"]
|
|
1189
|
+
}
|
|
1190
|
+
},
|
|
1191
|
+
{
|
|
1192
|
+
"if": {
|
|
1193
|
+
"properties": {
|
|
1194
|
+
"topicGetTargetLockState": {
|
|
1195
|
+
"minLength": 1
|
|
1196
|
+
}
|
|
1197
|
+
},
|
|
1198
|
+
"required": ["topicGetTargetLockState"]
|
|
1199
|
+
},
|
|
1200
|
+
"then": {
|
|
1201
|
+
"required": ["topicGetCurrentLockState", "topicSetTargetLockState"]
|
|
1202
|
+
}
|
|
1203
|
+
},
|
|
1204
|
+
{
|
|
1205
|
+
"if": {
|
|
1206
|
+
"properties": {
|
|
1207
|
+
"topicSetTargetLockState": {
|
|
1208
|
+
"minLength": 1
|
|
1209
|
+
}
|
|
1210
|
+
},
|
|
1211
|
+
"required": ["topicSetTargetLockState"]
|
|
1212
|
+
},
|
|
1213
|
+
"then": {
|
|
1214
|
+
"required": ["topicGetTargetLockState"]
|
|
1215
|
+
}
|
|
1117
1216
|
}
|
|
1118
1217
|
]
|
|
1119
1218
|
},
|
|
@@ -1201,6 +1300,74 @@
|
|
|
1201
1300
|
"functionBody": "return model.accessories?.[arguments[1]]?.info?.type !== undefined;"
|
|
1202
1301
|
},
|
|
1203
1302
|
"items": [
|
|
1303
|
+
{
|
|
1304
|
+
"type": "fieldset",
|
|
1305
|
+
"notitle": true,
|
|
1306
|
+
"condition": {
|
|
1307
|
+
"functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'GarageDoorOpener';"
|
|
1308
|
+
},
|
|
1309
|
+
"items": [
|
|
1310
|
+
{
|
|
1311
|
+
"type": "div",
|
|
1312
|
+
"displayFlex": true,
|
|
1313
|
+
"flex-direction": "row",
|
|
1314
|
+
"items": [
|
|
1315
|
+
{
|
|
1316
|
+
"key": "accessories[].topicGetCurrentDoorState",
|
|
1317
|
+
"flex": "0 0 50%"
|
|
1318
|
+
},
|
|
1319
|
+
{
|
|
1320
|
+
"key": "accessories[].topicGetObstructionDetected",
|
|
1321
|
+
"flex": "0 0 50%"
|
|
1322
|
+
}
|
|
1323
|
+
]
|
|
1324
|
+
},
|
|
1325
|
+
{
|
|
1326
|
+
"type": "div",
|
|
1327
|
+
"displayFlex": true,
|
|
1328
|
+
"flex-direction": "row",
|
|
1329
|
+
"items": [
|
|
1330
|
+
{
|
|
1331
|
+
"key": "accessories[].topicGetTargetDoorState",
|
|
1332
|
+
"flex": "0 0 50%"
|
|
1333
|
+
},
|
|
1334
|
+
{
|
|
1335
|
+
"key": "accessories[].topicSetTargetDoorState",
|
|
1336
|
+
"flex": "0 0 50%"
|
|
1337
|
+
}
|
|
1338
|
+
]
|
|
1339
|
+
},
|
|
1340
|
+
{
|
|
1341
|
+
"type": "div",
|
|
1342
|
+
"displayFlex": true,
|
|
1343
|
+
"flex-direction": "row",
|
|
1344
|
+
"items": [
|
|
1345
|
+
{
|
|
1346
|
+
"key": "accessories[].topicGetCurrentLockState",
|
|
1347
|
+
"title": "${config.title.topicGetCurrentLockStateOptional}",
|
|
1348
|
+
"flex": "0 0 50%"
|
|
1349
|
+
}
|
|
1350
|
+
]
|
|
1351
|
+
},
|
|
1352
|
+
{
|
|
1353
|
+
"type": "div",
|
|
1354
|
+
"displayFlex": true,
|
|
1355
|
+
"flex-direction": "row",
|
|
1356
|
+
"items": [
|
|
1357
|
+
{
|
|
1358
|
+
"key": "accessories[].topicGetTargetLockState",
|
|
1359
|
+
"title": "${config.title.topicGetTargetLockStateOptional}",
|
|
1360
|
+
"flex": "0 0 50%"
|
|
1361
|
+
},
|
|
1362
|
+
{
|
|
1363
|
+
"key": "accessories[].topicSetTargetLockState",
|
|
1364
|
+
"title": "${config.title.topicSetTargetLockStateOptional}",
|
|
1365
|
+
"flex": "0 0 50%"
|
|
1366
|
+
}
|
|
1367
|
+
]
|
|
1368
|
+
}
|
|
1369
|
+
]
|
|
1370
|
+
},
|
|
1204
1371
|
{
|
|
1205
1372
|
"type": "fieldset",
|
|
1206
1373
|
"notitle": true,
|
|
@@ -2207,12 +2374,59 @@
|
|
|
2207
2374
|
}
|
|
2208
2375
|
]
|
|
2209
2376
|
},
|
|
2377
|
+
{
|
|
2378
|
+
"type": "fieldset",
|
|
2379
|
+
"notitle": true,
|
|
2380
|
+
"condition": {
|
|
2381
|
+
"functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'GarageDoorOpener';"
|
|
2382
|
+
},
|
|
2383
|
+
"items": [
|
|
2384
|
+
{
|
|
2385
|
+
"type": "div",
|
|
2386
|
+
"displayFlex": true,
|
|
2387
|
+
"flex-direction": "row",
|
|
2388
|
+
"items": [
|
|
2389
|
+
{
|
|
2390
|
+
"key": "accessories[].valueDoorStateOpen",
|
|
2391
|
+
"flex": "0 0 25%"
|
|
2392
|
+
},
|
|
2393
|
+
{
|
|
2394
|
+
"key": "accessories[].valueDoorStateClosed",
|
|
2395
|
+
"flex": "0 0 25%"
|
|
2396
|
+
},
|
|
2397
|
+
{
|
|
2398
|
+
"key": "accessories[].valueDoorStateOpening",
|
|
2399
|
+
"flex": "0 0 25%"
|
|
2400
|
+
},
|
|
2401
|
+
{
|
|
2402
|
+
"key": "accessories[].valueDoorStateClosing",
|
|
2403
|
+
"flex": "0 0 25%"
|
|
2404
|
+
}
|
|
2405
|
+
]
|
|
2406
|
+
},
|
|
2407
|
+
{
|
|
2408
|
+
"type": "div",
|
|
2409
|
+
"displayFlex": true,
|
|
2410
|
+
"flex-direction": "row",
|
|
2411
|
+
"items": [
|
|
2412
|
+
{
|
|
2413
|
+
"key": "accessories[].valueDoorStateStopped",
|
|
2414
|
+
"flex": "0 0 25%"
|
|
2415
|
+
},
|
|
2416
|
+
{
|
|
2417
|
+
"key": "accessories[].valueDoorObstructed",
|
|
2418
|
+
"flex": "0 0 25%"
|
|
2419
|
+
}
|
|
2420
|
+
]
|
|
2421
|
+
}
|
|
2422
|
+
]
|
|
2423
|
+
},
|
|
2210
2424
|
{
|
|
2211
2425
|
"type": "div",
|
|
2212
2426
|
"displayFlex": true,
|
|
2213
2427
|
"flex-direction": "row",
|
|
2214
2428
|
"condition": {
|
|
2215
|
-
"functionBody": "return model.accessories?.[arguments[1]]?.info?.type
|
|
2429
|
+
"functionBody": "return ['GarageDoorOpener', 'LockMechanism'].includes(model.accessories?.[arguments[1]]?.info?.type);"
|
|
2216
2430
|
},
|
|
2217
2431
|
"items": [
|
|
2218
2432
|
{
|
|
@@ -11,14 +11,14 @@ export type TopicHandler = {
|
|
|
11
11
|
export type PublishHandler = (topic: string, value: PrimitiveTypes) => void;
|
|
12
12
|
export declare abstract class Common<C extends Assertable> {
|
|
13
13
|
protected readonly Characteristic: CharacteristicType;
|
|
14
|
-
protected readonly config: C;
|
|
15
14
|
protected readonly log: Log;
|
|
16
|
-
protected readonly name: string;
|
|
17
15
|
private readonly disableLogging;
|
|
16
|
+
protected readonly config: C;
|
|
17
|
+
protected readonly name: string;
|
|
18
18
|
private readonly publishHandler;
|
|
19
19
|
protected readonly properties: Map<string, CharacteristicValue>;
|
|
20
20
|
readonly topicHandlers: TopicHandler[];
|
|
21
|
-
constructor(Characteristic: CharacteristicType,
|
|
21
|
+
constructor(Characteristic: CharacteristicType, log: Log, disableLogging: boolean, config: C, name: string, publishHandler: PublishHandler);
|
|
22
22
|
protected abstract get service(): Service;
|
|
23
23
|
protected assert(...keys: (keyof C)[]): boolean;
|
|
24
24
|
protected getRawValue(property: keyof C, assert?: boolean): string | undefined;
|
|
@@ -6,19 +6,19 @@ import { assert } from '../../tools/validation.js';
|
|
|
6
6
|
import { toCelsius } from '../../tools/temperature.js';
|
|
7
7
|
export class Common {
|
|
8
8
|
Characteristic;
|
|
9
|
-
config;
|
|
10
9
|
log;
|
|
11
|
-
name;
|
|
12
10
|
disableLogging;
|
|
11
|
+
config;
|
|
12
|
+
name;
|
|
13
13
|
publishHandler;
|
|
14
14
|
properties = new Map();
|
|
15
15
|
topicHandlers = [];
|
|
16
|
-
constructor(Characteristic,
|
|
16
|
+
constructor(Characteristic, log, disableLogging, config, name, publishHandler) {
|
|
17
17
|
this.Characteristic = Characteristic;
|
|
18
|
-
this.config = config;
|
|
19
18
|
this.log = log;
|
|
20
|
-
this.name = name;
|
|
21
19
|
this.disableLogging = disableLogging;
|
|
20
|
+
this.config = config;
|
|
21
|
+
this.name = name;
|
|
22
22
|
this.publishHandler = publishHandler;
|
|
23
23
|
}
|
|
24
24
|
assert(...keys) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/accessory/abstract/common.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAqB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG3E,OAAO,EAAO,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,MAAM,EAAc,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAOvD,MAAM,OAAgB,MAAM;IAOL;IACA;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/accessory/abstract/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { strings } from '../../i18n/i18n.js';
|
|
2
2
|
import { AccessoryType } from '../../model/enums.js';
|
|
3
|
+
import { GarageDoorAccessory } from '../garage.js';
|
|
3
4
|
import { LockMechanismAccessory } from '../lock.js';
|
|
4
5
|
import { SecuritySystemAccessory } from '../security.js';
|
|
5
6
|
import { HeaterCoolerAccessory } from '../climate/heaterCooler.js';
|
|
@@ -21,16 +22,18 @@ import { TemperatureSensorAccessory } from '../sensor/temperature.js';
|
|
|
21
22
|
import { ValveAccessory } from '../valve.js';
|
|
22
23
|
export function createAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped = false) {
|
|
23
24
|
switch (accessoryConfig.info.type) {
|
|
25
|
+
case AccessoryType.AirPurifier:
|
|
26
|
+
return new PurifierAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
24
27
|
case AccessoryType.CarbonDioxideSensor:
|
|
25
28
|
return new CO2SensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
26
29
|
case AccessoryType.CarbonMonoxideSensor:
|
|
27
30
|
return new COSensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
28
31
|
case AccessoryType.ContactSensor:
|
|
29
32
|
return new ContactSensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
33
|
+
case AccessoryType.GarageDoorOpener:
|
|
34
|
+
return new GarageDoorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
30
35
|
case AccessoryType.HeaterCooler:
|
|
31
36
|
return new HeaterCoolerAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
32
|
-
case AccessoryType.AirPurifier:
|
|
33
|
-
return new PurifierAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
34
37
|
case AccessoryType.HumiditySensor:
|
|
35
38
|
return new HumiditySensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, log, isGrouped);
|
|
36
39
|
case AccessoryType.LeakSensor:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../src/accessory/abstract/helper.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,MAAM,UAAU,eAAe,CAC7B,OAA4B,EAC5B,cAA0C,EAC1C,iBAAoC,EACpC,eAA4C,EAC5C,GAAQ,EACR,YAAqB,KAAK;IAG1B,QAAO,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACnC,KAAK,aAAa,CAAC,mBAAmB;YACpC,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA0C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACxI,KAAK,aAAa,CAAC,oBAAoB;YACrC,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAyC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACtI,KAAK,aAAa,CAAC,aAAa;YAC9B,OAAO,IAAI,sBAAsB,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAA8C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAChJ,KAAK,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../src/accessory/abstract/helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { CharacteristicType, MQTTAccessoryConfig, ServiceType } from '../../mode
|
|
|
5
5
|
import { Log } from '../../tools/log.js';
|
|
6
6
|
export declare abstract class MQTTAccessory<C extends MQTTAccessoryConfig> extends Common<C> {
|
|
7
7
|
private readonly mqttClient;
|
|
8
|
-
|
|
8
|
+
protected readonly accessoryService: Service;
|
|
9
9
|
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log, isGrouped: boolean);
|
|
10
10
|
protected abstract getAccessoryType(): AccessoryType;
|
|
11
11
|
protected get service(): Service;
|
|
@@ -6,7 +6,7 @@ export class MQTTAccessory extends Common {
|
|
|
6
6
|
mqttClient;
|
|
7
7
|
accessoryService;
|
|
8
8
|
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
9
|
-
super(Characteristic, config,
|
|
9
|
+
super(Characteristic, log, config.disableLogging, config, config.info.name, (topic, value) => {
|
|
10
10
|
this.mqttClient?.publish(topic, value);
|
|
11
11
|
});
|
|
12
12
|
this.mqttClient = MQTT.connect(log, config.mqtt, this.name, (client) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mqtt.js","sourceRoot":"","sources":["../../../src/accessory/abstract/mqtt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAK3C,MAAM,OAAgB,aAA6C,SAAQ,MAAS;IAEjE,UAAU,CAAmB;
|
|
1
|
+
{"version":3,"file":"mqtt.js","sourceRoot":"","sources":["../../../src/accessory/abstract/mqtt.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,10 @@ import { Common, PublishHandler } from '../abstract/common.js';
|
|
|
3
3
|
import { AddonType } from '../../model/enums.js';
|
|
4
4
|
import { AddonConfig, CharacteristicType, ServiceType } from '../../model/types.js';
|
|
5
5
|
import { Log } from '../../tools/log.js';
|
|
6
|
-
type AddonConstructor<C extends AddonConfig, A extends Addon<C>> = new (service: Service, Characteristic: CharacteristicType,
|
|
6
|
+
type AddonConstructor<C extends AddonConfig, A extends Addon<C>> = new (service: Service, Characteristic: CharacteristicType, log: Log, disableLogging: boolean, config: C, name: string, publishHandler: PublishHandler) => A;
|
|
7
7
|
export declare abstract class Addon<C extends AddonConfig> extends Common<C> {
|
|
8
8
|
protected readonly service: Service;
|
|
9
|
-
static new<C extends AddonConfig, A extends Addon<C>>(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, name: string, config: C, log: Log, disableLogging: boolean, publishHandler: PublishHandler, addonType: AddonType, constructor: AddonConstructor<C, A>, required: (keyof C)[]): A | undefined;
|
|
10
|
-
protected constructor(service: Service, Characteristic: CharacteristicType,
|
|
9
|
+
static new<C extends AddonConfig, A extends Addon<C>>(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, parentService: Service, name: string, config: C, log: Log, disableLogging: boolean, publishHandler: PublishHandler, addonType: AddonType, constructor: AddonConstructor<C, A>, required: (keyof C)[]): A | undefined;
|
|
10
|
+
protected constructor(service: Service, Characteristic: CharacteristicType, log: Log, disableLogging: boolean, config: C, name: string, publishHandler: PublishHandler);
|
|
11
11
|
}
|
|
12
12
|
export {};
|
|
@@ -2,21 +2,23 @@ import { Common } from '../abstract/common.js';
|
|
|
2
2
|
import { assert } from '../../tools/validation.js';
|
|
3
3
|
export class Addon extends Common {
|
|
4
4
|
service;
|
|
5
|
-
static new(Service, Characteristic, accessory, name, config, log, disableLogging, publishHandler, addonType, constructor, required) {
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
if (required.filter((key) => config[key] !== undefined).length === 0
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
accessory.removeService(existingService);
|
|
5
|
+
static new(Service, Characteristic, accessory, parentService, name, config, log, disableLogging, publishHandler, addonType, constructor, required) {
|
|
6
|
+
const addonServiceInstance = Service[addonType];
|
|
7
|
+
const existingAddonService = accessory.getService(addonServiceInstance);
|
|
8
|
+
if (required.filter((key) => config[key] !== undefined).length === 0 || !assert(log, name, config, ...required)) {
|
|
9
|
+
if (existingAddonService !== undefined) {
|
|
10
|
+
accessory.removeService(existingAddonService);
|
|
12
11
|
}
|
|
13
12
|
return;
|
|
14
13
|
}
|
|
15
|
-
const
|
|
16
|
-
|
|
14
|
+
const addonService = existingAddonService ?? accessory.addService(addonServiceInstance);
|
|
15
|
+
if (existingAddonService === undefined) {
|
|
16
|
+
parentService.addLinkedService(addonService);
|
|
17
|
+
}
|
|
18
|
+
return new constructor(addonService, Characteristic, log, disableLogging, config, name, publishHandler);
|
|
17
19
|
}
|
|
18
|
-
constructor(service, Characteristic,
|
|
19
|
-
super(Characteristic,
|
|
20
|
+
constructor(service, Characteristic, log, disableLogging, config, name, publishHandler) {
|
|
21
|
+
super(Characteristic, log, disableLogging, config, name, publishHandler);
|
|
20
22
|
this.service = service;
|
|
21
23
|
}
|
|
22
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addon.js","sourceRoot":"","sources":["../../../src/accessory/addons/addon.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAkB,MAAM,uBAAuB,CAAC;AAM/D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAKnD,MAAM,OAAgB,KAA6B,SAAQ,MAAS;
|
|
1
|
+
{"version":3,"file":"addon.js","sourceRoot":"","sources":["../../../src/accessory/addons/addon.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAkB,MAAM,uBAAuB,CAAC;AAM/D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAKnD,MAAM,OAAgB,KAA6B,SAAQ,MAAS;IAqC7C;IAnCrB,MAAM,CAAC,GAAG,CACR,OAAoB,EACpB,cAAkC,EAClC,SAA4B,EAC5B,aAAsB,EACtB,IAAY,EACZ,MAAS,EACT,GAAQ,EACR,cAAuB,EACvB,cAA8B,EAC9B,SAAoB,EACpB,WAAmC,EACnC,QAAqB;QAGrB,MAAM,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,oBAAoB,GAAG,SAAS,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAExE,IAAI,QAAQ,CAAC,MAAM,CAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAE,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;YAClH,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;gBACvC,SAAS,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;YAChD,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,oBAAoB,IAAI,SAAS,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAExF,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACvC,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,WAAW,CAAC,YAAY,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAC1G,CAAC;IAED,YACqB,OAAgB,EACnC,cAAkC,EAClC,GAAQ,EACR,cAAuB,EACvB,MAAS,EACT,IAAY,EACZ,cAA8B;QAE9B,KAAK,CAAC,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QARtD,YAAO,GAAP,OAAO,CAAS;IASrC,CAAC;CACF"}
|
|
@@ -4,8 +4,8 @@ import { PublishHandler, TopicHandler } from '../abstract/common.js';
|
|
|
4
4
|
import { CharacteristicType, FilterMaintenanceConfig, ServiceType } from '../../model/types.js';
|
|
5
5
|
import { Log } from '../../tools/log.js';
|
|
6
6
|
export declare class FilterMaintenance extends Addon<FilterMaintenanceConfig> {
|
|
7
|
-
static topicHandlers(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory,
|
|
8
|
-
constructor(service: Service, Characteristic: CharacteristicType,
|
|
7
|
+
static topicHandlers(Service: ServiceType, Characteristic: CharacteristicType, log: Log, disableLogging: boolean, accessory: PlatformAccessory, parentService: Service, config: FilterMaintenanceConfig, name: string, publishHandler: PublishHandler): TopicHandler[];
|
|
8
|
+
constructor(service: Service, Characteristic: CharacteristicType, log: Log, disableLogging: boolean, config: FilterMaintenanceConfig, name: string, publishHandler: PublishHandler);
|
|
9
9
|
private onChangeIndicationUpdate;
|
|
10
10
|
private onResetIndication;
|
|
11
11
|
}
|
|
@@ -3,12 +3,12 @@ import { strings } from '../../i18n/i18n.js';
|
|
|
3
3
|
import { AddonType, CharacteristicKey } from '../../model/enums.js';
|
|
4
4
|
import { LogType } from '../../tools/log.js';
|
|
5
5
|
export class FilterMaintenance extends Addon {
|
|
6
|
-
static topicHandlers(Service, Characteristic, accessory,
|
|
7
|
-
const filterMaintenance = Addon.new(Service, Characteristic, accessory, name, config, log, disableLogging, publishHandler, AddonType.FilterMaintenance, FilterMaintenance, ['topicGetFilterChangeIndication']);
|
|
6
|
+
static topicHandlers(Service, Characteristic, log, disableLogging, accessory, parentService, config, name, publishHandler) {
|
|
7
|
+
const filterMaintenance = Addon.new(Service, Characteristic, accessory, parentService, name, config, log, disableLogging, publishHandler, AddonType.FilterMaintenance, FilterMaintenance, ['topicGetFilterChangeIndication']);
|
|
8
8
|
return filterMaintenance?.topicHandlers ?? [];
|
|
9
9
|
}
|
|
10
|
-
constructor(service, Characteristic,
|
|
11
|
-
super(service, Characteristic,
|
|
10
|
+
constructor(service, Characteristic, log, disableLogging, config, name, publishHandler) {
|
|
11
|
+
super(service, Characteristic, log, disableLogging, config, name, publishHandler);
|
|
12
12
|
this.setupCharacteristic(CharacteristicKey.FilterChangeIndication, Characteristic.FilterChangeIndication.FILTER_OK, 'topicGetFilterChangeIndication', this.onChangeIndicationUpdate.bind(this));
|
|
13
13
|
this.setupCharacteristic(CharacteristicKey.FilterLifeLevel, 100, 'topicGetFilterLifeLevel', this.bindOnUpdateNumeric(CharacteristicKey.FilterLifeLevel, strings.filter.level));
|
|
14
14
|
this.setupCharacteristicOnSet(CharacteristicKey.ResetFilterIndication, 'topicResetFilterIndication', this.onResetIndication.bind(this));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/accessory/addons/filter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAInC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,OAAO,EAAO,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAO,iBAAkB,SAAQ,KAA8B;IAEnE,MAAM,CAAC,aAAa,CAClB,OAAoB,EAAE,cAAkC,EAAE,
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/accessory/addons/filter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAInC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,OAAO,EAAO,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAO,iBAAkB,SAAQ,KAA8B;IAEnE,MAAM,CAAC,aAAa,CAClB,OAAoB,EAAE,cAAkC,EAAE,GAAQ,EAAE,cAAuB,EAAE,SAA4B,EACzH,aAAsB,EAAE,MAA+B,EAAE,IAAY,EAAE,cAA8B;QAErG,MAAM,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,cAAc,EACtI,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,CAAC,gCAAgC,CAAC,CAAC,CAAC;QACtF,OAAO,iBAAiB,EAAE,aAAa,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,YACE,OAAgB,EAAE,cAAkC,EAAE,GAAQ,EAAE,cAAuB,EACvF,MAA+B,EAAE,IAAY,EAAE,cAA8B;QAE7E,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAElF,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,cAAc,CAAC,sBAAsB,CAAC,SAAS,EAChH,gCAAgC,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9E,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,eAAe,EAAE,GAAG,EAC7D,yBAAyB,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAEhH,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,4BAA4B,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1I,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,KAAa,EAAE,KAAqB;QAEzE,MAAM,UAAU,GAAG,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,UAAU,CAAC,EAAE,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,UAAU,KAAK,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,SAAS,EAAE,CAAC;YACxE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,KAA0B;QAExD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7I,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;CACF"}
|