@zwave-js/cc 9.3.1-0-pr-4662-79458fb

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 (297) hide show
  1. package/build/cc/AlarmSensorCC.d.ts +54 -0
  2. package/build/cc/AlarmSensorCC.d.ts.map +1 -0
  3. package/build/cc/AlarmSensorCC.js +378 -0
  4. package/build/cc/AlarmSensorCC.js.map +1 -0
  5. package/build/cc/AssociationCC.d.ts +123 -0
  6. package/build/cc/AssociationCC.d.ts.map +1 -0
  7. package/build/cc/AssociationCC.js +615 -0
  8. package/build/cc/AssociationCC.js.map +1 -0
  9. package/build/cc/AssociationGroupInfoCC.d.ts +97 -0
  10. package/build/cc/AssociationGroupInfoCC.d.ts.map +1 -0
  11. package/build/cc/AssociationGroupInfoCC.js +530 -0
  12. package/build/cc/AssociationGroupInfoCC.js.map +1 -0
  13. package/build/cc/BarrierOperatorCC.d.ts +75 -0
  14. package/build/cc/BarrierOperatorCC.d.ts.map +1 -0
  15. package/build/cc/BarrierOperatorCC.js +492 -0
  16. package/build/cc/BarrierOperatorCC.js.map +1 -0
  17. package/build/cc/BasicCC.d.ts +51 -0
  18. package/build/cc/BasicCC.d.ts.map +1 -0
  19. package/build/cc/BasicCC.js +344 -0
  20. package/build/cc/BasicCC.js.map +1 -0
  21. package/build/cc/BatteryCC.d.ts +56 -0
  22. package/build/cc/BatteryCC.d.ts.map +1 -0
  23. package/build/cc/BatteryCC.js +417 -0
  24. package/build/cc/BatteryCC.js.map +1 -0
  25. package/build/cc/BinarySensorCC.d.ts +52 -0
  26. package/build/cc/BinarySensorCC.d.ts.map +1 -0
  27. package/build/cc/BinarySensorCC.js +321 -0
  28. package/build/cc/BinarySensorCC.js.map +1 -0
  29. package/build/cc/BinarySwitchCC.d.ts +55 -0
  30. package/build/cc/BinarySwitchCC.d.ts.map +1 -0
  31. package/build/cc/BinarySwitchCC.js +327 -0
  32. package/build/cc/BinarySwitchCC.js.map +1 -0
  33. package/build/cc/CRC16CC.d.ts +28 -0
  34. package/build/cc/CRC16CC.d.ts.map +1 -0
  35. package/build/cc/CRC16CC.js +109 -0
  36. package/build/cc/CRC16CC.js.map +1 -0
  37. package/build/cc/CentralSceneCC.d.ts +69 -0
  38. package/build/cc/CentralSceneCC.d.ts.map +1 -0
  39. package/build/cc/CentralSceneCC.js +443 -0
  40. package/build/cc/CentralSceneCC.js.map +1 -0
  41. package/build/cc/ClimateControlScheduleCC.d.ts +78 -0
  42. package/build/cc/ClimateControlScheduleCC.d.ts.map +1 -0
  43. package/build/cc/ClimateControlScheduleCC.js +417 -0
  44. package/build/cc/ClimateControlScheduleCC.js.map +1 -0
  45. package/build/cc/ClockCC.d.ts +40 -0
  46. package/build/cc/ClockCC.d.ts.map +1 -0
  47. package/build/cc/ClockCC.js +185 -0
  48. package/build/cc/ClockCC.js.map +1 -0
  49. package/build/cc/ColorSwitchCC.d.ts +98 -0
  50. package/build/cc/ColorSwitchCC.d.ts.map +1 -0
  51. package/build/cc/ColorSwitchCC.js +1045 -0
  52. package/build/cc/ColorSwitchCC.js.map +1 -0
  53. package/build/cc/ConfigurationCC.d.ts +315 -0
  54. package/build/cc/ConfigurationCC.d.ts.map +1 -0
  55. package/build/cc/ConfigurationCC.js +2257 -0
  56. package/build/cc/ConfigurationCC.js.map +1 -0
  57. package/build/cc/DeviceResetLocallyCC.d.ts +9 -0
  58. package/build/cc/DeviceResetLocallyCC.d.ts.map +1 -0
  59. package/build/cc/DeviceResetLocallyCC.js +28 -0
  60. package/build/cc/DeviceResetLocallyCC.js.map +1 -0
  61. package/build/cc/DoorLockCC.d.ts +116 -0
  62. package/build/cc/DoorLockCC.d.ts.map +1 -0
  63. package/build/cc/DoorLockCC.js +1112 -0
  64. package/build/cc/DoorLockCC.js.map +1 -0
  65. package/build/cc/DoorLockLoggingCC.d.ts +41 -0
  66. package/build/cc/DoorLockLoggingCC.d.ts.map +1 -0
  67. package/build/cc/DoorLockLoggingCC.js +288 -0
  68. package/build/cc/DoorLockLoggingCC.js.map +1 -0
  69. package/build/cc/EntryControlCC.d.ts +71 -0
  70. package/build/cc/EntryControlCC.d.ts.map +1 -0
  71. package/build/cc/EntryControlCC.js +492 -0
  72. package/build/cc/EntryControlCC.js.map +1 -0
  73. package/build/cc/FirmwareUpdateMetaDataCC.d.ts +148 -0
  74. package/build/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -0
  75. package/build/cc/FirmwareUpdateMetaDataCC.js +727 -0
  76. package/build/cc/FirmwareUpdateMetaDataCC.js.map +1 -0
  77. package/build/cc/HailCC.d.ts +6 -0
  78. package/build/cc/HailCC.d.ts.map +1 -0
  79. package/build/cc/HailCC.js +23 -0
  80. package/build/cc/HailCC.js.map +1 -0
  81. package/build/cc/HumidityControlModeCC.d.ts +47 -0
  82. package/build/cc/HumidityControlModeCC.d.ts.map +1 -0
  83. package/build/cc/HumidityControlModeCC.js +288 -0
  84. package/build/cc/HumidityControlModeCC.js.map +1 -0
  85. package/build/cc/HumidityControlOperatingStateCC.d.ts +24 -0
  86. package/build/cc/HumidityControlOperatingStateCC.d.ts.map +1 -0
  87. package/build/cc/HumidityControlOperatingStateCC.js +129 -0
  88. package/build/cc/HumidityControlOperatingStateCC.js.map +1 -0
  89. package/build/cc/HumidityControlSetpointCC.d.ts +103 -0
  90. package/build/cc/HumidityControlSetpointCC.d.ts.map +1 -0
  91. package/build/cc/HumidityControlSetpointCC.js +626 -0
  92. package/build/cc/HumidityControlSetpointCC.js.map +1 -0
  93. package/build/cc/IndicatorCC.d.ts +88 -0
  94. package/build/cc/IndicatorCC.d.ts.map +1 -0
  95. package/build/cc/IndicatorCC.js +758 -0
  96. package/build/cc/IndicatorCC.js.map +1 -0
  97. package/build/cc/IrrigationCC.d.ts +278 -0
  98. package/build/cc/IrrigationCC.d.ts.map +1 -0
  99. package/build/cc/IrrigationCC.js +2062 -0
  100. package/build/cc/IrrigationCC.js.map +1 -0
  101. package/build/cc/LanguageCC.d.ts +41 -0
  102. package/build/cc/LanguageCC.d.ts.map +1 -0
  103. package/build/cc/LanguageCC.js +220 -0
  104. package/build/cc/LanguageCC.js.map +1 -0
  105. package/build/cc/LockCC.d.ts +41 -0
  106. package/build/cc/LockCC.d.ts.map +1 -0
  107. package/build/cc/LockCC.js +185 -0
  108. package/build/cc/LockCC.js.map +1 -0
  109. package/build/cc/ManufacturerProprietaryCC.d.ts +31 -0
  110. package/build/cc/ManufacturerProprietaryCC.d.ts.map +1 -0
  111. package/build/cc/ManufacturerProprietaryCC.js +275 -0
  112. package/build/cc/ManufacturerProprietaryCC.js.map +1 -0
  113. package/build/cc/ManufacturerSpecificCC.d.ts +59 -0
  114. package/build/cc/ManufacturerSpecificCC.d.ts.map +1 -0
  115. package/build/cc/ManufacturerSpecificCC.js +285 -0
  116. package/build/cc/ManufacturerSpecificCC.js.map +1 -0
  117. package/build/cc/MeterCC.d.ts +100 -0
  118. package/build/cc/MeterCC.d.ts.map +1 -0
  119. package/build/cc/MeterCC.js +820 -0
  120. package/build/cc/MeterCC.js.map +1 -0
  121. package/build/cc/MultiChannelAssociationCC.d.ts +127 -0
  122. package/build/cc/MultiChannelAssociationCC.d.ts.map +1 -0
  123. package/build/cc/MultiChannelAssociationCC.js +883 -0
  124. package/build/cc/MultiChannelAssociationCC.js.map +1 -0
  125. package/build/cc/MultiChannelCC.d.ts +164 -0
  126. package/build/cc/MultiChannelCC.d.ts.map +1 -0
  127. package/build/cc/MultiChannelCC.js +1004 -0
  128. package/build/cc/MultiChannelCC.js.map +1 -0
  129. package/build/cc/MultiCommandCC.d.ts +28 -0
  130. package/build/cc/MultiCommandCC.d.ts.map +1 -0
  131. package/build/cc/MultiCommandCC.js +137 -0
  132. package/build/cc/MultiCommandCC.js.map +1 -0
  133. package/build/cc/MultilevelSensorCC.d.ts +83 -0
  134. package/build/cc/MultilevelSensorCC.d.ts.map +1 -0
  135. package/build/cc/MultilevelSensorCC.js +633 -0
  136. package/build/cc/MultilevelSensorCC.js.map +1 -0
  137. package/build/cc/MultilevelSwitchCC.d.ts +86 -0
  138. package/build/cc/MultilevelSwitchCC.d.ts.map +1 -0
  139. package/build/cc/MultilevelSwitchCC.js +774 -0
  140. package/build/cc/MultilevelSwitchCC.js.map +1 -0
  141. package/build/cc/NoOperationCC.d.ts +17 -0
  142. package/build/cc/NoOperationCC.d.ts.map +1 -0
  143. package/build/cc/NoOperationCC.js +50 -0
  144. package/build/cc/NoOperationCC.js.map +1 -0
  145. package/build/cc/NodeNamingCC.d.ts +57 -0
  146. package/build/cc/NodeNamingCC.d.ts.map +1 -0
  147. package/build/cc/NodeNamingCC.js +313 -0
  148. package/build/cc/NodeNamingCC.js.map +1 -0
  149. package/build/cc/NotificationCC.d.ts +127 -0
  150. package/build/cc/NotificationCC.d.ts.map +1 -0
  151. package/build/cc/NotificationCC.js +1193 -0
  152. package/build/cc/NotificationCC.js.map +1 -0
  153. package/build/cc/PowerlevelCC.d.ts +63 -0
  154. package/build/cc/PowerlevelCC.d.ts.map +1 -0
  155. package/build/cc/PowerlevelCC.js +262 -0
  156. package/build/cc/PowerlevelCC.js.map +1 -0
  157. package/build/cc/ProtectionCC.d.ts +94 -0
  158. package/build/cc/ProtectionCC.d.ts.map +1 -0
  159. package/build/cc/ProtectionCC.js +630 -0
  160. package/build/cc/ProtectionCC.js.map +1 -0
  161. package/build/cc/SceneActivationCC.d.ts +34 -0
  162. package/build/cc/SceneActivationCC.d.ts.map +1 -0
  163. package/build/cc/SceneActivationCC.js +170 -0
  164. package/build/cc/SceneActivationCC.js.map +1 -0
  165. package/build/cc/SceneActuatorConfigurationCC.d.ts +52 -0
  166. package/build/cc/SceneActuatorConfigurationCC.d.ts.map +1 -0
  167. package/build/cc/SceneActuatorConfigurationCC.js +368 -0
  168. package/build/cc/SceneActuatorConfigurationCC.js.map +1 -0
  169. package/build/cc/SceneControllerConfigurationCC.d.ts +61 -0
  170. package/build/cc/SceneControllerConfigurationCC.d.ts.map +1 -0
  171. package/build/cc/SceneControllerConfigurationCC.js +444 -0
  172. package/build/cc/SceneControllerConfigurationCC.js.map +1 -0
  173. package/build/cc/Security2CC.d.ts +213 -0
  174. package/build/cc/Security2CC.d.ts.map +1 -0
  175. package/build/cc/Security2CC.js +1124 -0
  176. package/build/cc/Security2CC.js.map +1 -0
  177. package/build/cc/SecurityCC.d.ts +109 -0
  178. package/build/cc/SecurityCC.d.ts.map +1 -0
  179. package/build/cc/SecurityCC.js +609 -0
  180. package/build/cc/SecurityCC.js.map +1 -0
  181. package/build/cc/SoundSwitchCC.d.ts +87 -0
  182. package/build/cc/SoundSwitchCC.d.ts.map +1 -0
  183. package/build/cc/SoundSwitchCC.js +548 -0
  184. package/build/cc/SoundSwitchCC.js.map +1 -0
  185. package/build/cc/SupervisionCC.d.ts +63 -0
  186. package/build/cc/SupervisionCC.d.ts.map +1 -0
  187. package/build/cc/SupervisionCC.js +239 -0
  188. package/build/cc/SupervisionCC.js.map +1 -0
  189. package/build/cc/ThermostatFanModeCC.d.ts +53 -0
  190. package/build/cc/ThermostatFanModeCC.d.ts.map +1 -0
  191. package/build/cc/ThermostatFanModeCC.js +359 -0
  192. package/build/cc/ThermostatFanModeCC.js.map +1 -0
  193. package/build/cc/ThermostatFanStateCC.d.ts +24 -0
  194. package/build/cc/ThermostatFanStateCC.d.ts.map +1 -0
  195. package/build/cc/ThermostatFanStateCC.js +131 -0
  196. package/build/cc/ThermostatFanStateCC.js.map +1 -0
  197. package/build/cc/ThermostatModeCC.d.ts +58 -0
  198. package/build/cc/ThermostatModeCC.d.ts.map +1 -0
  199. package/build/cc/ThermostatModeCC.js +370 -0
  200. package/build/cc/ThermostatModeCC.js.map +1 -0
  201. package/build/cc/ThermostatOperatingStateCC.d.ts +24 -0
  202. package/build/cc/ThermostatOperatingStateCC.d.ts.map +1 -0
  203. package/build/cc/ThermostatOperatingStateCC.js +127 -0
  204. package/build/cc/ThermostatOperatingStateCC.js.map +1 -0
  205. package/build/cc/ThermostatSetbackCC.d.ts +42 -0
  206. package/build/cc/ThermostatSetbackCC.d.ts.map +1 -0
  207. package/build/cc/ThermostatSetbackCC.js +237 -0
  208. package/build/cc/ThermostatSetbackCC.js.map +1 -0
  209. package/build/cc/ThermostatSetpointCC.d.ts +98 -0
  210. package/build/cc/ThermostatSetpointCC.d.ts.map +1 -0
  211. package/build/cc/ThermostatSetpointCC.js +707 -0
  212. package/build/cc/ThermostatSetpointCC.js.map +1 -0
  213. package/build/cc/TimeCC.d.ts +78 -0
  214. package/build/cc/TimeCC.d.ts.map +1 -0
  215. package/build/cc/TimeCC.js +373 -0
  216. package/build/cc/TimeCC.js.map +1 -0
  217. package/build/cc/TimeParametersCC.d.ts +40 -0
  218. package/build/cc/TimeParametersCC.d.ts.map +1 -0
  219. package/build/cc/TimeParametersCC.js +275 -0
  220. package/build/cc/TimeParametersCC.js.map +1 -0
  221. package/build/cc/TransportServiceCC.d.ts +101 -0
  222. package/build/cc/TransportServiceCC.d.ts.map +1 -0
  223. package/build/cc/TransportServiceCC.js +404 -0
  224. package/build/cc/TransportServiceCC.js.map +1 -0
  225. package/build/cc/UserCodeCC.d.ts +219 -0
  226. package/build/cc/UserCodeCC.d.ts.map +1 -0
  227. package/build/cc/UserCodeCC.js +1526 -0
  228. package/build/cc/UserCodeCC.js.map +1 -0
  229. package/build/cc/VersionCC.d.ts +91 -0
  230. package/build/cc/VersionCC.d.ts.map +1 -0
  231. package/build/cc/VersionCC.js +654 -0
  232. package/build/cc/VersionCC.js.map +1 -0
  233. package/build/cc/WakeUpCC.d.ts +67 -0
  234. package/build/cc/WakeUpCC.d.ts.map +1 -0
  235. package/build/cc/WakeUpCC.js +425 -0
  236. package/build/cc/WakeUpCC.js.map +1 -0
  237. package/build/cc/ZWavePlusCC.d.ts +40 -0
  238. package/build/cc/ZWavePlusCC.d.ts.map +1 -0
  239. package/build/cc/ZWavePlusCC.js +269 -0
  240. package/build/cc/ZWavePlusCC.js.map +1 -0
  241. package/build/cc/index.d.ts +64 -0
  242. package/build/cc/index.d.ts.map +1 -0
  243. package/build/cc/index.js +496 -0
  244. package/build/cc/index.js.map +1 -0
  245. package/build/cc/manufacturerProprietary/FibaroCC.d.ts +62 -0
  246. package/build/cc/manufacturerProprietary/FibaroCC.d.ts.map +1 -0
  247. package/build/cc/manufacturerProprietary/FibaroCC.js +247 -0
  248. package/build/cc/manufacturerProprietary/FibaroCC.js.map +1 -0
  249. package/build/index.d.ts +11 -0
  250. package/build/index.d.ts.map +1 -0
  251. package/build/index.js +48 -0
  252. package/build/index.js.map +1 -0
  253. package/build/index_safe.d.ts +4 -0
  254. package/build/index_safe.d.ts.map +1 -0
  255. package/build/index_safe.js +30 -0
  256. package/build/index_safe.js.map +1 -0
  257. package/build/lib/API.d.ts +176 -0
  258. package/build/lib/API.d.ts.map +1 -0
  259. package/build/lib/API.js +325 -0
  260. package/build/lib/API.js.map +1 -0
  261. package/build/lib/CommandClass.d.ts +341 -0
  262. package/build/lib/CommandClass.d.ts.map +1 -0
  263. package/build/lib/CommandClass.js +1088 -0
  264. package/build/lib/CommandClass.js.map +1 -0
  265. package/build/lib/EncapsulatingCommandClass.d.ts +35 -0
  266. package/build/lib/EncapsulatingCommandClass.d.ts.map +1 -0
  267. package/build/lib/EncapsulatingCommandClass.js +53 -0
  268. package/build/lib/EncapsulatingCommandClass.js.map +1 -0
  269. package/build/lib/ICommandClassContainer.d.ts +9 -0
  270. package/build/lib/ICommandClassContainer.d.ts.map +1 -0
  271. package/build/lib/ICommandClassContainer.js +12 -0
  272. package/build/lib/ICommandClassContainer.js.map +1 -0
  273. package/build/lib/NotificationEventPayload.d.ts +11 -0
  274. package/build/lib/NotificationEventPayload.d.ts.map +1 -0
  275. package/build/lib/NotificationEventPayload.js +11 -0
  276. package/build/lib/NotificationEventPayload.js.map +1 -0
  277. package/build/lib/Security2/Extension.d.ts +87 -0
  278. package/build/lib/Security2/Extension.d.ts.map +1 -0
  279. package/build/lib/Security2/Extension.js +235 -0
  280. package/build/lib/Security2/Extension.js.map +1 -0
  281. package/build/lib/Security2/shared.d.ts +31 -0
  282. package/build/lib/Security2/shared.d.ts.map +1 -0
  283. package/build/lib/Security2/shared.js +37 -0
  284. package/build/lib/Security2/shared.js.map +1 -0
  285. package/build/lib/_Types.d.ts +1446 -0
  286. package/build/lib/_Types.d.ts.map +1 -0
  287. package/build/lib/_Types.js +1334 -0
  288. package/build/lib/_Types.js.map +1 -0
  289. package/build/lib/serializers.d.ts +24 -0
  290. package/build/lib/serializers.d.ts.map +1 -0
  291. package/build/lib/serializers.js +66 -0
  292. package/build/lib/serializers.js.map +1 -0
  293. package/build/lib/utils.d.ts +13 -0
  294. package/build/lib/utils.d.ts.map +1 -0
  295. package/build/lib/utils.js +675 -0
  296. package/build/lib/utils.js.map +1 -0
  297. package/package.json +77 -0
