@zwave-js/cc 15.15.3 → 15.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/build/cjs/cc/AlarmSensorCC.js +1 -1
  2. package/build/cjs/cc/AlarmSensorCC.js.map +1 -1
  3. package/build/cjs/cc/ApplicationStatusCC.d.ts +33 -0
  4. package/build/cjs/cc/ApplicationStatusCC.js +229 -0
  5. package/build/cjs/cc/ApplicationStatusCC.js.map +7 -0
  6. package/build/cjs/cc/AssociationCC.js.map +1 -1
  7. package/build/cjs/cc/AssociationGroupInfoCC.js +4 -4
  8. package/build/cjs/cc/AssociationGroupInfoCC.js.map +2 -2
  9. package/build/cjs/cc/BarrierOperatorCC.js +9 -2
  10. package/build/cjs/cc/BarrierOperatorCC.js.map +2 -2
  11. package/build/cjs/cc/BasicCC.js +1 -1
  12. package/build/cjs/cc/BasicCC.js.map +1 -1
  13. package/build/cjs/cc/BatteryCC.js +6 -2
  14. package/build/cjs/cc/BatteryCC.js.map +2 -2
  15. package/build/cjs/cc/BinarySwitchCC.js +1 -1
  16. package/build/cjs/cc/BinarySwitchCC.js.map +1 -1
  17. package/build/cjs/cc/CRC16CC.js +2 -2
  18. package/build/cjs/cc/CRC16CC.js.map +2 -2
  19. package/build/cjs/cc/CentralSceneCC.js +2 -2
  20. package/build/cjs/cc/CentralSceneCC.js.map +1 -1
  21. package/build/cjs/cc/ClimateControlScheduleCC.js +5 -5
  22. package/build/cjs/cc/ClimateControlScheduleCC.js.map +2 -2
  23. package/build/cjs/cc/ClockCC.js +1 -1
  24. package/build/cjs/cc/ClockCC.js.map +1 -1
  25. package/build/cjs/cc/ColorSwitchCC.js.map +1 -1
  26. package/build/cjs/cc/ConfigurationCC.d.ts +6 -0
  27. package/build/cjs/cc/ConfigurationCC.js +52 -4
  28. package/build/cjs/cc/ConfigurationCC.js.map +2 -2
  29. package/build/cjs/cc/DoorLockCC.js +3 -3
  30. package/build/cjs/cc/DoorLockCC.js.map +1 -1
  31. package/build/cjs/cc/EntryControlCC.d.ts +2 -2
  32. package/build/cjs/cc/EntryControlCC.js +3 -3
  33. package/build/cjs/cc/EntryControlCC.js.map +2 -2
  34. package/build/cjs/cc/FirmwareUpdateMetaDataCC.d.ts +4 -4
  35. package/build/cjs/cc/FirmwareUpdateMetaDataCC.js.map +2 -2
  36. package/build/cjs/cc/IndicatorCC.js +5 -5
  37. package/build/cjs/cc/IndicatorCC.js.map +2 -2
  38. package/build/cjs/cc/IrrigationCC.js +3 -3
  39. package/build/cjs/cc/IrrigationCC.js.map +1 -1
  40. package/build/cjs/cc/LanguageCC.js +1 -1
  41. package/build/cjs/cc/LanguageCC.js.map +1 -1
  42. package/build/cjs/cc/ManufacturerProprietaryCC.d.ts +4 -4
  43. package/build/cjs/cc/ManufacturerProprietaryCC.js +1 -1
  44. package/build/cjs/cc/ManufacturerProprietaryCC.js.map +2 -2
  45. package/build/cjs/cc/ManufacturerSpecificCC.js +1 -1
  46. package/build/cjs/cc/ManufacturerSpecificCC.js.map +1 -1
  47. package/build/cjs/cc/MeterCC.js +3 -3
  48. package/build/cjs/cc/MeterCC.js.map +2 -2
  49. package/build/cjs/cc/MultiChannelAssociationCC.js.map +2 -2
  50. package/build/cjs/cc/MultiChannelCC.js +8 -8
  51. package/build/cjs/cc/MultiChannelCC.js.map +2 -2
  52. package/build/cjs/cc/MultilevelSensorCC.js.map +1 -1
  53. package/build/cjs/cc/MultilevelSwitchCC.js +1 -1
  54. package/build/cjs/cc/MultilevelSwitchCC.js.map +1 -1
  55. package/build/cjs/cc/NodeNamingCC.js.map +2 -2
  56. package/build/cjs/cc/NotificationCC.d.ts +3 -3
  57. package/build/cjs/cc/NotificationCC.js +29 -23
  58. package/build/cjs/cc/NotificationCC.js.map +2 -2
  59. package/build/cjs/cc/ProtectionCC.js +10 -3
  60. package/build/cjs/cc/ProtectionCC.js.map +2 -2
  61. package/build/cjs/cc/SceneActuatorConfigurationCC.js +0 -1
  62. package/build/cjs/cc/SceneActuatorConfigurationCC.js.map +2 -2
  63. package/build/cjs/cc/SceneControllerConfigurationCC.js +0 -1
  64. package/build/cjs/cc/SceneControllerConfigurationCC.js.map +2 -2
  65. package/build/cjs/cc/ScheduleEntryLockCC.js +1 -1
  66. package/build/cjs/cc/ScheduleEntryLockCC.js.map +1 -1
  67. package/build/cjs/cc/Security2CC.d.ts +14 -14
  68. package/build/cjs/cc/Security2CC.js +6 -5
  69. package/build/cjs/cc/Security2CC.js.map +2 -2
  70. package/build/cjs/cc/SecurityCC.d.ts +10 -10
  71. package/build/cjs/cc/SecurityCC.js +3 -3
  72. package/build/cjs/cc/SecurityCC.js.map +2 -2
  73. package/build/cjs/cc/SoundSwitchCC.js +2 -2
  74. package/build/cjs/cc/SoundSwitchCC.js.map +1 -1
  75. package/build/cjs/cc/SupervisionCC.js +1 -1
  76. package/build/cjs/cc/SupervisionCC.js.map +2 -2
  77. package/build/cjs/cc/ThermostatFanModeCC.js +1 -1
  78. package/build/cjs/cc/ThermostatFanModeCC.js.map +1 -1
  79. package/build/cjs/cc/ThermostatFanStateCC.js +1 -1
  80. package/build/cjs/cc/ThermostatFanStateCC.js.map +1 -1
  81. package/build/cjs/cc/ThermostatModeCC.d.ts +6 -6
  82. package/build/cjs/cc/ThermostatModeCC.js +2 -2
  83. package/build/cjs/cc/ThermostatModeCC.js.map +2 -2
  84. package/build/cjs/cc/ThermostatSetbackCC.js +1 -1
  85. package/build/cjs/cc/ThermostatSetbackCC.js.map +1 -1
  86. package/build/cjs/cc/ThermostatSetpointCC.js.map +1 -1
  87. package/build/cjs/cc/TimeCC.js +2 -2
  88. package/build/cjs/cc/TimeCC.js.map +1 -1
  89. package/build/cjs/cc/TransportServiceCC.d.ts +7 -7
  90. package/build/cjs/cc/TransportServiceCC.js +1 -1
  91. package/build/cjs/cc/TransportServiceCC.js.map +2 -2
  92. package/build/cjs/cc/UserCodeCC.d.ts +14 -6
  93. package/build/cjs/cc/UserCodeCC.js +16 -4
  94. package/build/cjs/cc/UserCodeCC.js.map +2 -2
  95. package/build/cjs/cc/VersionCC.js +3 -3
  96. package/build/cjs/cc/VersionCC.js.map +2 -2
  97. package/build/cjs/cc/WakeUpCC.js +2 -2
  98. package/build/cjs/cc/WakeUpCC.js.map +1 -1
  99. package/build/cjs/cc/WindowCoveringCC.d.ts +3 -1
  100. package/build/cjs/cc/WindowCoveringCC.js +28 -8
  101. package/build/cjs/cc/WindowCoveringCC.js.map +2 -2
  102. package/build/cjs/cc/ZWavePlusCC.js +1 -1
  103. package/build/cjs/cc/ZWavePlusCC.js.map +1 -1
  104. package/build/cjs/cc/ZWaveProtocolCC.d.ts +3 -3
  105. package/build/cjs/cc/ZWaveProtocolCC.js.map +2 -2
  106. package/build/cjs/cc/_CCValues.generated.js.map +1 -1
  107. package/build/cjs/cc/index.d.ts +3 -0
  108. package/build/cjs/cc/index.js +8 -0
  109. package/build/cjs/cc/index.js.map +2 -2
  110. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js +1 -1
  111. package/build/cjs/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  112. package/build/cjs/lib/API.d.ts +2 -0
  113. package/build/cjs/lib/API.js +2 -2
  114. package/build/cjs/lib/API.js.map +2 -2
  115. package/build/cjs/lib/CommandClass.d.ts +7 -7
  116. package/build/cjs/lib/CommandClass.js +6 -6
  117. package/build/cjs/lib/CommandClass.js.map +2 -2
  118. package/build/cjs/lib/NotificationEventPayload.d.ts +2 -1
  119. package/build/cjs/lib/NotificationEventPayload.js.map +2 -2
  120. package/build/cjs/lib/Security2/Extension.d.ts +12 -12
  121. package/build/cjs/lib/Security2/Extension.js.map +2 -2
  122. package/build/cjs/lib/_Types.d.ts +11 -1
  123. package/build/cjs/lib/_Types.js +15 -0
  124. package/build/cjs/lib/_Types.js.map +3 -3
  125. package/build/cjs/lib/serializers.d.ts +4 -4
  126. package/build/cjs/lib/serializers.js.map +2 -2
  127. package/build/cjs/lib/traits.d.ts +5 -0
  128. package/build/cjs/lib/utils.js +1 -1
  129. package/build/cjs/lib/utils.js.map +2 -2
  130. package/build/esm/cc/AlarmSensorCC.js +1 -1
  131. package/build/esm/cc/AlarmSensorCC.js.map +1 -1
  132. package/build/esm/cc/ApplicationStatusCC.d.ts +33 -0
  133. package/build/esm/cc/ApplicationStatusCC.d.ts.map +1 -0
  134. package/build/esm/cc/ApplicationStatusCC.js +175 -0
  135. package/build/esm/cc/ApplicationStatusCC.js.map +1 -0
  136. package/build/esm/cc/AssociationGroupInfoCC.d.ts.map +1 -1
  137. package/build/esm/cc/AssociationGroupInfoCC.js +4 -4
  138. package/build/esm/cc/AssociationGroupInfoCC.js.map +1 -1
  139. package/build/esm/cc/BarrierOperatorCC.d.ts.map +1 -1
  140. package/build/esm/cc/BarrierOperatorCC.js +13 -2
  141. package/build/esm/cc/BarrierOperatorCC.js.map +1 -1
  142. package/build/esm/cc/BasicCC.js +1 -1
  143. package/build/esm/cc/BasicCC.js.map +1 -1
  144. package/build/esm/cc/BatteryCC.d.ts.map +1 -1
  145. package/build/esm/cc/BatteryCC.js +5 -2
  146. package/build/esm/cc/BatteryCC.js.map +1 -1
  147. package/build/esm/cc/BinarySwitchCC.js +1 -1
  148. package/build/esm/cc/BinarySwitchCC.js.map +1 -1
  149. package/build/esm/cc/CRC16CC.d.ts.map +1 -1
  150. package/build/esm/cc/CRC16CC.js +2 -2
  151. package/build/esm/cc/CRC16CC.js.map +1 -1
  152. package/build/esm/cc/CentralSceneCC.js +2 -2
  153. package/build/esm/cc/CentralSceneCC.js.map +1 -1
  154. package/build/esm/cc/ClimateControlScheduleCC.d.ts.map +1 -1
  155. package/build/esm/cc/ClimateControlScheduleCC.js +5 -5
  156. package/build/esm/cc/ClimateControlScheduleCC.js.map +1 -1
  157. package/build/esm/cc/ClockCC.js +1 -1
  158. package/build/esm/cc/ClockCC.js.map +1 -1
  159. package/build/esm/cc/ConfigurationCC.d.ts +6 -0
  160. package/build/esm/cc/ConfigurationCC.d.ts.map +1 -1
  161. package/build/esm/cc/ConfigurationCC.js +65 -5
  162. package/build/esm/cc/ConfigurationCC.js.map +1 -1
  163. package/build/esm/cc/DoorLockCC.js +3 -3
  164. package/build/esm/cc/DoorLockCC.js.map +1 -1
  165. package/build/esm/cc/EntryControlCC.d.ts +2 -2
  166. package/build/esm/cc/EntryControlCC.d.ts.map +1 -1
  167. package/build/esm/cc/EntryControlCC.js +3 -3
  168. package/build/esm/cc/EntryControlCC.js.map +1 -1
  169. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts +4 -4
  170. package/build/esm/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
  171. package/build/esm/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
  172. package/build/esm/cc/IndicatorCC.d.ts.map +1 -1
  173. package/build/esm/cc/IndicatorCC.js +6 -6
  174. package/build/esm/cc/IndicatorCC.js.map +1 -1
  175. package/build/esm/cc/IrrigationCC.js +3 -3
  176. package/build/esm/cc/IrrigationCC.js.map +1 -1
  177. package/build/esm/cc/LanguageCC.js +1 -1
  178. package/build/esm/cc/LanguageCC.js.map +1 -1
  179. package/build/esm/cc/ManufacturerProprietaryCC.d.ts +4 -4
  180. package/build/esm/cc/ManufacturerProprietaryCC.d.ts.map +1 -1
  181. package/build/esm/cc/ManufacturerProprietaryCC.js +1 -1
  182. package/build/esm/cc/ManufacturerProprietaryCC.js.map +1 -1
  183. package/build/esm/cc/ManufacturerSpecificCC.js +1 -1
  184. package/build/esm/cc/ManufacturerSpecificCC.js.map +1 -1
  185. package/build/esm/cc/MeterCC.d.ts.map +1 -1
  186. package/build/esm/cc/MeterCC.js +3 -3
  187. package/build/esm/cc/MeterCC.js.map +1 -1
  188. package/build/esm/cc/MultiChannelAssociationCC.d.ts.map +1 -1
  189. package/build/esm/cc/MultiChannelAssociationCC.js.map +1 -1
  190. package/build/esm/cc/MultiChannelCC.d.ts.map +1 -1
  191. package/build/esm/cc/MultiChannelCC.js +8 -8
  192. package/build/esm/cc/MultiChannelCC.js.map +1 -1
  193. package/build/esm/cc/MultilevelSwitchCC.js +1 -1
  194. package/build/esm/cc/MultilevelSwitchCC.js.map +1 -1
  195. package/build/esm/cc/NodeNamingCC.d.ts.map +1 -1
  196. package/build/esm/cc/NodeNamingCC.js.map +1 -1
  197. package/build/esm/cc/NotificationCC.d.ts +3 -3
  198. package/build/esm/cc/NotificationCC.d.ts.map +1 -1
  199. package/build/esm/cc/NotificationCC.js +43 -31
  200. package/build/esm/cc/NotificationCC.js.map +1 -1
  201. package/build/esm/cc/ProtectionCC.d.ts.map +1 -1
  202. package/build/esm/cc/ProtectionCC.js +16 -3
  203. package/build/esm/cc/ProtectionCC.js.map +1 -1
  204. package/build/esm/cc/SceneActuatorConfigurationCC.d.ts.map +1 -1
  205. package/build/esm/cc/SceneActuatorConfigurationCC.js +0 -1
  206. package/build/esm/cc/SceneActuatorConfigurationCC.js.map +1 -1
  207. package/build/esm/cc/SceneControllerConfigurationCC.d.ts.map +1 -1
  208. package/build/esm/cc/SceneControllerConfigurationCC.js +0 -1
  209. package/build/esm/cc/SceneControllerConfigurationCC.js.map +1 -1
  210. package/build/esm/cc/ScheduleEntryLockCC.js +1 -1
  211. package/build/esm/cc/ScheduleEntryLockCC.js.map +1 -1
  212. package/build/esm/cc/Security2CC.d.ts +14 -14
  213. package/build/esm/cc/Security2CC.d.ts.map +1 -1
  214. package/build/esm/cc/Security2CC.js +7 -6
  215. package/build/esm/cc/Security2CC.js.map +1 -1
  216. package/build/esm/cc/SecurityCC.d.ts +10 -10
  217. package/build/esm/cc/SecurityCC.d.ts.map +1 -1
  218. package/build/esm/cc/SecurityCC.js +4 -4
  219. package/build/esm/cc/SecurityCC.js.map +1 -1
  220. package/build/esm/cc/SoundSwitchCC.js +2 -2
  221. package/build/esm/cc/SoundSwitchCC.js.map +1 -1
  222. package/build/esm/cc/SupervisionCC.js +1 -1
  223. package/build/esm/cc/SupervisionCC.js.map +1 -1
  224. package/build/esm/cc/ThermostatFanModeCC.js +1 -1
  225. package/build/esm/cc/ThermostatFanModeCC.js.map +1 -1
  226. package/build/esm/cc/ThermostatFanStateCC.js +1 -1
  227. package/build/esm/cc/ThermostatFanStateCC.js.map +1 -1
  228. package/build/esm/cc/ThermostatModeCC.d.ts +6 -6
  229. package/build/esm/cc/ThermostatModeCC.d.ts.map +1 -1
  230. package/build/esm/cc/ThermostatModeCC.js +3 -3
  231. package/build/esm/cc/ThermostatModeCC.js.map +1 -1
  232. package/build/esm/cc/ThermostatSetbackCC.js +1 -1
  233. package/build/esm/cc/ThermostatSetbackCC.js.map +1 -1
  234. package/build/esm/cc/TimeCC.js +2 -2
  235. package/build/esm/cc/TimeCC.js.map +1 -1
  236. package/build/esm/cc/TransportServiceCC.d.ts +7 -7
  237. package/build/esm/cc/TransportServiceCC.d.ts.map +1 -1
  238. package/build/esm/cc/TransportServiceCC.js +2 -1
  239. package/build/esm/cc/TransportServiceCC.js.map +1 -1
  240. package/build/esm/cc/UserCodeCC.d.ts +14 -6
  241. package/build/esm/cc/UserCodeCC.d.ts.map +1 -1
  242. package/build/esm/cc/UserCodeCC.js +20 -4
  243. package/build/esm/cc/UserCodeCC.js.map +1 -1
  244. package/build/esm/cc/VersionCC.d.ts.map +1 -1
  245. package/build/esm/cc/VersionCC.js +4 -4
  246. package/build/esm/cc/VersionCC.js.map +1 -1
  247. package/build/esm/cc/WakeUpCC.js +2 -2
  248. package/build/esm/cc/WakeUpCC.js.map +1 -1
  249. package/build/esm/cc/WindowCoveringCC.d.ts +3 -1
  250. package/build/esm/cc/WindowCoveringCC.d.ts.map +1 -1
  251. package/build/esm/cc/WindowCoveringCC.js +30 -9
  252. package/build/esm/cc/WindowCoveringCC.js.map +1 -1
  253. package/build/esm/cc/ZWavePlusCC.js +1 -1
  254. package/build/esm/cc/ZWavePlusCC.js.map +1 -1
  255. package/build/esm/cc/ZWaveProtocolCC.d.ts +3 -3
  256. package/build/esm/cc/ZWaveProtocolCC.d.ts.map +1 -1
  257. package/build/esm/cc/ZWaveProtocolCC.js.map +1 -1
  258. package/build/esm/cc/index.d.ts +3 -0
  259. package/build/esm/cc/index.d.ts.map +1 -1
  260. package/build/esm/cc/index.js +5 -0
  261. package/build/esm/cc/index.js.map +1 -1
  262. package/build/esm/cc/manufacturerProprietary/FibaroCC.js +1 -1
  263. package/build/esm/cc/manufacturerProprietary/FibaroCC.js.map +1 -1
  264. package/build/esm/lib/API.d.ts +2 -0
  265. package/build/esm/lib/API.d.ts.map +1 -1
  266. package/build/esm/lib/API.js +2 -2
  267. package/build/esm/lib/API.js.map +1 -1
  268. package/build/esm/lib/CommandClass.d.ts +7 -7
  269. package/build/esm/lib/CommandClass.d.ts.map +1 -1
  270. package/build/esm/lib/CommandClass.js +6 -6
  271. package/build/esm/lib/CommandClass.js.map +1 -1
  272. package/build/esm/lib/NotificationEventPayload.d.ts +2 -1
  273. package/build/esm/lib/NotificationEventPayload.d.ts.map +1 -1
  274. package/build/esm/lib/NotificationEventPayload.js.map +1 -1
  275. package/build/esm/lib/Security2/Extension.d.ts +12 -12
  276. package/build/esm/lib/Security2/Extension.d.ts.map +1 -1
  277. package/build/esm/lib/Security2/Extension.js +1 -1
  278. package/build/esm/lib/Security2/Extension.js.map +1 -1
  279. package/build/esm/lib/_Types.d.ts +11 -1
  280. package/build/esm/lib/_Types.d.ts.map +1 -1
  281. package/build/esm/lib/_Types.js +11 -0
  282. package/build/esm/lib/_Types.js.map +1 -1
  283. package/build/esm/lib/serializers.d.ts +4 -4
  284. package/build/esm/lib/serializers.d.ts.map +1 -1
  285. package/build/esm/lib/serializers.js.map +1 -1
  286. package/build/esm/lib/traits.d.ts +5 -0
  287. package/build/esm/lib/traits.d.ts.map +1 -1
  288. package/build/esm/lib/utils.js +1 -1
  289. package/build/esm/lib/utils.js.map +1 -1
  290. package/package.json +12 -13
  291. package/build/cjs/lib/ICommandClassContainer.d.ts +0 -2
  292. package/build/cjs/lib/ICommandClassContainer.js +0 -17
  293. package/build/cjs/lib/ICommandClassContainer.js.map +0 -7
  294. package/build/esm/lib/ICommandClassContainer.d.ts +0 -2
  295. package/build/esm/lib/ICommandClassContainer.d.ts.map +0 -1
  296. package/build/esm/lib/ICommandClassContainer.js +0 -2
  297. package/build/esm/lib/ICommandClassContainer.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { Bytes } from "@zwave-js/shared";
