@zwave-js/cc 15.0.0-beta.0 → 15.0.0-beta.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 (376) hide show
  1. package/build/cjs/cc/AlarmSensorCC.d.ts +79 -161
  2. package/build/cjs/cc/AlarmSensorCC.js +12 -50
  3. package/build/cjs/cc/AlarmSensorCC.js.map +2 -2
  4. package/build/cjs/cc/AssociationCC.d.ts +63 -199
  5. package/build/cjs/cc/AssociationCC.js +9 -22
  6. package/build/cjs/cc/AssociationCC.js.map +2 -2
  7. package/build/cjs/cc/AssociationGroupInfoCC.d.ts +66 -166
  8. package/build/cjs/cc/AssociationGroupInfoCC.js +11 -22
  9. package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
  10. package/build/cjs/cc/BarrierOperatorCC.d.ts +86 -294
  11. package/build/cjs/cc/BarrierOperatorCC.js +12 -44
  12. package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
  13. package/build/cjs/cc/BasicCC.d.ts +85 -331
  14. package/build/cjs/cc/BasicCC.js +15 -46
  15. package/build/cjs/cc/BasicCC.js.map +2 -2
  16. package/build/cjs/cc/BatteryCC.d.ts +237 -835
  17. package/build/cjs/cc/BatteryCC.js +7 -84
  18. package/build/cjs/cc/BatteryCC.js.map +2 -2
  19. package/build/cjs/cc/BinarySensorCC.d.ts +34 -99
  20. package/build/cjs/cc/BinarySensorCC.js +9 -29
  21. package/build/cjs/cc/BinarySensorCC.js.map +2 -2
  22. package/build/cjs/cc/BinarySwitchCC.d.ts +45 -197
  23. package/build/cjs/cc/BinarySwitchCC.js +6 -22
  24. package/build/cjs/cc/BinarySwitchCC.js.map +2 -2
  25. package/build/cjs/cc/CentralSceneCC.d.ts +77 -296
  26. package/build/cjs/cc/CentralSceneCC.js +7 -30
  27. package/build/cjs/cc/CentralSceneCC.js.map +2 -2
  28. package/build/cjs/cc/ClimateControlScheduleCC.d.ts +45 -160
  29. package/build/cjs/cc/ClimateControlScheduleCC.js +5 -24
  30. package/build/cjs/cc/ClimateControlScheduleCC.js.map +2 -2
  31. package/build/cjs/cc/ColorSwitchCC.d.ts +130 -457
  32. package/build/cjs/cc/ColorSwitchCC.js +23 -75
  33. package/build/cjs/cc/ColorSwitchCC.js.map +2 -2
  34. package/build/cjs/cc/ConfigurationCC.d.ts +32 -100
  35. package/build/cjs/cc/ConfigurationCC.js +11 -31
  36. package/build/cjs/cc/ConfigurationCC.js.map +2 -2
  37. package/build/cjs/cc/DoorLockCC.d.ts +512 -1823
  38. package/build/cjs/cc/DoorLockCC.js +51 -156
  39. package/build/cjs/cc/DoorLockCC.js.map +2 -2
  40. package/build/cjs/cc/DoorLockLoggingCC.d.ts +11 -63
  41. package/build/cjs/cc/DoorLockLoggingCC.js +4 -8
  42. package/build/cjs/cc/DoorLockLoggingCC.js.map +2 -2
  43. package/build/cjs/cc/EnergyProductionCC.d.ts +14 -29
  44. package/build/cjs/cc/EnergyProductionCC.js +5 -17
  45. package/build/cjs/cc/EnergyProductionCC.js.map +2 -2
  46. package/build/cjs/cc/EntryControlCC.d.ts +73 -324
  47. package/build/cjs/cc/EntryControlCC.js +9 -36
  48. package/build/cjs/cc/EntryControlCC.js.map +2 -2
  49. package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +78 -390
  50. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js +5 -26
  51. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
  52. package/build/cjs/cc/HumidityControlModeCC.d.ts +31 -131
  53. package/build/cjs/cc/HumidityControlModeCC.js +6 -15
  54. package/build/cjs/cc/HumidityControlModeCC.js.map +2 -2
  55. package/build/cjs/cc/HumidityControlOperatingStateCC.d.ts +17 -65
  56. package/build/cjs/cc/HumidityControlOperatingStateCC.js +4 -12
  57. package/build/cjs/cc/HumidityControlOperatingStateCC.js.map +2 -2
  58. package/build/cjs/cc/HumidityControlSetpointCC.d.ts +51 -128
  59. package/build/cjs/cc/HumidityControlSetpointCC.js +10 -28
  60. package/build/cjs/cc/HumidityControlSetpointCC.js.map +2 -2
  61. package/build/cjs/cc/IndicatorCC.d.ts +123 -365
  62. package/build/cjs/cc/IndicatorCC.js +15 -61
  63. package/build/cjs/cc/IndicatorCC.js.map +2 -2
  64. package/build/cjs/cc/IrrigationCC.d.ts +826 -2317
  65. package/build/cjs/cc/IrrigationCC.js +29 -233
  66. package/build/cjs/cc/IrrigationCC.js.map +2 -2
  67. package/build/cjs/cc/LanguageCC.d.ts +31 -133
  68. package/build/cjs/cc/LanguageCC.js +4 -15
  69. package/build/cjs/cc/LanguageCC.js.map +2 -2
  70. package/build/cjs/cc/LockCC.d.ts +14 -64
  71. package/build/cjs/cc/LockCC.js +4 -12
  72. package/build/cjs/cc/LockCC.js.map +2 -2
  73. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
  74. package/build/cjs/cc/ManufacturerSpecificCC.d.ts +77 -239
  75. package/build/cjs/cc/ManufacturerSpecificCC.js +5 -26
  76. package/build/cjs/cc/ManufacturerSpecificCC.js.map +2 -2
  77. package/build/cjs/cc/MeterCC.d.ts +119 -393
  78. package/build/cjs/cc/MeterCC.js +25 -69
  79. package/build/cjs/cc/MeterCC.js.map +2 -2
  80. package/build/cjs/cc/MultiChannelAssociationCC.d.ts +66 -166
  81. package/build/cjs/cc/MultiChannelAssociationCC.js +10 -23
  82. package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
  83. package/build/cjs/cc/MultiChannelCC.d.ts +119 -499
  84. package/build/cjs/cc/MultiChannelCC.js +18 -46
  85. package/build/cjs/cc/MultiChannelCC.js.map +2 -2
  86. package/build/cjs/cc/MultilevelSensorCC.d.ts +46 -130
  87. package/build/cjs/cc/MultilevelSensorCC.js +12 -33
  88. package/build/cjs/cc/MultilevelSensorCC.js.map +2 -2
  89. package/build/cjs/cc/MultilevelSwitchCC.d.ts +160 -525
  90. package/build/cjs/cc/MultilevelSwitchCC.js +13 -107
  91. package/build/cjs/cc/MultilevelSwitchCC.js.map +2 -2
  92. package/build/cjs/cc/NodeNamingCC.d.ts +33 -135
  93. package/build/cjs/cc/NodeNamingCC.js +5 -16
  94. package/build/cjs/cc/NodeNamingCC.js.map +2 -2
  95. package/build/cjs/cc/NotificationCC.d.ts +262 -702
  96. package/build/cjs/cc/NotificationCC.js +29 -112
  97. package/build/cjs/cc/NotificationCC.js.map +2 -2
  98. package/build/cjs/cc/ProtectionCC.d.ts +118 -524
  99. package/build/cjs/cc/ProtectionCC.js +15 -50
  100. package/build/cjs/cc/ProtectionCC.js.map +2 -2
  101. package/build/cjs/cc/SceneActivationCC.d.ts +33 -132
  102. package/build/cjs/cc/SceneActivationCC.js +4 -17
  103. package/build/cjs/cc/SceneActivationCC.js.map +2 -2
  104. package/build/cjs/cc/SceneActuatorConfigurationCC.d.ts +34 -61
  105. package/build/cjs/cc/SceneActuatorConfigurationCC.js +9 -21
  106. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +2 -2
  107. package/build/cjs/cc/SceneControllerConfigurationCC.d.ts +34 -61
  108. package/build/cjs/cc/SceneControllerConfigurationCC.js +10 -22
  109. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
  110. package/build/cjs/cc/ScheduleEntryLockCC.d.ts +95 -299
  111. package/build/cjs/cc/ScheduleEntryLockCC.js +13 -30
  112. package/build/cjs/cc/ScheduleEntryLockCC.js.map +2 -2
  113. package/build/cjs/cc/SoundSwitchCC.d.ts +72 -261
  114. package/build/cjs/cc/SoundSwitchCC.js +11 -43
  115. package/build/cjs/cc/SoundSwitchCC.js.map +2 -2
  116. package/build/cjs/cc/SupervisionCC.d.ts +17 -33
  117. package/build/cjs/cc/SupervisionCC.js +4 -9
  118. package/build/cjs/cc/SupervisionCC.js.map +2 -2
  119. package/build/cjs/cc/ThermostatFanModeCC.d.ts +44 -195
  120. package/build/cjs/cc/ThermostatFanModeCC.js +8 -21
  121. package/build/cjs/cc/ThermostatFanModeCC.js.map +2 -2
  122. package/build/cjs/cc/ThermostatFanStateCC.d.ts +17 -65
  123. package/build/cjs/cc/ThermostatFanStateCC.js +4 -12
  124. package/build/cjs/cc/ThermostatFanStateCC.js.map +2 -2
  125. package/build/cjs/cc/ThermostatModeCC.d.ts +44 -195
  126. package/build/cjs/cc/ThermostatModeCC.js +8 -21
  127. package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
  128. package/build/cjs/cc/ThermostatOperatingStateCC.d.ts +17 -65
  129. package/build/cjs/cc/ThermostatOperatingStateCC.js +4 -12
  130. package/build/cjs/cc/ThermostatOperatingStateCC.js.map +2 -2
  131. package/build/cjs/cc/ThermostatSetpointCC.d.ts +49 -129
  132. package/build/cjs/cc/ThermostatSetpointCC.js +10 -25
  133. package/build/cjs/cc/ThermostatSetpointCC.js.map +2 -2
  134. package/build/cjs/cc/TimeParametersCC.d.ts +12 -63
  135. package/build/cjs/cc/TimeParametersCC.js +4 -11
  136. package/build/cjs/cc/TimeParametersCC.js.map +2 -2
  137. package/build/cjs/cc/UserCodeCC.d.ts +311 -1066
  138. package/build/cjs/cc/UserCodeCC.js +33 -98
  139. package/build/cjs/cc/UserCodeCC.js.map +2 -2
  140. package/build/cjs/cc/VersionCC.d.ts +289 -1003
  141. package/build/cjs/cc/VersionCC.js +7 -98
  142. package/build/cjs/cc/VersionCC.js.map +2 -2
  143. package/build/cjs/cc/WakeUpCC.d.ts +49 -201
  144. package/build/cjs/cc/WakeUpCC.js +6 -26
  145. package/build/cjs/cc/WakeUpCC.js.map +2 -2
  146. package/build/cjs/cc/WindowCoveringCC.d.ts +126 -220
  147. package/build/cjs/cc/WindowCoveringCC.js +16 -128
  148. package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
  149. package/build/cjs/cc/ZWavePlusCC.d.ts +69 -329
  150. package/build/cjs/cc/ZWavePlusCC.js +4 -25
  151. package/build/cjs/cc/ZWavePlusCC.js.map +2 -2
  152. package/build/cjs/cc/_CCValues.generated.d.ts +15814 -0
  153. package/build/cjs/cc/_CCValues.generated.js +8723 -0
  154. package/build/cjs/cc/_CCValues.generated.js.map +7 -0
  155. package/build/cjs/lib/CCValueUtils.d.ts +14 -0
  156. package/build/cjs/lib/CCValueUtils.js +93 -0
  157. package/build/cjs/lib/CCValueUtils.js.map +7 -0
  158. package/build/cjs/lib/Values.d.ts +6 -105
  159. package/build/cjs/lib/Values.js +13 -107
  160. package/build/cjs/lib/Values.js.map +3 -3
  161. package/build/esm/cc/AlarmSensorCC.d.ts +79 -161
  162. package/build/esm/cc/AlarmSensorCC.d.ts.map +1 -1
  163. package/build/esm/cc/AlarmSensorCC.js +2 -39
  164. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  165. package/build/esm/cc/AssociationCC.d.ts +63 -199
  166. package/build/esm/cc/AssociationCC.d.ts.map +1 -1
  167. package/build/esm/cc/AssociationCC.js +2 -14
  168. package/build/esm/cc/AssociationCC.js.map +1 -1
  169. package/build/esm/cc/AssociationGroupInfoCC.d.ts +66 -166
  170. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  171. package/build/esm/cc/AssociationGroupInfoCC.js +2 -13
  172. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  173. package/build/esm/cc/BarrierOperatorCC.d.ts +86 -294
  174. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  175. package/build/esm/cc/BarrierOperatorCC.js +2 -34
  176. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  177. package/build/esm/cc/BasicCC.d.ts +85 -331
  178. package/build/esm/cc/BasicCC.d.ts.map +1 -1
  179. package/build/esm/cc/BasicCC.js +2 -32
  180. package/build/esm/cc/BasicCC.js.map +1 -1
  181. package/build/esm/cc/BatteryCC.d.ts +237 -835
  182. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  183. package/build/esm/cc/BatteryCC.js +2 -78
  184. package/build/esm/cc/BatteryCC.js.map +1 -1
  185. package/build/esm/cc/BinarySensorCC.d.ts +34 -99
  186. package/build/esm/cc/BinarySensorCC.d.ts.map +1 -1
  187. package/build/esm/cc/BinarySensorCC.js +2 -16
  188. package/build/esm/cc/BinarySensorCC.js.map +1 -1
  189. package/build/esm/cc/BinarySwitchCC.d.ts +45 -197
  190. package/build/esm/cc/BinarySwitchCC.d.ts.map +1 -1
  191. package/build/esm/cc/BinarySwitchCC.js +2 -17
  192. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  193. package/build/esm/cc/CentralSceneCC.d.ts +77 -296
  194. package/build/esm/cc/CentralSceneCC.d.ts.map +1 -1
  195. package/build/esm/cc/CentralSceneCC.js +2 -26
  196. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  197. package/build/esm/cc/ClimateControlScheduleCC.d.ts +45 -160
  198. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  199. package/build/esm/cc/ClimateControlScheduleCC.js +2 -23
  200. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  201. package/build/esm/cc/ColorSwitchCC.d.ts +130 -457
  202. package/build/esm/cc/ColorSwitchCC.d.ts.map +1 -1
  203. package/build/esm/cc/ColorSwitchCC.js +2 -52
  204. package/build/esm/cc/ColorSwitchCC.js.map +1 -1
  205. package/build/esm/cc/ConfigurationCC.d.ts +32 -100
  206. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
  207. package/build/esm/cc/ConfigurationCC.js +2 -15
  208. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  209. package/build/esm/cc/DoorLockCC.d.ts +512 -1823
  210. package/build/esm/cc/DoorLockCC.d.ts.map +1 -1
  211. package/build/esm/cc/DoorLockCC.js +9 -127
  212. package/build/esm/cc/DoorLockCC.js.map +1 -1
  213. package/build/esm/cc/DoorLockLoggingCC.d.ts +11 -63
  214. package/build/esm/cc/DoorLockLoggingCC.d.ts.map +1 -1
  215. package/build/esm/cc/DoorLockLoggingCC.js +2 -5
  216. package/build/esm/cc/DoorLockLoggingCC.js.map +1 -1
  217. package/build/esm/cc/EnergyProductionCC.d.ts +14 -29
  218. package/build/esm/cc/EnergyProductionCC.d.ts.map +1 -1
  219. package/build/esm/cc/EnergyProductionCC.js +2 -13
  220. package/build/esm/cc/EnergyProductionCC.js.map +1 -1
  221. package/build/esm/cc/EntryControlCC.d.ts +73 -324
  222. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  223. package/build/esm/cc/EntryControlCC.js +2 -28
  224. package/build/esm/cc/EntryControlCC.js.map +1 -1
  225. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +78 -390
  226. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  227. package/build/esm/cc/FirmwareUpdateMetaDataCC.js +2 -23
  228. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  229. package/build/esm/cc/HumidityControlModeCC.d.ts +31 -131
  230. package/build/esm/cc/HumidityControlModeCC.d.ts.map +1 -1
  231. package/build/esm/cc/HumidityControlModeCC.js +2 -10
  232. package/build/esm/cc/HumidityControlModeCC.js.map +1 -1
  233. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts +17 -65
  234. package/build/esm/cc/HumidityControlOperatingStateCC.d.ts.map +1 -1
  235. package/build/esm/cc/HumidityControlOperatingStateCC.js +2 -9
  236. package/build/esm/cc/HumidityControlOperatingStateCC.js.map +1 -1
  237. package/build/esm/cc/HumidityControlSetpointCC.d.ts +51 -128
  238. package/build/esm/cc/HumidityControlSetpointCC.d.ts.map +1 -1
  239. package/build/esm/cc/HumidityControlSetpointCC.js +2 -19
  240. package/build/esm/cc/HumidityControlSetpointCC.js.map +1 -1
  241. package/build/esm/cc/IndicatorCC.d.ts +123 -365
  242. package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
  243. package/build/esm/cc/IndicatorCC.js +2 -43
  244. package/build/esm/cc/IndicatorCC.js.map +1 -1
  245. package/build/esm/cc/IrrigationCC.d.ts +826 -2317
  246. package/build/esm/cc/IrrigationCC.d.ts.map +1 -1
  247. package/build/esm/cc/IrrigationCC.js +3 -222
  248. package/build/esm/cc/IrrigationCC.js.map +1 -1
  249. package/build/esm/cc/LanguageCC.d.ts +31 -133
  250. package/build/esm/cc/LanguageCC.d.ts.map +1 -1
  251. package/build/esm/cc/LanguageCC.js +2 -12
  252. package/build/esm/cc/LanguageCC.js.map +1 -1
  253. package/build/esm/cc/LockCC.d.ts +14 -64
  254. package/build/esm/cc/LockCC.d.ts.map +1 -1
  255. package/build/esm/cc/LockCC.js +2 -9
  256. package/build/esm/cc/LockCC.js.map +1 -1
  257. package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
  258. package/build/esm/cc/ManufacturerProprietaryCC.js +0 -1
  259. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  260. package/build/esm/cc/ManufacturerSpecificCC.d.ts +77 -239
  261. package/build/esm/cc/ManufacturerSpecificCC.d.ts.map +1 -1
  262. package/build/esm/cc/ManufacturerSpecificCC.js +2 -24
  263. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  264. package/build/esm/cc/MeterCC.d.ts +119 -393
  265. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  266. package/build/esm/cc/MeterCC.js +3 -49
  267. package/build/esm/cc/MeterCC.js.map +1 -1
  268. package/build/esm/cc/MultiChannelAssociationCC.d.ts +66 -166
  269. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  270. package/build/esm/cc/MultiChannelAssociationCC.js +2 -14
  271. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  272. package/build/esm/cc/MultiChannelCC.d.ts +119 -499
  273. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  274. package/build/esm/cc/MultiChannelCC.js +2 -30
  275. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  276. package/build/esm/cc/MultilevelSensorCC.d.ts +46 -130
  277. package/build/esm/cc/MultilevelSensorCC.d.ts.map +1 -1
  278. package/build/esm/cc/MultilevelSensorCC.js +2 -22
  279. package/build/esm/cc/MultilevelSensorCC.js.map +1 -1
  280. package/build/esm/cc/MultilevelSwitchCC.d.ts +160 -525
  281. package/build/esm/cc/MultilevelSwitchCC.d.ts.map +1 -1
  282. package/build/esm/cc/MultilevelSwitchCC.js +5 -101
  283. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  284. package/build/esm/cc/NodeNamingCC.d.ts +33 -135
  285. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  286. package/build/esm/cc/NodeNamingCC.js +2 -12
  287. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  288. package/build/esm/cc/NotificationCC.d.ts +262 -702
  289. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  290. package/build/esm/cc/NotificationCC.js +3 -85
  291. package/build/esm/cc/NotificationCC.js.map +1 -1
  292. package/build/esm/cc/ProtectionCC.d.ts +118 -524
  293. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  294. package/build/esm/cc/ProtectionCC.js +2 -36
  295. package/build/esm/cc/ProtectionCC.js.map +1 -1
  296. package/build/esm/cc/SceneActivationCC.d.ts +33 -132
  297. package/build/esm/cc/SceneActivationCC.d.ts.map +1 -1
  298. package/build/esm/cc/SceneActivationCC.js +2 -14
  299. package/build/esm/cc/SceneActivationCC.js.map +1 -1
  300. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts +34 -61
  301. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
  302. package/build/esm/cc/SceneActuatorConfigurationCC.js +2 -14
  303. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  304. package/build/esm/cc/SceneControllerConfigurationCC.d.ts +34 -61
  305. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  306. package/build/esm/cc/SceneControllerConfigurationCC.js +2 -14
  307. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  308. package/build/esm/cc/ScheduleEntryLockCC.d.ts +95 -299
  309. package/build/esm/cc/ScheduleEntryLockCC.d.ts.map +1 -1
  310. package/build/esm/cc/ScheduleEntryLockCC.js +2 -17
  311. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  312. package/build/esm/cc/SoundSwitchCC.d.ts +72 -261
  313. package/build/esm/cc/SoundSwitchCC.d.ts.map +1 -1
  314. package/build/esm/cc/SoundSwitchCC.js +2 -33
  315. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  316. package/build/esm/cc/SupervisionCC.d.ts +17 -33
  317. package/build/esm/cc/SupervisionCC.d.ts.map +1 -1
  318. package/build/esm/cc/SupervisionCC.js +2 -7
  319. package/build/esm/cc/SupervisionCC.js.map +1 -1
  320. package/build/esm/cc/ThermostatFanModeCC.d.ts +44 -195
  321. package/build/esm/cc/ThermostatFanModeCC.d.ts.map +1 -1
  322. package/build/esm/cc/ThermostatFanModeCC.js +2 -14
  323. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  324. package/build/esm/cc/ThermostatFanStateCC.d.ts +17 -65
  325. package/build/esm/cc/ThermostatFanStateCC.d.ts.map +1 -1
  326. package/build/esm/cc/ThermostatFanStateCC.js +2 -9
  327. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  328. package/build/esm/cc/ThermostatModeCC.d.ts +44 -195
  329. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  330. package/build/esm/cc/ThermostatModeCC.js +2 -14
  331. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  332. package/build/esm/cc/ThermostatOperatingStateCC.d.ts +17 -65
  333. package/build/esm/cc/ThermostatOperatingStateCC.d.ts.map +1 -1
  334. package/build/esm/cc/ThermostatOperatingStateCC.js +2 -9
  335. package/build/esm/cc/ThermostatOperatingStateCC.js.map +1 -1
  336. package/build/esm/cc/ThermostatSetpointCC.d.ts +49 -129
  337. package/build/esm/cc/ThermostatSetpointCC.d.ts.map +1 -1
  338. package/build/esm/cc/ThermostatSetpointCC.js +2 -16
  339. package/build/esm/cc/ThermostatSetpointCC.js.map +1 -1
  340. package/build/esm/cc/TimeParametersCC.d.ts +12 -63
  341. package/build/esm/cc/TimeParametersCC.d.ts.map +1 -1
  342. package/build/esm/cc/TimeParametersCC.js +2 -8
  343. package/build/esm/cc/TimeParametersCC.js.map +1 -1
  344. package/build/esm/cc/UserCodeCC.d.ts +311 -1066
  345. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  346. package/build/esm/cc/UserCodeCC.js +2 -60
  347. package/build/esm/cc/UserCodeCC.js.map +1 -1
  348. package/build/esm/cc/VersionCC.d.ts +289 -1003
  349. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  350. package/build/esm/cc/VersionCC.js +2 -92
  351. package/build/esm/cc/VersionCC.js.map +1 -1
  352. package/build/esm/cc/WakeUpCC.d.ts +49 -201
  353. package/build/esm/cc/WakeUpCC.d.ts.map +1 -1
  354. package/build/esm/cc/WakeUpCC.js +2 -21
  355. package/build/esm/cc/WakeUpCC.js.map +1 -1
  356. package/build/esm/cc/WindowCoveringCC.d.ts +126 -220
  357. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  358. package/build/esm/cc/WindowCoveringCC.js +3 -103
  359. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  360. package/build/esm/cc/ZWavePlusCC.d.ts +69 -329
  361. package/build/esm/cc/ZWavePlusCC.d.ts.map +1 -1
  362. package/build/esm/cc/ZWavePlusCC.js +2 -25
  363. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  364. package/build/esm/cc/_CCValues.generated.d.ts +15814 -0
  365. package/build/esm/cc/_CCValues.generated.d.ts.map +1 -0
  366. package/build/esm/cc/_CCValues.generated.js +9187 -0
  367. package/build/esm/cc/_CCValues.generated.js.map +1 -0
  368. package/build/esm/lib/CCValueUtils.d.ts +14 -0
  369. package/build/esm/lib/CCValueUtils.d.ts.map +1 -0
  370. package/build/esm/lib/CCValueUtils.js +62 -0
  371. package/build/esm/lib/CCValueUtils.js.map +1 -0
  372. package/build/esm/lib/Values.d.ts +6 -105
  373. package/build/esm/lib/Values.d.ts.map +1 -1
  374. package/build/esm/lib/Values.js +7 -104
  375. package/build/esm/lib/Values.js.map +1 -1
  376. package/package.json +9 -7
