@uboness/homebridge-mqtt 0.0.1

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.
Files changed (474) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/LICENSE +176 -0
  3. package/README.md +3587 -0
  4. package/config.schema.json +16 -0
  5. package/dist/Availability.d.ts +20 -0
  6. package/dist/Availability.d.ts.map +1 -0
  7. package/dist/Availability.js +69 -0
  8. package/dist/Availability.js.map +1 -0
  9. package/dist/DeviceTemplate.d.ts +34 -0
  10. package/dist/DeviceTemplate.d.ts.map +1 -0
  11. package/dist/DeviceTemplate.js +91 -0
  12. package/dist/DeviceTemplate.js.map +1 -0
  13. package/dist/Logger.d.ts +20 -0
  14. package/dist/Logger.d.ts.map +1 -0
  15. package/dist/Logger.js +33 -0
  16. package/dist/Logger.js.map +1 -0
  17. package/dist/Mqtt.d.ts +44 -0
  18. package/dist/Mqtt.d.ts.map +1 -0
  19. package/dist/Mqtt.js +148 -0
  20. package/dist/Mqtt.js.map +1 -0
  21. package/dist/MqttDevice.d.ts +40 -0
  22. package/dist/MqttDevice.d.ts.map +1 -0
  23. package/dist/MqttDevice.js +48 -0
  24. package/dist/MqttDevice.js.map +1 -0
  25. package/dist/MqttPlatform.d.ts +39 -0
  26. package/dist/MqttPlatform.d.ts.map +1 -0
  27. package/dist/MqttPlatform.js +153 -0
  28. package/dist/MqttPlatform.js.map +1 -0
  29. package/dist/common.d.ts +76 -0
  30. package/dist/common.d.ts.map +1 -0
  31. package/dist/common.js +190 -0
  32. package/dist/common.js.map +1 -0
  33. package/dist/index.d.ts +7 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +7 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/service/AirQualitySensor.d.ts +12 -0
  38. package/dist/service/AirQualitySensor.d.ts.map +1 -0
  39. package/dist/service/AirQualitySensor.js +47 -0
  40. package/dist/service/AirQualitySensor.js.map +1 -0
  41. package/dist/service/Battery.d.ts +12 -0
  42. package/dist/service/Battery.d.ts.map +1 -0
  43. package/dist/service/Battery.js +34 -0
  44. package/dist/service/Battery.js.map +1 -0
  45. package/dist/service/Button.d.ts +12 -0
  46. package/dist/service/Button.d.ts.map +1 -0
  47. package/dist/service/Button.js +27 -0
  48. package/dist/service/Button.js.map +1 -0
  49. package/dist/service/CO2Sensor.d.ts +12 -0
  50. package/dist/service/CO2Sensor.d.ts.map +1 -0
  51. package/dist/service/CO2Sensor.js +34 -0
  52. package/dist/service/CO2Sensor.js.map +1 -0
  53. package/dist/service/COSensor.d.ts +12 -0
  54. package/dist/service/COSensor.d.ts.map +1 -0
  55. package/dist/service/COSensor.js +34 -0
  56. package/dist/service/COSensor.js.map +1 -0
  57. package/dist/service/ContactSensor.d.ts +12 -0
  58. package/dist/service/ContactSensor.d.ts.map +1 -0
  59. package/dist/service/ContactSensor.js +28 -0
  60. package/dist/service/ContactSensor.js.map +1 -0
  61. package/dist/service/Door.d.ts +12 -0
  62. package/dist/service/Door.d.ts.map +1 -0
  63. package/dist/service/Door.js +42 -0
  64. package/dist/service/Door.js.map +1 -0
  65. package/dist/service/Doorbell.d.ts +12 -0
  66. package/dist/service/Doorbell.d.ts.map +1 -0
  67. package/dist/service/Doorbell.js +33 -0
  68. package/dist/service/Doorbell.js.map +1 -0
  69. package/dist/service/Fan.d.ts +16 -0
  70. package/dist/service/Fan.d.ts.map +1 -0
  71. package/dist/service/Fan.js +48 -0
  72. package/dist/service/Fan.js.map +1 -0
  73. package/dist/service/HumidifierDehumidifier.d.ts +16 -0
  74. package/dist/service/HumidifierDehumidifier.d.ts.map +1 -0
  75. package/dist/service/HumidifierDehumidifier.js +66 -0
  76. package/dist/service/HumidifierDehumidifier.js.map +1 -0
  77. package/dist/service/HumiditySensor.d.ts +12 -0
  78. package/dist/service/HumiditySensor.d.ts.map +1 -0
  79. package/dist/service/HumiditySensor.js +28 -0
  80. package/dist/service/HumiditySensor.js.map +1 -0
  81. package/dist/service/LeakSensor.d.ts +12 -0
  82. package/dist/service/LeakSensor.d.ts.map +1 -0
  83. package/dist/service/LeakSensor.js +28 -0
  84. package/dist/service/LeakSensor.js.map +1 -0
  85. package/dist/service/LightSensor.d.ts +12 -0
  86. package/dist/service/LightSensor.d.ts.map +1 -0
  87. package/dist/service/LightSensor.js +28 -0
  88. package/dist/service/LightSensor.js.map +1 -0
  89. package/dist/service/Lightbulb.d.ts +12 -0
  90. package/dist/service/Lightbulb.d.ts.map +1 -0
  91. package/dist/service/Lightbulb.js +39 -0
  92. package/dist/service/Lightbulb.js.map +1 -0
  93. package/dist/service/LockMechanism.d.ts +16 -0
  94. package/dist/service/LockMechanism.d.ts.map +1 -0
  95. package/dist/service/LockMechanism.js +42 -0
  96. package/dist/service/LockMechanism.js.map +1 -0
  97. package/dist/service/Microphone.d.ts +12 -0
  98. package/dist/service/Microphone.d.ts.map +1 -0
  99. package/dist/service/Microphone.js +30 -0
  100. package/dist/service/Microphone.js.map +1 -0
  101. package/dist/service/MotionSensor.d.ts +12 -0
  102. package/dist/service/MotionSensor.d.ts.map +1 -0
  103. package/dist/service/MotionSensor.js +28 -0
  104. package/dist/service/MotionSensor.js.map +1 -0
  105. package/dist/service/MqttService.d.ts +24 -0
  106. package/dist/service/MqttService.d.ts.map +1 -0
  107. package/dist/service/MqttService.js +3 -0
  108. package/dist/service/MqttService.js.map +1 -0
  109. package/dist/service/OccupancySensor.d.ts +12 -0
  110. package/dist/service/OccupancySensor.d.ts.map +1 -0
  111. package/dist/service/OccupancySensor.js +28 -0
  112. package/dist/service/OccupancySensor.js.map +1 -0
  113. package/dist/service/Outlet.d.ts +12 -0
  114. package/dist/service/Outlet.d.ts.map +1 -0
  115. package/dist/service/Outlet.js +33 -0
  116. package/dist/service/Outlet.js.map +1 -0
  117. package/dist/service/SecuritySystem.d.ts +16 -0
  118. package/dist/service/SecuritySystem.d.ts.map +1 -0
  119. package/dist/service/SecuritySystem.js +47 -0
  120. package/dist/service/SecuritySystem.js.map +1 -0
  121. package/dist/service/SmokeSensor.d.ts +12 -0
  122. package/dist/service/SmokeSensor.d.ts.map +1 -0
  123. package/dist/service/SmokeSensor.js +28 -0
  124. package/dist/service/SmokeSensor.js.map +1 -0
  125. package/dist/service/Speaker.d.ts +12 -0
  126. package/dist/service/Speaker.d.ts.map +1 -0
  127. package/dist/service/Speaker.js +30 -0
  128. package/dist/service/Speaker.js.map +1 -0
  129. package/dist/service/Switch.d.ts +12 -0
  130. package/dist/service/Switch.d.ts.map +1 -0
  131. package/dist/service/Switch.js +27 -0
  132. package/dist/service/Switch.js.map +1 -0
  133. package/dist/service/TemperatureSensor.d.ts +12 -0
  134. package/dist/service/TemperatureSensor.d.ts.map +1 -0
  135. package/dist/service/TemperatureSensor.js +28 -0
  136. package/dist/service/TemperatureSensor.js.map +1 -0
  137. package/dist/service/Thermostat.d.ts +18 -0
  138. package/dist/service/Thermostat.d.ts.map +1 -0
  139. package/dist/service/Thermostat.js +105 -0
  140. package/dist/service/Thermostat.js.map +1 -0
  141. package/dist/service/Window.d.ts +12 -0
  142. package/dist/service/Window.d.ts.map +1 -0
  143. package/dist/service/Window.js +42 -0
  144. package/dist/service/Window.js.map +1 -0
  145. package/dist/service/WindowCovering.d.ts +13 -0
  146. package/dist/service/WindowCovering.d.ts.map +1 -0
  147. package/dist/service/WindowCovering.js +98 -0
  148. package/dist/service/WindowCovering.js.map +1 -0
  149. package/dist/service/characteristic/active.d.ts +6 -0
  150. package/dist/service/characteristic/active.d.ts.map +1 -0
  151. package/dist/service/characteristic/active.js +6 -0
  152. package/dist/service/characteristic/active.js.map +1 -0
  153. package/dist/service/characteristic/airQuality.d.ts +8 -0
  154. package/dist/service/characteristic/airQuality.d.ts.map +1 -0
  155. package/dist/service/characteristic/airQuality.js +14 -0
  156. package/dist/service/characteristic/airQuality.js.map +1 -0
  157. package/dist/service/characteristic/archetype/BooleanValue.d.ts +19 -0
  158. package/dist/service/characteristic/archetype/BooleanValue.d.ts.map +1 -0
  159. package/dist/service/characteristic/archetype/BooleanValue.js +54 -0
  160. package/dist/service/characteristic/archetype/BooleanValue.js.map +1 -0
  161. package/dist/service/characteristic/archetype/Converter.d.ts +44 -0
  162. package/dist/service/characteristic/archetype/Converter.d.ts.map +1 -0
  163. package/dist/service/characteristic/archetype/Converter.js +122 -0
  164. package/dist/service/characteristic/archetype/Converter.js.map +1 -0
  165. package/dist/service/characteristic/archetype/EnumValue.d.ts +19 -0
  166. package/dist/service/characteristic/archetype/EnumValue.d.ts.map +1 -0
  167. package/dist/service/characteristic/archetype/EnumValue.js +81 -0
  168. package/dist/service/characteristic/archetype/EnumValue.js.map +1 -0
  169. package/dist/service/characteristic/archetype/NumericValue.d.ts +51 -0
  170. package/dist/service/characteristic/archetype/NumericValue.d.ts.map +1 -0
  171. package/dist/service/characteristic/archetype/NumericValue.js +120 -0
  172. package/dist/service/characteristic/archetype/NumericValue.js.map +1 -0
  173. package/dist/service/characteristic/archetype/OneZeroValue.d.ts +19 -0
  174. package/dist/service/characteristic/archetype/OneZeroValue.d.ts.map +1 -0
  175. package/dist/service/characteristic/archetype/OneZeroValue.js +55 -0
  176. package/dist/service/characteristic/archetype/OneZeroValue.js.map +1 -0
  177. package/dist/service/characteristic/archetype/common.d.ts +21 -0
  178. package/dist/service/characteristic/archetype/common.d.ts.map +1 -0
  179. package/dist/service/characteristic/archetype/common.js +48 -0
  180. package/dist/service/characteristic/archetype/common.js.map +1 -0
  181. package/dist/service/characteristic/archetype/index.d.ts +7 -0
  182. package/dist/service/characteristic/archetype/index.d.ts.map +1 -0
  183. package/dist/service/characteristic/archetype/index.js +23 -0
  184. package/dist/service/characteristic/archetype/index.js.map +1 -0
  185. package/dist/service/characteristic/batteryLevel.d.ts +6 -0
  186. package/dist/service/characteristic/batteryLevel.d.ts.map +1 -0
  187. package/dist/service/characteristic/batteryLevel.js +6 -0
  188. package/dist/service/characteristic/batteryLevel.js.map +1 -0
  189. package/dist/service/characteristic/brightness.d.ts +6 -0
  190. package/dist/service/characteristic/brightness.d.ts.map +1 -0
  191. package/dist/service/characteristic/brightness.js +6 -0
  192. package/dist/service/characteristic/brightness.js.map +1 -0
  193. package/dist/service/characteristic/carbonDioxideDetected.d.ts +6 -0
  194. package/dist/service/characteristic/carbonDioxideDetected.d.ts.map +1 -0
  195. package/dist/service/characteristic/carbonDioxideDetected.js +6 -0
  196. package/dist/service/characteristic/carbonDioxideDetected.js.map +1 -0
  197. package/dist/service/characteristic/carbonDioxideLevel.d.ts +6 -0
  198. package/dist/service/characteristic/carbonDioxideLevel.d.ts.map +1 -0
  199. package/dist/service/characteristic/carbonDioxideLevel.js +6 -0
  200. package/dist/service/characteristic/carbonDioxideLevel.js.map +1 -0
  201. package/dist/service/characteristic/carbonDioxidePeakLevel.d.ts +6 -0
  202. package/dist/service/characteristic/carbonDioxidePeakLevel.d.ts.map +1 -0
  203. package/dist/service/characteristic/carbonDioxidePeakLevel.js +6 -0
  204. package/dist/service/characteristic/carbonDioxidePeakLevel.js.map +1 -0
  205. package/dist/service/characteristic/carbonMonoxideDetected.d.ts +6 -0
  206. package/dist/service/characteristic/carbonMonoxideDetected.d.ts.map +1 -0
  207. package/dist/service/characteristic/carbonMonoxideDetected.js +6 -0
  208. package/dist/service/characteristic/carbonMonoxideDetected.js.map +1 -0
  209. package/dist/service/characteristic/carbonMonoxideLevel.d.ts +6 -0
  210. package/dist/service/characteristic/carbonMonoxideLevel.d.ts.map +1 -0
  211. package/dist/service/characteristic/carbonMonoxideLevel.js +6 -0
  212. package/dist/service/characteristic/carbonMonoxideLevel.js.map +1 -0
  213. package/dist/service/characteristic/carbonMonoxidePeakLevel.d.ts +6 -0
  214. package/dist/service/characteristic/carbonMonoxidePeakLevel.d.ts.map +1 -0
  215. package/dist/service/characteristic/carbonMonoxidePeakLevel.js +6 -0
  216. package/dist/service/characteristic/carbonMonoxidePeakLevel.js.map +1 -0
  217. package/dist/service/characteristic/chargingState.d.ts +9 -0
  218. package/dist/service/characteristic/chargingState.d.ts.map +1 -0
  219. package/dist/service/characteristic/chargingState.js +12 -0
  220. package/dist/service/characteristic/chargingState.js.map +1 -0
  221. package/dist/service/characteristic/colorTemperature.d.ts +10 -0
  222. package/dist/service/characteristic/colorTemperature.d.ts.map +1 -0
  223. package/dist/service/characteristic/colorTemperature.js +8 -0
  224. package/dist/service/characteristic/colorTemperature.js.map +1 -0
  225. package/dist/service/characteristic/contactSensorState.d.ts +6 -0
  226. package/dist/service/characteristic/contactSensorState.d.ts.map +1 -0
  227. package/dist/service/characteristic/contactSensorState.js +6 -0
  228. package/dist/service/characteristic/contactSensorState.js.map +1 -0
  229. package/dist/service/characteristic/coolingThresholdTemperature.d.ts +13 -0
  230. package/dist/service/characteristic/coolingThresholdTemperature.d.ts.map +1 -0
  231. package/dist/service/characteristic/coolingThresholdTemperature.js +16 -0
  232. package/dist/service/characteristic/coolingThresholdTemperature.js.map +1 -0
  233. package/dist/service/characteristic/currentAmbientLightLevel.d.ts +10 -0
  234. package/dist/service/characteristic/currentAmbientLightLevel.d.ts.map +1 -0
  235. package/dist/service/characteristic/currentAmbientLightLevel.js +8 -0
  236. package/dist/service/characteristic/currentAmbientLightLevel.js.map +1 -0
  237. package/dist/service/characteristic/currentFanState.d.ts +8 -0
  238. package/dist/service/characteristic/currentFanState.d.ts.map +1 -0
  239. package/dist/service/characteristic/currentFanState.js +11 -0
  240. package/dist/service/characteristic/currentFanState.js.map +1 -0
  241. package/dist/service/characteristic/currentHeatingCoolingState.d.ts +8 -0
  242. package/dist/service/characteristic/currentHeatingCoolingState.d.ts.map +1 -0
  243. package/dist/service/characteristic/currentHeatingCoolingState.js +11 -0
  244. package/dist/service/characteristic/currentHeatingCoolingState.js.map +1 -0
  245. package/dist/service/characteristic/currentHorizontalTiltAngle.d.ts +6 -0
  246. package/dist/service/characteristic/currentHorizontalTiltAngle.d.ts.map +1 -0
  247. package/dist/service/characteristic/currentHorizontalTiltAngle.js +6 -0
  248. package/dist/service/characteristic/currentHorizontalTiltAngle.js.map +1 -0
  249. package/dist/service/characteristic/currentHumidifierDehumidifierState.d.ts +8 -0
  250. package/dist/service/characteristic/currentHumidifierDehumidifierState.d.ts.map +1 -0
  251. package/dist/service/characteristic/currentHumidifierDehumidifierState.js +12 -0
  252. package/dist/service/characteristic/currentHumidifierDehumidifierState.js.map +1 -0
  253. package/dist/service/characteristic/currentPosition.d.ts +6 -0
  254. package/dist/service/characteristic/currentPosition.d.ts.map +1 -0
  255. package/dist/service/characteristic/currentPosition.js +6 -0
  256. package/dist/service/characteristic/currentPosition.js.map +1 -0
  257. package/dist/service/characteristic/currentRelativeHumidity.d.ts +6 -0
  258. package/dist/service/characteristic/currentRelativeHumidity.d.ts.map +1 -0
  259. package/dist/service/characteristic/currentRelativeHumidity.js +6 -0
  260. package/dist/service/characteristic/currentRelativeHumidity.js.map +1 -0
  261. package/dist/service/characteristic/currentTemperature.d.ts +13 -0
  262. package/dist/service/characteristic/currentTemperature.d.ts.map +1 -0
  263. package/dist/service/characteristic/currentTemperature.js +16 -0
  264. package/dist/service/characteristic/currentTemperature.js.map +1 -0
  265. package/dist/service/characteristic/currentVerticalTiltAngle.d.ts +6 -0
  266. package/dist/service/characteristic/currentVerticalTiltAngle.d.ts.map +1 -0
  267. package/dist/service/characteristic/currentVerticalTiltAngle.js +6 -0
  268. package/dist/service/characteristic/currentVerticalTiltAngle.js.map +1 -0
  269. package/dist/service/characteristic/faultMessage.d.ts +12 -0
  270. package/dist/service/characteristic/faultMessage.d.ts.map +1 -0
  271. package/dist/service/characteristic/faultMessage.js +26 -0
  272. package/dist/service/characteristic/faultMessage.js.map +1 -0
  273. package/dist/service/characteristic/heatingThresholdTemperature.d.ts +13 -0
  274. package/dist/service/characteristic/heatingThresholdTemperature.d.ts.map +1 -0
  275. package/dist/service/characteristic/heatingThresholdTemperature.js +16 -0
  276. package/dist/service/characteristic/heatingThresholdTemperature.js.map +1 -0
  277. package/dist/service/characteristic/holdPosition.d.ts +10 -0
  278. package/dist/service/characteristic/holdPosition.d.ts.map +1 -0
  279. package/dist/service/characteristic/holdPosition.js +20 -0
  280. package/dist/service/characteristic/holdPosition.js.map +1 -0
  281. package/dist/service/characteristic/hue.d.ts +10 -0
  282. package/dist/service/characteristic/hue.d.ts.map +1 -0
  283. package/dist/service/characteristic/hue.js +8 -0
  284. package/dist/service/characteristic/hue.js.map +1 -0
  285. package/dist/service/characteristic/index.d.ts +78 -0
  286. package/dist/service/characteristic/index.d.ts.map +1 -0
  287. package/dist/service/characteristic/index.js +90 -0
  288. package/dist/service/characteristic/index.js.map +1 -0
  289. package/dist/service/characteristic/leakDetected.d.ts +6 -0
  290. package/dist/service/characteristic/leakDetected.d.ts.map +1 -0
  291. package/dist/service/characteristic/leakDetected.js +6 -0
  292. package/dist/service/characteristic/leakDetected.js.map +1 -0
  293. package/dist/service/characteristic/lockCurrentState.d.ts +8 -0
  294. package/dist/service/characteristic/lockCurrentState.d.ts.map +1 -0
  295. package/dist/service/characteristic/lockCurrentState.js +12 -0
  296. package/dist/service/characteristic/lockCurrentState.js.map +1 -0
  297. package/dist/service/characteristic/lockPhysicalControls.d.ts +6 -0
  298. package/dist/service/characteristic/lockPhysicalControls.d.ts.map +1 -0
  299. package/dist/service/characteristic/lockPhysicalControls.js +6 -0
  300. package/dist/service/characteristic/lockPhysicalControls.js.map +1 -0
  301. package/dist/service/characteristic/lockTargetState.d.ts +6 -0
  302. package/dist/service/characteristic/lockTargetState.d.ts.map +1 -0
  303. package/dist/service/characteristic/lockTargetState.js +9 -0
  304. package/dist/service/characteristic/lockTargetState.js.map +1 -0
  305. package/dist/service/characteristic/motionDetected.d.ts +6 -0
  306. package/dist/service/characteristic/motionDetected.d.ts.map +1 -0
  307. package/dist/service/characteristic/motionDetected.js +6 -0
  308. package/dist/service/characteristic/motionDetected.js.map +1 -0
  309. package/dist/service/characteristic/mqttOnline.d.ts +4 -0
  310. package/dist/service/characteristic/mqttOnline.d.ts.map +1 -0
  311. package/dist/service/characteristic/mqttOnline.js +15 -0
  312. package/dist/service/characteristic/mqttOnline.js.map +1 -0
  313. package/dist/service/characteristic/mute.d.ts +6 -0
  314. package/dist/service/characteristic/mute.d.ts.map +1 -0
  315. package/dist/service/characteristic/mute.js +6 -0
  316. package/dist/service/characteristic/mute.js.map +1 -0
  317. package/dist/service/characteristic/no2Density.d.ts +6 -0
  318. package/dist/service/characteristic/no2Density.d.ts.map +1 -0
  319. package/dist/service/characteristic/no2Density.js +6 -0
  320. package/dist/service/characteristic/no2Density.js.map +1 -0
  321. package/dist/service/characteristic/obstructionDetected.d.ts +6 -0
  322. package/dist/service/characteristic/obstructionDetected.d.ts.map +1 -0
  323. package/dist/service/characteristic/obstructionDetected.js +6 -0
  324. package/dist/service/characteristic/obstructionDetected.js.map +1 -0
  325. package/dist/service/characteristic/occupancyDetected.d.ts +6 -0
  326. package/dist/service/characteristic/occupancyDetected.d.ts.map +1 -0
  327. package/dist/service/characteristic/occupancyDetected.js +6 -0
  328. package/dist/service/characteristic/occupancyDetected.js.map +1 -0
  329. package/dist/service/characteristic/on.d.ts +6 -0
  330. package/dist/service/characteristic/on.d.ts.map +1 -0
  331. package/dist/service/characteristic/on.js +6 -0
  332. package/dist/service/characteristic/on.js.map +1 -0
  333. package/dist/service/characteristic/outletInUse.d.ts +6 -0
  334. package/dist/service/characteristic/outletInUse.d.ts.map +1 -0
  335. package/dist/service/characteristic/outletInUse.js +6 -0
  336. package/dist/service/characteristic/outletInUse.js.map +1 -0
  337. package/dist/service/characteristic/ozoneDensity.d.ts +6 -0
  338. package/dist/service/characteristic/ozoneDensity.d.ts.map +1 -0
  339. package/dist/service/characteristic/ozoneDensity.js +6 -0
  340. package/dist/service/characteristic/ozoneDensity.js.map +1 -0
  341. package/dist/service/characteristic/pm10Density.d.ts +6 -0
  342. package/dist/service/characteristic/pm10Density.d.ts.map +1 -0
  343. package/dist/service/characteristic/pm10Density.js +6 -0
  344. package/dist/service/characteristic/pm10Density.js.map +1 -0
  345. package/dist/service/characteristic/pm25Density.d.ts +6 -0
  346. package/dist/service/characteristic/pm25Density.d.ts.map +1 -0
  347. package/dist/service/characteristic/pm25Density.js +6 -0
  348. package/dist/service/characteristic/pm25Density.js.map +1 -0
  349. package/dist/service/characteristic/positionState.d.ts +8 -0
  350. package/dist/service/characteristic/positionState.d.ts.map +1 -0
  351. package/dist/service/characteristic/positionState.js +11 -0
  352. package/dist/service/characteristic/positionState.js.map +1 -0
  353. package/dist/service/characteristic/programmableSwitchEvent.d.ts +14 -0
  354. package/dist/service/characteristic/programmableSwitchEvent.d.ts.map +1 -0
  355. package/dist/service/characteristic/programmableSwitchEvent.js +39 -0
  356. package/dist/service/characteristic/programmableSwitchEvent.js.map +1 -0
  357. package/dist/service/characteristic/relativeHumidityDehumidifierThreshold.d.ts +6 -0
  358. package/dist/service/characteristic/relativeHumidityDehumidifierThreshold.d.ts.map +1 -0
  359. package/dist/service/characteristic/relativeHumidityDehumidifierThreshold.js +6 -0
  360. package/dist/service/characteristic/relativeHumidityDehumidifierThreshold.js.map +1 -0
  361. package/dist/service/characteristic/relativeHumidityHumidifierThreshold.d.ts +6 -0
  362. package/dist/service/characteristic/relativeHumidityHumidifierThreshold.d.ts.map +1 -0
  363. package/dist/service/characteristic/relativeHumidityHumidifierThreshold.js +6 -0
  364. package/dist/service/characteristic/relativeHumidityHumidifierThreshold.js.map +1 -0
  365. package/dist/service/characteristic/rotationDirection.d.ts +6 -0
  366. package/dist/service/characteristic/rotationDirection.d.ts.map +1 -0
  367. package/dist/service/characteristic/rotationDirection.js +9 -0
  368. package/dist/service/characteristic/rotationDirection.js.map +1 -0
  369. package/dist/service/characteristic/rotationSpeed.d.ts +23 -0
  370. package/dist/service/characteristic/rotationSpeed.d.ts.map +1 -0
  371. package/dist/service/characteristic/rotationSpeed.js +88 -0
  372. package/dist/service/characteristic/rotationSpeed.js.map +1 -0
  373. package/dist/service/characteristic/saturation.d.ts +6 -0
  374. package/dist/service/characteristic/saturation.d.ts.map +1 -0
  375. package/dist/service/characteristic/saturation.js +6 -0
  376. package/dist/service/characteristic/saturation.js.map +1 -0
  377. package/dist/service/characteristic/securitySystemAlarmType.d.ts +20 -0
  378. package/dist/service/characteristic/securitySystemAlarmType.d.ts.map +1 -0
  379. package/dist/service/characteristic/securitySystemAlarmType.js +26 -0
  380. package/dist/service/characteristic/securitySystemAlarmType.js.map +1 -0
  381. package/dist/service/characteristic/securitySystemCurrentState.d.ts +8 -0
  382. package/dist/service/characteristic/securitySystemCurrentState.d.ts.map +1 -0
  383. package/dist/service/characteristic/securitySystemCurrentState.js +13 -0
  384. package/dist/service/characteristic/securitySystemCurrentState.js.map +1 -0
  385. package/dist/service/characteristic/securitySystemTargetState.d.ts +8 -0
  386. package/dist/service/characteristic/securitySystemTargetState.d.ts.map +1 -0
  387. package/dist/service/characteristic/securitySystemTargetState.js +12 -0
  388. package/dist/service/characteristic/securitySystemTargetState.js.map +1 -0
  389. package/dist/service/characteristic/smokeDetected.d.ts +6 -0
  390. package/dist/service/characteristic/smokeDetected.d.ts.map +1 -0
  391. package/dist/service/characteristic/smokeDetected.js +6 -0
  392. package/dist/service/characteristic/smokeDetected.js.map +1 -0
  393. package/dist/service/characteristic/so2Density.d.ts +6 -0
  394. package/dist/service/characteristic/so2Density.d.ts.map +1 -0
  395. package/dist/service/characteristic/so2Density.js +6 -0
  396. package/dist/service/characteristic/so2Density.js.map +1 -0
  397. package/dist/service/characteristic/statusFault.d.ts +6 -0
  398. package/dist/service/characteristic/statusFault.d.ts.map +1 -0
  399. package/dist/service/characteristic/statusFault.js +6 -0
  400. package/dist/service/characteristic/statusFault.js.map +1 -0
  401. package/dist/service/characteristic/statusLowBattery.d.ts +6 -0
  402. package/dist/service/characteristic/statusLowBattery.d.ts.map +1 -0
  403. package/dist/service/characteristic/statusLowBattery.js +6 -0
  404. package/dist/service/characteristic/statusLowBattery.js.map +1 -0
  405. package/dist/service/characteristic/statusTampered.d.ts +6 -0
  406. package/dist/service/characteristic/statusTampered.d.ts.map +1 -0
  407. package/dist/service/characteristic/statusTampered.js +6 -0
  408. package/dist/service/characteristic/statusTampered.js.map +1 -0
  409. package/dist/service/characteristic/swingMode.d.ts +6 -0
  410. package/dist/service/characteristic/swingMode.d.ts.map +1 -0
  411. package/dist/service/characteristic/swingMode.js +6 -0
  412. package/dist/service/characteristic/swingMode.js.map +1 -0
  413. package/dist/service/characteristic/targetFanState.d.ts +6 -0
  414. package/dist/service/characteristic/targetFanState.d.ts.map +1 -0
  415. package/dist/service/characteristic/targetFanState.js +9 -0
  416. package/dist/service/characteristic/targetFanState.js.map +1 -0
  417. package/dist/service/characteristic/targetHeatingCoolingState.d.ts +8 -0
  418. package/dist/service/characteristic/targetHeatingCoolingState.d.ts.map +1 -0
  419. package/dist/service/characteristic/targetHeatingCoolingState.js +12 -0
  420. package/dist/service/characteristic/targetHeatingCoolingState.js.map +1 -0
  421. package/dist/service/characteristic/targetHorizontalTiltAngle.d.ts +6 -0
  422. package/dist/service/characteristic/targetHorizontalTiltAngle.d.ts.map +1 -0
  423. package/dist/service/characteristic/targetHorizontalTiltAngle.js +6 -0
  424. package/dist/service/characteristic/targetHorizontalTiltAngle.js.map +1 -0
  425. package/dist/service/characteristic/targetHumidifierDehumidifierState.d.ts +8 -0
  426. package/dist/service/characteristic/targetHumidifierDehumidifierState.d.ts.map +1 -0
  427. package/dist/service/characteristic/targetHumidifierDehumidifierState.js +11 -0
  428. package/dist/service/characteristic/targetHumidifierDehumidifierState.js.map +1 -0
  429. package/dist/service/characteristic/targetPosition.d.ts +6 -0
  430. package/dist/service/characteristic/targetPosition.d.ts.map +1 -0
  431. package/dist/service/characteristic/targetPosition.js +6 -0
  432. package/dist/service/characteristic/targetPosition.js.map +1 -0
  433. package/dist/service/characteristic/targetRelativeHumidity.d.ts +6 -0
  434. package/dist/service/characteristic/targetRelativeHumidity.d.ts.map +1 -0
  435. package/dist/service/characteristic/targetRelativeHumidity.js +6 -0
  436. package/dist/service/characteristic/targetRelativeHumidity.js.map +1 -0
  437. package/dist/service/characteristic/targetTemerature.d.ts +13 -0
  438. package/dist/service/characteristic/targetTemerature.d.ts.map +1 -0
  439. package/dist/service/characteristic/targetTemerature.js +16 -0
  440. package/dist/service/characteristic/targetTemerature.js.map +1 -0
  441. package/dist/service/characteristic/targetVerticalTiltAngle.d.ts +6 -0
  442. package/dist/service/characteristic/targetVerticalTiltAngle.d.ts.map +1 -0
  443. package/dist/service/characteristic/targetVerticalTiltAngle.js +6 -0
  444. package/dist/service/characteristic/targetVerticalTiltAngle.js.map +1 -0
  445. package/dist/service/characteristic/temperatureDisplayUnits.d.ts +6 -0
  446. package/dist/service/characteristic/temperatureDisplayUnits.d.ts.map +1 -0
  447. package/dist/service/characteristic/temperatureDisplayUnits.js +9 -0
  448. package/dist/service/characteristic/temperatureDisplayUnits.js.map +1 -0
  449. package/dist/service/characteristic/vocDensity.d.ts +6 -0
  450. package/dist/service/characteristic/vocDensity.d.ts.map +1 -0
  451. package/dist/service/characteristic/vocDensity.js +6 -0
  452. package/dist/service/characteristic/vocDensity.js.map +1 -0
  453. package/dist/service/characteristic/volume.d.ts +6 -0
  454. package/dist/service/characteristic/volume.d.ts.map +1 -0
  455. package/dist/service/characteristic/volume.js +6 -0
  456. package/dist/service/characteristic/volume.js.map +1 -0
  457. package/dist/service/characteristic/waterLevel.d.ts +6 -0
  458. package/dist/service/characteristic/waterLevel.d.ts.map +1 -0
  459. package/dist/service/characteristic/waterLevel.js +6 -0
  460. package/dist/service/characteristic/waterLevel.js.map +1 -0
  461. package/dist/service/index.d.ts +4 -0
  462. package/dist/service/index.d.ts.map +1 -0
  463. package/dist/service/index.js +75 -0
  464. package/dist/service/index.js.map +1 -0
  465. package/dist/service/until.d.ts +36 -0
  466. package/dist/service/until.d.ts.map +1 -0
  467. package/dist/service/until.js +83 -0
  468. package/dist/service/until.js.map +1 -0
  469. package/dist/settings.d.ts +9 -0
  470. package/dist/settings.d.ts.map +1 -0
  471. package/dist/settings.js +12 -0
  472. package/dist/settings.js.map +1 -0
  473. package/package.json +63 -0
  474. package/tsconfig.json +26 -0
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BooleanValue = void 0;
4
+ const Converter_js_1 = require("./Converter.js");
5
+ const common_js_1 = require("./common.js");
6
+ var BooleanValue;
7
+ (function (BooleanValue) {
8
+ BooleanValue.readOnly = (name, charTypeFactory, options) => configurator(name, charTypeFactory, options);
9
+ BooleanValue.readWrite = (name, charTypeFactory, options) => configurator(name, charTypeFactory, options);
10
+ const isReadWrite = (config) => 'set' in config;
11
+ const configurator = (name, charTypeFactory, options) => {
12
+ var _a, _b;
13
+ const onKey = (_a = options === null || options === void 0 ? void 0 : options.onKey) !== null && _a !== void 0 ? _a : 'on';
14
+ const offKey = (_b = options === null || options === void 0 ? void 0 : options.offKey) !== null && _b !== void 0 ? _b : 'off';
15
+ return async (platform, mqtt, accessory, service, config, ctx) => {
16
+ var _a, _b;
17
+ const [setTopic, setJson, fullSetTopic] = isReadWrite(config) ? (0, common_js_1.parseTopic)(config.set, ctx) : [undefined, undefined];
18
+ const [getTopic, getJson, fullGetTopic] = (0, common_js_1.parseTopic)(config.get, ctx);
19
+ const converter = Converter_js_1.Converter.Boolean.resolve((_a = config.converter) !== null && _a !== void 0 ? _a : 'boolean', onKey, offKey);
20
+ if (!converter) {
21
+ platform.logger.error(`Unknown converter [${JSON.stringify(config.converter)}] set for [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}]`);
22
+ }
23
+ const charType = charTypeFactory(platform);
24
+ const char = ((_b = service.getCharacteristic(charType)) !== null && _b !== void 0 ? _b : service.addCharacteristic(charType));
25
+ if (setTopic) {
26
+ char.onSet((value, ctx) => {
27
+ var _a;
28
+ if (!(ctx === null || ctx === void 0 ? void 0 : ctx.fromMqtt) && converter) {
29
+ const mqttValue = converter.fromHap(value);
30
+ const publishedValue = (_a = setJson === null || setJson === void 0 ? void 0 : setJson.stringify(mqttValue)) !== null && _a !== void 0 ? _a : mqttValue;
31
+ platform.logger.debug(`Publishing [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}] value [${publishedValue}] to topic [${fullSetTopic}]`);
32
+ mqtt.publish(setTopic, publishedValue);
33
+ }
34
+ });
35
+ }
36
+ const detachable = await mqtt.subscribe(getTopic, value => {
37
+ if (converter) {
38
+ const mqttValue = !getJson ? (0, common_js_1.parseMqttValue)(value) : getJson.parse(value);
39
+ const bool = converter.toHap(mqttValue);
40
+ if (bool === null) {
41
+ platform.logger.error(`Cannot update value from topic [${fullGetTopic}] for [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}]. Unknown value [${mqttValue}]`);
42
+ return;
43
+ }
44
+ if (char.value !== bool) {
45
+ platform.logger.debug(`Setting [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}] to [${bool}] from MQTT topic [${fullGetTopic}]`);
46
+ char.setValue(bool, { fromMqtt: true });
47
+ }
48
+ }
49
+ });
50
+ return common_js_1.DetachableCharacteristic.mixin(char, detachable);
51
+ };
52
+ };
53
+ })(BooleanValue = exports.BooleanValue || (exports.BooleanValue = {}));
54
+ //# sourceMappingURL=BooleanValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BooleanValue.js","sourceRoot":"","sources":["../../../../src/service/characteristic/archetype/BooleanValue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { Optional } from '../../../common.js';
2
+ export type Converter<MQTT, HAP> = {
3
+ toHap: (value: MQTT) => HAP | null;
4
+ fromHap: (value: HAP) => MQTT;
5
+ };
6
+ export declare namespace Converter {
7
+ const Homekit: Converter<any, any>;
8
+ namespace Percent {
9
+ type Type = 'homekit' | 'decimal' | {
10
+ min: number;
11
+ max: number;
12
+ };
13
+ const isScaleType: (type: any) => type is {
14
+ min: number;
15
+ max: number;
16
+ };
17
+ const resolve: (type: Type) => Optional<Converter<number, number>>;
18
+ }
19
+ namespace Hue {
20
+ type Type = 'homekit' | 'percent-integer' | 'percent-decimal';
21
+ const resolve: (type: Type) => Optional<Converter<number, number>>;
22
+ }
23
+ namespace Temperature {
24
+ type Type = 'homekit' | 'celsius' | 'fahrenheit';
25
+ const resolve: (type: Type) => Optional<Converter<number, number>>;
26
+ }
27
+ namespace ColorTemperature {
28
+ type Type = 'homekit' | 'mirek' | 'kelvin';
29
+ const resolve: (type: Type) => Optional<Converter<number, number>>;
30
+ }
31
+ namespace Illuminance {
32
+ type Type = 'lux' | 'homekit' | 'log-scale-lux';
33
+ const resolve: (type: Type) => Optional<Converter<number, number>>;
34
+ }
35
+ namespace Boolean {
36
+ type Type<ON extends string = 'on', OFF extends string = 'off'> = 'one-zero' | 'boolean' | {
37
+ [key in ON]: string;
38
+ } & {
39
+ [key in OFF]: string;
40
+ };
41
+ const resolve: <ON extends string, OFF extends string>(type: Type<ON, OFF>, on: ON, off: OFF) => Optional<Converter<any, boolean>>;
42
+ }
43
+ }
44
+ //# sourceMappingURL=Converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Converter.d.ts","sourceRoot":"","sources":["../../../../src/service/characteristic/archetype/Converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAErF,MAAM,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI;IAC/B,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;CAChC,CAAA;AAED,yBAAiB,SAAS,CAAC;IAEhB,MAAM,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAGvC,CAAA;IAED,UAAiB,OAAO,CAAC;QACrB,KAAY,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACjE,MAAM,WAAW,SAAU,GAAG;iBAAkB,MAAM;iBAAO,MAAM;SAAgE,CAAC;QAWpI,MAAM,OAAO,SAAU,IAAI,KAAG,SAAS,UAAU,MAAM,EAAE,MAAM,CAAC,CAUtE,CAAA;KACJ;IAED,UAAiB,GAAG,CAAC;QACjB,KAAY,IAAI,GAAG,SAAS,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;QAS9D,MAAM,OAAO,SAAU,IAAI,KAAG,SAAS,UAAU,MAAM,EAAE,MAAM,CAAC,CAOtE,CAAA;KACJ;IAED,UAAiB,WAAW,CAAC;QACzB,KAAY,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;QAKjD,MAAM,OAAO,SAAU,IAAI,KAAG,SAAS,UAAU,MAAM,EAAE,MAAM,CAAC,CAOtE,CAAA;KACJ;IAED,UAAiB,gBAAgB,CAAC;QAC9B,KAAY,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;QAK3C,MAAM,OAAO,SAAU,IAAI,KAAG,SAAS,UAAU,MAAM,EAAE,MAAM,CAAC,CAOtE,CAAA;KACJ;IAED,UAAiB,WAAW,CAAC;QACzB,KAAY,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,eAAe,CAAC;QAKhD,MAAM,OAAO,SAAU,IAAI,KAAG,SAAS,UAAU,MAAM,EAAE,MAAM,CAAC,CAOtE,CAAA;KACJ;IAED,UAAiB,OAAO,CAAC;QACrB,KAAY,IAAI,CAAC,EAAE,SAAS,MAAM,GAAG,IAAI,EAAE,GAAG,SAAS,MAAM,GAAG,KAAK,IAAI,UAAU,GAAG,SAAS,GAAG;aAAG,GAAG,IAAI,EAAE,GAAG,MAAM;SAAE,GAAG;aAAG,GAAG,IAAI,GAAG,GAAG,MAAM;SAAE,CAAC;QAK9I,MAAM,OAAO,oFAAmF,SAAS,UAAU,GAAG,EAAE,OAAO,CAAC,CAatI,CAAA;KACJ;CAGJ"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Converter = void 0;
4
+ const common_js_1 = require("../../../common.js");
5
+ var Converter;
6
+ (function (Converter) {
7
+ Converter.Homekit = {
8
+ toHap: (value) => value,
9
+ fromHap: (value) => value
10
+ };
11
+ let Percent;
12
+ (function (Percent) {
13
+ Percent.isScaleType = (type) => (0, common_js_1.isObject)(type) && (0, common_js_1.isNumber)(type.min) && (0, common_js_1.isNumber)(type.max);
14
+ const decimal = {
15
+ toHap: (value) => Math.trunc(value * 100),
16
+ fromHap: (value) => Math.trunc(value) / 100
17
+ };
18
+ const scale = (min, max) => {
19
+ return {
20
+ toHap: (value) => Math.round((value - min) / (max - min) * 100),
21
+ fromHap: (value) => Math.round(min + (value / 100) * (max - min))
22
+ };
23
+ };
24
+ Percent.resolve = (type) => {
25
+ switch (type) {
26
+ case 'homekit': return Converter.Homekit;
27
+ case 'decimal': return decimal;
28
+ default:
29
+ if (Percent.isScaleType(type)) {
30
+ return scale(type.min, type.max);
31
+ }
32
+ return undefined;
33
+ }
34
+ };
35
+ })(Percent = Converter.Percent || (Converter.Percent = {}));
36
+ let Hue;
37
+ (function (Hue) {
38
+ const percentInt = {
39
+ toHap: (value) => Math.trunc(value * 360 / 100),
40
+ fromHap: (value) => Math.trunc(value * 100 / 360)
41
+ };
42
+ const percentDeci = {
43
+ toHap: (value) => Math.trunc(value * 360),
44
+ fromHap: (value) => Math.trunc(value / 360)
45
+ };
46
+ Hue.resolve = (type) => {
47
+ switch (type) {
48
+ case 'homekit': return Converter.Homekit;
49
+ case 'percent-integer': return percentInt;
50
+ case 'percent-decimal': return percentDeci;
51
+ default: return undefined;
52
+ }
53
+ };
54
+ })(Hue = Converter.Hue || (Converter.Hue = {}));
55
+ let Temperature;
56
+ (function (Temperature) {
57
+ const fahrenheit = {
58
+ toHap: (f) => common_js_1.Numbers.roundStep((f - 32) / 1.8, 0.1),
59
+ fromHap: (c) => Math.round(c * 1.8 + 32)
60
+ };
61
+ Temperature.resolve = (type) => {
62
+ switch (type) {
63
+ case 'celsius':
64
+ case 'homekit': return Converter.Homekit;
65
+ case 'fahrenheit': return fahrenheit;
66
+ default: return undefined;
67
+ }
68
+ };
69
+ })(Temperature = Converter.Temperature || (Converter.Temperature = {}));
70
+ let ColorTemperature;
71
+ (function (ColorTemperature) {
72
+ const kelvin = {
73
+ toHap: (kelvin) => Math.round(1000000 / kelvin),
74
+ fromHap: (mirek) => Math.round(1000000 / mirek)
75
+ };
76
+ ColorTemperature.resolve = (type) => {
77
+ switch (type) {
78
+ case 'mirek':
79
+ case 'homekit': return Converter.Homekit;
80
+ case 'kelvin': return kelvin;
81
+ default: return undefined;
82
+ }
83
+ };
84
+ })(ColorTemperature = Converter.ColorTemperature || (Converter.ColorTemperature = {}));
85
+ let Illuminance;
86
+ (function (Illuminance) {
87
+ const logScale = {
88
+ toHap: (logscale) => Math.pow(((logscale - 1) / 10000), 10),
89
+ fromHap: (lux) => Math.round(10000 * Math.log10(lux) + 1)
90
+ };
91
+ Illuminance.resolve = (type) => {
92
+ switch (type) {
93
+ case 'lux':
94
+ case 'homekit': return Converter.Homekit;
95
+ case 'log-scale-lux': return logScale;
96
+ default: return undefined;
97
+ }
98
+ };
99
+ })(Illuminance = Converter.Illuminance || (Converter.Illuminance = {}));
100
+ let Boolean;
101
+ (function (Boolean) {
102
+ const oneZero = {
103
+ toHap: (value) => value === 1 ? true : value === 0 ? false : null,
104
+ fromHap: (value) => value ? 1 : 0
105
+ };
106
+ Boolean.resolve = (type, on, off) => {
107
+ switch (type) {
108
+ case 'one-zero': return oneZero;
109
+ case 'boolean': return Converter.Homekit;
110
+ default:
111
+ if ((0, common_js_1.isString)(type) || !(0, common_js_1.isString)(type[on]) || !(0, common_js_1.isString)(type[off])) {
112
+ return undefined;
113
+ }
114
+ return {
115
+ toHap: (value) => `${value}` === `${type[on]}` ? true : `${value}` === `${type[off]}` ? false : null,
116
+ fromHap: (value) => value ? type[on] : type[off]
117
+ };
118
+ }
119
+ };
120
+ })(Boolean = Converter.Boolean || (Converter.Boolean = {}));
121
+ })(Converter = exports.Converter || (exports.Converter = {}));
122
+ //# sourceMappingURL=Converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Converter.js","sourceRoot":"","sources":["../../../../src/service/characteristic/archetype/Converter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { MqttPlatform } from '../../../MqttPlatform.js';
2
+ import { CharacteristicConfigurator } from '../index.js';
3
+ import { CharTypeFactory } from './common.js';
4
+ export declare namespace EnumValue {
5
+ type ValuesResolver = (platform: MqttPlatform) => Record<string, number>;
6
+ type ReadOnlyConfig<VR extends ValuesResolver> = {
7
+ get: string;
8
+ converter?: 'homekit' | Partial<{
9
+ [key in keyof ReturnType<VR>]: string | string[];
10
+ }>;
11
+ validValues?: string[];
12
+ };
13
+ type ReadWriteConfig<VR extends ValuesResolver> = ReadOnlyConfig<VR> & {
14
+ set: string;
15
+ };
16
+ const readOnly: <VR extends ValuesResolver, C extends ReadOnlyConfig<VR> = ReadOnlyConfig<VR>>(name: string, valuesResolver: VR, charTypeFactory: CharTypeFactory) => CharacteristicConfigurator<C>;
17
+ const readWrite: <VR extends ValuesResolver, C extends ReadWriteConfig<VR> = ReadWriteConfig<VR>>(name: string, valuesResolver: VR, charTypeFactory: CharTypeFactory) => CharacteristicConfigurator<C>;
18
+ }
19
+ //# sourceMappingURL=EnumValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnumValue.d.ts","sourceRoot":"","sources":["../../../../src/service/characteristic/archetype/EnumValue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,eAAe,EAAwD,MAAM,aAAa,CAAC;AAEpG,yBAAiB,SAAS,CAAC;IAEvB,KAAY,cAAc,GAAG,CAAC,QAAQ,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhF,KAAY,cAAc,CAAC,EAAE,SAAS,cAAc,IAAI;QACpD,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;aAAG,GAAG,IAAI,MAAM,UAAU,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE;SAAE,CAAC,CAAC;QACtF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;KACzB,CAAA;IAED,KAAY,eAAe,CAAC,EAAE,SAAS,cAAc,IAAI,cAAc,CAAC,EAAE,CAAC,GAAG;QAC1E,GAAG,EAAE,MAAM,CAAA;KACd,CAAA;IAGM,MAAM,QAAQ,uFAAwF,MAAM,uCAAuC,eAAe,kCAC3G,CAAC;IAExD,MAAM,SAAS,yFAA0F,MAAM,uCAAuC,eAAe,kCAC9G,CAAC;CA+ElE"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnumValue = void 0;
4
+ const common_1 = require("../../../common");
5
+ const common_js_1 = require("./common.js");
6
+ var EnumValue;
7
+ (function (EnumValue) {
8
+ EnumValue.readOnly = (name, valuesResolver, charTypeFactory) => configurator(name, valuesResolver, charTypeFactory);
9
+ EnumValue.readWrite = (name, valuesResolver, charTypeFactory) => configurator(name, valuesResolver, charTypeFactory);
10
+ const isReadWrite = (config) => 'set' in config;
11
+ const configurator = (name, valuesResolver, charTypeFactory) => {
12
+ return async (platform, mqtt, accessory, service, config, ctx) => {
13
+ var _a;
14
+ const values = valuesResolver(platform);
15
+ const [setTopic, setJson, fullSetTopic] = isReadWrite(config) ? (0, common_js_1.parseTopic)(config.set, ctx) : [undefined, undefined];
16
+ const [getTopic, getJson, fullGetTopic] = (0, common_js_1.parseTopic)(config.get, ctx);
17
+ const _converter = config.converter === 'homekit' ? undefined : config.converter;
18
+ const mqttToHap = Object.keys(values).reduce((mqttToHap, key) => {
19
+ var _a;
20
+ const k = (_a = _converter === null || _converter === void 0 ? void 0 : _converter[key]) !== null && _a !== void 0 ? _a : `${values[key]}`;
21
+ if ((0, common_1.isArray)(k)) {
22
+ for (const item of k) {
23
+ mqttToHap[item] = values[key];
24
+ }
25
+ }
26
+ else {
27
+ mqttToHap[k] = values[key];
28
+ }
29
+ return mqttToHap;
30
+ }, {});
31
+ const hapToMqtt = Object.keys(mqttToHap).reduce((hapToMqtt, key) => {
32
+ hapToMqtt[mqttToHap[key]] = key;
33
+ return hapToMqtt;
34
+ }, {});
35
+ const charType = charTypeFactory(platform);
36
+ const char = (_a = service.getCharacteristic(charType)) !== null && _a !== void 0 ? _a : service.addCharacteristic(charType);
37
+ if (config.validValues !== undefined) {
38
+ char.setProps({
39
+ ...char.props,
40
+ validValues: config.validValues.map(value => {
41
+ const hapValue = mqttToHap[value];
42
+ if (!hapValue) {
43
+ throw new Error(`Unknown value [${value}] found in 'validValues' set for [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}]`);
44
+ }
45
+ return hapValue;
46
+ })
47
+ });
48
+ }
49
+ if (setTopic) {
50
+ char.onSet((value, ctx) => {
51
+ var _a;
52
+ if (ctx === null || ctx === void 0 ? void 0 : ctx.fromMqtt) {
53
+ return;
54
+ }
55
+ const mqttValue = hapToMqtt[value];
56
+ if (mqttValue !== undefined) {
57
+ platform.logger.error(`Cannot publish [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}] value to topic [${fullSetTopic}]. Unknown HAP value [${value}]`);
58
+ return;
59
+ }
60
+ const publishedValue = (_a = setJson === null || setJson === void 0 ? void 0 : setJson.stringify(mqttValue)) !== null && _a !== void 0 ? _a : mqttValue;
61
+ platform.logger.debug(`Publishing [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}] value [${publishedValue}] to topic [${fullSetTopic}]`);
62
+ mqtt.publish(setTopic, publishedValue);
63
+ });
64
+ }
65
+ const detachable = await mqtt.subscribe(getTopic, value => {
66
+ const mqttValue = !getJson ? (0, common_js_1.parseMqttValue)(value) : getJson.parse(value);
67
+ const hapValue = mqttToHap[`${mqttValue}`];
68
+ if (hapValue === undefined) {
69
+ platform.logger.error(`Cannot update value from topic [${fullGetTopic}] for [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}]. Unknown value [${mqttValue}]`);
70
+ return;
71
+ }
72
+ if (char.value !== hapValue) {
73
+ platform.logger.debug(`Setting [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}] to [${hapValue}] from MQTT topic [${fullGetTopic}]`);
74
+ char.setValue(hapValue, { fromMqtt: true });
75
+ }
76
+ });
77
+ return common_js_1.DetachableCharacteristic.mixin(char, detachable);
78
+ };
79
+ };
80
+ })(EnumValue = exports.EnumValue || (exports.EnumValue = {}));
81
+ //# sourceMappingURL=EnumValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnumValue.js","sourceRoot":"","sources":["../../../../src/service/characteristic/archetype/EnumValue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { CharacteristicProps, PartialAllowingNull } from 'homebridge';
2
+ import { Optional } from '../../../common.js';
3
+ import { CharacteristicConfigurator } from '../index.js';
4
+ import { CharTypeFactory } from './common.js';
5
+ import { Converter } from './Converter.js';
6
+ export declare namespace NumericValue {
7
+ export type ReadOnlyConfig = {
8
+ get: string;
9
+ };
10
+ export type WriteOnlyConfig = {
11
+ set: string;
12
+ };
13
+ export type ReadMaybeWriteConfig = ReadOnlyConfig & Partial<WriteOnlyConfig>;
14
+ export type WriteMaybeReadConfig = WriteOnlyConfig & Partial<ReadOnlyConfig>;
15
+ export type ReadWriteConfig = ReadOnlyConfig & WriteOnlyConfig;
16
+ export type ConverterResolver<C extends Config = Config> = (config: C) => Optional<Converter<number, number>>;
17
+ type Options<C extends Config> = {
18
+ converterResolver?: ConverterResolver<C>;
19
+ props?: (config: C) => PartialAllowingNull<CharacteristicProps>;
20
+ };
21
+ export const readOnly: <C extends ReadOnlyConfig = ReadOnlyConfig>(name: string, charTypeFactory: CharTypeFactory, options?: Options<C> | undefined) => CharacteristicConfigurator<C>;
22
+ export const writeOnly: <C extends WriteOnlyConfig = WriteOnlyConfig>(name: string, charTypeFactory: CharTypeFactory, options?: Options<C> | undefined) => CharacteristicConfigurator<C>;
23
+ export const readMaybeWriteConfig: <C extends ReadMaybeWriteConfig = ReadMaybeWriteConfig>(name: string, charTypeFactory: CharTypeFactory, options?: Options<C> | undefined) => CharacteristicConfigurator<C>;
24
+ export const writeMaybeReadConfig: <C extends WriteMaybeReadConfig = WriteMaybeReadConfig>(name: string, charTypeFactory: CharTypeFactory, options?: Options<C> | undefined) => CharacteristicConfigurator<C>;
25
+ export const readWrite: <C extends ReadWriteConfig = ReadWriteConfig>(name: string, charTypeFactory: CharTypeFactory, options?: Options<C> | undefined) => CharacteristicConfigurator<C>;
26
+ export type Config = ReadOnlyConfig | WriteOnlyConfig | ReadWriteConfig | ReadMaybeWriteConfig | WriteMaybeReadConfig;
27
+ export namespace Percent {
28
+ type ReadOnlyConfig = NumericValue.ReadOnlyConfig & {
29
+ converter?: Converter.Percent.Type;
30
+ };
31
+ type WriteOnlyConfig = NumericValue.WriteOnlyConfig & {
32
+ converter?: Converter.Percent.Type;
33
+ };
34
+ type ReadMaybeWriteConfig = NumericValue.ReadMaybeWriteConfig & {
35
+ converter?: Converter.Percent.Type;
36
+ };
37
+ type WriteMaybeReadConfig = NumericValue.WriteMaybeReadConfig & {
38
+ converter?: Converter.Percent.Type;
39
+ };
40
+ type ReadWriteConfig = NumericValue.ReadWriteConfig & {
41
+ converter?: Converter.Percent.Type;
42
+ };
43
+ const readOnly: <C extends ReadOnlyConfig = ReadOnlyConfig>(name: string, charTypeFactory: CharTypeFactory) => CharacteristicConfigurator<C>;
44
+ const writeOnly: <C extends WriteOnlyConfig = WriteOnlyConfig>(name: string, charTypeFactory: CharTypeFactory) => CharacteristicConfigurator<C>;
45
+ const writeMaybeReadConfig: <C extends WriteMaybeReadConfig = WriteMaybeReadConfig>(name: string, charTypeFactory: CharTypeFactory) => CharacteristicConfigurator<C>;
46
+ const readMaybeWriteConfig: <C extends ReadMaybeWriteConfig = ReadMaybeWriteConfig>(name: string, charTypeFactory: CharTypeFactory) => CharacteristicConfigurator<C>;
47
+ const readWrite: <C extends ReadWriteConfig = ReadWriteConfig>(name: string, charTypeFactory: CharTypeFactory) => CharacteristicConfigurator<C>;
48
+ }
49
+ export {};
50
+ }
51
+ //# sourceMappingURL=NumericValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumericValue.d.ts","sourceRoot":"","sources":["../../../../src/service/characteristic/archetype/NumericValue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NumericValue = void 0;
7
+ const events_1 = __importDefault(require("events"));
8
+ const common_js_1 = require("../../../common.js");
9
+ const common_js_2 = require("./common.js");
10
+ const Converter_js_1 = require("./Converter.js");
11
+ var NumericValue;
12
+ (function (NumericValue) {
13
+ const defaultConverterResolver = () => Converter_js_1.Converter.Homekit;
14
+ NumericValue.readOnly = (name, charTypeFactory, options) => configurator(name, charTypeFactory, options);
15
+ NumericValue.writeOnly = (name, charTypeFactory, options) => configurator(name, charTypeFactory, options);
16
+ NumericValue.readMaybeWriteConfig = (name, charTypeFactory, options) => configurator(name, charTypeFactory, options);
17
+ NumericValue.writeMaybeReadConfig = (name, charTypeFactory, options) => configurator(name, charTypeFactory, options);
18
+ NumericValue.readWrite = (name, charTypeFactory, options) => configurator(name, charTypeFactory, options);
19
+ const isRead = (config) => 'get' in config;
20
+ const isWrite = (config) => 'set' in config;
21
+ const configurator = (name, charTypeFactory, options) => {
22
+ var _a;
23
+ const emitter = new events_1.default();
24
+ const converterResolver = (_a = options === null || options === void 0 ? void 0 : options.converterResolver) !== null && _a !== void 0 ? _a : defaultConverterResolver;
25
+ return async (platform, mqtt, accessory, service, config, ctx) => {
26
+ var _a;
27
+ const [setTopic, setJson, fullSetTopic] = isWrite(config) ? (0, common_js_2.parseTopic)(config.set, ctx) : [undefined, undefined];
28
+ const [getTopic, getJson, fullGetTopic] = isRead(config) ? (0, common_js_2.parseTopic)(config.get, ctx) : [undefined, undefined];
29
+ const converter = converterResolver(config);
30
+ if (!converter) {
31
+ platform.logger.error(`Could not resolve converter [${JSON.stringify(config)}] set for [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}]`);
32
+ }
33
+ const charType = charTypeFactory(platform);
34
+ const char = ((_a = service.getCharacteristic(charType)) !== null && _a !== void 0 ? _a : service.addCharacteristic(charType));
35
+ if (options === null || options === void 0 ? void 0 : options.props) {
36
+ const p = options.props(config);
37
+ if (p.minValue) {
38
+ char.setValue(p.minValue);
39
+ }
40
+ char.setProps(p);
41
+ }
42
+ char.onSet((value, ctx) => {
43
+ var _a;
44
+ emitter.emit('set', value, ctx);
45
+ if (setTopic && !(ctx === null || ctx === void 0 ? void 0 : ctx.fromMqtt) && converter) {
46
+ const mqttValue = converter.fromHap(value);
47
+ const publishedValue = (_a = setJson === null || setJson === void 0 ? void 0 : setJson.stringify(mqttValue)) !== null && _a !== void 0 ? _a : mqttValue;
48
+ platform.logger.debug(`Publishing [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}] value [${publishedValue}] to topic [${fullSetTopic}]`);
49
+ mqtt.publish(setTopic, publishedValue);
50
+ }
51
+ });
52
+ const detachable = !getTopic ? common_js_1.Detachable.NOOP : await mqtt.subscribe(getTopic, value => {
53
+ if (converter) {
54
+ const mqttValue = !getJson ? (0, common_js_2.parseMqttValue)(value) : getJson.parse(value);
55
+ if (!(0, common_js_1.isNumber)(mqttValue)) {
56
+ platform.logger.error(`Cannot update value from topic [${fullGetTopic}] for [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}]. Expected a numeric value in but received value [${mqttValue}]`);
57
+ return;
58
+ }
59
+ if (platform.logger.traceEnabled) {
60
+ platform.logger.trace(`Received value [${mqttValue}] from topic [${fullGetTopic}] for [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}]`);
61
+ }
62
+ let hapValue = converter.toHap(mqttValue);
63
+ if (hapValue === null) {
64
+ platform.logger.error(`Cannot update value from topic [${fullGetTopic}] for [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}]. Unknown value [${mqttValue}]`);
65
+ return;
66
+ }
67
+ // if the value on the MQTT broker is not aligned with the characteristic minStep property,
68
+ // we'll have a situation where the received MQTT value will always be set on the characteristic
69
+ // to prevent this we first adjust the received value based on the minStep (if one is set)
70
+ if (char.props.minStep) {
71
+ const roundedValue = common_js_1.Numbers.roundStep(hapValue, char.props.minStep);
72
+ if (platform.logger.traceEnabled) {
73
+ platform.logger.trace(`Rounded value [${hapValue}] to [${roundedValue}] to match minStep [${char.props.minStep}] from topic [${fullGetTopic}] for [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}]`);
74
+ }
75
+ hapValue = roundedValue;
76
+ }
77
+ if ((0, common_js_1.isNumber)(char.props.minValue) && hapValue < char.props.minValue) {
78
+ platform.logger.debug(`Value [${hapValue}] from topic [${fullGetTopic}] for [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}] is below the allowed minimum [${char.props.minValue}]. adjusting...`);
79
+ char.setValue(char.props.minValue, { fromMqtt: true });
80
+ return;
81
+ }
82
+ if ((0, common_js_1.isNumber)(char.props.maxValue) && hapValue > char.props.maxValue) {
83
+ platform.logger.debug(`Value [${hapValue}] from topic [${fullGetTopic}] for [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}] is above the allowed maximum [${char.props.maxValue}]. adjusting...`);
84
+ char.setValue(char.props.maxValue, { fromMqtt: true });
85
+ return;
86
+ }
87
+ const currentValue = char.props.minStep ? common_js_1.Numbers.roundStep(char.value, char.props.minStep) : char.value;
88
+ if (currentValue !== hapValue) {
89
+ platform.logger.debug(`Setting [${mqtt.id}][${accessory.displayName}][${service.displayName}][${name}] to [${hapValue}] from MQTT topic [${fullGetTopic}] (current value [${currentValue}])`);
90
+ char.setValue(hapValue, { fromMqtt: true });
91
+ }
92
+ }
93
+ });
94
+ const on = (event, handler) => {
95
+ emitter.on(event, handler);
96
+ return { detach: () => emitter.off(event, handler) };
97
+ };
98
+ return common_js_2.DetachableCharacteristic.mixin(char, detachable, on);
99
+ };
100
+ };
101
+ let Percent;
102
+ (function (Percent) {
103
+ Percent.readOnly = (name, charTypeFactory) => NumericValue.readOnly(name, charTypeFactory, {
104
+ converterResolver: (config) => { var _a; return Converter_js_1.Converter.Percent.resolve((_a = config.converter) !== null && _a !== void 0 ? _a : 'homekit'); }
105
+ });
106
+ Percent.writeOnly = (name, charTypeFactory) => NumericValue.writeOnly(name, charTypeFactory, {
107
+ converterResolver: (config) => { var _a; return Converter_js_1.Converter.Percent.resolve((_a = config.converter) !== null && _a !== void 0 ? _a : 'homekit'); }
108
+ });
109
+ Percent.writeMaybeReadConfig = (name, charTypeFactory) => NumericValue.writeMaybeReadConfig(name, charTypeFactory, {
110
+ converterResolver: (config) => { var _a; return Converter_js_1.Converter.Percent.resolve((_a = config.converter) !== null && _a !== void 0 ? _a : 'homekit'); }
111
+ });
112
+ Percent.readMaybeWriteConfig = (name, charTypeFactory) => NumericValue.readMaybeWriteConfig(name, charTypeFactory, {
113
+ converterResolver: (config) => { var _a; return Converter_js_1.Converter.Percent.resolve((_a = config.converter) !== null && _a !== void 0 ? _a : 'homekit'); }
114
+ });
115
+ Percent.readWrite = (name, charTypeFactory) => NumericValue.readOnly(name, charTypeFactory, {
116
+ converterResolver: (config) => { var _a; return Converter_js_1.Converter.Percent.resolve((_a = config.converter) !== null && _a !== void 0 ? _a : 'homekit'); }
117
+ });
118
+ })(Percent = NumericValue.Percent || (NumericValue.Percent = {}));
119
+ })(NumericValue = exports.NumericValue || (exports.NumericValue = {}));
120
+ //# sourceMappingURL=NumericValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumericValue.js","sourceRoot":"","sources":["../../../../src/service/characteristic/archetype/NumericValue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { Converter } from './Converter.js';
2
+ import { CharacteristicConfigurator } from '../index.js';
3
+ import { CharTypeFactory } from './common.js';
4
+ export declare namespace OneZeroValue {
5
+ type ReadOnlyConfig<ON extends string = 'on', OFF extends string = 'off'> = {
6
+ get: string;
7
+ converter?: Converter.Boolean.Type<ON, OFF>;
8
+ };
9
+ type ReadWriteConfig<ON extends string = 'on', OFF extends string = 'off'> = ReadOnlyConfig<ON, OFF> & {
10
+ set: string;
11
+ };
12
+ type Options<ON extends string = 'on', OFF extends string = 'off'> = {
13
+ onKey?: ON;
14
+ offKey?: OFF;
15
+ };
16
+ const readOnly: <ON extends string = "on", OFF extends string = "off", C extends ReadOnlyConfig<ON, OFF> = ReadOnlyConfig<ON, OFF>>(name: string, charTypeFactory: CharTypeFactory, options?: Options<ON, OFF> | undefined) => CharacteristicConfigurator<C>;
17
+ const readWrite: <ON extends string = "on", OFF extends string = "off", C extends ReadWriteConfig<ON, OFF> = ReadWriteConfig<ON, OFF>>(name: string, charTypeFactory: CharTypeFactory, options?: Options<ON, OFF> | undefined) => CharacteristicConfigurator<C>;
18
+ }
19
+ //# sourceMappingURL=OneZeroValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OneZeroValue.d.ts","sourceRoot":"","sources":["../../../../src/service/characteristic/archetype/OneZeroValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAA8B,eAAe,EAA4B,MAAM,aAAa,CAAC;AAEpG,yBAAiB,YAAY,CAAC;IAE1B,KAAY,cAAc,CAAC,EAAE,SAAS,MAAM,GAAG,IAAI,EAAE,GAAG,SAAS,MAAM,GAAG,KAAK,IAAI;QAC/E,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;KAC9C,CAAA;IAED,KAAY,eAAe,CAAC,EAAE,SAAS,MAAM,GAAG,IAAI,EAAE,GAAG,SAAS,MAAM,GAAG,KAAK,IAAI,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG;QAC1G,GAAG,EAAE,MAAM,CAAA;KACd,CAAA;IAED,KAAY,OAAO,CAAC,EAAE,SAAS,MAAM,GAAG,IAAI,EAAE,GAAG,SAAS,MAAM,GAAG,KAAK,IAAI;QACxE,KAAK,CAAC,EAAE,EAAE,CAAC;QACX,MAAM,CAAC,EAAE,GAAG,CAAA;KACf,CAAA;IAEM,MAAM,QAAQ,4HAA6H,MAAM,mBAAmB,eAAe,0EAC9H,CAAC;IAEtD,MAAM,SAAS,8HAA+H,MAAM,mBAAmB,eAAe,0EACjI,CAAC;CAqDhE"}