1
+ import { Bytes, type BytesView } from "@zwave-js/shared";
2
2
  declare enum S2ExtensionType {
3
3
  SPAN = 1,
4
4
  MPAN = 2,
@@ -27,9 +27,9 @@ export declare class Security2ExtensionRaw {
27
27
  type: S2ExtensionType;
28
28
  critical: boolean;
29
29
  readonly moreToFollow: boolean;
30
- payload: Uint8Array;
31
- constructor(type: S2ExtensionType, critical: boolean, moreToFollow: boolean, payload: Uint8Array);
32
- static parse(data: Uint8Array): Security2ExtensionRaw;
30
+ payload: BytesView;
31
+ constructor(type: S2ExtensionType, critical: boolean, moreToFollow: boolean, payload: BytesView);
32
+ static parse(data: BytesView): Security2ExtensionRaw;
33
33
  withPayload(payload: Bytes): Security2ExtensionRaw;
34
34
  }
35
35
  interface Security2ExtensionBaseOptions {
@@ -38,21 +38,21 @@ interface Security2ExtensionBaseOptions {
38
38
  }
39
39
  interface Security2ExtensionOptions extends Security2ExtensionBaseOptions {
40
40
  type?: S2ExtensionType;
41
- payload?: Uint8Array;
41
+ payload?: BytesView;
42
42
  }
43
43
  export declare class Security2Extension {
44
44
  constructor(options: Security2ExtensionOptions);
45
- static parse(data: Uint8Array): Security2Extension;
45
+ static parse(data: BytesView): Security2Extension;
46
46
  /** Creates an instance of the message that is serialized in the given buffer */
47
47
  static from(raw: Security2ExtensionRaw): Security2Extension;
48
48
  type: S2ExtensionType;
49
49
  critical: boolean;
50
50
  readonly moreToFollow?: boolean;
51
- payload: Uint8Array;
51
+ payload: BytesView;
52
52
  isEncrypted(): boolean;
53
53
  serialize(moreToFollow: boolean): Bytes;
54
54
  /** Returns the number of bytes the first extension in the buffer occupies */
55
- static getExtensionLength(data: Uint8Array): {
55
+ static getExtensionLength(data: BytesView): {
56
56
  expected?: number;
57
57
  actual: number;
58
58
  };
@@ -63,25 +63,25 @@ export declare class Security2Extension {
63
63
  export declare class InvalidExtension extends Security2Extension {
64
64
  }
65
65
  interface SPANExtensionOptions {
66
- senderEI: Uint8Array;
66
+ senderEI: BytesView;
67
67
  }
68
68
  export declare class SPANExtension extends Security2Extension {
69
69
  constructor(options: SPANExtensionOptions & Security2ExtensionBaseOptions);
70
70
  static from(raw: Security2ExtensionRaw): Security2Extension;
71
- senderEI: Uint8Array;
71
+ senderEI: BytesView;
72
72
  static readonly expectedLength = 18;
73
73
  serialize(moreToFollow: boolean): Bytes;
74
74
  toLogEntry(): string;
75
75
  }
76
76
  interface MPANExtensionOptions {
77
77
  groupId: number;
78
- innerMPANState: Uint8Array;
78
+ innerMPANState: BytesView;
79
79
  }
80
80
  export declare class MPANExtension extends Security2Extension {
81
81
  constructor(options: MPANExtensionOptions & Security2ExtensionBaseOptions);
82
82
  static from(raw: Security2ExtensionRaw): Security2Extension;
83
83
  groupId: number;
84
- innerMPANState: Uint8Array;
84
+ innerMPANState: BytesView;
85
85
  isEncrypted(): boolean;
86
86
  static readonly expectedLength = 19;
87
87
  serialize(moreToFollow: boolean): Bytes;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/Security2/Extension.ts"],
4
- "sourcesContent": ["import { ZWaveError, ZWaveErrorCodes, validatePayload } from \"@zwave-js/core\";\nimport { createSimpleReflectionDecorator } from \"@zwave-js/core/reflection\";\nimport { Bytes, buffer2hex, getEnumMemberName } from \"@zwave-js/shared\";\n\nenum S2ExtensionType {\n\tSPAN = 0x01,\n\tMPAN = 0x02,\n\tMGRP = 0x03,\n\tMOS = 0x04,\n}\n\nconst extensionTypeDecorator = createSimpleReflectionDecorator<\n\ttypeof Security2Extension,\n\t[type: S2ExtensionType],\n\tSecurity2ExtensionConstructor<Security2Extension>\n>({\n\tname: \"extensionType\",\n});\n\n/** Defines which S2 extension type a subclass of S2Extension has */\nexport const extensionType = extensionTypeDecorator.decorator;\n\n/** Returns which S2 extension type a subclass of S2Extension has */\nexport const getExtensionType = extensionTypeDecorator.lookupValue;\n\n/**\n * Looks up the S2 extension constructor for a given S2 extension type\n */\nexport const getS2ExtensionConstructor =\n\textensionTypeDecorator.lookupConstructor;\n\nexport type Security2ExtensionConstructor<T extends Security2Extension> =\n\t& typeof Security2Extension\n\t& {\n\t\tnew (options: Security2ExtensionOptions): T;\n\t};\n\nexport enum ValidateS2ExtensionResult {\n\tOK,\n\tDiscardExtension,\n\tDiscardCommand,\n}\n\n/** Tests if the extension may be accepted */\nexport function validateS2Extension(\n\text: Security2Extension,\n\twasEncrypted: boolean,\n): ValidateS2ExtensionResult {\n\tif (ext instanceof InvalidExtension) {\n\t\t// The extension could not be parsed, ignore it\n\t\treturn ValidateS2ExtensionResult.DiscardExtension;\n\t}\n\n\tif (ext.critical && !(ext.type in S2ExtensionType)) {\n\t\t// A receiving node MUST discard the entire command if the Critical flag\n\t\t// is set to \u20181\u2019 and the Type field advertises a value that the\n\t\t// receiving node does not support.\n\t\treturn ValidateS2ExtensionResult.DiscardCommand;\n\t}\n\n\t// Check if the extension is correctly encrypted or not encrypted\n\tswitch (ext.type) {\n\t\tcase S2ExtensionType.MPAN:\n\t\t\tif (!wasEncrypted) {\n\t\t\t\treturn ValidateS2ExtensionResult.DiscardExtension;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase S2ExtensionType.SPAN:\n\t\tcase S2ExtensionType.MGRP:\n\t\tcase S2ExtensionType.MOS:\n\t\t\tif (wasEncrypted) {\n\t\t\t\treturn ValidateS2ExtensionResult.DiscardExtension;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\n\treturn ValidateS2ExtensionResult.OK;\n}\n\nexport class Security2ExtensionRaw {\n\tpublic constructor(\n\t\tpublic type: S2ExtensionType,\n\t\tpublic critical: boolean,\n\t\tpublic readonly moreToFollow: boolean,\n\t\tpublic payload: Uint8Array,\n\t) {}\n\n\tpublic static parse(data: Uint8Array): Security2ExtensionRaw {\n\t\tvalidatePayload(data.length >= 2);\n\t\tconst totalLength = data[0];\n\t\tconst moreToFollow = !!(data[1] & 0b1000_0000);\n\t\tconst critical = !!(data[1] & 0b0100_0000);\n\t\tconst type = data[1] & 0b11_1111;\n\t\tconst payload = data.subarray(2, totalLength);\n\n\t\treturn new Security2ExtensionRaw(type, critical, moreToFollow, payload);\n\t}\n\n\tpublic withPayload(payload: Bytes): Security2ExtensionRaw {\n\t\treturn new Security2ExtensionRaw(\n\t\t\tthis.type,\n\t\t\tthis.critical,\n\t\t\tthis.moreToFollow,\n\t\t\tpayload,\n\t\t);\n\t}\n}\n\ninterface Security2ExtensionBaseOptions {\n\tcritical?: boolean;\n\tmoreToFollow?: boolean;\n}\n\ninterface Security2ExtensionOptions extends Security2ExtensionBaseOptions {\n\ttype?: S2ExtensionType;\n\tpayload?: Uint8Array;\n}\n\nexport class Security2Extension {\n\tpublic constructor(options: Security2ExtensionOptions) {\n\t\tconst {\n\t\t\t// Try to determine the extension type if none is given\n\t\t\ttype = getExtensionType(this),\n\t\t\tcritical = false,\n\t\t\tmoreToFollow = false,\n\t\t\tpayload = new Uint8Array(),\n\t\t} = options;\n\n\t\tif (type == undefined) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"A Security2Extension must have a given or predefined extension type\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\n\t\tthis.type = type;\n\t\tthis.critical = critical;\n\t\tthis.moreToFollow = moreToFollow;\n\t\tthis.payload = payload;\n\t}\n\n\tpublic static parse(\n\t\tdata: Uint8Array,\n\t): Security2Extension {\n\t\tconst raw = Security2ExtensionRaw.parse(data);\n\t\tconst Constructor = getS2ExtensionConstructor(raw.type)\n\t\t\t?? Security2Extension;\n\t\treturn Constructor.from(raw);\n\t}\n\n\t/** Creates an instance of the message that is serialized in the given buffer */\n\tpublic static from(\n\t\traw: Security2ExtensionRaw,\n\t): Security2Extension {\n\t\treturn new this({\n\t\t\ttype: raw.type,\n\t\t\tcritical: raw.critical,\n\t\t\tmoreToFollow: raw.moreToFollow,\n\t\t\tpayload: raw.payload,\n\t\t});\n\t}\n\n\tpublic type: S2ExtensionType;\n\tpublic critical: boolean;\n\tpublic readonly moreToFollow?: boolean;\n\tpublic payload: Uint8Array;\n\n\tpublic isEncrypted(): boolean {\n\t\treturn false;\n\t}\n\n\tpublic serialize(moreToFollow: boolean): Bytes {\n\t\treturn Bytes.concat([\n\t\t\tBytes.from([\n\t\t\t\t2 + this.payload.length,\n\t\t\t\t(moreToFollow ? 0b1000_0000 : 0)\n\t\t\t\t| (this.critical ? 0b0100_0000 : 0)\n\t\t\t\t| (this.type & 0b11_1111),\n\t\t\t]),\n\t\t\tthis.payload,\n\t\t]);\n\t}\n\n\t/** Returns the number of bytes the first extension in the buffer occupies */\n\tpublic static getExtensionLength(\n\t\tdata: Uint8Array,\n\t): { expected?: number; actual: number } {\n\t\tconst actual = data[0];\n\t\tlet expected: number | undefined;\n\n\t\t// For known extensions, return the expected length\n\t\tconst type = data[1] & 0b11_1111;\n\t\tswitch (type) {\n\t\t\tcase S2ExtensionType.SPAN:\n\t\t\t\texpected = SPANExtension.expectedLength;\n\t\t\t\tbreak;\n\t\t\tcase S2ExtensionType.MPAN:\n\t\t\t\texpected = MPANExtension.expectedLength;\n\t\t\t\tbreak;\n\t\t\tcase S2ExtensionType.MGRP:\n\t\t\t\texpected = MGRPExtension.expectedLength;\n\t\t\t\tbreak;\n\t\t\tcase S2ExtensionType.MOS:\n\t\t\t\texpected = MOSExtension.expectedLength;\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn { expected, actual };\n\t}\n\n\t/** Returns the number of bytes the serialized extension will occupy */\n\tpublic computeLength(): number {\n\t\treturn 2 + this.payload.length;\n\t}\n\n\tpublic toLogEntry(): string {\n\t\tlet ret = `\n\u00B7 type: ${getEnumMemberName(S2ExtensionType, this.type)}`;\n\t\tif (this.payload.length > 0) {\n\t\t\tret += `\n payload: ${buffer2hex(this.payload)}`;\n\t\t}\n\t\treturn ret;\n\t}\n}\n\nexport class InvalidExtension extends Security2Extension {\n}\n\ninterface SPANExtensionOptions {\n\tsenderEI: Uint8Array;\n}\n\n@extensionType(S2ExtensionType.SPAN)\nexport class SPANExtension extends Security2Extension {\n\tpublic constructor(\n\t\toptions: SPANExtensionOptions & Security2ExtensionBaseOptions,\n\t) {\n\t\tif (options.senderEI.length !== 16) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The sender's entropy must be a 16-byte buffer!\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tsuper({ critical: true, ...options });\n\t\tthis.senderEI = options.senderEI;\n\t}\n\n\tpublic static from(raw: Security2ExtensionRaw): Security2Extension {\n\t\tvalidatePayload(raw.payload.length === 16);\n\t\tconst senderEI = raw.payload;\n\n\t\treturn new SPANExtension({\n\t\t\tcritical: raw.critical,\n\t\t\tmoreToFollow: raw.moreToFollow,\n\t\t\tsenderEI,\n\t\t});\n\t}\n\n\tpublic senderEI: Uint8Array;\n\tpublic static readonly expectedLength = 18;\n\n\tpublic serialize(moreToFollow: boolean): Bytes {\n\t\tthis.payload = this.senderEI;\n\t\treturn super.serialize(moreToFollow);\n\t}\n\n\tpublic toLogEntry(): string {\n\t\tlet ret = super.toLogEntry().replace(/^ payload:.+$/m, \"\");\n\t\tret += ` sender EI: ${buffer2hex(this.senderEI)}`;\n\t\treturn ret;\n\t}\n}\n\ninterface MPANExtensionOptions {\n\tgroupId: number;\n\tinnerMPANState: Uint8Array;\n}\n\n@extensionType(S2ExtensionType.MPAN)\nexport class MPANExtension extends Security2Extension {\n\tpublic constructor(\n\t\toptions: MPANExtensionOptions & Security2ExtensionBaseOptions,\n\t) {\n\t\tif (options.innerMPANState.length !== 16) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The inner MPAN state must be a 16-byte buffer!\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tsuper({ critical: true, ...options });\n\t\tthis.groupId = options.groupId;\n\t\tthis.innerMPANState = options.innerMPANState;\n\t}\n\n\tpublic static from(raw: Security2ExtensionRaw): Security2Extension {\n\t\tvalidatePayload(raw.payload.length === 17);\n\t\tconst groupId = raw.payload[0];\n\t\tconst innerMPANState = raw.payload.subarray(1);\n\n\t\treturn new MPANExtension({\n\t\t\tcritical: raw.critical,\n\t\t\tmoreToFollow: raw.moreToFollow,\n\t\t\tgroupId,\n\t\t\tinnerMPANState,\n\t\t});\n\t}\n\n\tpublic groupId: number;\n\tpublic innerMPANState: Uint8Array;\n\n\tpublic isEncrypted(): boolean {\n\t\treturn true;\n\t}\n\n\tpublic static readonly expectedLength = 19;\n\n\tpublic serialize(moreToFollow: boolean): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\t[this.groupId],\n\t\t\tthis.innerMPANState,\n\t\t]);\n\t\treturn super.serialize(moreToFollow);\n\t}\n\n\tpublic toLogEntry(): string {\n\t\tconst mpanState = process.env.NODE_ENV === \"test\"\n\t\t\t\t|| process.env.NODE_ENV === \"development\"\n\t\t\t? buffer2hex(this.innerMPANState)\n\t\t\t: \"(hidden)\";\n\t\tlet ret = super.toLogEntry().replace(/^ payload:.+$/m, \"\");\n\t\tret += ` group ID: ${this.groupId}\n MPAN state: ${mpanState}`;\n\t\treturn ret;\n\t}\n}\n\ninterface MGRPExtensionOptions {\n\tgroupId: number;\n}\n\n@extensionType(S2ExtensionType.MGRP)\nexport class MGRPExtension extends Security2Extension {\n\tpublic constructor(\n\t\toptions: MGRPExtensionOptions & Security2ExtensionBaseOptions,\n\t) {\n\t\tsuper({ critical: true, ...options });\n\t\tthis.groupId = options.groupId;\n\t}\n\n\tpublic static from(raw: Security2ExtensionRaw): Security2Extension {\n\t\tvalidatePayload(raw.payload.length === 1);\n\t\tconst groupId = raw.payload[0];\n\n\t\treturn new MGRPExtension({\n\t\t\tcritical: raw.critical,\n\t\t\tmoreToFollow: raw.moreToFollow,\n\t\t\tgroupId,\n\t\t});\n\t}\n\n\tpublic groupId: number;\n\n\tpublic static readonly expectedLength = 3;\n\n\tpublic serialize(moreToFollow: boolean): Bytes {\n\t\tthis.payload = Bytes.from([this.groupId]);\n\t\treturn super.serialize(moreToFollow);\n\t}\n\n\tpublic toLogEntry(): string {\n\t\tlet ret = super.toLogEntry().replace(/^ payload:.+$/m, \"\");\n\t\tret += ` group ID: ${this.groupId}`;\n\t\treturn ret;\n\t}\n}\n\n@extensionType(S2ExtensionType.MOS)\nexport class MOSExtension extends Security2Extension {\n\tpublic constructor(options: Security2ExtensionBaseOptions = {}) {\n\t\tsuper({ critical: false, ...options });\n\t}\n\n\tpublic static readonly expectedLength = 2;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { ZWaveError, ZWaveErrorCodes, validatePayload } from \"@zwave-js/core\";\nimport { createSimpleReflectionDecorator } from \"@zwave-js/core/reflection\";\nimport {\n\tBytes,\n\ttype BytesView,\n\tbuffer2hex,\n\tgetEnumMemberName,\n} from \"@zwave-js/shared\";\n\nenum S2ExtensionType {\n\tSPAN = 0x01,\n\tMPAN = 0x02,\n\tMGRP = 0x03,\n\tMOS = 0x04,\n}\n\nconst extensionTypeDecorator = createSimpleReflectionDecorator<\n\ttypeof Security2Extension,\n\t[type: S2ExtensionType],\n\tSecurity2ExtensionConstructor<Security2Extension>\n>({\n\tname: \"extensionType\",\n});\n\n/** Defines which S2 extension type a subclass of S2Extension has */\nexport const extensionType = extensionTypeDecorator.decorator;\n\n/** Returns which S2 extension type a subclass of S2Extension has */\nexport const getExtensionType = extensionTypeDecorator.lookupValue;\n\n/**\n * Looks up the S2 extension constructor for a given S2 extension type\n */\nexport const getS2ExtensionConstructor =\n\textensionTypeDecorator.lookupConstructor;\n\nexport type Security2ExtensionConstructor<T extends Security2Extension> =\n\t& typeof Security2Extension\n\t& {\n\t\tnew (options: Security2ExtensionOptions): T;\n\t};\n\nexport enum ValidateS2ExtensionResult {\n\tOK,\n\tDiscardExtension,\n\tDiscardCommand,\n}\n\n/** Tests if the extension may be accepted */\nexport function validateS2Extension(\n\text: Security2Extension,\n\twasEncrypted: boolean,\n): ValidateS2ExtensionResult {\n\tif (ext instanceof InvalidExtension) {\n\t\t// The extension could not be parsed, ignore it\n\t\treturn ValidateS2ExtensionResult.DiscardExtension;\n\t}\n\n\tif (ext.critical && !(ext.type in S2ExtensionType)) {\n\t\t// A receiving node MUST discard the entire command if the Critical flag\n\t\t// is set to \u20181\u2019 and the Type field advertises a value that the\n\t\t// receiving node does not support.\n\t\treturn ValidateS2ExtensionResult.DiscardCommand;\n\t}\n\n\t// Check if the extension is correctly encrypted or not encrypted\n\tswitch (ext.type) {\n\t\tcase S2ExtensionType.MPAN:\n\t\t\tif (!wasEncrypted) {\n\t\t\t\treturn ValidateS2ExtensionResult.DiscardExtension;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase S2ExtensionType.SPAN:\n\t\tcase S2ExtensionType.MGRP:\n\t\tcase S2ExtensionType.MOS:\n\t\t\tif (wasEncrypted) {\n\t\t\t\treturn ValidateS2ExtensionResult.DiscardExtension;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\n\treturn ValidateS2ExtensionResult.OK;\n}\n\nexport class Security2ExtensionRaw {\n\tpublic constructor(\n\t\tpublic type: S2ExtensionType,\n\t\tpublic critical: boolean,\n\t\tpublic readonly moreToFollow: boolean,\n\t\tpublic payload: BytesView,\n\t) {}\n\n\tpublic static parse(data: BytesView): Security2ExtensionRaw {\n\t\tvalidatePayload(data.length >= 2);\n\t\tconst totalLength = data[0];\n\t\tconst moreToFollow = !!(data[1] & 0b1000_0000);\n\t\tconst critical = !!(data[1] & 0b0100_0000);\n\t\tconst type = data[1] & 0b11_1111;\n\t\tconst payload = data.subarray(2, totalLength);\n\n\t\treturn new Security2ExtensionRaw(type, critical, moreToFollow, payload);\n\t}\n\n\tpublic withPayload(payload: Bytes): Security2ExtensionRaw {\n\t\treturn new Security2ExtensionRaw(\n\t\t\tthis.type,\n\t\t\tthis.critical,\n\t\t\tthis.moreToFollow,\n\t\t\tpayload,\n\t\t);\n\t}\n}\n\ninterface Security2ExtensionBaseOptions {\n\tcritical?: boolean;\n\tmoreToFollow?: boolean;\n}\n\ninterface Security2ExtensionOptions extends Security2ExtensionBaseOptions {\n\ttype?: S2ExtensionType;\n\tpayload?: BytesView;\n}\n\nexport class Security2Extension {\n\tpublic constructor(options: Security2ExtensionOptions) {\n\t\tconst {\n\t\t\t// Try to determine the extension type if none is given\n\t\t\ttype = getExtensionType(this),\n\t\t\tcritical = false,\n\t\t\tmoreToFollow = false,\n\t\t\tpayload = new Uint8Array(),\n\t\t} = options;\n\n\t\tif (type == undefined) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"A Security2Extension must have a given or predefined extension type\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\n\t\tthis.type = type;\n\t\tthis.critical = critical;\n\t\tthis.moreToFollow = moreToFollow;\n\t\tthis.payload = payload;\n\t}\n\n\tpublic static parse(\n\t\tdata: BytesView,\n\t): Security2Extension {\n\t\tconst raw = Security2ExtensionRaw.parse(data);\n\t\tconst Constructor = getS2ExtensionConstructor(raw.type)\n\t\t\t?? Security2Extension;\n\t\treturn Constructor.from(raw);\n\t}\n\n\t/** Creates an instance of the message that is serialized in the given buffer */\n\tpublic static from(\n\t\traw: Security2ExtensionRaw,\n\t): Security2Extension {\n\t\treturn new this({\n\t\t\ttype: raw.type,\n\t\t\tcritical: raw.critical,\n\t\t\tmoreToFollow: raw.moreToFollow,\n\t\t\tpayload: raw.payload,\n\t\t});\n\t}\n\n\tpublic type: S2ExtensionType;\n\tpublic critical: boolean;\n\tpublic readonly moreToFollow?: boolean;\n\tpublic payload: BytesView;\n\n\tpublic isEncrypted(): boolean {\n\t\treturn false;\n\t}\n\n\tpublic serialize(moreToFollow: boolean): Bytes {\n\t\treturn Bytes.concat([\n\t\t\tBytes.from([\n\t\t\t\t2 + this.payload.length,\n\t\t\t\t(moreToFollow ? 0b1000_0000 : 0)\n\t\t\t\t| (this.critical ? 0b0100_0000 : 0)\n\t\t\t\t| (this.type & 0b11_1111),\n\t\t\t]),\n\t\t\tthis.payload,\n\t\t]);\n\t}\n\n\t/** Returns the number of bytes the first extension in the buffer occupies */\n\tpublic static getExtensionLength(\n\t\tdata: BytesView,\n\t): { expected?: number; actual: number } {\n\t\tconst actual = data[0];\n\t\tlet expected: number | undefined;\n\n\t\t// For known extensions, return the expected length\n\t\tconst type = data[1] & 0b11_1111;\n\t\tswitch (type) {\n\t\t\tcase S2ExtensionType.SPAN:\n\t\t\t\texpected = SPANExtension.expectedLength;\n\t\t\t\tbreak;\n\t\t\tcase S2ExtensionType.MPAN:\n\t\t\t\texpected = MPANExtension.expectedLength;\n\t\t\t\tbreak;\n\t\t\tcase S2ExtensionType.MGRP:\n\t\t\t\texpected = MGRPExtension.expectedLength;\n\t\t\t\tbreak;\n\t\t\tcase S2ExtensionType.MOS:\n\t\t\t\texpected = MOSExtension.expectedLength;\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn { expected, actual };\n\t}\n\n\t/** Returns the number of bytes the serialized extension will occupy */\n\tpublic computeLength(): number {\n\t\treturn 2 + this.payload.length;\n\t}\n\n\tpublic toLogEntry(): string {\n\t\tlet ret = `\n\u00B7 type: ${getEnumMemberName(S2ExtensionType, this.type)}`;\n\t\tif (this.payload.length > 0) {\n\t\t\tret += `\n payload: ${buffer2hex(this.payload)}`;\n\t\t}\n\t\treturn ret;\n\t}\n}\n\nexport class InvalidExtension extends Security2Extension {\n}\n\ninterface SPANExtensionOptions {\n\tsenderEI: BytesView;\n}\n\n@extensionType(S2ExtensionType.SPAN)\nexport class SPANExtension extends Security2Extension {\n\tpublic constructor(\n\t\toptions: SPANExtensionOptions & Security2ExtensionBaseOptions,\n\t) {\n\t\tif (options.senderEI.length !== 16) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The sender's entropy must be a 16-byte buffer!\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tsuper({ critical: true, ...options });\n\t\tthis.senderEI = options.senderEI;\n\t}\n\n\tpublic static from(raw: Security2ExtensionRaw): Security2Extension {\n\t\tvalidatePayload(raw.payload.length === 16);\n\t\tconst senderEI = raw.payload;\n\n\t\treturn new SPANExtension({\n\t\t\tcritical: raw.critical,\n\t\t\tmoreToFollow: raw.moreToFollow,\n\t\t\tsenderEI,\n\t\t});\n\t}\n\n\tpublic senderEI: BytesView;\n\tpublic static readonly expectedLength = 18;\n\n\tpublic serialize(moreToFollow: boolean): Bytes {\n\t\tthis.payload = this.senderEI;\n\t\treturn super.serialize(moreToFollow);\n\t}\n\n\tpublic toLogEntry(): string {\n\t\tlet ret = super.toLogEntry().replace(/^ payload:.+$/m, \"\");\n\t\tret += ` sender EI: ${buffer2hex(this.senderEI)}`;\n\t\treturn ret;\n\t}\n}\n\ninterface MPANExtensionOptions {\n\tgroupId: number;\n\tinnerMPANState: BytesView;\n}\n\n@extensionType(S2ExtensionType.MPAN)\nexport class MPANExtension extends Security2Extension {\n\tpublic constructor(\n\t\toptions: MPANExtensionOptions & Security2ExtensionBaseOptions,\n\t) {\n\t\tif (options.innerMPANState.length !== 16) {\n\t\t\tthrow new ZWaveError(\n\t\t\t\t\"The inner MPAN state must be a 16-byte buffer!\",\n\t\t\t\tZWaveErrorCodes.Argument_Invalid,\n\t\t\t);\n\t\t}\n\t\tsuper({ critical: true, ...options });\n\t\tthis.groupId = options.groupId;\n\t\tthis.innerMPANState = options.innerMPANState;\n\t}\n\n\tpublic static from(raw: Security2ExtensionRaw): Security2Extension {\n\t\tvalidatePayload(raw.payload.length === 17);\n\t\tconst groupId = raw.payload[0];\n\t\tconst innerMPANState = raw.payload.subarray(1);\n\n\t\treturn new MPANExtension({\n\t\t\tcritical: raw.critical,\n\t\t\tmoreToFollow: raw.moreToFollow,\n\t\t\tgroupId,\n\t\t\tinnerMPANState,\n\t\t});\n\t}\n\n\tpublic groupId: number;\n\tpublic innerMPANState: BytesView;\n\n\tpublic isEncrypted(): boolean {\n\t\treturn true;\n\t}\n\n\tpublic static readonly expectedLength = 19;\n\n\tpublic serialize(moreToFollow: boolean): Bytes {\n\t\tthis.payload = Bytes.concat([\n\t\t\t[this.groupId],\n\t\t\tthis.innerMPANState,\n\t\t]);\n\t\treturn super.serialize(moreToFollow);\n\t}\n\n\tpublic toLogEntry(): string {\n\t\tconst mpanState = process.env.NODE_ENV === \"test\"\n\t\t\t\t|| process.env.NODE_ENV === \"development\"\n\t\t\t? buffer2hex(this.innerMPANState)\n\t\t\t: \"(hidden)\";\n\t\tlet ret = super.toLogEntry().replace(/^ payload:.+$/m, \"\");\n\t\tret += ` group ID: ${this.groupId}\n MPAN state: ${mpanState}`;\n\t\treturn ret;\n\t}\n}\n\ninterface MGRPExtensionOptions {\n\tgroupId: number;\n}\n\n@extensionType(S2ExtensionType.MGRP)\nexport class MGRPExtension extends Security2Extension {\n\tpublic constructor(\n\t\toptions: MGRPExtensionOptions & Security2ExtensionBaseOptions,\n\t) {\n\t\tsuper({ critical: true, ...options });\n\t\tthis.groupId = options.groupId;\n\t}\n\n\tpublic static from(raw: Security2ExtensionRaw): Security2Extension {\n\t\tvalidatePayload(raw.payload.length === 1);\n\t\tconst groupId = raw.payload[0];\n\n\t\treturn new MGRPExtension({\n\t\t\tcritical: raw.critical,\n\t\t\tmoreToFollow: raw.moreToFollow,\n\t\t\tgroupId,\n\t\t});\n\t}\n\n\tpublic groupId: number;\n\n\tpublic static readonly expectedLength = 3;\n\n\tpublic serialize(moreToFollow: boolean): Bytes {\n\t\tthis.payload = Bytes.from([this.groupId]);\n\t\treturn super.serialize(moreToFollow);\n\t}\n\n\tpublic toLogEntry(): string {\n\t\tlet ret = super.toLogEntry().replace(/^ payload:.+$/m, \"\");\n\t\tret += ` group ID: ${this.groupId}`;\n\t\treturn ret;\n\t}\n}\n\n@extensionType(S2ExtensionType.MOS)\nexport class MOSExtension extends Security2Extension {\n\tpublic constructor(options: Security2ExtensionBaseOptions = {}) {\n\t\tsuper({ critical: false, ...options });\n\t}\n\n\tpublic static readonly expectedLength = 2;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["S2ExtensionType", "ValidateS2ExtensionResult", "SPANExtension", "MPANExtension", "MGRPExtension"]
7
7
  }
@@ -1,4 +1,5 @@
1
1
  import { type CommandClasses, type DataRate, type FLiRS, type MaybeNotKnown, type MaybeUnknown, type MeterScale, type Scale, type ValueMetadata, ZWaveDataRate } from "@zwave-js/core";
2
+ import type { BytesView } from "@zwave-js/shared";
2
3
  export declare enum AlarmSensorCommand {
3
4
  Get = 1,
4
5
  Report = 2,
@@ -19,6 +20,15 @@ export type AlarmSensorValueMetadata = ValueMetadata & {
19
20
  sensorType: AlarmSensorType;
20
21
  };
21
22
  };
23
+ export declare enum ApplicationStatusCommand {
24
+ Busy = 1,
25
+ RejectedRequest = 2
26
+ }
27
+ export declare enum ApplicationStatus {
28
+ TryAgainLater = 0,
29
+ TryAgainInWaitTimeSeconds = 1,
30
+ RequestQueued = 2
31
+ }
22
32
  export declare enum AssociationCommand {
23
33
  Set = 1,
24
34
  Get = 2,
@@ -542,7 +552,7 @@ export interface DoorLockLoggingRecord {
542
552
  eventType: DoorLockLoggingEventType;
543
553
  label: string;
544
554
  userId?: number;
545
- userCode?: string | Uint8Array;
555
+ userCode?: string | BytesView;
546
556
  }
547
557
  export declare enum DoorLockLoggingRecordStatus {
548
558
  Empty = 0,
@@ -21,6 +21,8 @@ var Types_exports = {};
21
21
  __export(Types_exports, {
22
22
  AlarmSensorCommand: () => AlarmSensorCommand,
23
23
  AlarmSensorType: () => AlarmSensorType,
24
+ ApplicationStatus: () => ApplicationStatus,
25
+ ApplicationStatusCommand: () => ApplicationStatusCommand,
24
26
  AssociationCheckResult: () => AssociationCheckResult,
25
27
  AssociationCommand: () => AssociationCommand,
26
28
  AssociationGroupInfoCommand: () => AssociationGroupInfoCommand,
@@ -167,6 +169,17 @@ var AlarmSensorType;
167
169
  AlarmSensorType2[AlarmSensorType2["Water Leak"] = 5] = "Water Leak";
168
170
  AlarmSensorType2[AlarmSensorType2["Any"] = 255] = "Any";
169
171
  })(AlarmSensorType || (AlarmSensorType = {}));
172
+ var ApplicationStatusCommand;
173
+ (function(ApplicationStatusCommand2) {
174
+ ApplicationStatusCommand2[ApplicationStatusCommand2["Busy"] = 1] = "Busy";
175
+ ApplicationStatusCommand2[ApplicationStatusCommand2["RejectedRequest"] = 2] = "RejectedRequest";
176
+ })(ApplicationStatusCommand || (ApplicationStatusCommand = {}));
177
+ var ApplicationStatus;
178
+ (function(ApplicationStatus2) {
179
+ ApplicationStatus2[ApplicationStatus2["TryAgainLater"] = 0] = "TryAgainLater";
180
+ ApplicationStatus2[ApplicationStatus2["TryAgainInWaitTimeSeconds"] = 1] = "TryAgainInWaitTimeSeconds";
181
+ ApplicationStatus2[ApplicationStatus2["RequestQueued"] = 2] = "RequestQueued";
182
+ })(ApplicationStatus || (ApplicationStatus = {}));
170
183
  var AssociationCommand;
171
184
  (function(AssociationCommand2) {
172
185
  AssociationCommand2[AssociationCommand2["Set"] = 1] = "Set";
@@ -1560,6 +1573,8 @@ var NetworkTransferStatus;
1560
1573
  0 && (module.exports = {
1561
1574
  AlarmSensorCommand,
1562
1575
  AlarmSensorType,
1576
+ ApplicationStatus,
1577
+ ApplicationStatusCommand,
1563
1578
  AssociationCheckResult,
1564
1579
  AssociationCommand,
1565
1580
  AssociationGroupInfoCommand,