@@ -1,164 +1,62 @@
1
1
  import { type CCEncodingContext, type CCParsingContext } from "@zwave-js/cc";
2
2
  import type { GetValueDB, MessageOrCCLogEntry, SupervisionResult, WithAddress } from "@zwave-js/core/safe";
3
- import { CommandClasses, type MaybeNotKnown, ValueMetadata } from "@zwave-js/core/safe";
3
+ import { CommandClasses, type MaybeNotKnown } from "@zwave-js/core/safe";
4
4
  import { Bytes } from "@zwave-js/shared/safe";
5
5
  import { CCAPI } from "../lib/API.js";
6
6
  import { type CCRaw, CommandClass, type InterviewContext, type RefreshValuesContext } from "../lib/CommandClass.js";
7
7
  import { LanguageCommand } from "../lib/_Types.js";
8
8
  export declare const LanguageCCValues: Readonly<{
9
- country: {
10
- readonly id: ValueIDBase;
11
- readonly endpoint: (endpoint?: number | undefined) => {
9
+ language: {
10
+ id: {
11
+ readonly commandClass: CommandClasses.Language;
12
+ readonly property: "language";
13
+ };
14
+ endpoint: (endpoint?: number) => {
12
15
  readonly commandClass: CommandClasses.Language;
13
16
  readonly endpoint: number;
14
- readonly property: "country";
17
+ readonly property: "language";
15
18
  };
16
- readonly is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
17
- readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
18
- readonly type: "any";
19
- readonly readable: true;
20
- readonly writeable: true;
21
- }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
22
- readonly type: "any";
23
- readonly readable: true;
24
- readonly writeable: true;
25
- }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>) extends infer T ? { [K in keyof T as [undefined] extends [(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
26
- readonly type: "any";
27
- readonly readable: true;
28
- readonly writeable: true;
29
- }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
30
- readonly type: "any";
31
- readonly readable: true;
32
- readonly writeable: true;
33
- }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
34
- readonly type: "any";
19
+ is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
20
+ readonly meta: {
21
+ readonly label: "Language code";
22
+ readonly writeable: false;
23
+ readonly type: "string";
35
24
  readonly readable: true;
36
- readonly writeable: true;
37
- }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
38
- readonly type: "any";
39
- readonly readable: true;
40
- readonly writeable: true;
41
- }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
42
- readonly options: Readonly<(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
43
- readonly internal: false;
44
- readonly minVersion: 1;
45
- readonly secret: false;
46
- readonly stateful: true;
47
- readonly supportsEndpoints: true;
48
- readonly autoCreate: true;
49
- } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
50
- readonly internal: false;
51
- readonly minVersion: 1;
52
- readonly secret: false;
53
- readonly stateful: true;
54
- readonly supportsEndpoints: true;
55
- readonly autoCreate: true;
56
- }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>) extends infer T ? { [K in keyof T as [undefined] extends [(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
57
- readonly internal: false;
58
- readonly minVersion: 1;
59
- readonly secret: false;
60
- readonly stateful: true;
61
- readonly supportsEndpoints: true;
62
- readonly autoCreate: true;
63
- } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
64
- readonly internal: false;
65
- readonly minVersion: 1;
66
- readonly secret: false;
67
- readonly stateful: true;
68
- readonly supportsEndpoints: true;
69
- readonly autoCreate: true;
70
- }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]] ? never : K]: (import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
71
- readonly internal: false;
72
- readonly minVersion: 1;
73
- readonly secret: false;
74
- readonly stateful: true;
75
- readonly supportsEndpoints: true;
76
- readonly autoCreate: true;
77
- } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
25
+ };
26
+ options: {
78
27
  readonly internal: false;
79
28
  readonly minVersion: 1;
80
29
  readonly secret: false;
81
30
  readonly stateful: true;
82
31
  readonly supportsEndpoints: true;
83
32
  readonly autoCreate: true;
84
- }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]; } : never>;
33
+ };
85
34
  };