@@ -0,0 +1,1112 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var _a, _b;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.DoorLockCCCapabilitiesGet = exports.DoorLockCCCapabilitiesReport = exports.DoorLockCCConfigurationSet = exports.DoorLockCCConfigurationGet = exports.DoorLockCCConfigurationReport = exports.DoorLockCCOperationGet = exports.DoorLockCCOperationReport = exports.DoorLockCCOperationSet = exports.DoorLockCC = exports.DoorLockCCAPI = exports.getDoorStatusValueId = exports.getBoltStatusValueId = exports.getLatchStatusValueId = exports.getDoorSupportedValueId = exports.getBoltSupportedValueId = exports.getLatchSupportedValueId = exports.getOperationTypeValueId = exports.getCurrentModeValueId = exports.getTargetModeValueId = void 0;
11
+ function __assertType(argName, typeName, boundHasError) {
12
+ const { ZWaveError, ZWaveErrorCodes } = require("@zwave-js/core");
13
+ if (boundHasError()) {
14
+ throw new ZWaveError(typeName ? `${argName} is not a ${typeName}` : `${argName} has the wrong type`, ZWaveErrorCodes.Argument_Invalid);
15
+ }
16
+ }
17
+ const __assertType__DoorLockMode = $o => {
18
+ function su__1__2__3__4__5__6__7__8_eu($o) {
19
+ return ![0, 1, 16, 17, 32, 33, 254, 255].includes($o) ? {} : null;
20
+ }
21
+ return su__1__2__3__4__5__6__7__8_eu($o);
22
+ };
23
+ const __assertType__DoorLockCCConfigurationSetOptions = $o => {
24
+ function _6($o) {
25
+ return $o !== 2 ? {} : null;
26
+ }
27
+ function _number($o) {
28
+ return typeof $o !== "number" ? {} : null;
29
+ }
30
+ function _2($o) {
31
+ if (typeof $o !== "object" || $o === null || Array.isArray($o))
32
+ return {};
33
+ if ("operationType" in $o && $o["operationType"] !== undefined) {
34
+ const error = _6($o["operationType"]);
35
+ if (error)
36
+ return error;
37
+ }
38
+ else
39
+ return {};
40
+ if ("lockTimeoutConfiguration" in $o && $o["lockTimeoutConfiguration"] !== undefined) {
41
+ const error = _number($o["lockTimeoutConfiguration"]);
42
+ if (error)
43
+ return error;
44
+ }
45
+ else
46
+ return {};
47
+ return null;
48
+ }
49
+ function _boolean($o) {
50
+ return typeof $o !== "boolean" ? {} : null;
51
+ }
52
+ function st__boolean__boolean__boolean__boolean_et_9_9_9_9($o) {
53
+ if (!Array.isArray($o) || $o.length < 4 || 4 < $o.length)
54
+ return {};
55
+ {
56
+ const error = _boolean($o[0]);
57
+ if (error)
58
+ return error;
59
+ }
60
+ {
61
+ const error = _boolean($o[1]);
62
+ if (error)
63
+ return error;
64
+ }
65
+ {
66
+ const error = _boolean($o[2]);
67
+ if (error)
68
+ return error;
69
+ }
70
+ {
71
+ const error = _boolean($o[3]);
72
+ if (error)
73
+ return error;
74
+ }
75
+ return null;
76
+ }
77
+ function _3($o) {
78
+ if (typeof $o !== "object" || $o === null || Array.isArray($o))
79
+ return {};
80
+ if ("outsideHandlesCanOpenDoorConfiguration" in $o && $o["outsideHandlesCanOpenDoorConfiguration"] !== undefined) {
81
+ const error = st__boolean__boolean__boolean__boolean_et_9_9_9_9($o["outsideHandlesCanOpenDoorConfiguration"]);
82
+ if (error)
83
+ return error;
84
+ }
85
+ else
86
+ return {};
87
+ if ("insideHandlesCanOpenDoorConfiguration" in $o && $o["insideHandlesCanOpenDoorConfiguration"] !== undefined) {
88
+ const error = st__boolean__boolean__boolean__boolean_et_9_9_9_9($o["insideHandlesCanOpenDoorConfiguration"]);
89
+ if (error)
90
+ return error;
91
+ }
92
+ else
93
+ return {};
94
+ if ("autoRelockTime" in $o && $o["autoRelockTime"] !== undefined) {
95
+ const error = _number($o["autoRelockTime"]);
96
+ if (error)
97
+ return error;
98
+ }
99
+ if ("holdAndReleaseTime" in $o && $o["holdAndReleaseTime"] !== undefined) {
100
+ const error = _number($o["holdAndReleaseTime"]);
101
+ if (error)
102
+ return error;
103
+ }
104
+ if ("twistAssist" in $o && $o["twistAssist"] !== undefined) {
105
+ const error = _boolean($o["twistAssist"]);
106
+ if (error)
107
+ return error;
108
+ }
109
+ if ("blockToBlock" in $o && $o["blockToBlock"] !== undefined) {
110
+ const error = _boolean($o["blockToBlock"]);
111
+ if (error)
112
+ return error;
113
+ }
114
+ return null;
115
+ }
116
+ function si__2__3_ei($o) {
117
+ const conditions = [_2, _3];
118
+ for (const condition of conditions) {
119
+ const error = condition($o);
120
+ if (error)
121
+ return error;
122
+ }
123
+ return null;
124
+ }
125
+ function _13($o) {
126
+ return $o !== 1 ? {} : null;
127
+ }
128
+ function _undefined($o) {
129
+ return $o !== undefined ? {} : null;
130
+ }
131
+ function _5($o) {
132
+ if (typeof $o !== "object" || $o === null || Array.isArray($o))
133
+ return {};
134
+ if ("operationType" in $o && $o["operationType"] !== undefined) {
135
+ const error = _13($o["operationType"]);
136
+ if (error)
137
+ return error;
138
+ }
139
+ else
140
+ return {};
141
+ if ("lockTimeoutConfiguration" in $o && $o["lockTimeoutConfiguration"] !== undefined) {
142
+ const error = _undefined($o["lockTimeoutConfiguration"]);
143
+ if (error)
144
+ return error;
145
+ }
146
+ return null;
147
+ }
148
+ function si__5__3_ei($o) {
149
+ const conditions = [_5, _3];
150
+ for (const condition of conditions) {
151
+ const error = condition($o);
152
+ if (error)
153
+ return error;
154
+ }
155
+ return null;
156
+ }
157
+ function su_si__2__3_ei_si__5__3_ei_eu($o) {
158
+ const conditions = [si__2__3_ei, si__5__3_ei];
159
+ for (const condition of conditions) {
160
+ const error = condition($o);
161
+ if (!error)
162
+ return null;
163
+ }
164
+ return {};
165
+ }
166
+ return su_si__2__3_ei_si__5__3_ei_eu($o);
167
+ };
168
+ const safe_1 = require("@zwave-js/core/safe");
169
+ const safe_2 = require("@zwave-js/shared/safe");
170
+ const typeguards_1 = require("alcalzone-shared/typeguards");
171
+ const API_1 = require("../lib/API");
172
+ const CommandClass_1 = require("../lib/CommandClass");
173
+ const _Types_1 = require("../lib/_Types");
174
+ function getTargetModeValueId(endpoint) {
175
+ return {
176
+ commandClass: safe_1.CommandClasses["Door Lock"],
177
+ endpoint,
178
+ property: "targetMode",
179
+ };
180
+ }
181
+ exports.getTargetModeValueId = getTargetModeValueId;
182
+ function getCurrentModeValueId(endpoint) {
183
+ return {
184
+ commandClass: safe_1.CommandClasses["Door Lock"],
185
+ endpoint,
186
+ property: "currentMode",
187
+ };
188
+ }
189
+ exports.getCurrentModeValueId = getCurrentModeValueId;
190
+ function getOperationTypeValueId(endpoint) {
191
+ return {
192
+ commandClass: safe_1.CommandClasses["Door Lock"],
193
+ endpoint,
194
+ property: "operationType",
195
+ };
196
+ }
197
+ exports.getOperationTypeValueId = getOperationTypeValueId;
198
+ function getLatchSupportedValueId(endpoint) {
199
+ return {
200
+ commandClass: safe_1.CommandClasses["Door Lock"],
201
+ endpoint,
202
+ property: "latchSupported",
203
+ };
204
+ }
205
+ exports.getLatchSupportedValueId = getLatchSupportedValueId;
206
+ function getBoltSupportedValueId(endpoint) {
207
+ return {
208
+ commandClass: safe_1.CommandClasses["Door Lock"],
209
+ endpoint,
210
+ property: "boltSupported",
211
+ };
212
+ }
213
+ exports.getBoltSupportedValueId = getBoltSupportedValueId;
214
+ function getDoorSupportedValueId(endpoint) {
215
+ return {
216
+ commandClass: safe_1.CommandClasses["Door Lock"],
217
+ endpoint,
218
+ property: "doorSupported",
219
+ };
220
+ }
221
+ exports.getDoorSupportedValueId = getDoorSupportedValueId;
222
+ function getLatchStatusValueId(endpoint) {
223
+ return {
224
+ commandClass: safe_1.CommandClasses["Door Lock"],
225
+ endpoint,
226
+ property: "latchStatus",
227
+ };
228
+ }
229
+ exports.getLatchStatusValueId = getLatchStatusValueId;
230
+ function getLatchStatusValueMetadata() {
231
+ return {
232
+ ...safe_1.ValueMetadata.ReadOnly,
233
+ label: "The current status of the latch",
234
+ };
235
+ }
236
+ function getBoltStatusValueId(endpoint) {
237
+ return {
238
+ commandClass: safe_1.CommandClasses["Door Lock"],
239
+ endpoint,
240
+ property: "boltStatus",
241
+ };
242
+ }
243
+ exports.getBoltStatusValueId = getBoltStatusValueId;
244
+ function getBoltStatusValueMetadata() {
245
+ return {
246
+ ...safe_1.ValueMetadata.ReadOnly,
247
+ label: "The current status of the bolt",
248
+ };
249
+ }
250
+ function getDoorStatusValueId(endpoint) {
251
+ return {
252
+ commandClass: safe_1.CommandClasses["Door Lock"],
253
+ endpoint,
254
+ property: "doorStatus",
255
+ };
256
+ }
257
+ exports.getDoorStatusValueId = getDoorStatusValueId;
258
+ function getDoorStatusValueMetadata() {
259
+ return {
260
+ ...safe_1.ValueMetadata.ReadOnly,
261
+ label: "The current status of the door",
262
+ };
263
+ }
264
+ const configurationSetParameters = [
265
+ "operationType",
266
+ "outsideHandlesCanOpenDoorConfiguration",
267
+ "insideHandlesCanOpenDoorConfiguration",
268
+ "lockTimeoutConfiguration",
269
+ "autoRelockTime",
270
+ "holdAndReleaseTime",
271
+ "twistAssist",
272
+ "blockToBlock",
273
+ ];
274
+ let DoorLockCCAPI = class DoorLockCCAPI extends API_1.PhysicalCCAPI {
275
+ constructor() {
276
+ super(...arguments);
277
+ this[_a] = async ({ property }, value) => {
278
+ var _c;
279
+ if (property === "targetMode") {
280
+ if (typeof value !== "number") {
281
+ (0, API_1.throwWrongValueType)(this.ccId, property, "number", typeof value);
282
+ }
283
+ await this.set(value);
284
+ // Verify the current value after a delay
285
+ this.schedulePoll({ property }, value);
286
+ }
287
+ else if (typeof property === "string" &&
288
+ configurationSetParameters.includes(property)) {
289
+ // checking every type here would create a LOT of duplicate code, so we don't
290
+ // ConfigurationSet expects all parameters --> read the others from cache
291
+ const config = {
292
+ [property]: value,
293
+ };
294
+ for (const param of configurationSetParameters) {
295
+ if (param !== property) {
296
+ config[param] = (_c = this.tryGetValueDB()) === null || _c === void 0 ? void 0 : _c.getValue({
297
+ commandClass: this.ccId,
298
+ endpoint: this.endpoint.index,
299
+ property: param,
300
+ });
301
+ }
302
+ }
303
+ // Fix insideHandlesCanOpenDoorConfiguration is not iterable
304
+ const allTrue = [true, true, true, true];
305
+ if (!config.insideHandlesCanOpenDoorConfiguration) {
306
+ config.insideHandlesCanOpenDoorConfiguration = allTrue;
307
+ }
308
+ if (!config.outsideHandlesCanOpenDoorConfiguration) {
309
+ config.outsideHandlesCanOpenDoorConfiguration = allTrue;
310
+ }
311
+ await this.setConfiguration(config);
312
+ // Refresh the current value
313
+ // TODO: #1321, #1521
314
+ await this.getConfiguration();
315
+ }
316
+ else {
317
+ (0, API_1.throwUnsupportedProperty)(this.ccId, property);
318
+ }
319
+ };
320
+ this[_b] = async ({ property, }) => {
321
+ var _c, _d;
322
+ switch (property) {
323
+ case "currentMode":
324
+ case "targetMode":
325
+ case "duration":
326
+ case "outsideHandlesCanOpenDoor":
327
+ case "insideHandlesCanOpenDoor":
328
+ case "latchStatus":
329
+ case "boltStatus":
330
+ case "doorStatus":
331
+ case "lockTimeout":
332
+ return (_c = (await this.get())) === null || _c === void 0 ? void 0 : _c[property];
333
+ case "operationType":
334
+ case "outsideHandlesCanOpenDoorConfiguration":
335
+ case "insideHandlesCanOpenDoorConfiguration":
336
+ case "lockTimeoutConfiguration":
337
+ case "autoRelockTime":
338
+ case "holdAndReleaseTime":
339
+ case "twistAssist":
340
+ case "blockToBlock":
341
+ return (_d = (await this.getConfiguration())) === null || _d === void 0 ? void 0 : _d[property];
342
+ default:
343
+ (0, API_1.throwUnsupportedProperty)(this.ccId, property);
344
+ }
345
+ };
346
+ }
347
+ supportsCommand(cmd) {
348
+ switch (cmd) {
349
+ case _Types_1.DoorLockCommand.OperationSet:
350
+ case _Types_1.DoorLockCommand.OperationGet:
351
+ case _Types_1.DoorLockCommand.ConfigurationSet:
352
+ case _Types_1.DoorLockCommand.ConfigurationGet:
353
+ return true; // This is mandatory
354
+ case _Types_1.DoorLockCommand.CapabilitiesGet:
355
+ return this.version >= 4;
356
+ }
357
+ return super.supportsCommand(cmd);
358
+ }
359
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
360
+ async getCapabilities() {
361
+ this.assertSupportsCommand(_Types_1.DoorLockCommand, _Types_1.DoorLockCommand.CapabilitiesGet);
362
+ const cc = new DoorLockCCCapabilitiesGet(this.applHost, {
363
+ nodeId: this.endpoint.nodeId,
364
+ endpoint: this.endpoint.index,
365
+ });
366
+ const response = await this.applHost.sendCommand(cc, this.commandOptions);
367
+ if (response) {
368
+ return (0, safe_2.pick)(response, [
369
+ "autoRelockSupported",
370
+ "blockToBlockSupported",
371
+ "boltSupported",
372
+ "doorSupported",
373
+ "holdAndReleaseSupported",
374
+ "latchSupported",
375
+ "twistAssistSupported",
376
+ "supportedDoorLockModes",
377
+ "supportedInsideHandles",
378
+ "supportedOperationTypes",
379
+ "supportedOutsideHandles",
380
+ ]);
381
+ }
382
+ }
383
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
384
+ async get() {
385
+ this.assertSupportsCommand(_Types_1.DoorLockCommand, _Types_1.DoorLockCommand.OperationGet);
386
+ const cc = new DoorLockCCOperationGet(this.applHost, {
387
+ nodeId: this.endpoint.nodeId,
388
+ endpoint: this.endpoint.index,
389
+ });
390
+ const response = await this.applHost.sendCommand(cc, this.commandOptions);
391
+ if (response) {
392
+ return (0, safe_2.pick)(response, [
393
+ "currentMode",
394
+ "targetMode",
395
+ "duration",
396
+ "outsideHandlesCanOpenDoor",
397
+ "insideHandlesCanOpenDoor",
398
+ "latchStatus",
399
+ "boltStatus",
400
+ "doorStatus",
401
+ "lockTimeout",
402
+ ]);
403
+ }
404
+ }
405
+ async set(mode) {
406
+ __assertType("mode", "DoorLockMode", __assertType__DoorLockMode.bind(void 0, mode));
407
+ this.assertSupportsCommand(_Types_1.DoorLockCommand, _Types_1.DoorLockCommand.OperationSet);
408
+ const cc = new DoorLockCCOperationSet(this.applHost, {
409
+ nodeId: this.endpoint.nodeId,
410
+ endpoint: this.endpoint.index,
411
+ mode,
412
+ });
413
+ await this.applHost.sendCommand(cc, this.commandOptions);
414
+ }
415
+ async setConfiguration(configuration) {
416
+ __assertType("configuration", "DoorLockCCConfigurationSetOptions", __assertType__DoorLockCCConfigurationSetOptions.bind(void 0, configuration));
417
+ this.assertSupportsCommand(_Types_1.DoorLockCommand, _Types_1.DoorLockCommand.ConfigurationSet);
418
+ const cc = new DoorLockCCConfigurationSet(this.applHost, {
419
+ nodeId: this.endpoint.nodeId,
420
+ endpoint: this.endpoint.index,
421
+ ...configuration,
422
+ });
423
+ await this.applHost.sendCommand(cc, this.commandOptions);
424
+ }
425
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
426
+ async getConfiguration() {
427
+ this.assertSupportsCommand(_Types_1.DoorLockCommand, _Types_1.DoorLockCommand.ConfigurationGet);
428
+ const cc = new DoorLockCCConfigurationGet(this.applHost, {
429
+ nodeId: this.endpoint.nodeId,
430
+ endpoint: this.endpoint.index,
431
+ });
432
+ const response = await this.applHost.sendCommand(cc, this.commandOptions);
433
+ if (response) {
434
+ return (0, safe_2.pick)(response, [
435
+ "operationType",
436
+ "outsideHandlesCanOpenDoorConfiguration",
437
+ "insideHandlesCanOpenDoorConfiguration",
438
+ "lockTimeoutConfiguration",
439
+ "autoRelockTime",
440
+ "holdAndReleaseTime",
441
+ "twistAssist",
442
+ "blockToBlock",
443
+ ]);
444
+ }
445
+ }
446
+ };
447
+ _a = API_1.SET_VALUE, _b = API_1.POLL_VALUE;
448
+ DoorLockCCAPI = __decorate([
449
+ (0, CommandClass_1.API)(safe_1.CommandClasses["Door Lock"])
450
+ ], DoorLockCCAPI);
451
+ exports.DoorLockCCAPI = DoorLockCCAPI;
452
+ let DoorLockCC = class DoorLockCC extends CommandClass_1.CommandClass {
453
+ async interview(applHost) {
454
+ const node = this.getNode(applHost);
455
+ const endpoint = this.getEndpoint(applHost);
456
+ const api = API_1.CCAPI.create(safe_1.CommandClasses["Door Lock"], applHost, endpoint).withOptions({
457
+ priority: safe_1.MessagePriority.NodeQuery,
458
+ });
459
+ const valueDB = this.getValueDB(applHost);
460
+ applHost.controllerLog.logNode(node.id, {
461
+ endpoint: this.endpointIndex,
462
+ message: `Interviewing ${this.ccName}...`,
463
+ direction: "none",
464
+ });
465
+ // We need to do some queries after a potential timeout
466
+ // In this case, do now mark this CC as interviewed completely
467
+ let hadCriticalTimeout = false;
468
+ // By default, assume all status sensors to be supported
469
+ let doorSupported = true;
470
+ let boltSupported = true;
471
+ let latchSupported = true;
472
+ if (this.version >= 4) {
473
+ applHost.controllerLog.logNode(node.id, {
474
+ endpoint: this.endpointIndex,
475
+ message: "requesting lock capabilities...",
476
+ direction: "outbound",
477
+ });
478
+ const resp = await api.getCapabilities();
479
+ if (resp) {
480
+ const logMessage = `received lock capabilities:
481
+ supported operation types: ${resp.supportedOperationTypes
482
+ .map((t) => (0, safe_2.getEnumMemberName)(_Types_1.DoorLockOperationType, t))
483
+ .join(", ")}
484
+ supported door lock modes: ${resp.supportedDoorLockModes
485
+ .map((t) => (0, safe_2.getEnumMemberName)(_Types_1.DoorLockMode, t))
486
+ .map((str) => `\n· ${str}`)
487
+ .join("")}
488
+ supported outside handles: ${resp.supportedOutsideHandles
489
+ .map(String)
490
+ .join(", ")}
491
+ supported inside handles: ${resp.supportedInsideHandles.map(String).join(", ")}
492
+ supports door status: ${resp.doorSupported}
493
+ supports bolt status: ${resp.boltSupported}
494
+ supports latch status: ${resp.latchSupported}
495
+ supports auto-relock: ${resp.autoRelockSupported}
496
+ supports hold-and-release: ${resp.holdAndReleaseSupported}
497
+ supports twist assist: ${resp.twistAssistSupported}
498
+ supports block to block: ${resp.blockToBlockSupported}`;
499
+ applHost.controllerLog.logNode(node.id, {
500
+ endpoint: this.endpointIndex,
501
+ message: logMessage,
502
+ direction: "inbound",
503
+ });
504
+ doorSupported = resp.doorSupported;
505
+ boltSupported = resp.boltSupported;
506
+ latchSupported = resp.latchSupported;
507
+ // Update metadata of settable states
508
+ valueDB.setMetadata(getTargetModeValueId(this.endpointIndex), {
509
+ ...safe_1.ValueMetadata.UInt8,
510
+ states: (0, safe_1.enumValuesToMetadataStates)(_Types_1.DoorLockMode, resp.supportedDoorLockModes),
511
+ });
512
+ valueDB.setMetadata(getOperationTypeValueId(this.endpointIndex), {
513
+ ...safe_1.ValueMetadata.UInt8,
514
+ states: (0, safe_1.enumValuesToMetadataStates)(_Types_1.DoorLockOperationType, resp.supportedOperationTypes),
515
+ });
516
+ }
517
+ else {
518
+ hadCriticalTimeout = true;
519
+ }
520
+ }
521
+ if (!hadCriticalTimeout) {
522
+ // Save support information for the status values
523
+ valueDB.setMetadata(getDoorStatusValueId(this.endpointIndex), doorSupported ? getDoorStatusValueMetadata() : undefined);
524
+ valueDB.setValue(getDoorSupportedValueId(this.endpointIndex), doorSupported);
525
+ valueDB.setMetadata(getLatchStatusValueId(this.endpointIndex), latchSupported ? getLatchStatusValueMetadata() : undefined);
526
+ valueDB.setValue(getLatchSupportedValueId(this.endpointIndex), latchSupported);
527
+ valueDB.setMetadata(getBoltStatusValueId(this.endpointIndex), boltSupported ? getBoltStatusValueMetadata() : undefined);
528
+ valueDB.setValue(getBoltSupportedValueId(this.endpointIndex), boltSupported);
529
+ }
530
+ await this.refreshValues(applHost);
531
+ // Remember that the interview is complete
532
+ if (!hadCriticalTimeout)
533
+ this.setInterviewComplete(applHost, true);
534
+ }
535
+ async refreshValues(applHost) {
536
+ var _c, _d, _e, _f;
537
+ const node = this.getNode(applHost);
538
+ const endpoint = this.getEndpoint(applHost);
539
+ const api = API_1.CCAPI.create(safe_1.CommandClasses["Door Lock"], applHost, endpoint).withOptions({
540
+ priority: safe_1.MessagePriority.NodeQuery,
541
+ });
542
+ applHost.controllerLog.logNode(node.id, {
543
+ endpoint: this.endpointIndex,
544
+ message: "requesting lock configuration...",
545
+ direction: "outbound",
546
+ });
547
+ const config = await api.getConfiguration();
548
+ if (config) {
549
+ let logMessage = `received lock configuration:
550
+ operation type: ${(0, safe_2.getEnumMemberName)(_Types_1.DoorLockOperationType, config.operationType)}`;
551
+ if (config.operationType === _Types_1.DoorLockOperationType.Timed) {
552
+ logMessage += `
553
+ lock timeout: ${config.lockTimeoutConfiguration} seconds
554
+ `;
555
+ }
556
+ logMessage += `
557
+ outside handles can open door: ${config.outsideHandlesCanOpenDoorConfiguration
558
+ .map(String)
559
+ .join(", ")}
560
+ inside handles can open door: ${config.insideHandlesCanOpenDoorConfiguration
561
+ .map(String)
562
+ .join(", ")}`;
563
+ if (this.version >= 4) {
564
+ logMessage += `
565
+ auto-relock time ${(_c = config.autoRelockTime) !== null && _c !== void 0 ? _c : "-"} seconds
566
+ hold-and-release time ${(_d = config.holdAndReleaseTime) !== null && _d !== void 0 ? _d : "-"} seconds
567
+ twist assist ${!!config.twistAssist}
568
+ block to block ${!!config.blockToBlock}`;
569
+ }
570
+ applHost.controllerLog.logNode(node.id, {
571
+ endpoint: this.endpointIndex,
572
+ message: logMessage,
573
+ direction: "inbound",
574
+ });
575
+ }
576
+ applHost.controllerLog.logNode(node.id, {
577
+ endpoint: this.endpointIndex,
578
+ message: "requesting current lock status...",
579
+ direction: "outbound",
580
+ });
581
+ const status = await api.get();
582
+ if (status) {
583
+ let logMessage = `received lock status:
584
+ current mode: ${(0, safe_2.getEnumMemberName)(_Types_1.DoorLockMode, status.currentMode)}`;
585
+ if (status.targetMode != undefined) {
586
+ logMessage += `
587
+ target mode: ${(0, safe_2.getEnumMemberName)(_Types_1.DoorLockMode, status.targetMode)}
588
+ remaining duration: ${(_f = (_e = status.duration) === null || _e === void 0 ? void 0 : _e.toString()) !== null && _f !== void 0 ? _f : "undefined"}`;
589
+ }
590
+ if (status.lockTimeout != undefined) {
591
+ logMessage += `
592
+ lock timeout: ${status.lockTimeout} seconds`;
593
+ }
594
+ if (status.doorStatus != undefined) {
595
+ logMessage += `
596
+ door status: ${status.doorStatus}`;
597
+ }
598
+ if (status.boltStatus != undefined) {
599
+ logMessage += `
600
+ bolt status: ${status.boltStatus}`;
601
+ }
602
+ if (status.latchStatus != undefined) {
603
+ logMessage += `
604
+ latch status: ${status.latchStatus}`;
605
+ }
606
+ applHost.controllerLog.logNode(node.id, {
607
+ endpoint: this.endpointIndex,
608
+ message: logMessage,
609
+ direction: "inbound",
610
+ });
611
+ }
612
+ }
613
+ };
614
+ DoorLockCC = __decorate([
615
+ (0, CommandClass_1.commandClass)(safe_1.CommandClasses["Door Lock"]),
616
+ (0, CommandClass_1.implementedVersion)(4)
617
+ ], DoorLockCC);
618
+ exports.DoorLockCC = DoorLockCC;
619
+ let DoorLockCCOperationSet = class DoorLockCCOperationSet extends DoorLockCC {
620
+ constructor(host, options) {
621
+ super(host, options);
622
+ if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
623
+ // TODO: Deserialize payload
624
+ throw new safe_1.ZWaveError(`${this.constructor.name}: deserialization not implemented`, safe_1.ZWaveErrorCodes.Deserialization_NotImplemented);
625
+ }
626
+ else {
627
+ if (options.mode === _Types_1.DoorLockMode.Unknown) {
628
+ throw new safe_1.ZWaveError(`Unknown is not a valid door lock target state!`, safe_1.ZWaveErrorCodes.Argument_Invalid);
629
+ }
630
+ this.mode = options.mode;
631
+ }
632
+ }
633
+ serialize() {
634
+ this.payload = Buffer.from([this.mode]);
635
+ return super.serialize();
636
+ }
637
+ toLogEntry(applHost) {
638
+ return {
639
+ ...super.toLogEntry(applHost),
640
+ message: {
641
+ "target mode": (0, safe_2.getEnumMemberName)(_Types_1.DoorLockMode, this.mode),
642
+ },
643
+ };
644
+ }
645
+ };
646
+ DoorLockCCOperationSet = __decorate([
647
+ (0, CommandClass_1.CCCommand)(_Types_1.DoorLockCommand.OperationSet)
648
+ ], DoorLockCCOperationSet);
649
+ exports.DoorLockCCOperationSet = DoorLockCCOperationSet;
650
+ let DoorLockCCOperationReport = class DoorLockCCOperationReport extends DoorLockCC {
651
+ constructor(host, options) {
652
+ super(host, options);
653
+ (0, safe_1.validatePayload)(this.payload.length >= 5);
654
+ this.currentMode = this.payload[0];
655
+ this.outsideHandlesCanOpenDoor = [
656
+ !!(this.payload[1] & 16),
657
+ !!(this.payload[1] & 32),
658
+ !!(this.payload[1] & 64),
659
+ !!(this.payload[1] & 128),
660
+ ];
661
+ this.insideHandlesCanOpenDoor = [
662
+ !!(this.payload[1] & 0b0001),
663
+ !!(this.payload[1] & 0b0010),
664
+ !!(this.payload[1] & 0b0100),
665
+ !!(this.payload[1] & 0b1000),
666
+ ];
667
+ this.doorStatus = !!(this.payload[2] & 0b1) ? "closed" : "open";
668
+ this.boltStatus = !!(this.payload[2] & 0b10) ? "unlocked" : "locked";
669
+ this.latchStatus = !!(this.payload[2] & 0b100) ? "closed" : "open";
670
+ // Ignore invalid timeout values
671
+ const lockTimeoutMinutes = this.payload[3];
672
+ const lockTimeoutSeconds = this.payload[4];
673
+ if (lockTimeoutMinutes <= 253 && lockTimeoutSeconds <= 59) {
674
+ this.lockTimeout = lockTimeoutSeconds + lockTimeoutMinutes * 60;
675
+ }
676
+ if (this.version >= 3 && this.payload.length >= 7) {
677
+ this.targetMode = this.payload[5];
678
+ this.duration = safe_1.Duration.parseReport(this.payload[6]);
679
+ }
680
+ }
681
+ persistValues(applHost) {
682
+ if (!super.persistValues(applHost))
683
+ return false;
684
+ const valueDB = this.getValueDB(applHost);
685
+ // Only store the door/bolt/latch status if the lock supports it
686
+ const supportsDoorStatus = !!valueDB.getValue(getDoorSupportedValueId(this.endpointIndex));
687
+ if (supportsDoorStatus) {
688
+ const valueId = getDoorStatusValueId(this.endpointIndex);
689
+ valueDB.setValue(valueId, this.doorStatus);
690
+ }
691
+ const supportsBoltStatus = !!valueDB.getValue(getBoltSupportedValueId(this.endpointIndex));
692
+ if (supportsBoltStatus) {
693
+ const valueId = getBoltStatusValueId(this.endpointIndex);
694
+ valueDB.setValue(valueId, this.boltStatus);
695
+ }
696
+ const supportsLatchStatus = !!valueDB.getValue(getLatchSupportedValueId(this.endpointIndex));
697
+ if (supportsLatchStatus) {
698
+ const valueId = getLatchStatusValueId(this.endpointIndex);
699
+ valueDB.setValue(valueId, this.latchStatus);
700
+ }
701
+ return true;
702
+ }
703
+ toLogEntry(applHost) {
704
+ const message = {
705
+ "current mode": (0, safe_2.getEnumMemberName)(_Types_1.DoorLockMode, this.currentMode),
706
+ "active outside handles": this.outsideHandlesCanOpenDoor.join(", "),
707
+ "active inside handles": this.insideHandlesCanOpenDoor.join(", "),
708
+ };
709
+ if (this.latchStatus != undefined) {
710
+ message["latch status"] = this.latchStatus;
711
+ }
712
+ if (this.boltStatus != undefined) {
713
+ message["bolt status"] = this.boltStatus;
714
+ }
715
+ if (this.doorStatus != undefined) {
716
+ message["door status"] = this.doorStatus;
717
+ }
718
+ if (this.targetMode != undefined) {
719
+ message["target mode"] = (0, safe_2.getEnumMemberName)(_Types_1.DoorLockMode, this.targetMode);
720
+ }
721
+ if (this.duration != undefined) {
722
+ message["remaining duration"] = this.duration.toString();
723
+ }
724
+ if (this.lockTimeout != undefined) {
725
+ message["lock timeout"] = `${this.lockTimeout} seconds`;
726
+ }
727
+ return {
728
+ ...super.toLogEntry(applHost),
729
+ message,
730
+ };
731
+ }
732
+ };
733
+ __decorate([
734
+ (0, CommandClass_1.ccValue)(),
735
+ (0, CommandClass_1.ccValueMetadata)({
736
+ ...safe_1.ValueMetadata.ReadOnlyUInt8,
737
+ label: "Current lock mode",
738
+ states: (0, safe_1.enumValuesToMetadataStates)(_Types_1.DoorLockMode),
739
+ })
740
+ ], DoorLockCCOperationReport.prototype, "currentMode", void 0);
741
+ __decorate([
742
+ (0, CommandClass_1.ccValue)(),
743
+ (0, CommandClass_1.ccValueMetadata)({
744
+ ...safe_1.ValueMetadata.UInt8,
745
+ label: "Target lock mode",
746
+ states: (0, safe_1.enumValuesToMetadataStates)(_Types_1.DoorLockMode),
747
+ })
748
+ ], DoorLockCCOperationReport.prototype, "targetMode", void 0);
749
+ __decorate([
750
+ (0, CommandClass_1.ccValue)({ minVersion: 3 }),
751
+ (0, CommandClass_1.ccValueMetadata)({
752
+ ...safe_1.ValueMetadata.ReadOnlyDuration,
753
+ label: "Remaining duration until target lock mode",
754
+ })
755
+ ], DoorLockCCOperationReport.prototype, "duration", void 0);
756
+ __decorate([
757
+ (0, CommandClass_1.ccValue)(),
758
+ (0, CommandClass_1.ccValueMetadata)({
759
+ ...safe_1.ValueMetadata.ReadOnly,
760
+ label: "Which outside handles can open the door (actual status)",
761
+ })
762
+ ], DoorLockCCOperationReport.prototype, "outsideHandlesCanOpenDoor", void 0);
763
+ __decorate([
764
+ (0, CommandClass_1.ccValue)(),
765
+ (0, CommandClass_1.ccValueMetadata)({
766
+ ...safe_1.ValueMetadata.ReadOnly,
767
+ label: "Which inside handles can open the door (actual status)",
768
+ })
769
+ ], DoorLockCCOperationReport.prototype, "insideHandlesCanOpenDoor", void 0);
770
+ __decorate([
771
+ (0, CommandClass_1.ccValue)(),
772
+ (0, CommandClass_1.ccValueMetadata)({
773
+ ...safe_1.ValueMetadata.ReadOnlyNumber,
774
+ label: "Seconds until lock mode times out",
775
+ })
776
+ ], DoorLockCCOperationReport.prototype, "lockTimeout", void 0);
777
+ DoorLockCCOperationReport = __decorate([
778
+ (0, CommandClass_1.CCCommand)(_Types_1.DoorLockCommand.OperationReport)
779
+ ], DoorLockCCOperationReport);
780
+ exports.DoorLockCCOperationReport = DoorLockCCOperationReport;
781
+ let DoorLockCCOperationGet = class DoorLockCCOperationGet extends DoorLockCC {
782
+ };
783
+ DoorLockCCOperationGet = __decorate([
784
+ (0, CommandClass_1.CCCommand)(_Types_1.DoorLockCommand.OperationGet),
785
+ (0, CommandClass_1.expectedCCResponse)(DoorLockCCOperationReport)
786
+ ], DoorLockCCOperationGet);
787
+ exports.DoorLockCCOperationGet = DoorLockCCOperationGet;
788
+ let DoorLockCCConfigurationReport = class DoorLockCCConfigurationReport extends DoorLockCC {
789
+ constructor(host, options) {
790
+ super(host, options);
791
+ (0, safe_1.validatePayload)(this.payload.length >= 4);
792
+ this.operationType = this.payload[0];
793
+ this.outsideHandlesCanOpenDoorConfiguration = [
794
+ !!(this.payload[1] & 16),
795
+ !!(this.payload[1] & 32),
796
+ !!(this.payload[1] & 64),
797
+ !!(this.payload[1] & 128),
798
+ ];
799
+ this.insideHandlesCanOpenDoorConfiguration = [
800
+ !!(this.payload[1] & 0b0001),
801
+ !!(this.payload[1] & 0b0010),
802
+ !!(this.payload[1] & 0b0100),
803
+ !!(this.payload[1] & 0b1000),
804
+ ];
805
+ if (this.operationType === _Types_1.DoorLockOperationType.Timed) {
806
+ const lockTimeoutMinutes = this.payload[2];
807
+ const lockTimeoutSeconds = this.payload[3];
808
+ if (lockTimeoutMinutes <= 0xfd && lockTimeoutSeconds <= 59) {
809
+ this.lockTimeoutConfiguration =
810
+ lockTimeoutSeconds + lockTimeoutMinutes * 60;
811
+ }
812
+ }
813
+ if (this.version >= 4 && this.payload.length >= 5) {
814
+ this.autoRelockTime = this.payload.readUInt16BE(4);
815
+ this.holdAndReleaseTime = this.payload.readUInt16BE(6);
816
+ const flags = this.payload[8];
817
+ this.twistAssist = !!(flags & 0b1);
818
+ this.blockToBlock = !!(flags & 0b10);
819
+ }
820
+ }
821
+ toLogEntry(applHost) {
822
+ const message = {
823
+ "operation type": (0, safe_2.getEnumMemberName)(_Types_1.DoorLockOperationType, this.operationType),
824
+ "outside handle configuration": this.outsideHandlesCanOpenDoorConfiguration.join(", "),
825
+ "inside handle configuration": this.insideHandlesCanOpenDoorConfiguration.join(", "),
826
+ };
827
+ if (this.lockTimeoutConfiguration != undefined) {
828
+ message["timed mode duration"] = `${this.lockTimeoutConfiguration} seconds`;
829
+ }
830
+ if (this.autoRelockTime != undefined) {
831
+ message["auto-relock time"] = `${this.autoRelockTime} seconds`;
832
+ }
833
+ if (this.holdAndReleaseTime != undefined) {
834
+ message["hold-and-release time"] = `${this.holdAndReleaseTime} seconds`;
835
+ }
836
+ if (this.twistAssist != undefined) {
837
+ message["twist assist enabled"] = this.twistAssist;
838
+ }
839
+ if (this.blockToBlock != undefined) {
840
+ message["block-to-block enabled"] = this.blockToBlock;
841
+ }
842
+ return {
843
+ ...super.toLogEntry(applHost),
844
+ message,
845
+ };
846
+ }
847
+ };
848
+ __decorate([
849
+ (0, CommandClass_1.ccValue)(),
850
+ (0, CommandClass_1.ccValueMetadata)({
851
+ ...safe_1.ValueMetadata.UInt8,
852
+ label: "Lock operation type",
853
+ states: (0, safe_1.enumValuesToMetadataStates)(_Types_1.DoorLockOperationType),
854
+ })
855
+ ], DoorLockCCConfigurationReport.prototype, "operationType", void 0);
856
+ __decorate([
857
+ (0, CommandClass_1.ccValue)(),
858
+ (0, CommandClass_1.ccValueMetadata)({
859
+ ...safe_1.ValueMetadata.Any,
860
+ label: "Which outside handles can open the door (configuration)",
861
+ })
862
+ ], DoorLockCCConfigurationReport.prototype, "outsideHandlesCanOpenDoorConfiguration", void 0);
863
+ __decorate([
864
+ (0, CommandClass_1.ccValue)(),
865
+ (0, CommandClass_1.ccValueMetadata)({
866
+ ...safe_1.ValueMetadata.Any,
867
+ label: "Which inside handles can open the door (configuration)",
868
+ })
869
+ ], DoorLockCCConfigurationReport.prototype, "insideHandlesCanOpenDoorConfiguration", void 0);
870
+ __decorate([
871
+ (0, CommandClass_1.ccValue)(),
872
+ (0, CommandClass_1.ccValueMetadata)({
873
+ ...safe_1.ValueMetadata.UInt16,
874
+ label: "Duration of timed mode in seconds",
875
+ })
876
+ ], DoorLockCCConfigurationReport.prototype, "lockTimeoutConfiguration", void 0);
877
+ __decorate([
878
+ (0, CommandClass_1.ccValue)({ minVersion: 4 }),
879
+ (0, CommandClass_1.ccValueMetadata)({
880
+ ...safe_1.ValueMetadata.UInt16,
881
+ label: "Duration in seconds until lock returns to secure state",
882
+ })
883
+ ], DoorLockCCConfigurationReport.prototype, "autoRelockTime", void 0);
884
+ __decorate([
885
+ (0, CommandClass_1.ccValue)({ minVersion: 4 }),
886
+ (0, CommandClass_1.ccValueMetadata)({
887
+ ...safe_1.ValueMetadata.UInt16,
888
+ label: "Duration in seconds the latch stays retracted",
889
+ })
890
+ ], DoorLockCCConfigurationReport.prototype, "holdAndReleaseTime", void 0);
891
+ __decorate([
892
+ (0, CommandClass_1.ccValue)({ minVersion: 4 }),
893
+ (0, CommandClass_1.ccValueMetadata)({
894
+ ...safe_1.ValueMetadata.Boolean,
895
+ label: "Twist Assist enabled",
896
+ })
897
+ ], DoorLockCCConfigurationReport.prototype, "twistAssist", void 0);
898
+ __decorate([
899
+ (0, CommandClass_1.ccValue)({ minVersion: 4 }),
900
+ (0, CommandClass_1.ccValueMetadata)({
901
+ ...safe_1.ValueMetadata.Boolean,
902
+ label: "Block-to-block functionality enabled",
903
+ })
904
+ ], DoorLockCCConfigurationReport.prototype, "blockToBlock", void 0);
905
+ DoorLockCCConfigurationReport = __decorate([
906
+ (0, CommandClass_1.CCCommand)(_Types_1.DoorLockCommand.ConfigurationReport)
907
+ ], DoorLockCCConfigurationReport);
908
+ exports.DoorLockCCConfigurationReport = DoorLockCCConfigurationReport;
909
+ let DoorLockCCConfigurationGet = class DoorLockCCConfigurationGet extends DoorLockCC {
910
+ };
911
+ DoorLockCCConfigurationGet = __decorate([
912
+ (0, CommandClass_1.CCCommand)(_Types_1.DoorLockCommand.ConfigurationGet),
913
+ (0, CommandClass_1.expectedCCResponse)(DoorLockCCConfigurationReport)
914
+ ], DoorLockCCConfigurationGet);
915
+ exports.DoorLockCCConfigurationGet = DoorLockCCConfigurationGet;
916
+ let DoorLockCCConfigurationSet = class DoorLockCCConfigurationSet extends DoorLockCC {
917
+ constructor(host, options) {
918
+ super(host, options);
919
+ if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
920
+ // TODO: Deserialize payload
921
+ throw new safe_1.ZWaveError(`${this.constructor.name}: deserialization not implemented`, safe_1.ZWaveErrorCodes.Deserialization_NotImplemented);
922
+ }
923
+ else {
924
+ this.operationType = options.operationType;
925
+ this.outsideHandlesCanOpenDoorConfiguration =
926
+ options.outsideHandlesCanOpenDoorConfiguration;
927
+ this.insideHandlesCanOpenDoorConfiguration =
928
+ options.insideHandlesCanOpenDoorConfiguration;
929
+ this.lockTimeoutConfiguration = options.lockTimeoutConfiguration;
930
+ this.autoRelockTime = options.autoRelockTime;
931
+ this.holdAndReleaseTime = options.holdAndReleaseTime;
932
+ this.twistAssist = options.twistAssist;
933
+ this.blockToBlock = options.blockToBlock;
934
+ }
935
+ }
936
+ serialize() {
937
+ var _c, _d;
938
+ const insideHandles = (0, typeguards_1.isArray)(this.insideHandlesCanOpenDoorConfiguration)
939
+ ? this.insideHandlesCanOpenDoorConfiguration
940
+ : [];
941
+ const outsideHandles = (0, typeguards_1.isArray)(this.outsideHandlesCanOpenDoorConfiguration)
942
+ ? this.outsideHandlesCanOpenDoorConfiguration
943
+ : [];
944
+ const handles = [...insideHandles, ...outsideHandles]
945
+ .map((val, i) => (val ? 1 << i : 0))
946
+ .reduce((acc, cur) => acc | cur, 0);
947
+ let lockTimeoutMinutes;
948
+ let lockTimeoutSeconds;
949
+ if (this.operationType === _Types_1.DoorLockOperationType.Constant) {
950
+ lockTimeoutMinutes = lockTimeoutSeconds = 0xfe;
951
+ }
952
+ else {
953
+ lockTimeoutMinutes = Math.floor(this.lockTimeoutConfiguration / 60);
954
+ lockTimeoutSeconds = this.lockTimeoutConfiguration % 60;
955
+ }
956
+ this.payload = Buffer.from([
957
+ this.operationType,
958
+ handles,
959
+ lockTimeoutMinutes,
960
+ lockTimeoutSeconds,
961
+ ]);
962
+ if (this.version >= 4 &&
963
+ (this.twistAssist != undefined ||
964
+ this.blockToBlock != undefined ||
965
+ this.autoRelockTime != undefined ||
966
+ this.holdAndReleaseTime != undefined)) {
967
+ const flags = (this.twistAssist ? 0b1 : 0) | (this.blockToBlock ? 0b10 : 0);
968
+ this.payload = Buffer.concat([
969
+ this.payload,
970
+ Buffer.from([
971
+ // placeholder for auto relock time
972
+ 0,
973
+ 0,
974
+ // placeholder for hold and release time
975
+ 0,
976
+ 0,
977
+ flags,
978
+ ]),
979
+ ]);
980
+ this.payload.writeUInt16BE(((_c = this.autoRelockTime) !== null && _c !== void 0 ? _c : 0) & 0xffff, 4);
981
+ this.payload.writeUInt16BE(((_d = this.holdAndReleaseTime) !== null && _d !== void 0 ? _d : 0) & 0xffff, 6);
982
+ }
983
+ return super.serialize();
984
+ }
985
+ toLogEntry(applHost) {
986
+ const insideHandles = (0, typeguards_1.isArray)(this.insideHandlesCanOpenDoorConfiguration)
987
+ ? this.insideHandlesCanOpenDoorConfiguration
988
+ : [];
989
+ const outsideHandles = (0, typeguards_1.isArray)(this.outsideHandlesCanOpenDoorConfiguration)
990
+ ? this.outsideHandlesCanOpenDoorConfiguration
991
+ : [];
992
+ const message = {
993
+ "operation type": (0, safe_2.getEnumMemberName)(_Types_1.DoorLockOperationType, this.operationType),
994
+ "outside handle configuration": outsideHandles.join(", "),
995
+ "inside handle configuration": insideHandles.join(", "),
996
+ };
997
+ if (this.lockTimeoutConfiguration != undefined) {
998
+ message["timed mode duration"] = `${this.lockTimeoutConfiguration} seconds`;
999
+ }
1000
+ if (this.autoRelockTime != undefined) {
1001
+ message["auto-relock time"] = `${this.autoRelockTime} seconds`;
1002
+ }
1003
+ if (this.holdAndReleaseTime != undefined) {
1004
+ message["hold-and-release time"] = `${this.holdAndReleaseTime} seconds`;
1005
+ }
1006
+ if (this.twistAssist != undefined) {
1007
+ message["enable twist assist"] = this.twistAssist;
1008
+ }
1009
+ if (this.blockToBlock != undefined) {
1010
+ message["enable block-to-block"] = this.blockToBlock;
1011
+ }
1012
+ return {
1013
+ ...super.toLogEntry(applHost),
1014
+ message,
1015
+ };
1016
+ }
1017
+ };
1018
+ DoorLockCCConfigurationSet = __decorate([
1019
+ (0, CommandClass_1.CCCommand)(_Types_1.DoorLockCommand.ConfigurationSet)
1020
+ ], DoorLockCCConfigurationSet);
1021
+ exports.DoorLockCCConfigurationSet = DoorLockCCConfigurationSet;
1022
+ let DoorLockCCCapabilitiesReport = class DoorLockCCCapabilitiesReport extends DoorLockCC {
1023
+ constructor(host, options) {
1024
+ super(host, options);
1025
+ // parse variable length operation type bit mask
1026
+ (0, safe_1.validatePayload)(this.payload.length >= 1);
1027
+ const bitMaskLength = this.payload[0] & 0b11111;
1028
+ let offset = 1;
1029
+ (0, safe_1.validatePayload)(this.payload.length >= offset + bitMaskLength + 1);
1030
+ this.supportedOperationTypes = (0, safe_1.parseBitMask)(this.payload.slice(offset, offset + bitMaskLength));
1031
+ offset += bitMaskLength;
1032
+ // parse variable length door lock mode list
1033
+ const listLength = this.payload[offset];
1034
+ offset += 1;
1035
+ (0, safe_1.validatePayload)(this.payload.length >= offset + listLength + 3);
1036
+ this.supportedDoorLockModes = [
1037
+ ...this.payload.slice(offset, offset + listLength),
1038
+ ];
1039
+ offset += listLength;
1040
+ this.supportedOutsideHandles = [
1041
+ !!(this.payload[offset] & 16),
1042
+ !!(this.payload[offset] & 32),
1043
+ !!(this.payload[offset] & 64),
1044
+ !!(this.payload[offset] & 128),
1045
+ ];
1046
+ this.supportedInsideHandles = [
1047
+ !!(this.payload[offset] & 0b0001),
1048
+ !!(this.payload[offset] & 0b0010),
1049
+ !!(this.payload[offset] & 0b0100),
1050
+ !!(this.payload[offset] & 0b1000),
1051
+ ];
1052
+ this.doorSupported = !!(this.payload[offset + 1] & 0b1);
1053
+ this.boltSupported = !!(this.payload[offset + 1] & 0b10);
1054
+ this.latchSupported = !!(this.payload[offset + 1] & 0b100);
1055
+ this.blockToBlockSupported = !!(this.payload[offset + 2] & 0b1);
1056
+ this.twistAssistSupported = !!(this.payload[offset + 2] & 0b10);
1057
+ this.holdAndReleaseSupported = !!(this.payload[offset + 2] & 0b100);
1058
+ this.autoRelockSupported = !!(this.payload[offset + 2] & 0b1000);
1059
+ }
1060
+ toLogEntry(applHost) {
1061
+ return {
1062
+ ...super.toLogEntry(applHost),
1063
+ message: {
1064
+ door: this.doorSupported,
1065
+ bolt: this.boltSupported,
1066
+ latch: this.latchSupported,
1067
+ "block-to-block feature": this.blockToBlockSupported,
1068
+ "twist assist feature": this.twistAssistSupported,
1069
+ "hold-and-release feature": this.holdAndReleaseSupported,
1070
+ "auto-relock feature": this.autoRelockSupported,
1071
+ "operation types": this.supportedOperationTypes
1072
+ .map((t) => `\n· ${(0, safe_2.getEnumMemberName)(_Types_1.DoorLockOperationType, t)}`)
1073
+ .join(""),
1074
+ "door lock modes": this.supportedDoorLockModes
1075
+ .map((t) => `\n· ${(0, safe_2.getEnumMemberName)(_Types_1.DoorLockMode, t)}`)
1076
+ .join(""),
1077
+ "outside handles": this.supportedOutsideHandles.join(", "),
1078
+ "inside handles": this.supportedInsideHandles.join(", "),
1079
+ },
1080
+ };
1081
+ }
1082
+ };
1083
+ __decorate([
1084
+ (0, CommandClass_1.ccValue)({ internal: true, minVersion: 4 })
1085
+ ], DoorLockCCCapabilitiesReport.prototype, "supportedOutsideHandles", void 0);
1086
+ __decorate([
1087
+ (0, CommandClass_1.ccValue)({ internal: true, minVersion: 4 })
1088
+ ], DoorLockCCCapabilitiesReport.prototype, "supportedInsideHandles", void 0);
1089
+ __decorate([
1090
+ (0, CommandClass_1.ccValue)({ internal: true, minVersion: 4 })
1091
+ ], DoorLockCCCapabilitiesReport.prototype, "autoRelockSupported", void 0);
1092
+ __decorate([
1093
+ (0, CommandClass_1.ccValue)({ internal: true, minVersion: 4 })
1094
+ ], DoorLockCCCapabilitiesReport.prototype, "holdAndReleaseSupported", void 0);
1095
+ __decorate([
1096
+ (0, CommandClass_1.ccValue)({ internal: true, minVersion: 4 })
1097
+ ], DoorLockCCCapabilitiesReport.prototype, "twistAssistSupported", void 0);
1098
+ __decorate([
1099
+ (0, CommandClass_1.ccValue)({ internal: true, minVersion: 4 })
1100
+ ], DoorLockCCCapabilitiesReport.prototype, "blockToBlockSupported", void 0);
1101
+ DoorLockCCCapabilitiesReport = __decorate([
1102
+ (0, CommandClass_1.CCCommand)(_Types_1.DoorLockCommand.CapabilitiesReport)
1103
+ ], DoorLockCCCapabilitiesReport);
1104
+ exports.DoorLockCCCapabilitiesReport = DoorLockCCCapabilitiesReport;
1105
+ let DoorLockCCCapabilitiesGet = class DoorLockCCCapabilitiesGet extends DoorLockCC {
1106
+ };
1107
+ DoorLockCCCapabilitiesGet = __decorate([
1108
+ (0, CommandClass_1.CCCommand)(_Types_1.DoorLockCommand.CapabilitiesGet),
1109
+ (0, CommandClass_1.expectedCCResponse)(DoorLockCCCapabilitiesReport)
1110
+ ], DoorLockCCCapabilitiesGet);
1111
+ exports.DoorLockCCCapabilitiesGet = DoorLockCCCapabilitiesGet;
1112
+ //# sourceMappingURL=DoorLockCC.js.map