86
- language: {
87
- readonly id: ValueIDBase;
88
- readonly endpoint: (endpoint?: number | undefined) => {
35
+ country: {
36
+ id: {
37
+ readonly commandClass: CommandClasses.Language;
38
+ readonly property: "country";
39
+ };
40
+ endpoint: (endpoint?: number) => {
89
41
  readonly commandClass: CommandClasses.Language;
90
42
  readonly endpoint: number;
91
- readonly property: "language";
43
+ readonly property: "country";
92
44
  };
93
- readonly is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
94
- readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
95
- readonly type: "any";
96
- readonly readable: true;
97
- readonly writeable: true;
98
- }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
99
- readonly type: "any";
100
- readonly readable: true;
101
- readonly writeable: true;
102
- }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>) extends infer T ? { [K in keyof T as [undefined] extends [(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
103
- readonly type: "any";
104
- readonly readable: true;
105
- readonly writeable: true;
106
- }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
107
- readonly type: "any";
108
- readonly readable: true;
109
- readonly writeable: true;
110
- }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
111
- readonly type: "any";
45
+ is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
46
+ readonly meta: {
47
+ readonly label: "Country code";
48
+ readonly writeable: false;
49
+ readonly type: "string";
112
50
  readonly readable: true;
113
- readonly writeable: true;
114
- }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
115
- readonly type: "any";
116
- readonly readable: true;
117
- readonly writeable: true;
118
- }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
119
- readonly options: Readonly<(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
120
- readonly internal: false;
121
- readonly minVersion: 1;
122
- readonly secret: false;
123
- readonly stateful: true;
124
- readonly supportsEndpoints: true;
125
- readonly autoCreate: true;
126
- } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
127
- readonly internal: false;
128
- readonly minVersion: 1;
129
- readonly secret: false;
130
- readonly stateful: true;
131
- readonly supportsEndpoints: true;
132
- readonly autoCreate: true;
133
- }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>) extends infer T ? { [K in keyof T as [undefined] extends [(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
134
- readonly internal: false;
135
- readonly minVersion: 1;
136
- readonly secret: false;
137
- readonly stateful: true;
138
- readonly supportsEndpoints: true;
139
- readonly autoCreate: true;
140
- } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
141
- readonly internal: false;
142
- readonly minVersion: 1;
143
- readonly secret: false;
144
- readonly stateful: true;
145
- readonly supportsEndpoints: true;
146
- readonly autoCreate: true;
147
- }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]] ? never : K]: (import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
148
- readonly internal: false;
149
- readonly minVersion: 1;
150
- readonly secret: false;
151
- readonly stateful: true;
152
- readonly supportsEndpoints: true;
153
- readonly autoCreate: true;
154
- } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
51
+ };
52
+ options: {
155
53
  readonly internal: false;
156
54
  readonly minVersion: 1;
157
55
  readonly secret: false;
158
56
  readonly stateful: true;
159
57
  readonly supportsEndpoints: true;
160
58
  readonly autoCreate: true;
161
- }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]; } : never>;
59
+ };
162
60
  };
163
61
  }>;
164
62
  export declare class LanguageCCAPI extends CCAPI {
@@ -34,7 +34,7 @@ __export(LanguageCC_exports, {
34
34
  LanguageCCGet: () => LanguageCCGet,
35
35
  LanguageCCReport: () => LanguageCCReport,
36
36
  LanguageCCSet: () => LanguageCCSet,
37
- LanguageCCValues: () => LanguageCCValues
37
+ LanguageCCValues: () => import_CCValues_generated.LanguageCCValues
38
38
  });
39
39
  module.exports = __toCommonJS(LanguageCC_exports);
40
40
  var __validateArgs = __toESM(require("./LanguageCC._validateArgs.js"), 1);
@@ -46,6 +46,7 @@ var import_CommandClass = require("../lib/CommandClass.js");
46
46
  var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
47
47
  var import_Values = require("../lib/Values.js");
48
48
  var import_Types = require("../lib/_Types.js");
49
+ var import_CCValues_generated = require("./_CCValues.generated.js");
49
50
  var __runInitializers = function(thisArg, initializers, value) {
50
51
  var useValue = arguments.length > 2;
51
52
  for (var i = 0; i < initializers.length; i++) {
@@ -87,18 +88,6 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
87
88
  done = true;
88
89
  };
89
90
  const { validateArgs_LanguageCCAPI_set } = __validateArgs;
90
- const LanguageCCValues = Object.freeze({
91
- ...import_Values.V.defineStaticCCValues(import_safe.CommandClasses.Language, {
92
- ...import_Values.V.staticProperty("language", {
93
- ...import_safe.ValueMetadata.ReadOnlyString,
94
- label: "Language code"
95
- }),
96
- ...import_Values.V.staticProperty("country", {
97
- ...import_safe.ValueMetadata.ReadOnlyString,
98
- label: "Country code"
99
- })
100
- })
101
- });
102
91
  let LanguageCCAPI = (() => {
103
92
  let _classDecorators = [(0, import_CommandClassDecorators.API)(import_safe.CommandClasses.Language)];
104
93
  let _classDescriptor;
@@ -162,7 +151,7 @@ let LanguageCCAPI = (() => {
162
151
  return LanguageCCAPI2 = _classThis;
163
152
  })();
164
153
  let LanguageCC = (() => {
165
- let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses.Language), (0, import_CommandClassDecorators.implementedVersion)(1), (0, import_CommandClassDecorators.ccValues)(LanguageCCValues)];
154
+ let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses.Language), (0, import_CommandClassDecorators.implementedVersion)(1), (0, import_CommandClassDecorators.ccValues)(import_CCValues_generated.LanguageCCValues)];
166
155
  let _classDescriptor;
167
156
  let _classExtraInitializers = [];
168
157
  let _classThis;
@@ -286,7 +275,7 @@ let LanguageCCSet = (() => {
286
275
  return LanguageCCSet2 = _classThis;
287
276
  })();
288
277
  let LanguageCCReport = (() => {
289
- let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.LanguageCommand.Report), (0, import_CommandClassDecorators.ccValueProperty)("language", LanguageCCValues.language), (0, import_CommandClassDecorators.ccValueProperty)("country", LanguageCCValues.country)];
278
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.LanguageCommand.Report), (0, import_CommandClassDecorators.ccValueProperty)("language", import_CCValues_generated.LanguageCCValues.language), (0, import_CommandClassDecorators.ccValueProperty)("country", import_CCValues_generated.LanguageCCValues.country)];
290
279
  let _classDescriptor;
291
280
  let _classExtraInitializers = [];
292
281
  let _classThis;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/LanguageCC.ts"],
4
- "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport type {\n\tGetValueDB,\n\tMessageOrCCLogEntry,\n\tMessageRecord,\n\tSupervisionResult,\n\tWithAddress,\n} from \"@zwave-js/core/safe\";\nimport {\n\tCommandClasses,\n\ttype MaybeNotKnown,\n\tMessagePriority,\n\tValueMetadata,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { pick } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { CCAPI } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { LanguageCommand } from \"../lib/_Types.js\";\n\nexport const LanguageCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses.Language, {\n\t\t...V.staticProperty(\n\t\t\t\"language\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\t\tlabel: \"Language code\",\n\t\t\t} as const,\n\t\t),\n\n\t\t...V.staticProperty(\n\t\t\t\"country\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\t\tlabel: \"Country code\",\n\t\t\t} as const,\n\t\t),\n\t}),\n});\n\n// @noSetValueAPI It doesn't make sense\n\n@API(CommandClasses.Language)\nexport class LanguageCCAPI extends CCAPI {\n\tpublic supportsCommand(cmd: LanguageCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase LanguageCommand.Get:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase LanguageCommand.Set:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get() {\n\t\tthis.assertSupportsCommand(LanguageCommand, LanguageCommand.Get);\n\n\t\tconst cc = new LanguageCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<LanguageCCReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\"language\", \"country\"]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async set(\n\t\tlanguage: string,\n\t\tcountry?: string,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(LanguageCommand, LanguageCommand.Set);\n\n\t\tconst cc = new LanguageCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tlanguage,\n\t\t\tcountry,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses.Language)\n@implementedVersion(1)\n@ccValues(LanguageCCValues)\nexport class LanguageCC extends CommandClass {\n\tdeclare ccCommand: LanguageCommand;\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\tawait this.refreshValues(ctx);\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\tpublic async refreshValues(\n\t\tctx: RefreshValuesContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses.Language,\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tmessage: \"requesting language setting...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst resp = await api.get();\n\t\tif (resp) {\n\t\t\tconst { language, country } = resp;\n\t\t\tconst logMessage = `received current language setting: ${language}${\n\t\t\t\tcountry != undefined ? `-${country}` : \"\"\n\t\t\t}`;\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tmessage: logMessage,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t}\n\t}\n}\n\n// @publicAPI\nexport interface LanguageCCSetOptions {\n\tlanguage: string;\n\tcountry?: string;\n}\n\n@CCCommand(LanguageCommand.Set)\n@useSupervision()\nexport class LanguageCCSet extends LanguageCC {\n\tpublic constructor(\n\t\toptions: WithAddress<LanguageCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\t// Populate properties from options object\n\t\tthis._language = options.language;\n\t\tthis._country = options.country;\n\t}\n\n\tpublic static from(_raw: CCRaw, _ctx: CCParsingContext): LanguageCCSet {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new LanguageCCSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tprivate _language: string;\n\tpublic get language(): string {\n\t\treturn this._language;\n\t}\n\tpublic set language(value: string) {\n\t\tif (value.length !== 3 || value.toLowerCase() !== value) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"language must be a 3 digit (lowercase) code according to ISO 639-2\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis._language = value;\n\t}\n\n\tprivate _country: MaybeNotKnown<string>;\n\tpublic get country(): MaybeNotKnown<string> {\n\t\treturn this._country;\n\t}\n\tpublic set country(value: MaybeNotKnown<string>) {\n\t\tif (\n\t\t\ttypeof value === \"string\"\n\t\t\t&& (value.length !== 2 || value.toUpperCase() !== value)\n\t\t) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"country must be a 2 digit (uppercase) code according to ISO 3166-1\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis._country = value;\n\t}\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from(this._language, \"ascii\");\n\t\tif (this._country) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\tBytes.from(this._country, \"ascii\"),\n\t\t\t]);\n\t\t}\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = { language: this.language };\n\t\tif (this._country != undefined) {\n\t\t\tmessage.country = this._country;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface LanguageCCReportOptions {\n\tlanguage: string;\n\tcountry: MaybeNotKnown<string>;\n}\n\n@CCCommand(LanguageCommand.Report)\n@ccValueProperty(\"language\", LanguageCCValues.language)\n@ccValueProperty(\"country\", LanguageCCValues.country)\nexport class LanguageCCReport extends LanguageCC {\n\tpublic constructor(\n\t\toptions: WithAddress<LanguageCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.language = options.language;\n\t\tthis.country = options.country;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): LanguageCCReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst language = raw.payload.subarray(0, 3).toString(\"ascii\");\n\t\tlet country: MaybeNotKnown<string>;\n\t\tif (raw.payload.length >= 5) {\n\t\t\tcountry = raw.payload.subarray(3, 5).toString(\"ascii\");\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tlanguage,\n\t\t\tcountry,\n\t\t});\n\t}\n\n\tpublic readonly language: string;\n\n\tpublic readonly country: MaybeNotKnown<string>;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = { language: this.language };\n\t\tif (this.country != undefined) {\n\t\t\tmessage.country = this.country;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n@CCCommand(LanguageCommand.Get)\n@expectedCCResponse(LanguageCCReport)\nexport class LanguageCCGet extends LanguageCC {}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport type {\n\tGetValueDB,\n\tMessageOrCCLogEntry,\n\tMessageRecord,\n\tSupervisionResult,\n\tWithAddress,\n} from \"@zwave-js/core/safe\";\nimport {\n\tCommandClasses,\n\ttype MaybeNotKnown,\n\tMessagePriority,\n\tValueMetadata,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { pick } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { CCAPI } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { LanguageCommand } from \"../lib/_Types.js\";\n\nexport const LanguageCCValues = V.defineCCValues(CommandClasses.Language, {\n\t...V.staticProperty(\n\t\t\"language\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Language code\",\n\t\t} as const,\n\t),\n\t...V.staticProperty(\n\t\t\"country\",\n\t\t{\n\t\t\t...ValueMetadata.ReadOnlyString,\n\t\t\tlabel: \"Country code\",\n\t\t} as const,\n\t),\n});\n\n// @noSetValueAPI It doesn't make sense\n\n@API(CommandClasses.Language)\nexport class LanguageCCAPI extends CCAPI {\n\tpublic supportsCommand(cmd: LanguageCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase LanguageCommand.Get:\n\t\t\t\treturn this.isSinglecast();\n\t\t\tcase LanguageCommand.Set:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async get() {\n\t\tthis.assertSupportsCommand(LanguageCommand, LanguageCommand.Get);\n\n\t\tconst cc = new LanguageCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<LanguageCCReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn pick(response, [\"language\", \"country\"]);\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async set(\n\t\tlanguage: string,\n\t\tcountry?: string,\n\t): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(LanguageCommand, LanguageCommand.Set);\n\n\t\tconst cc = new LanguageCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tlanguage,\n\t\t\tcountry,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n}\n\n@commandClass(CommandClasses.Language)\n@implementedVersion(1)\n@ccValues(LanguageCCValues)\nexport class LanguageCC extends CommandClass {\n\tdeclare ccCommand: LanguageCommand;\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\tawait this.refreshValues(ctx);\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\tpublic async refreshValues(\n\t\tctx: RefreshValuesContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses.Language,\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tmessage: \"requesting language setting...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst resp = await api.get();\n\t\tif (resp) {\n\t\t\tconst { language, country } = resp;\n\t\t\tconst logMessage = `received current language setting: ${language}${\n\t\t\t\tcountry != undefined ? `-${country}` : \"\"\n\t\t\t}`;\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tmessage: logMessage,\n\t\t\t\tdirection: \"inbound\",\n\t\t\t});\n\t\t}\n\t}\n}\n\n// @publicAPI\nexport interface LanguageCCSetOptions {\n\tlanguage: string;\n\tcountry?: string;\n}\n\n@CCCommand(LanguageCommand.Set)\n@useSupervision()\nexport class LanguageCCSet extends LanguageCC {\n\tpublic constructor(\n\t\toptions: WithAddress<LanguageCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\t// Populate properties from options object\n\t\tthis._language = options.language;\n\t\tthis._country = options.country;\n\t}\n\n\tpublic static from(_raw: CCRaw, _ctx: CCParsingContext): LanguageCCSet {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new LanguageCCSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tprivate _language: string;\n\tpublic get language(): string {\n\t\treturn this._language;\n\t}\n\tpublic set language(value: string) {\n\t\tif (value.length !== 3 || value.toLowerCase() !== value) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"language must be a 3 digit (lowercase) code according to ISO 639-2\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis._language = value;\n\t}\n\n\tprivate _country: MaybeNotKnown<string>;\n\tpublic get country(): MaybeNotKnown<string> {\n\t\treturn this._country;\n\t}\n\tpublic set country(value: MaybeNotKnown<string>) {\n\t\tif (\n\t\t\ttypeof value === \"string\"\n\t\t\t&& (value.length !== 2 || value.toUpperCase() !== value)\n\t\t) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"country must be a 2 digit (uppercase) code according to ISO 3166-1\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tthis._country = value;\n\t}\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from(this._language, \"ascii\");\n\t\tif (this._country) {\n\t\t\tthis.payload = Bytes.concat([\n\t\t\t\tthis.payload,\n\t\t\t\tBytes.from(this._country, \"ascii\"),\n\t\t\t]);\n\t\t}\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = { language: this.language };\n\t\tif (this._country != undefined) {\n\t\t\tmessage.country = this._country;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface LanguageCCReportOptions {\n\tlanguage: string;\n\tcountry: MaybeNotKnown<string>;\n}\n\n@CCCommand(LanguageCommand.Report)\n@ccValueProperty(\"language\", LanguageCCValues.language)\n@ccValueProperty(\"country\", LanguageCCValues.country)\nexport class LanguageCCReport extends LanguageCC {\n\tpublic constructor(\n\t\toptions: WithAddress<LanguageCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.language = options.language;\n\t\tthis.country = options.country;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): LanguageCCReport {\n\t\tvalidatePayload(raw.payload.length >= 3);\n\t\tconst language = raw.payload.subarray(0, 3).toString(\"ascii\");\n\t\tlet country: MaybeNotKnown<string>;\n\t\tif (raw.payload.length >= 5) {\n\t\t\tcountry = raw.payload.subarray(3, 5).toString(\"ascii\");\n\t\t}\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tlanguage,\n\t\t\tcountry,\n\t\t});\n\t}\n\n\tpublic readonly language: string;\n\n\tpublic readonly country: MaybeNotKnown<string>;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\tconst message: MessageRecord = { language: this.language };\n\t\tif (this.country != undefined) {\n\t\t\tmessage.country = this.country;\n\t\t}\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage,\n\t\t};\n\t}\n}\n\n@CCCommand(LanguageCommand.Get)\n@expectedCCResponse(LanguageCCReport)\nexport class LanguageCCGet extends LanguageCC {}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_safe"]
7
7
  }
@@ -1,86 +1,36 @@
1
1
  import { type CCEncodingContext, type CCParsingContext } from "@zwave-js/cc";
2
- import { CommandClasses, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, type SupervisionResult, ValueMetadata, type WithAddress } from "@zwave-js/core/safe";
2
+ import { CommandClasses, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, type SupervisionResult, type WithAddress } from "@zwave-js/core/safe";
3
3
  import { Bytes } from "@zwave-js/shared/safe";
4
4
  import { POLL_VALUE, PhysicalCCAPI, type PollValueImplementation, SET_VALUE, type SetValueImplementation } from "../lib/API.js";
5
5
  import { type CCRaw, CommandClass, type InterviewContext, type RefreshValuesContext } from "../lib/CommandClass.js";
6
6
  import { LockCommand } from "../lib/_Types.js";
7
7
  export declare const LockCCValues: Readonly<{
8
8
  locked: {
9
- readonly id: ValueIDBase;
10
- readonly endpoint: (endpoint?: number | undefined) => {
9
+ id: {
10
+ readonly commandClass: CommandClasses.Lock;
11
+ readonly property: "locked";
12
+ };
13
+ endpoint: (endpoint?: number) => {
11
14
  readonly commandClass: CommandClasses.Lock;
12
15
  readonly endpoint: number;
13
16
  readonly property: "locked";
14
17
  };
15
- readonly is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
16
- readonly meta: Readonly<(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
17
- readonly type: "any";
18
- readonly readable: true;
19
- readonly writeable: true;
20
- }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
21
- readonly type: "any";
22
- readonly readable: true;
23
- readonly writeable: true;
24
- }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>) extends infer T ? { [K in keyof T as [undefined] extends [(ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
25
- readonly type: "any";
26
- readonly readable: true;
27
- readonly writeable: true;
28
- }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
29
- readonly type: "any";
18
+ is: (valueId: import("@zwave-js/core/safe").ValueID) => boolean;
19
+ readonly meta: {
20
+ readonly label: "Locked";
21
+ readonly description: "Whether the lock is locked";
22
+ readonly type: "boolean";
30
23
  readonly readable: true;
31
24
  readonly writeable: true;
32
- }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]] ? never : K]: (ValueMetadata extends NonNullable<TBlueprint["meta"]> ? Readonly<{
33
- readonly type: "any";
34
- readonly readable: true;
35
- readonly writeable: true;
36
- }> : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<Readonly<{
37
- readonly type: "any";
38
- readonly readable: true;
39
- readonly writeable: true;
40
- }>, ("type" | "readable" | "writeable") & keyof NonNullable<TBlueprint["meta"]>> & TBlueprint["meta"]>)[K]; } : never>;
41
- readonly options: Readonly<(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
42
- readonly internal: false;
43
- readonly minVersion: 1;
44
- readonly secret: false;
45
- readonly stateful: true;
46
- readonly supportsEndpoints: true;
47
- readonly autoCreate: true;
48
- } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
49
- readonly internal: false;
50
- readonly minVersion: 1;
51
- readonly secret: false;
52
- readonly stateful: true;
53
- readonly supportsEndpoints: true;
54
- readonly autoCreate: true;
55
- }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>) extends infer T ? { [K in keyof T as [undefined] extends [(import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
56
- readonly internal: false;
57
- readonly minVersion: 1;
58
- readonly secret: false;
59
- readonly stateful: true;
60
- readonly supportsEndpoints: true;
61
- readonly autoCreate: true;
62
- } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
63
- readonly internal: false;
64
- readonly minVersion: 1;
65
- readonly secret: false;
66
- readonly stateful: true;
67
- readonly supportsEndpoints: true;
68
- readonly autoCreate: true;
69
- }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]] ? never : K]: (import("@zwave-js/cc").CCValueOptions extends NonNullable<TBlueprint["options"]> ? {
70
- readonly internal: false;
71
- readonly minVersion: 1;
72
- readonly secret: false;
73
- readonly stateful: true;
74
- readonly supportsEndpoints: true;
75
- readonly autoCreate: true;
76
- } : import("alcalzone-shared/types").Simplify<import("alcalzone-shared/types").Omit<{
25
+ };
26
+ options: {
77
27
  readonly internal: false;
78
28
  readonly minVersion: 1;
79
29
  readonly secret: false;
80
30
  readonly stateful: true;
81
31
  readonly supportsEndpoints: true;
82
32
  readonly autoCreate: true;
83
- }, ("stateful" | "secret" | "internal" | "minVersion" | "supportsEndpoints" | "autoCreate") & keyof NonNullable<TBlueprint["options"]>> & TBlueprint["options"]>)[K]; } : never>;
33
+ };
84
34
  };
85
35
  }>;
86
36
  export declare class LockCCAPI extends PhysicalCCAPI {
@@ -34,7 +34,7 @@ __export(LockCC_exports, {
34
34
  LockCCGet: () => LockCCGet,
35
35
  LockCCReport: () => LockCCReport,
36
36
  LockCCSet: () => LockCCSet,
37
- LockCCValues: () => LockCCValues
37
+ LockCCValues: () => import_CCValues_generated.LockCCValues
38
38
  });
39
39
  module.exports = __toCommonJS(LockCC_exports);
40
40
  var __validateArgs = __toESM(require("./LockCC._validateArgs.js"), 1);
@@ -45,6 +45,7 @@ var import_CommandClass = require("../lib/CommandClass.js");
45
45
  var import_CommandClassDecorators = require("../lib/CommandClassDecorators.js");
46
46
  var import_Values = require("../lib/Values.js");
47
47
  var import_Types = require("../lib/_Types.js");
48
+ var import_CCValues_generated = require("./_CCValues.generated.js");
48
49
  var __runInitializers = function(thisArg, initializers, value) {
49
50
  var useValue = arguments.length > 2;
50
51
  for (var i = 0; i < initializers.length; i++) {
@@ -86,15 +87,6 @@ var __esDecorate = function(ctor, descriptorIn, decorators, contextIn, initializ
86
87
  done = true;
87
88
  };
88
89
  const { validateArgs_LockCCAPI_set } = __validateArgs;
89
- const LockCCValues = Object.freeze({
90
- ...import_Values.V.defineStaticCCValues(import_safe.CommandClasses.Lock, {
91
- ...import_Values.V.staticProperty("locked", {
92
- ...import_safe.ValueMetadata.Boolean,
93
- label: "Locked",
94
- description: "Whether the lock is locked"
95
- })
96
- })
97
- });
98
90
  let LockCCAPI = (() => {
99
91
  let _classDecorators = [(0, import_CommandClassDecorators.API)(import_safe.CommandClasses.Lock)];
100
92
  let _classDescriptor;
@@ -178,7 +170,7 @@ let LockCCAPI = (() => {
178
170
  return LockCCAPI2 = _classThis;
179
171
  })();
180
172
  let LockCC = (() => {
181
- let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses.Lock), (0, import_CommandClassDecorators.implementedVersion)(1), (0, import_CommandClassDecorators.ccValues)(LockCCValues)];
173
+ let _classDecorators = [(0, import_CommandClassDecorators.commandClass)(import_safe.CommandClasses.Lock), (0, import_CommandClassDecorators.implementedVersion)(1), (0, import_CommandClassDecorators.ccValues)(import_CCValues_generated.LockCCValues)];
182
174
  let _classDescriptor;
183
175
  let _classExtraInitializers = [];
184
176
  let _classThis;
@@ -269,7 +261,7 @@ let LockCCSet = (() => {
269
261
  return LockCCSet2 = _classThis;
270
262
  })();
271
263
  let LockCCReport = (() => {
272
- let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.LockCommand.Report), (0, import_CommandClassDecorators.ccValueProperty)("locked", LockCCValues.locked)];
264
+ let _classDecorators = [(0, import_CommandClassDecorators.CCCommand)(import_Types.LockCommand.Report), (0, import_CommandClassDecorators.ccValueProperty)("locked", import_CCValues_generated.LockCCValues.locked)];
273
265
  let _classDescriptor;
274
266
  let _classExtraInitializers = [];
275
267
  let _classThis;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/LockCC.ts"],
4
- "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCommandClasses,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype SupervisionResult,\n\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tsupervisedCommandSucceeded,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport {\n\tCCAPI,\n\tPOLL_VALUE,\n\tPhysicalCCAPI,\n\ttype PollValueImplementation,\n\tSET_VALUE,\n\ttype SetValueImplementation,\n\tthrowUnsupportedProperty,\n\tthrowWrongValueType,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { LockCommand } from \"../lib/_Types.js\";\n\nexport const LockCCValues = Object.freeze({\n\t...V.defineStaticCCValues(CommandClasses.Lock, {\n\t\t...V.staticProperty(\n\t\t\t\"locked\",\n\t\t\t{\n\t\t\t\t...ValueMetadata.Boolean,\n\t\t\t\tlabel: \"Locked\",\n\t\t\t\tdescription: \"Whether the lock is locked\",\n\t\t\t} as const,\n\t\t),\n\t}),\n});\n\n@API(CommandClasses.Lock)\nexport class LockCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(cmd: LockCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase LockCommand.Get:\n\t\t\tcase LockCommand.Set:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\tpublic async get(): Promise<MaybeNotKnown<boolean>> {\n\t\tthis.assertSupportsCommand(LockCommand, LockCommand.Get);\n\n\t\tconst cc = new LockCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<LockCCReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.locked;\n\t}\n\n\t/**\n\t * Locks or unlocks the lock\n\t * @param locked Whether the lock should be locked\n\t */\n\t@validateArgs()\n\tpublic async set(locked: boolean): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(LockCommand, LockCommand.Set);\n\n\t\tconst cc = new LockCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tlocked,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\tprotected override get [SET_VALUE](): SetValueImplementation {\n\t\treturn async function(this: LockCCAPI, { property }, value) {\n\t\t\tif (property !== \"locked\") {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t\tif (typeof value !== \"boolean\") {\n\t\t\t\tthrowWrongValueType(\n\t\t\t\t\tthis.ccId,\n\t\t\t\t\tproperty,\n\t\t\t\t\t\"boolean\",\n\t\t\t\t\ttypeof value,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst result = await this.set(value);\n\n\t\t\t// Verify the current value after a delay, unless the command was supervised and successful\n\t\t\tif (!supervisedCommandSucceeded(result)) {\n\t\t\t\tthis.schedulePoll({ property }, value);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t};\n\t}\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(this: LockCCAPI, { property }) {\n\t\t\tif (property === \"locked\") return this.get();\n\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t};\n\t}\n}\n\n@commandClass(CommandClasses.Lock)\n@implementedVersion(1)\n@ccValues(LockCCValues)\nexport class LockCC extends CommandClass {\n\tdeclare ccCommand: LockCommand;\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\tawait this.refreshValues(ctx);\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\tpublic async refreshValues(\n\t\tctx: RefreshValuesContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses.Lock,\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tmessage: \"requesting current lock state...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst locked = await api.get();\n\t\tconst logMessage = `the lock is ${locked ? \"locked\" : \"unlocked\"}`;\n\t\tctx.logNode(node.id, {\n\t\t\tmessage: logMessage,\n\t\t\tdirection: \"inbound\",\n\t\t});\n\t}\n}\n\n// @publicAPI\nexport interface LockCCSetOptions {\n\tlocked: boolean;\n}\n\n@CCCommand(LockCommand.Set)\n@useSupervision()\nexport class LockCCSet extends LockCC {\n\tpublic constructor(\n\t\toptions: WithAddress<LockCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.locked = options.locked;\n\t}\n\n\tpublic static from(_raw: CCRaw, _ctx: CCParsingContext): LockCCSet {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new LockCCSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic locked: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.locked ? 1 : 0]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { locked: this.locked },\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface LockCCReportOptions {\n\tlocked: boolean;\n}\n\n@CCCommand(LockCommand.Report)\n@ccValueProperty(\"locked\", LockCCValues.locked)\nexport class LockCCReport extends LockCC {\n\tpublic constructor(\n\t\toptions: WithAddress<LockCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.locked = options.locked;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): LockCCReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst locked = raw.payload[0] === 1;\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tlocked,\n\t\t});\n\t}\n\n\tpublic readonly locked: boolean;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { locked: this.locked },\n\t\t};\n\t}\n}\n\n@CCCommand(LockCommand.Get)\n@expectedCCResponse(LockCCReport)\nexport class LockCCGet extends LockCC {}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCommandClasses,\n\ttype GetValueDB,\n\ttype MaybeNotKnown,\n\ttype MessageOrCCLogEntry,\n\tMessagePriority,\n\ttype SupervisionResult,\n\tValueMetadata,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tsupervisedCommandSucceeded,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport {\n\tCCAPI,\n\tPOLL_VALUE,\n\tPhysicalCCAPI,\n\ttype PollValueImplementation,\n\tSET_VALUE,\n\ttype SetValueImplementation,\n\tthrowUnsupportedProperty,\n\tthrowWrongValueType,\n} from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tCCCommand,\n\tccValueProperty,\n\tccValues,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n\tuseSupervision,\n} from \"../lib/CommandClassDecorators.js\";\nimport { V } from \"../lib/Values.js\";\nimport { LockCommand } from \"../lib/_Types.js\";\n\nexport const LockCCValues = V.defineCCValues(CommandClasses.Lock, {\n\t...V.staticProperty(\n\t\t\"locked\",\n\t\t{\n\t\t\t...ValueMetadata.Boolean,\n\t\t\tlabel: \"Locked\",\n\t\t\tdescription: \"Whether the lock is locked\",\n\t\t} as const,\n\t),\n});\n\n@API(CommandClasses.Lock)\nexport class LockCCAPI extends PhysicalCCAPI {\n\tpublic supportsCommand(cmd: LockCommand): MaybeNotKnown<boolean> {\n\t\tswitch (cmd) {\n\t\t\tcase LockCommand.Get:\n\t\t\tcase LockCommand.Set:\n\t\t\t\treturn true; // This is mandatory\n\t\t}\n\t\treturn super.supportsCommand(cmd);\n\t}\n\n\tpublic async get(): Promise<MaybeNotKnown<boolean>> {\n\t\tthis.assertSupportsCommand(LockCommand, LockCommand.Get);\n\n\t\tconst cc = new LockCCGet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t});\n\t\tconst response = await this.host.sendCommand<LockCCReport>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\treturn response?.locked;\n\t}\n\n\t/**\n\t * Locks or unlocks the lock\n\t * @param locked Whether the lock should be locked\n\t */\n\t@validateArgs()\n\tpublic async set(locked: boolean): Promise<SupervisionResult | undefined> {\n\t\tthis.assertSupportsCommand(LockCommand, LockCommand.Set);\n\n\t\tconst cc = new LockCCSet({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tlocked,\n\t\t});\n\t\treturn this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\tprotected override get [SET_VALUE](): SetValueImplementation {\n\t\treturn async function(this: LockCCAPI, { property }, value) {\n\t\t\tif (property !== \"locked\") {\n\t\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t\t}\n\t\t\tif (typeof value !== \"boolean\") {\n\t\t\t\tthrowWrongValueType(\n\t\t\t\t\tthis.ccId,\n\t\t\t\t\tproperty,\n\t\t\t\t\t\"boolean\",\n\t\t\t\t\ttypeof value,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst result = await this.set(value);\n\n\t\t\t// Verify the current value after a delay, unless the command was supervised and successful\n\t\t\tif (!supervisedCommandSucceeded(result)) {\n\t\t\t\tthis.schedulePoll({ property }, value);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t};\n\t}\n\n\tprotected get [POLL_VALUE](): PollValueImplementation {\n\t\treturn async function(this: LockCCAPI, { property }) {\n\t\t\tif (property === \"locked\") return this.get();\n\t\t\tthrowUnsupportedProperty(this.ccId, property);\n\t\t};\n\t}\n}\n\n@commandClass(CommandClasses.Lock)\n@implementedVersion(1)\n@ccValues(LockCCValues)\nexport class LockCC extends CommandClass {\n\tdeclare ccCommand: LockCommand;\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\n\t\tctx.logNode(node.id, {\n\t\t\tendpoint: this.endpointIndex,\n\t\t\tmessage: `Interviewing ${this.ccName}...`,\n\t\t\tdirection: \"none\",\n\t\t});\n\n\t\tawait this.refreshValues(ctx);\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\tpublic async refreshValues(\n\t\tctx: RefreshValuesContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\t\tconst endpoint = this.getEndpoint(ctx)!;\n\t\tconst api = CCAPI.create(\n\t\t\tCommandClasses.Lock,\n\t\t\tctx,\n\t\t\tendpoint,\n\t\t).withOptions({\n\t\t\tpriority: MessagePriority.NodeQuery,\n\t\t});\n\n\t\tctx.logNode(node.id, {\n\t\t\tmessage: \"requesting current lock state...\",\n\t\t\tdirection: \"outbound\",\n\t\t});\n\t\tconst locked = await api.get();\n\t\tconst logMessage = `the lock is ${locked ? \"locked\" : \"unlocked\"}`;\n\t\tctx.logNode(node.id, {\n\t\t\tmessage: logMessage,\n\t\t\tdirection: \"inbound\",\n\t\t});\n\t}\n}\n\n// @publicAPI\nexport interface LockCCSetOptions {\n\tlocked: boolean;\n}\n\n@CCCommand(LockCommand.Set)\n@useSupervision()\nexport class LockCCSet extends LockCC {\n\tpublic constructor(\n\t\toptions: WithAddress<LockCCSetOptions>,\n\t) {\n\t\tsuper(options);\n\t\tthis.locked = options.locked;\n\t}\n\n\tpublic static from(_raw: CCRaw, _ctx: CCParsingContext): LockCCSet {\n\t\t// TODO: Deserialize payload\n\t\tthrow new ZWaveError(\n\t\t\t`${this.name}: deserialization not implemented`,\n\t\t\tZWaveErrorCodes.Deserialization_NotImplemented,\n\t\t);\n\n\t\t// return new LockCCSet({\n\t\t// \tnodeId: ctx.sourceNodeId,\n\t\t// });\n\t}\n\n\tpublic locked: boolean;\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tthis.payload = Bytes.from([this.locked ? 1 : 0]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { locked: this.locked },\n\t\t};\n\t}\n}\n\n// @publicAPI\nexport interface LockCCReportOptions {\n\tlocked: boolean;\n}\n\n@CCCommand(LockCommand.Report)\n@ccValueProperty(\"locked\", LockCCValues.locked)\nexport class LockCCReport extends LockCC {\n\tpublic constructor(\n\t\toptions: WithAddress<LockCCReportOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\t// TODO: Check implementation:\n\t\tthis.locked = options.locked;\n\t}\n\n\tpublic static from(raw: CCRaw, ctx: CCParsingContext): LockCCReport {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst locked = raw.payload[0] === 1;\n\n\t\treturn new this({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tlocked,\n\t\t});\n\t}\n\n\tpublic readonly locked: boolean;\n\n\tpublic toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry {\n\t\treturn {\n\t\t\t...super.toLogEntry(ctx),\n\t\t\tmessage: { locked: this.locked },\n\t\t};\n\t}\n}\n\n@CCCommand(LockCommand.Get)\n@expectedCCResponse(LockCCReport)\nexport class LockCCGet extends LockCC {}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_safe"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/cc/ManufacturerProprietaryCC.ts"],
4
- "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCommandClasses,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { CCAPI, type CCAPIEndpoint, type CCAPIHost } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport { ManufacturerSpecificCCValues } from \"./ManufacturerSpecificCC.js\";\nimport {\n\tgetManufacturerId,\n\tgetManufacturerProprietaryAPI,\n\tgetManufacturerProprietaryCCConstructor,\n} from \"./manufacturerProprietary/Decorators.js\";\n\nexport type ManufacturerProprietaryCCConstructor<\n\tT extends typeof ManufacturerProprietaryCC =\n\t\ttypeof ManufacturerProprietaryCC,\n> = T & {\n\t// I don't like the any, but we need it to support half-implemented CCs (e.g. report classes)\n\tnew (options: any): InstanceType<T>;\n};\n\n@API(CommandClasses[\"Manufacturer Proprietary\"])\nexport class ManufacturerProprietaryCCAPI extends CCAPI {\n\tpublic constructor(\n\t\thost: CCAPIHost,\n\t\tendpoint: CCAPIEndpoint,\n\t) {\n\t\tsuper(host, endpoint);\n\n\t\t// Read the manufacturer ID from Manufacturer Specific CC\n\t\tconst manufacturerId = this.getValueDB().getValue<number>(\n\t\t\tManufacturerSpecificCCValues.manufacturerId.id,\n\t\t);\n\t\t// If possible, try to defer to a specific subclass of this API\n\t\tif (manufacturerId != undefined) {\n\t\t\tconst SpecificAPIConstructor = getManufacturerProprietaryAPI(\n\t\t\t\tmanufacturerId,\n\t\t\t);\n\t\t\tif (\n\t\t\t\tSpecificAPIConstructor != undefined\n\t\t\t\t&& new.target !== SpecificAPIConstructor\n\t\t\t) {\n\t\t\t\treturn new SpecificAPIConstructor(host, endpoint);\n\t\t\t}\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async sendData(\n\t\tmanufacturerId: number,\n\t\tdata?: Uint8Array,\n\t): Promise<void> {\n\t\tconst cc = new ManufacturerProprietaryCC({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tmanufacturerId,\n\t\t});\n\t\tcc.payload = data ? Bytes.view(data) : new Bytes();\n\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t@validateArgs()\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async sendAndReceiveData(manufacturerId: number, data?: Uint8Array) {\n\t\tconst cc = new ManufacturerProprietaryCC({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tmanufacturerId,\n\t\t\tunspecifiedExpectsResponse: true,\n\t\t});\n\t\tcc.payload = data ? Bytes.view(data) : new Bytes();\n\n\t\tconst response = await this.host.sendCommand<\n\t\t\tManufacturerProprietaryCC\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn {\n\t\t\t\tmanufacturerId: response.manufacturerId,\n\t\t\t\tdata: response.payload,\n\t\t\t};\n\t\t}\n\t}\n}\n\n// @publicAPI\nexport interface ManufacturerProprietaryCCOptions {\n\tmanufacturerId?: number;\n\tunspecifiedExpectsResponse?: boolean;\n}\n\nfunction getReponseForManufacturerProprietary(cc: ManufacturerProprietaryCC) {\n\treturn cc.unspecifiedExpectsResponse\n\t\t? ManufacturerProprietaryCC\n\t\t: undefined;\n}\n\nfunction testResponseForManufacturerProprietaryRequest(\n\tsent: ManufacturerProprietaryCC,\n\treceived: ManufacturerProprietaryCC,\n): boolean {\n\t// We expect a Manufacturer Proprietary response that has the same manufacturer ID as the request\n\treturn sent.manufacturerId === received.manufacturerId;\n}\n\n@commandClass(CommandClasses[\"Manufacturer Proprietary\"])\n@implementedVersion(1)\n@expectedCCResponse(\n\tgetReponseForManufacturerProprietary,\n\ttestResponseForManufacturerProprietaryRequest,\n)\nexport class ManufacturerProprietaryCC extends CommandClass {\n\tdeclare ccCommand: undefined;\n\n\tpublic constructor(\n\t\toptions: WithAddress<ManufacturerProprietaryCCOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.manufacturerId = options.manufacturerId\n\t\t\t?? getManufacturerId(this);\n\t\tthis.unspecifiedExpectsResponse = options.unspecifiedExpectsResponse;\n\n\t\t// To use this CC, a manufacturer ID must exist in the value DB\n\t\t// If it doesn't, the interview procedure will throw.\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ManufacturerProprietaryCC {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\t// Try to parse the proprietary command\n\t\tconst PCConstructor = getManufacturerProprietaryCCConstructor(\n\t\t\tmanufacturerId,\n\t\t);\n\t\tif (PCConstructor) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-deprecated\n\t\t\treturn PCConstructor.from(\n\t\t\t\traw.withPayload(raw.payload.subarray(2)),\n\t\t\t\tctx,\n\t\t\t);\n\t\t}\n\n\t\treturn new ManufacturerProprietaryCC({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t});\n\t}\n\n\tpublic manufacturerId?: number;\n\n\t/**\n\t * @internal\n\t * This is used to indicate that an unspecified Manufacturer Proprietary CC instance expects a response.\n\t * Subclasses should roll their own `@expectedCCResponse` instead.\n\t */\n\tpublic readonly unspecifiedExpectsResponse?: boolean;\n\n\tprivate getManufacturerIdOrThrow(): number {\n\t\tif (this.manufacturerId == undefined) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`To use an instance of ManufacturerProprietaryCC, the manufacturer ID must be stored in the value DB`,\n\t\t\t\tZWaveErrorCodes.ManufacturerProprietaryCC_NoManufacturerId,\n\t\t\t);\n\t\t}\n\t\treturn this.manufacturerId;\n\t}\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tconst manufacturerId = this.getManufacturerIdOrThrow();\n\t\t// ManufacturerProprietaryCC has no CC command, so the first byte\n\t\t// is stored in ccCommand\n\t\t(this.ccCommand as unknown as number) = (manufacturerId >>> 8) & 0xff;\n\t\t// The 2nd byte is in the payload\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([\n\t\t\t\t// 2nd byte of manufacturerId\n\t\t\t\tmanufacturerId & 0xff,\n\t\t\t]),\n\t\t\tthis.payload,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic createSpecificInstance(): ManufacturerProprietaryCC | undefined {\n\t\t// Try to defer to the correct subclass\n\t\tif (this.manufacturerId != undefined) {\n\t\t\tconst PCConstructor = getManufacturerProprietaryCCConstructor(\n\t\t\t\tthis.manufacturerId,\n\t\t\t);\n\t\t\tif (PCConstructor) {\n\t\t\t\treturn new PCConstructor({\n\t\t\t\t\tnodeId: this.nodeId,\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\n\t\t// Read the manufacturer ID from Manufacturer Specific CC\n\t\tthis.manufacturerId = this.getValue(\n\t\t\tctx,\n\t\t\tManufacturerSpecificCCValues.manufacturerId,\n\t\t)!;\n\t\tconst pcInstance = this.createSpecificInstance();\n\t\tif (pcInstance) {\n\t\t\tawait pcInstance.interview(ctx);\n\t\t} else {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tmessage:\n\t\t\t\t\t`${this.constructor.name}: skipping interview refresh because the matching proprietary CC is not implemented...`,\n\t\t\t\tdirection: \"none\",\n\t\t\t});\n\t\t}\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\tpublic async refreshValues(\n\t\tctx: RefreshValuesContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\n\t\tif (this.manufacturerId == undefined) {\n\t\t\t// Read the manufacturer ID from Manufacturer Specific CC\n\t\t\tthis.manufacturerId = this.getValue(\n\t\t\t\tctx,\n\t\t\t\tManufacturerSpecificCCValues.manufacturerId,\n\t\t\t)!;\n\t\t}\n\t\tconst pcInstance = this.createSpecificInstance();\n\t\tif (pcInstance) {\n\t\t\tawait pcInstance.refreshValues(ctx);\n\t\t} else {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tmessage:\n\t\t\t\t\t`${this.constructor.name}: skipping value refresh because the matching proprietary CC is not implemented...`,\n\t\t\t\tdirection: \"none\",\n\t\t\t});\n\t\t}\n\t}\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { type CCEncodingContext, type CCParsingContext } from \"@zwave-js/cc\";\nimport {\n\tCommandClasses,\n\ttype WithAddress,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tvalidatePayload,\n} from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared/safe\";\nimport { validateArgs } from \"@zwave-js/transformers\";\nimport { CCAPI, type CCAPIEndpoint, type CCAPIHost } from \"../lib/API.js\";\nimport {\n\ttype CCRaw,\n\tCommandClass,\n\ttype InterviewContext,\n\ttype RefreshValuesContext,\n} from \"../lib/CommandClass.js\";\nimport {\n\tAPI,\n\tcommandClass,\n\texpectedCCResponse,\n\timplementedVersion,\n} from \"../lib/CommandClassDecorators.js\";\nimport { ManufacturerSpecificCCValues } from \"./ManufacturerSpecificCC.js\";\nimport {\n\tgetManufacturerId,\n\tgetManufacturerProprietaryAPI,\n\tgetManufacturerProprietaryCCConstructor,\n} from \"./manufacturerProprietary/Decorators.js\";\n\nexport type ManufacturerProprietaryCCConstructor<\n\tT extends typeof ManufacturerProprietaryCC =\n\t\ttypeof ManufacturerProprietaryCC,\n> = T & {\n\t// I don't like the any, but we need it to support half-implemented CCs (e.g. report classes)\n\tnew (options: any): InstanceType<T>;\n};\n\n@API(CommandClasses[\"Manufacturer Proprietary\"])\nexport class ManufacturerProprietaryCCAPI extends CCAPI {\n\tpublic constructor(\n\t\thost: CCAPIHost,\n\t\tendpoint: CCAPIEndpoint,\n\t) {\n\t\tsuper(host, endpoint);\n\n\t\t// Read the manufacturer ID from Manufacturer Specific CC\n\t\tconst manufacturerId = this.getValueDB().getValue<number>(\n\t\t\tManufacturerSpecificCCValues.manufacturerId.id,\n\t\t);\n\t\t// If possible, try to defer to a specific subclass of this API\n\t\tif (manufacturerId != undefined) {\n\t\t\tconst SpecificAPIConstructor = getManufacturerProprietaryAPI(\n\t\t\t\tmanufacturerId,\n\t\t\t);\n\t\t\tif (\n\t\t\t\tSpecificAPIConstructor != undefined\n\t\t\t\t&& new.target !== SpecificAPIConstructor\n\t\t\t) {\n\t\t\t\treturn new SpecificAPIConstructor(host, endpoint);\n\t\t\t}\n\t\t}\n\t}\n\n\t@validateArgs()\n\tpublic async sendData(\n\t\tmanufacturerId: number,\n\t\tdata?: Uint8Array,\n\t): Promise<void> {\n\t\tconst cc = new ManufacturerProprietaryCC({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tmanufacturerId,\n\t\t});\n\t\tcc.payload = data ? Bytes.view(data) : new Bytes();\n\n\t\tawait this.host.sendCommand(cc, this.commandOptions);\n\t}\n\n\t@validateArgs()\n\t// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\tpublic async sendAndReceiveData(manufacturerId: number, data?: Uint8Array) {\n\t\tconst cc = new ManufacturerProprietaryCC({\n\t\t\tnodeId: this.endpoint.nodeId,\n\t\t\tendpointIndex: this.endpoint.index,\n\t\t\tmanufacturerId,\n\t\t\tunspecifiedExpectsResponse: true,\n\t\t});\n\t\tcc.payload = data ? Bytes.view(data) : new Bytes();\n\n\t\tconst response = await this.host.sendCommand<\n\t\t\tManufacturerProprietaryCC\n\t\t>(\n\t\t\tcc,\n\t\t\tthis.commandOptions,\n\t\t);\n\t\tif (response) {\n\t\t\treturn {\n\t\t\t\tmanufacturerId: response.manufacturerId,\n\t\t\t\tdata: response.payload,\n\t\t\t};\n\t\t}\n\t}\n}\n\n// @publicAPI\nexport interface ManufacturerProprietaryCCOptions {\n\tmanufacturerId?: number;\n\tunspecifiedExpectsResponse?: boolean;\n}\n\nfunction getReponseForManufacturerProprietary(cc: ManufacturerProprietaryCC) {\n\treturn cc.unspecifiedExpectsResponse\n\t\t? ManufacturerProprietaryCC\n\t\t: undefined;\n}\n\nfunction testResponseForManufacturerProprietaryRequest(\n\tsent: ManufacturerProprietaryCC,\n\treceived: ManufacturerProprietaryCC,\n): boolean {\n\t// We expect a Manufacturer Proprietary response that has the same manufacturer ID as the request\n\treturn sent.manufacturerId === received.manufacturerId;\n}\n\n@commandClass(CommandClasses[\"Manufacturer Proprietary\"])\n@implementedVersion(1)\n@expectedCCResponse(\n\tgetReponseForManufacturerProprietary,\n\ttestResponseForManufacturerProprietaryRequest,\n)\nexport class ManufacturerProprietaryCC extends CommandClass {\n\tdeclare ccCommand: undefined;\n\n\tpublic constructor(\n\t\toptions: WithAddress<ManufacturerProprietaryCCOptions>,\n\t) {\n\t\tsuper(options);\n\n\t\tthis.manufacturerId = options.manufacturerId\n\t\t\t?? getManufacturerId(this);\n\t\tthis.unspecifiedExpectsResponse = options.unspecifiedExpectsResponse;\n\n\t\t// To use this CC, a manufacturer ID must exist in the value DB\n\t\t// If it doesn't, the interview procedure will throw.\n\t}\n\n\tpublic static from(\n\t\traw: CCRaw,\n\t\tctx: CCParsingContext,\n\t): ManufacturerProprietaryCC {\n\t\tvalidatePayload(raw.payload.length >= 1);\n\t\tconst manufacturerId = raw.payload.readUInt16BE(0);\n\t\t// Try to parse the proprietary command\n\t\tconst PCConstructor = getManufacturerProprietaryCCConstructor(\n\t\t\tmanufacturerId,\n\t\t);\n\t\tif (PCConstructor) {\n\t\t\treturn PCConstructor.from(\n\t\t\t\traw.withPayload(raw.payload.subarray(2)),\n\t\t\t\tctx,\n\t\t\t);\n\t\t}\n\n\t\treturn new ManufacturerProprietaryCC({\n\t\t\tnodeId: ctx.sourceNodeId,\n\t\t\tmanufacturerId,\n\t\t});\n\t}\n\n\tpublic manufacturerId?: number;\n\n\t/**\n\t * @internal\n\t * This is used to indicate that an unspecified Manufacturer Proprietary CC instance expects a response.\n\t * Subclasses should roll their own `@expectedCCResponse` instead.\n\t */\n\tpublic readonly unspecifiedExpectsResponse?: boolean;\n\n\tprivate getManufacturerIdOrThrow(): number {\n\t\tif (this.manufacturerId == undefined) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t`To use an instance of ManufacturerProprietaryCC, the manufacturer ID must be stored in the value DB`,\n\t\t\t\tZWaveErrorCodes.ManufacturerProprietaryCC_NoManufacturerId,\n\t\t\t);\n\t\t}\n\t\treturn this.manufacturerId;\n\t}\n\n\tpublic serialize(ctx: CCEncodingContext): Promise<Bytes> {\n\t\tconst manufacturerId = this.getManufacturerIdOrThrow();\n\t\t// ManufacturerProprietaryCC has no CC command, so the first byte\n\t\t// is stored in ccCommand\n\t\t(this.ccCommand as unknown as number) = (manufacturerId >>> 8) & 0xff;\n\t\t// The 2nd byte is in the payload\n\t\tthis.payload = Bytes.concat([\n\t\t\tBytes.from([\n\t\t\t\t// 2nd byte of manufacturerId\n\t\t\t\tmanufacturerId & 0xff,\n\t\t\t]),\n\t\t\tthis.payload,\n\t\t]);\n\t\treturn super.serialize(ctx);\n\t}\n\n\tpublic createSpecificInstance(): ManufacturerProprietaryCC | undefined {\n\t\t// Try to defer to the correct subclass\n\t\tif (this.manufacturerId != undefined) {\n\t\t\tconst PCConstructor = getManufacturerProprietaryCCConstructor(\n\t\t\t\tthis.manufacturerId,\n\t\t\t);\n\t\t\tif (PCConstructor) {\n\t\t\t\treturn new PCConstructor({\n\t\t\t\t\tnodeId: this.nodeId,\n\t\t\t\t\tendpoint: this.endpointIndex,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic async interview(\n\t\tctx: InterviewContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\n\t\t// Read the manufacturer ID from Manufacturer Specific CC\n\t\tthis.manufacturerId = this.getValue(\n\t\t\tctx,\n\t\t\tManufacturerSpecificCCValues.manufacturerId,\n\t\t)!;\n\t\tconst pcInstance = this.createSpecificInstance();\n\t\tif (pcInstance) {\n\t\t\tawait pcInstance.interview(ctx);\n\t\t} else {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tmessage:\n\t\t\t\t\t`${this.constructor.name}: skipping interview refresh because the matching proprietary CC is not implemented...`,\n\t\t\t\tdirection: \"none\",\n\t\t\t});\n\t\t}\n\n\t\t// Remember that the interview is complete\n\t\tthis.setInterviewComplete(ctx, true);\n\t}\n\n\tpublic async refreshValues(\n\t\tctx: RefreshValuesContext,\n\t): Promise<void> {\n\t\tconst node = this.getNode(ctx)!;\n\n\t\tif (this.manufacturerId == undefined) {\n\t\t\t// Read the manufacturer ID from Manufacturer Specific CC\n\t\t\tthis.manufacturerId = this.getValue(\n\t\t\t\tctx,\n\t\t\t\tManufacturerSpecificCCValues.manufacturerId,\n\t\t\t)!;\n\t\t}\n\t\tconst pcInstance = this.createSpecificInstance();\n\t\tif (pcInstance) {\n\t\t\tawait pcInstance.refreshValues(ctx);\n\t\t} else {\n\t\t\tctx.logNode(node.id, {\n\t\t\t\tmessage:\n\t\t\t\t\t`${this.constructor.name}: skipping value refresh because the matching proprietary CC is not implemented...`,\n\t\t\t\tdirection: \"none\",\n\t\t\t});\n\t\t}\n\t}\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_safe", "ManufacturerProprietaryCC"]
7
7
  }