@matter/model 0.13.1-alpha.0-20250508-047aa0277 → 0.13.1-alpha.0-20250511-74ef153aa

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 (569) hide show
  1. package/dist/cjs/aspects/Constraint.d.ts +2 -0
  2. package/dist/cjs/aspects/Constraint.d.ts.map +1 -1
  3. package/dist/cjs/aspects/Constraint.js +5 -1
  4. package/dist/cjs/aspects/Constraint.js.map +2 -2
  5. package/dist/cjs/common/Specification.d.ts +4 -4
  6. package/dist/cjs/common/Specification.d.ts.map +1 -1
  7. package/dist/cjs/common/Specification.js +2 -2
  8. package/dist/cjs/common/Specification.js.map +1 -1
  9. package/dist/cjs/logic/Scope.d.ts.map +1 -1
  10. package/dist/cjs/logic/Scope.js +36 -10
  11. package/dist/cjs/logic/Scope.js.map +1 -1
  12. package/dist/cjs/logic/definition-validation/CommandValidator.js +1 -2
  13. package/dist/cjs/logic/definition-validation/CommandValidator.js.map +1 -1
  14. package/dist/cjs/logic/definition-validation/ValueValidator.d.ts +1 -6
  15. package/dist/cjs/logic/definition-validation/ValueValidator.d.ts.map +1 -1
  16. package/dist/cjs/logic/definition-validation/ValueValidator.js +32 -17
  17. package/dist/cjs/logic/definition-validation/ValueValidator.js.map +1 -1
  18. package/dist/cjs/models/Globals.d.ts +1 -1
  19. package/dist/cjs/parser/Lexer.d.ts +1 -1
  20. package/dist/cjs/parser/Lexer.d.ts.map +1 -1
  21. package/dist/cjs/parser/Lexer.js.map +1 -1
  22. package/dist/cjs/parser/Token.d.ts +2 -2
  23. package/dist/cjs/parser/Token.d.ts.map +1 -1
  24. package/dist/cjs/standard/elements/AcceptedCommandList.d.ts.map +1 -1
  25. package/dist/cjs/standard/elements/AcceptedCommandList.js +1 -1
  26. package/dist/cjs/standard/elements/AcceptedCommandList.js.map +1 -1
  27. package/dist/cjs/standard/elements/AccessControl.d.ts.map +1 -1
  28. package/dist/cjs/standard/elements/AccessControl.js +8 -8
  29. package/dist/cjs/standard/elements/AccessControl.js.map +1 -1
  30. package/dist/cjs/standard/elements/AccountLogin.d.ts.map +1 -1
  31. package/dist/cjs/standard/elements/AccountLogin.js +5 -5
  32. package/dist/cjs/standard/elements/AccountLogin.js.map +1 -1
  33. package/dist/cjs/standard/elements/Actions.d.ts.map +1 -1
  34. package/dist/cjs/standard/elements/Actions.js +2 -2
  35. package/dist/cjs/standard/elements/Actions.js.map +1 -1
  36. package/dist/cjs/standard/elements/AdministratorCommissioning.d.ts.map +1 -1
  37. package/dist/cjs/standard/elements/AdministratorCommissioning.js +4 -4
  38. package/dist/cjs/standard/elements/AdministratorCommissioning.js.map +1 -1
  39. package/dist/cjs/standard/elements/ApplicationLauncher.d.ts.map +1 -1
  40. package/dist/cjs/standard/elements/ApplicationLauncher.js +2 -2
  41. package/dist/cjs/standard/elements/ApplicationLauncher.js.map +1 -1
  42. package/dist/cjs/standard/elements/BallastConfiguration.d.ts.map +1 -1
  43. package/dist/cjs/standard/elements/BallastConfiguration.js +4 -4
  44. package/dist/cjs/standard/elements/BallastConfiguration.js.map +1 -1
  45. package/dist/cjs/standard/elements/BasicInformation.d.ts.map +1 -1
  46. package/dist/cjs/standard/elements/BasicInformation.js +5 -5
  47. package/dist/cjs/standard/elements/BasicInformation.js.map +1 -1
  48. package/dist/cjs/standard/elements/Binding.js +1 -1
  49. package/dist/cjs/standard/elements/BooleanStateConfiguration.js +1 -1
  50. package/dist/cjs/standard/elements/BridgedDeviceBasicInformation.d.ts.map +1 -1
  51. package/dist/cjs/standard/elements/BridgedDeviceBasicInformation.js +3 -3
  52. package/dist/cjs/standard/elements/BridgedDeviceBasicInformation.js.map +1 -1
  53. package/dist/cjs/standard/elements/Channel.js +2 -2
  54. package/dist/cjs/standard/elements/ColorControl.d.ts.map +1 -1
  55. package/dist/cjs/standard/elements/ColorControl.js +15 -15
  56. package/dist/cjs/standard/elements/ColorControl.js.map +1 -1
  57. package/dist/cjs/standard/elements/CommissionerControl.d.ts.map +1 -1
  58. package/dist/cjs/standard/elements/CommissionerControl.js +6 -6
  59. package/dist/cjs/standard/elements/CommissionerControl.js.map +1 -1
  60. package/dist/cjs/standard/elements/ConcentrationMeasurement.d.ts.map +1 -1
  61. package/dist/cjs/standard/elements/ConcentrationMeasurement.js +2 -2
  62. package/dist/cjs/standard/elements/ConcentrationMeasurement.js.map +1 -1
  63. package/dist/cjs/standard/elements/ContentControl.d.ts.map +1 -1
  64. package/dist/cjs/standard/elements/ContentControl.js +4 -4
  65. package/dist/cjs/standard/elements/ContentControl.js.map +1 -1
  66. package/dist/cjs/standard/elements/ContentLauncher.d.ts.map +1 -1
  67. package/dist/cjs/standard/elements/ContentLauncher.js +13 -15
  68. package/dist/cjs/standard/elements/ContentLauncher.js.map +1 -1
  69. package/dist/cjs/standard/elements/Descriptor.js +1 -1
  70. package/dist/cjs/standard/elements/DeviceEnergyManagement.d.ts.map +1 -1
  71. package/dist/cjs/standard/elements/DeviceEnergyManagement.js +14 -14
  72. package/dist/cjs/standard/elements/DeviceEnergyManagement.js.map +1 -1
  73. package/dist/cjs/standard/elements/DeviceEnergyManagementDT.js +5 -5
  74. package/dist/cjs/standard/elements/DeviceEnergyManagementDT.js.map +1 -1
  75. package/dist/cjs/standard/elements/DiagnosticLogs.js +2 -2
  76. package/dist/cjs/standard/elements/DoorLock.d.ts.map +1 -1
  77. package/dist/cjs/standard/elements/DoorLock.js +16 -16
  78. package/dist/cjs/standard/elements/DoorLock.js.map +1 -1
  79. package/dist/cjs/standard/elements/EcosystemInformation.d.ts.map +1 -1
  80. package/dist/cjs/standard/elements/EcosystemInformation.js +4 -4
  81. package/dist/cjs/standard/elements/EcosystemInformation.js.map +1 -1
  82. package/dist/cjs/standard/elements/ElectricalEnergyMeasurement.js +1 -1
  83. package/dist/cjs/standard/elements/ElectricalPowerMeasurement.d.ts.map +1 -1
  84. package/dist/cjs/standard/elements/ElectricalPowerMeasurement.js +3 -3
  85. package/dist/cjs/standard/elements/ElectricalPowerMeasurement.js.map +1 -1
  86. package/dist/cjs/standard/elements/EnergyEvse.d.ts.map +1 -1
  87. package/dist/cjs/standard/elements/EnergyEvse.js +10 -10
  88. package/dist/cjs/standard/elements/EnergyEvse.js.map +1 -1
  89. package/dist/cjs/standard/elements/EnergyEvseMode.d.ts.map +1 -1
  90. package/dist/cjs/standard/elements/EnergyEvseMode.js +3 -3
  91. package/dist/cjs/standard/elements/EnergyEvseMode.js.map +1 -1
  92. package/dist/cjs/standard/elements/EnergyPreference.d.ts.map +1 -1
  93. package/dist/cjs/standard/elements/EnergyPreference.js +2 -2
  94. package/dist/cjs/standard/elements/EnergyPreference.js.map +1 -1
  95. package/dist/cjs/standard/elements/FeatureMap.d.ts.map +1 -1
  96. package/dist/cjs/standard/elements/FeatureMap.js +1 -1
  97. package/dist/cjs/standard/elements/FeatureMap.js.map +1 -1
  98. package/dist/cjs/standard/elements/FixedLabel.d.ts.map +1 -1
  99. package/dist/cjs/standard/elements/FixedLabel.js +1 -1
  100. package/dist/cjs/standard/elements/FixedLabel.js.map +1 -1
  101. package/dist/cjs/standard/elements/FlowMeasurement.d.ts.map +1 -1
  102. package/dist/cjs/standard/elements/FlowMeasurement.js +1 -1
  103. package/dist/cjs/standard/elements/FlowMeasurement.js.map +1 -1
  104. package/dist/cjs/standard/elements/GeneralCommissioning.d.ts.map +1 -1
  105. package/dist/cjs/standard/elements/GeneralCommissioning.js +24 -25
  106. package/dist/cjs/standard/elements/GeneralCommissioning.js.map +1 -1
  107. package/dist/cjs/standard/elements/GeneralDiagnostics.d.ts.map +1 -1
  108. package/dist/cjs/standard/elements/GeneralDiagnostics.js +6 -6
  109. package/dist/cjs/standard/elements/GeneralDiagnostics.js.map +1 -1
  110. package/dist/cjs/standard/elements/GroupKeyManagement.d.ts.map +1 -1
  111. package/dist/cjs/standard/elements/GroupKeyManagement.js +7 -7
  112. package/dist/cjs/standard/elements/GroupKeyManagement.js.map +1 -1
  113. package/dist/cjs/standard/elements/Groups.d.ts.map +1 -1
  114. package/dist/cjs/standard/elements/Groups.js +1 -1
  115. package/dist/cjs/standard/elements/Groups.js.map +1 -1
  116. package/dist/cjs/standard/elements/IcdManagement.d.ts.map +1 -1
  117. package/dist/cjs/standard/elements/IcdManagement.js +4 -4
  118. package/dist/cjs/standard/elements/IcdManagement.js.map +1 -1
  119. package/dist/cjs/standard/elements/Identify.js +1 -1
  120. package/dist/cjs/standard/elements/{JointFabricDatastoreCluster.d.ts → JointFabricDatastore.d.ts} +2 -2
  121. package/dist/cjs/standard/elements/JointFabricDatastore.d.ts.map +1 -0
  122. package/dist/cjs/standard/elements/{JointFabricDatastoreCluster.js → JointFabricDatastore.js} +9 -9
  123. package/dist/cjs/standard/elements/{JointFabricDatastoreCluster.js.map → JointFabricDatastore.js.map} +2 -2
  124. package/dist/cjs/standard/elements/JointFabricPki.d.ts.map +1 -1
  125. package/dist/cjs/standard/elements/JointFabricPki.js +2 -2
  126. package/dist/cjs/standard/elements/JointFabricPki.js.map +1 -1
  127. package/dist/cjs/standard/elements/KeypadInput.d.ts.map +1 -1
  128. package/dist/cjs/standard/elements/KeypadInput.js +1 -1
  129. package/dist/cjs/standard/elements/KeypadInput.js.map +1 -1
  130. package/dist/cjs/standard/elements/LaundryWasherControls.d.ts.map +1 -1
  131. package/dist/cjs/standard/elements/LaundryWasherControls.js +2 -2
  132. package/dist/cjs/standard/elements/LaundryWasherControls.js.map +1 -1
  133. package/dist/cjs/standard/elements/LaundryWasherMode.d.ts.map +1 -1
  134. package/dist/cjs/standard/elements/LaundryWasherMode.js +11 -6
  135. package/dist/cjs/standard/elements/LaundryWasherMode.js.map +1 -1
  136. package/dist/cjs/standard/elements/LevelControl.d.ts.map +1 -1
  137. package/dist/cjs/standard/elements/LevelControl.js +4 -4
  138. package/dist/cjs/standard/elements/LevelControl.js.map +1 -1
  139. package/dist/cjs/standard/elements/LowPower.js +1 -1
  140. package/dist/cjs/standard/elements/MeasurementAccuracyRangeStruct.d.ts.map +1 -1
  141. package/dist/cjs/standard/elements/MeasurementAccuracyRangeStruct.js +1 -1
  142. package/dist/cjs/standard/elements/MeasurementAccuracyRangeStruct.js.map +1 -1
  143. package/dist/cjs/standard/elements/MediaInput.d.ts.map +1 -1
  144. package/dist/cjs/standard/elements/MediaInput.js +2 -2
  145. package/dist/cjs/standard/elements/MediaInput.js.map +1 -1
  146. package/dist/cjs/standard/elements/MediaPlayback.d.ts.map +1 -1
  147. package/dist/cjs/standard/elements/MediaPlayback.js +4 -4
  148. package/dist/cjs/standard/elements/MediaPlayback.js.map +1 -1
  149. package/dist/cjs/standard/elements/Messages.js +1 -1
  150. package/dist/cjs/standard/elements/ModeBase.d.ts.map +1 -1
  151. package/dist/cjs/standard/elements/ModeBase.js +2 -2
  152. package/dist/cjs/standard/elements/ModeBase.js.map +1 -1
  153. package/dist/cjs/standard/elements/ModeSelect.d.ts.map +1 -1
  154. package/dist/cjs/standard/elements/ModeSelect.js +4 -4
  155. package/dist/cjs/standard/elements/ModeSelect.js.map +1 -1
  156. package/dist/cjs/standard/elements/NetworkCommissioning.d.ts.map +1 -1
  157. package/dist/cjs/standard/elements/NetworkCommissioning.js +8 -8
  158. package/dist/cjs/standard/elements/NetworkCommissioning.js.map +1 -1
  159. package/dist/cjs/standard/elements/OccupancySensing.d.ts.map +1 -1
  160. package/dist/cjs/standard/elements/OccupancySensing.js +4 -4
  161. package/dist/cjs/standard/elements/OccupancySensing.js.map +1 -1
  162. package/dist/cjs/standard/elements/OperationalCredentials.d.ts.map +1 -1
  163. package/dist/cjs/standard/elements/OperationalCredentials.js +7 -7
  164. package/dist/cjs/standard/elements/OperationalCredentials.js.map +1 -1
  165. package/dist/cjs/standard/elements/OperationalState.d.ts.map +1 -1
  166. package/dist/cjs/standard/elements/OperationalState.js +6 -6
  167. package/dist/cjs/standard/elements/OperationalState.js.map +1 -1
  168. package/dist/cjs/standard/elements/OtaSoftwareUpdateProvider.d.ts.map +1 -1
  169. package/dist/cjs/standard/elements/OtaSoftwareUpdateProvider.js +4 -4
  170. package/dist/cjs/standard/elements/OtaSoftwareUpdateProvider.js.map +1 -1
  171. package/dist/cjs/standard/elements/OtaSoftwareUpdateRequestor.d.ts.map +1 -1
  172. package/dist/cjs/standard/elements/OtaSoftwareUpdateRequestor.js +2 -2
  173. package/dist/cjs/standard/elements/OtaSoftwareUpdateRequestor.js.map +1 -1
  174. package/dist/cjs/standard/elements/OvenMode.d.ts.map +1 -1
  175. package/dist/cjs/standard/elements/OvenMode.js +11 -6
  176. package/dist/cjs/standard/elements/OvenMode.js.map +1 -1
  177. package/dist/cjs/standard/elements/PowerSource.d.ts.map +1 -1
  178. package/dist/cjs/standard/elements/PowerSource.js +5 -5
  179. package/dist/cjs/standard/elements/PowerSource.js.map +1 -1
  180. package/dist/cjs/standard/elements/PowerSourceNS.js +1 -1
  181. package/dist/cjs/standard/elements/PressureMeasurement.d.ts.map +1 -1
  182. package/dist/cjs/standard/elements/PressureMeasurement.js +2 -2
  183. package/dist/cjs/standard/elements/PressureMeasurement.js.map +1 -1
  184. package/dist/cjs/standard/elements/PumpConfigurationAndControl.d.ts.map +1 -1
  185. package/dist/cjs/standard/elements/PumpConfigurationAndControl.js +6 -6
  186. package/dist/cjs/standard/elements/PumpConfigurationAndControl.js.map +1 -1
  187. package/dist/cjs/standard/elements/ResourceMonitoring.d.ts.map +1 -1
  188. package/dist/cjs/standard/elements/ResourceMonitoring.js +1 -1
  189. package/dist/cjs/standard/elements/ResourceMonitoring.js.map +1 -1
  190. package/dist/cjs/standard/elements/RootNodeDT.js +1 -1
  191. package/dist/cjs/standard/elements/RootNodeDT.js.map +1 -1
  192. package/dist/cjs/standard/elements/RvcRunMode.js +1 -1
  193. package/dist/cjs/standard/elements/ScenesManagement.d.ts.map +1 -1
  194. package/dist/cjs/standard/elements/ScenesManagement.js +3 -3
  195. package/dist/cjs/standard/elements/ScenesManagement.js.map +1 -1
  196. package/dist/cjs/standard/elements/ServiceArea.d.ts.map +1 -1
  197. package/dist/cjs/standard/elements/ServiceArea.js +8 -8
  198. package/dist/cjs/standard/elements/ServiceArea.js.map +1 -1
  199. package/dist/cjs/standard/elements/SmokeCoAlarm.d.ts.map +1 -1
  200. package/dist/cjs/standard/elements/SmokeCoAlarm.js +17 -13
  201. package/dist/cjs/standard/elements/SmokeCoAlarm.js.map +1 -1
  202. package/dist/cjs/standard/elements/SoftwareDiagnostics.js +1 -1
  203. package/dist/cjs/standard/elements/Switch.js +1 -1
  204. package/dist/cjs/standard/elements/Thermostat.d.ts.map +1 -1
  205. package/dist/cjs/standard/elements/Thermostat.js +17 -17
  206. package/dist/cjs/standard/elements/Thermostat.js.map +1 -1
  207. package/dist/cjs/standard/elements/ThreadBorderRouterManagement.js +1 -1
  208. package/dist/cjs/standard/elements/ThreadNetworkDiagnostics.d.ts.map +1 -1
  209. package/dist/cjs/standard/elements/ThreadNetworkDiagnostics.js +5 -5
  210. package/dist/cjs/standard/elements/ThreadNetworkDiagnostics.js.map +1 -1
  211. package/dist/cjs/standard/elements/ThreadNetworkDirectory.js +1 -1
  212. package/dist/cjs/standard/elements/TimeSynchronization.d.ts.map +1 -1
  213. package/dist/cjs/standard/elements/TimeSynchronization.js +4 -4
  214. package/dist/cjs/standard/elements/TimeSynchronization.js.map +1 -1
  215. package/dist/cjs/standard/elements/WakeOnLan.js +1 -1
  216. package/dist/cjs/standard/elements/WaterHeaterManagement.d.ts.map +1 -1
  217. package/dist/cjs/standard/elements/WaterHeaterManagement.js +3 -3
  218. package/dist/cjs/standard/elements/WaterHeaterManagement.js.map +1 -1
  219. package/dist/cjs/standard/elements/WiFiNetworkManagement.d.ts.map +1 -1
  220. package/dist/cjs/standard/elements/WiFiNetworkManagement.js +2 -2
  221. package/dist/cjs/standard/elements/WiFiNetworkManagement.js.map +1 -1
  222. package/dist/cjs/standard/elements/WindowCovering.d.ts.map +1 -1
  223. package/dist/cjs/standard/elements/WindowCovering.js +2 -2
  224. package/dist/cjs/standard/elements/WindowCovering.js.map +1 -1
  225. package/dist/cjs/standard/elements/definitions.d.ts +1 -1
  226. package/dist/cjs/standard/elements/definitions.d.ts.map +1 -1
  227. package/dist/cjs/standard/elements/definitions.js +1 -1
  228. package/dist/cjs/standard/elements/definitions.js.map +1 -1
  229. package/dist/cjs/standard/elements/epoch-us.js +1 -1
  230. package/dist/cjs/standard/elements/locationdesc.js +2 -2
  231. package/dist/cjs/standard/elements/models.d.ts +1 -1
  232. package/dist/cjs/standard/elements/models.d.ts.map +1 -1
  233. package/dist/cjs/standard/elements/models.js +2 -2
  234. package/dist/cjs/standard/elements/models.js.map +1 -1
  235. package/dist/cjs/standard/elements/status.js +4 -4
  236. package/dist/cjs/standard/elements/temperature.d.ts.map +1 -1
  237. package/dist/cjs/standard/elements/temperature.js +1 -1
  238. package/dist/cjs/standard/elements/temperature.js.map +1 -1
  239. package/dist/esm/aspects/Constraint.d.ts +2 -0
  240. package/dist/esm/aspects/Constraint.d.ts.map +1 -1
  241. package/dist/esm/aspects/Constraint.js +5 -1
  242. package/dist/esm/aspects/Constraint.js.map +2 -2
  243. package/dist/esm/common/Specification.d.ts +4 -4
  244. package/dist/esm/common/Specification.d.ts.map +1 -1
  245. package/dist/esm/common/Specification.js +2 -2
  246. package/dist/esm/common/Specification.js.map +1 -1
  247. package/dist/esm/logic/Scope.d.ts.map +1 -1
  248. package/dist/esm/logic/Scope.js +36 -10
  249. package/dist/esm/logic/Scope.js.map +1 -1
  250. package/dist/esm/logic/definition-validation/CommandValidator.js +1 -2
  251. package/dist/esm/logic/definition-validation/CommandValidator.js.map +1 -1
  252. package/dist/esm/logic/definition-validation/ValueValidator.d.ts +1 -6
  253. package/dist/esm/logic/definition-validation/ValueValidator.d.ts.map +1 -1
  254. package/dist/esm/logic/definition-validation/ValueValidator.js +32 -17
  255. package/dist/esm/logic/definition-validation/ValueValidator.js.map +1 -1
  256. package/dist/esm/models/Globals.d.ts +1 -1
  257. package/dist/esm/parser/Lexer.d.ts +1 -1
  258. package/dist/esm/parser/Lexer.d.ts.map +1 -1
  259. package/dist/esm/parser/Lexer.js.map +1 -1
  260. package/dist/esm/parser/Token.d.ts +2 -2
  261. package/dist/esm/parser/Token.d.ts.map +1 -1
  262. package/dist/esm/standard/elements/AcceptedCommandList.d.ts.map +1 -1
  263. package/dist/esm/standard/elements/AcceptedCommandList.js +1 -1
  264. package/dist/esm/standard/elements/AcceptedCommandList.js.map +1 -1
  265. package/dist/esm/standard/elements/AccessControl.d.ts.map +1 -1
  266. package/dist/esm/standard/elements/AccessControl.js +8 -8
  267. package/dist/esm/standard/elements/AccessControl.js.map +1 -1
  268. package/dist/esm/standard/elements/AccountLogin.d.ts.map +1 -1
  269. package/dist/esm/standard/elements/AccountLogin.js +5 -5
  270. package/dist/esm/standard/elements/AccountLogin.js.map +1 -1
  271. package/dist/esm/standard/elements/Actions.d.ts.map +1 -1
  272. package/dist/esm/standard/elements/Actions.js +2 -2
  273. package/dist/esm/standard/elements/Actions.js.map +1 -1
  274. package/dist/esm/standard/elements/AdministratorCommissioning.d.ts.map +1 -1
  275. package/dist/esm/standard/elements/AdministratorCommissioning.js +4 -4
  276. package/dist/esm/standard/elements/AdministratorCommissioning.js.map +1 -1
  277. package/dist/esm/standard/elements/ApplicationLauncher.d.ts.map +1 -1
  278. package/dist/esm/standard/elements/ApplicationLauncher.js +2 -2
  279. package/dist/esm/standard/elements/ApplicationLauncher.js.map +1 -1
  280. package/dist/esm/standard/elements/BallastConfiguration.d.ts.map +1 -1
  281. package/dist/esm/standard/elements/BallastConfiguration.js +4 -4
  282. package/dist/esm/standard/elements/BallastConfiguration.js.map +1 -1
  283. package/dist/esm/standard/elements/BasicInformation.d.ts.map +1 -1
  284. package/dist/esm/standard/elements/BasicInformation.js +5 -5
  285. package/dist/esm/standard/elements/BasicInformation.js.map +1 -1
  286. package/dist/esm/standard/elements/Binding.js +1 -1
  287. package/dist/esm/standard/elements/BooleanStateConfiguration.js +1 -1
  288. package/dist/esm/standard/elements/BridgedDeviceBasicInformation.d.ts.map +1 -1
  289. package/dist/esm/standard/elements/BridgedDeviceBasicInformation.js +3 -3
  290. package/dist/esm/standard/elements/BridgedDeviceBasicInformation.js.map +1 -1
  291. package/dist/esm/standard/elements/Channel.js +2 -2
  292. package/dist/esm/standard/elements/ColorControl.d.ts.map +1 -1
  293. package/dist/esm/standard/elements/ColorControl.js +15 -15
  294. package/dist/esm/standard/elements/ColorControl.js.map +1 -1
  295. package/dist/esm/standard/elements/CommissionerControl.d.ts.map +1 -1
  296. package/dist/esm/standard/elements/CommissionerControl.js +6 -6
  297. package/dist/esm/standard/elements/CommissionerControl.js.map +1 -1
  298. package/dist/esm/standard/elements/ConcentrationMeasurement.d.ts.map +1 -1
  299. package/dist/esm/standard/elements/ConcentrationMeasurement.js +2 -2
  300. package/dist/esm/standard/elements/ConcentrationMeasurement.js.map +1 -1
  301. package/dist/esm/standard/elements/ContentControl.d.ts.map +1 -1
  302. package/dist/esm/standard/elements/ContentControl.js +4 -4
  303. package/dist/esm/standard/elements/ContentControl.js.map +1 -1
  304. package/dist/esm/standard/elements/ContentLauncher.d.ts.map +1 -1
  305. package/dist/esm/standard/elements/ContentLauncher.js +13 -15
  306. package/dist/esm/standard/elements/ContentLauncher.js.map +1 -1
  307. package/dist/esm/standard/elements/Descriptor.js +1 -1
  308. package/dist/esm/standard/elements/DeviceEnergyManagement.d.ts.map +1 -1
  309. package/dist/esm/standard/elements/DeviceEnergyManagement.js +14 -14
  310. package/dist/esm/standard/elements/DeviceEnergyManagement.js.map +1 -1
  311. package/dist/esm/standard/elements/DeviceEnergyManagementDT.js +5 -5
  312. package/dist/esm/standard/elements/DeviceEnergyManagementDT.js.map +1 -1
  313. package/dist/esm/standard/elements/DiagnosticLogs.js +2 -2
  314. package/dist/esm/standard/elements/DoorLock.d.ts.map +1 -1
  315. package/dist/esm/standard/elements/DoorLock.js +16 -16
  316. package/dist/esm/standard/elements/DoorLock.js.map +1 -1
  317. package/dist/esm/standard/elements/EcosystemInformation.d.ts.map +1 -1
  318. package/dist/esm/standard/elements/EcosystemInformation.js +4 -4
  319. package/dist/esm/standard/elements/EcosystemInformation.js.map +1 -1
  320. package/dist/esm/standard/elements/ElectricalEnergyMeasurement.js +1 -1
  321. package/dist/esm/standard/elements/ElectricalPowerMeasurement.d.ts.map +1 -1
  322. package/dist/esm/standard/elements/ElectricalPowerMeasurement.js +3 -3
  323. package/dist/esm/standard/elements/ElectricalPowerMeasurement.js.map +1 -1
  324. package/dist/esm/standard/elements/EnergyEvse.d.ts.map +1 -1
  325. package/dist/esm/standard/elements/EnergyEvse.js +10 -10
  326. package/dist/esm/standard/elements/EnergyEvse.js.map +1 -1
  327. package/dist/esm/standard/elements/EnergyEvseMode.d.ts.map +1 -1
  328. package/dist/esm/standard/elements/EnergyEvseMode.js +3 -3
  329. package/dist/esm/standard/elements/EnergyEvseMode.js.map +1 -1
  330. package/dist/esm/standard/elements/EnergyPreference.d.ts.map +1 -1
  331. package/dist/esm/standard/elements/EnergyPreference.js +2 -2
  332. package/dist/esm/standard/elements/EnergyPreference.js.map +1 -1
  333. package/dist/esm/standard/elements/FeatureMap.d.ts.map +1 -1
  334. package/dist/esm/standard/elements/FeatureMap.js +1 -1
  335. package/dist/esm/standard/elements/FeatureMap.js.map +1 -1
  336. package/dist/esm/standard/elements/FixedLabel.d.ts.map +1 -1
  337. package/dist/esm/standard/elements/FixedLabel.js +1 -1
  338. package/dist/esm/standard/elements/FixedLabel.js.map +1 -1
  339. package/dist/esm/standard/elements/FlowMeasurement.d.ts.map +1 -1
  340. package/dist/esm/standard/elements/FlowMeasurement.js +1 -1
  341. package/dist/esm/standard/elements/FlowMeasurement.js.map +1 -1
  342. package/dist/esm/standard/elements/GeneralCommissioning.d.ts.map +1 -1
  343. package/dist/esm/standard/elements/GeneralCommissioning.js +24 -25
  344. package/dist/esm/standard/elements/GeneralCommissioning.js.map +1 -1
  345. package/dist/esm/standard/elements/GeneralDiagnostics.d.ts.map +1 -1
  346. package/dist/esm/standard/elements/GeneralDiagnostics.js +6 -6
  347. package/dist/esm/standard/elements/GeneralDiagnostics.js.map +1 -1
  348. package/dist/esm/standard/elements/GroupKeyManagement.d.ts.map +1 -1
  349. package/dist/esm/standard/elements/GroupKeyManagement.js +7 -7
  350. package/dist/esm/standard/elements/GroupKeyManagement.js.map +1 -1
  351. package/dist/esm/standard/elements/Groups.d.ts.map +1 -1
  352. package/dist/esm/standard/elements/Groups.js +1 -1
  353. package/dist/esm/standard/elements/Groups.js.map +1 -1
  354. package/dist/esm/standard/elements/IcdManagement.d.ts.map +1 -1
  355. package/dist/esm/standard/elements/IcdManagement.js +4 -4
  356. package/dist/esm/standard/elements/IcdManagement.js.map +1 -1
  357. package/dist/esm/standard/elements/Identify.js +1 -1
  358. package/dist/esm/standard/elements/{JointFabricDatastoreCluster.d.ts → JointFabricDatastore.d.ts} +2 -2
  359. package/dist/esm/standard/elements/JointFabricDatastore.d.ts.map +1 -0
  360. package/dist/esm/standard/elements/{JointFabricDatastoreCluster.js → JointFabricDatastore.js} +6 -6
  361. package/dist/esm/standard/elements/{JointFabricDatastoreCluster.js.map → JointFabricDatastore.js.map} +2 -2
  362. package/dist/esm/standard/elements/JointFabricPki.d.ts.map +1 -1
  363. package/dist/esm/standard/elements/JointFabricPki.js +2 -2
  364. package/dist/esm/standard/elements/JointFabricPki.js.map +1 -1
  365. package/dist/esm/standard/elements/KeypadInput.d.ts.map +1 -1
  366. package/dist/esm/standard/elements/KeypadInput.js +1 -1
  367. package/dist/esm/standard/elements/KeypadInput.js.map +1 -1
  368. package/dist/esm/standard/elements/LaundryWasherControls.d.ts.map +1 -1
  369. package/dist/esm/standard/elements/LaundryWasherControls.js +2 -2
  370. package/dist/esm/standard/elements/LaundryWasherControls.js.map +1 -1
  371. package/dist/esm/standard/elements/LaundryWasherMode.d.ts.map +1 -1
  372. package/dist/esm/standard/elements/LaundryWasherMode.js +11 -6
  373. package/dist/esm/standard/elements/LaundryWasherMode.js.map +1 -1
  374. package/dist/esm/standard/elements/LevelControl.d.ts.map +1 -1
  375. package/dist/esm/standard/elements/LevelControl.js +4 -4
  376. package/dist/esm/standard/elements/LevelControl.js.map +1 -1
  377. package/dist/esm/standard/elements/LowPower.js +1 -1
  378. package/dist/esm/standard/elements/MeasurementAccuracyRangeStruct.d.ts.map +1 -1
  379. package/dist/esm/standard/elements/MeasurementAccuracyRangeStruct.js +1 -1
  380. package/dist/esm/standard/elements/MeasurementAccuracyRangeStruct.js.map +1 -1
  381. package/dist/esm/standard/elements/MediaInput.d.ts.map +1 -1
  382. package/dist/esm/standard/elements/MediaInput.js +2 -2
  383. package/dist/esm/standard/elements/MediaInput.js.map +1 -1
  384. package/dist/esm/standard/elements/MediaPlayback.d.ts.map +1 -1
  385. package/dist/esm/standard/elements/MediaPlayback.js +4 -4
  386. package/dist/esm/standard/elements/MediaPlayback.js.map +1 -1
  387. package/dist/esm/standard/elements/Messages.js +1 -1
  388. package/dist/esm/standard/elements/ModeBase.d.ts.map +1 -1
  389. package/dist/esm/standard/elements/ModeBase.js +2 -2
  390. package/dist/esm/standard/elements/ModeBase.js.map +1 -1
  391. package/dist/esm/standard/elements/ModeSelect.d.ts.map +1 -1
  392. package/dist/esm/standard/elements/ModeSelect.js +4 -4
  393. package/dist/esm/standard/elements/ModeSelect.js.map +1 -1
  394. package/dist/esm/standard/elements/NetworkCommissioning.d.ts.map +1 -1
  395. package/dist/esm/standard/elements/NetworkCommissioning.js +8 -8
  396. package/dist/esm/standard/elements/NetworkCommissioning.js.map +1 -1
  397. package/dist/esm/standard/elements/OccupancySensing.d.ts.map +1 -1
  398. package/dist/esm/standard/elements/OccupancySensing.js +4 -4
  399. package/dist/esm/standard/elements/OccupancySensing.js.map +1 -1
  400. package/dist/esm/standard/elements/OperationalCredentials.d.ts.map +1 -1
  401. package/dist/esm/standard/elements/OperationalCredentials.js +7 -7
  402. package/dist/esm/standard/elements/OperationalCredentials.js.map +1 -1
  403. package/dist/esm/standard/elements/OperationalState.d.ts.map +1 -1
  404. package/dist/esm/standard/elements/OperationalState.js +6 -6
  405. package/dist/esm/standard/elements/OperationalState.js.map +1 -1
  406. package/dist/esm/standard/elements/OtaSoftwareUpdateProvider.d.ts.map +1 -1
  407. package/dist/esm/standard/elements/OtaSoftwareUpdateProvider.js +4 -4
  408. package/dist/esm/standard/elements/OtaSoftwareUpdateProvider.js.map +1 -1
  409. package/dist/esm/standard/elements/OtaSoftwareUpdateRequestor.d.ts.map +1 -1
  410. package/dist/esm/standard/elements/OtaSoftwareUpdateRequestor.js +2 -2
  411. package/dist/esm/standard/elements/OtaSoftwareUpdateRequestor.js.map +1 -1
  412. package/dist/esm/standard/elements/OvenMode.d.ts.map +1 -1
  413. package/dist/esm/standard/elements/OvenMode.js +11 -6
  414. package/dist/esm/standard/elements/OvenMode.js.map +1 -1
  415. package/dist/esm/standard/elements/PowerSource.d.ts.map +1 -1
  416. package/dist/esm/standard/elements/PowerSource.js +5 -5
  417. package/dist/esm/standard/elements/PowerSource.js.map +1 -1
  418. package/dist/esm/standard/elements/PowerSourceNS.js +1 -1
  419. package/dist/esm/standard/elements/PressureMeasurement.d.ts.map +1 -1
  420. package/dist/esm/standard/elements/PressureMeasurement.js +2 -2
  421. package/dist/esm/standard/elements/PressureMeasurement.js.map +1 -1
  422. package/dist/esm/standard/elements/PumpConfigurationAndControl.d.ts.map +1 -1
  423. package/dist/esm/standard/elements/PumpConfigurationAndControl.js +6 -6
  424. package/dist/esm/standard/elements/PumpConfigurationAndControl.js.map +1 -1
  425. package/dist/esm/standard/elements/ResourceMonitoring.d.ts.map +1 -1
  426. package/dist/esm/standard/elements/ResourceMonitoring.js +1 -1
  427. package/dist/esm/standard/elements/ResourceMonitoring.js.map +1 -1
  428. package/dist/esm/standard/elements/RootNodeDT.js +1 -1
  429. package/dist/esm/standard/elements/RootNodeDT.js.map +1 -1
  430. package/dist/esm/standard/elements/RvcRunMode.js +1 -1
  431. package/dist/esm/standard/elements/ScenesManagement.d.ts.map +1 -1
  432. package/dist/esm/standard/elements/ScenesManagement.js +3 -3
  433. package/dist/esm/standard/elements/ScenesManagement.js.map +1 -1
  434. package/dist/esm/standard/elements/ServiceArea.d.ts.map +1 -1
  435. package/dist/esm/standard/elements/ServiceArea.js +8 -8
  436. package/dist/esm/standard/elements/ServiceArea.js.map +1 -1
  437. package/dist/esm/standard/elements/SmokeCoAlarm.d.ts.map +1 -1
  438. package/dist/esm/standard/elements/SmokeCoAlarm.js +17 -13
  439. package/dist/esm/standard/elements/SmokeCoAlarm.js.map +1 -1
  440. package/dist/esm/standard/elements/SoftwareDiagnostics.js +1 -1
  441. package/dist/esm/standard/elements/Switch.js +1 -1
  442. package/dist/esm/standard/elements/Thermostat.d.ts.map +1 -1
  443. package/dist/esm/standard/elements/Thermostat.js +17 -17
  444. package/dist/esm/standard/elements/Thermostat.js.map +1 -1
  445. package/dist/esm/standard/elements/ThreadBorderRouterManagement.js +1 -1
  446. package/dist/esm/standard/elements/ThreadNetworkDiagnostics.d.ts.map +1 -1
  447. package/dist/esm/standard/elements/ThreadNetworkDiagnostics.js +5 -5
  448. package/dist/esm/standard/elements/ThreadNetworkDiagnostics.js.map +1 -1
  449. package/dist/esm/standard/elements/ThreadNetworkDirectory.js +1 -1
  450. package/dist/esm/standard/elements/TimeSynchronization.d.ts.map +1 -1
  451. package/dist/esm/standard/elements/TimeSynchronization.js +4 -4
  452. package/dist/esm/standard/elements/TimeSynchronization.js.map +1 -1
  453. package/dist/esm/standard/elements/WakeOnLan.js +1 -1
  454. package/dist/esm/standard/elements/WaterHeaterManagement.d.ts.map +1 -1
  455. package/dist/esm/standard/elements/WaterHeaterManagement.js +3 -3
  456. package/dist/esm/standard/elements/WaterHeaterManagement.js.map +1 -1
  457. package/dist/esm/standard/elements/WiFiNetworkManagement.d.ts.map +1 -1
  458. package/dist/esm/standard/elements/WiFiNetworkManagement.js +2 -2
  459. package/dist/esm/standard/elements/WiFiNetworkManagement.js.map +1 -1
  460. package/dist/esm/standard/elements/WindowCovering.d.ts.map +1 -1
  461. package/dist/esm/standard/elements/WindowCovering.js +2 -2
  462. package/dist/esm/standard/elements/WindowCovering.js.map +1 -1
  463. package/dist/esm/standard/elements/definitions.d.ts +1 -1
  464. package/dist/esm/standard/elements/definitions.d.ts.map +1 -1
  465. package/dist/esm/standard/elements/definitions.js +1 -1
  466. package/dist/esm/standard/elements/epoch-us.js +1 -1
  467. package/dist/esm/standard/elements/locationdesc.js +2 -2
  468. package/dist/esm/standard/elements/models.d.ts +1 -1
  469. package/dist/esm/standard/elements/models.d.ts.map +1 -1
  470. package/dist/esm/standard/elements/models.js +2 -2
  471. package/dist/esm/standard/elements/models.js.map +1 -1
  472. package/dist/esm/standard/elements/status.js +4 -4
  473. package/dist/esm/standard/elements/temperature.d.ts.map +1 -1
  474. package/dist/esm/standard/elements/temperature.js +1 -1
  475. package/dist/esm/standard/elements/temperature.js.map +1 -1
  476. package/package.json +4 -4
  477. package/src/aspects/Constraint.ts +5 -1
  478. package/src/common/Specification.ts +7 -4
  479. package/src/logic/Scope.ts +41 -14
  480. package/src/logic/definition-validation/CommandValidator.ts +1 -2
  481. package/src/logic/definition-validation/ValueValidator.ts +39 -18
  482. package/src/parser/Lexer.ts +1 -1
  483. package/src/parser/Token.ts +2 -2
  484. package/src/standard/elements/AcceptedCommandList.ts +2 -3
  485. package/src/standard/elements/AccessControl.ts +18 -37
  486. package/src/standard/elements/AccountLogin.ts +13 -16
  487. package/src/standard/elements/Actions.ts +6 -10
  488. package/src/standard/elements/AdministratorCommissioning.ts +15 -17
  489. package/src/standard/elements/ApplicationLauncher.ts +6 -8
  490. package/src/standard/elements/BallastConfiguration.ts +7 -13
  491. package/src/standard/elements/BasicInformation.ts +12 -18
  492. package/src/standard/elements/Binding.ts +4 -4
  493. package/src/standard/elements/BooleanStateConfiguration.ts +3 -3
  494. package/src/standard/elements/BridgedDeviceBasicInformation.ts +9 -14
  495. package/src/standard/elements/Channel.ts +3 -3
  496. package/src/standard/elements/ColorControl.ts +34 -53
  497. package/src/standard/elements/CommissionerControl.ts +12 -23
  498. package/src/standard/elements/ConcentrationMeasurement.ts +3 -2
  499. package/src/standard/elements/ContentControl.ts +8 -12
  500. package/src/standard/elements/ContentLauncher.ts +18 -23
  501. package/src/standard/elements/Descriptor.ts +3 -3
  502. package/src/standard/elements/DeviceEnergyManagement.ts +24 -61
  503. package/src/standard/elements/DeviceEnergyManagementDT.ts +5 -5
  504. package/src/standard/elements/DiagnosticLogs.ts +2 -2
  505. package/src/standard/elements/DoorLock.ts +45 -58
  506. package/src/standard/elements/EcosystemInformation.ts +10 -16
  507. package/src/standard/elements/ElectricalEnergyMeasurement.ts +2 -2
  508. package/src/standard/elements/ElectricalPowerMeasurement.ts +6 -7
  509. package/src/standard/elements/EnergyEvse.ts +24 -31
  510. package/src/standard/elements/EnergyEvseMode.ts +6 -8
  511. package/src/standard/elements/EnergyPreference.ts +6 -5
  512. package/src/standard/elements/FeatureMap.ts +1 -3
  513. package/src/standard/elements/FixedLabel.ts +4 -5
  514. package/src/standard/elements/FlowMeasurement.ts +2 -3
  515. package/src/standard/elements/GeneralCommissioning.ts +37 -45
  516. package/src/standard/elements/GeneralDiagnostics.ts +10 -14
  517. package/src/standard/elements/GroupKeyManagement.ts +15 -19
  518. package/src/standard/elements/Groups.ts +1 -2
  519. package/src/standard/elements/IcdManagement.ts +3 -8
  520. package/src/standard/elements/Identify.ts +1 -1
  521. package/src/standard/elements/{JointFabricDatastoreCluster.ts → JointFabricDatastore.ts} +4 -6
  522. package/src/standard/elements/JointFabricPki.ts +2 -4
  523. package/src/standard/elements/KeypadInput.ts +1 -3
  524. package/src/standard/elements/LaundryWasherControls.ts +5 -7
  525. package/src/standard/elements/LaundryWasherMode.ts +12 -6
  526. package/src/standard/elements/LevelControl.ts +5 -7
  527. package/src/standard/elements/LowPower.ts +3 -3
  528. package/src/standard/elements/MeasurementAccuracyRangeStruct.ts +2 -3
  529. package/src/standard/elements/MediaInput.ts +2 -3
  530. package/src/standard/elements/MediaPlayback.ts +7 -12
  531. package/src/standard/elements/Messages.ts +4 -4
  532. package/src/standard/elements/ModeBase.ts +4 -8
  533. package/src/standard/elements/ModeSelect.ts +4 -9
  534. package/src/standard/elements/NetworkCommissioning.ts +23 -31
  535. package/src/standard/elements/OccupancySensing.ts +14 -20
  536. package/src/standard/elements/OperationalCredentials.ts +37 -40
  537. package/src/standard/elements/OperationalState.ts +8 -14
  538. package/src/standard/elements/OtaSoftwareUpdateProvider.ts +1 -14
  539. package/src/standard/elements/OtaSoftwareUpdateRequestor.ts +6 -8
  540. package/src/standard/elements/OvenMode.ts +12 -6
  541. package/src/standard/elements/PowerSource.ts +5 -10
  542. package/src/standard/elements/PowerSourceNS.ts +1 -1
  543. package/src/standard/elements/PressureMeasurement.ts +3 -6
  544. package/src/standard/elements/PumpConfigurationAndControl.ts +11 -19
  545. package/src/standard/elements/ResourceMonitoring.ts +4 -5
  546. package/src/standard/elements/RootNodeDT.ts +1 -1
  547. package/src/standard/elements/RvcRunMode.ts +4 -4
  548. package/src/standard/elements/ScenesManagement.ts +4 -7
  549. package/src/standard/elements/ServiceArea.ts +32 -33
  550. package/src/standard/elements/SmokeCoAlarm.ts +14 -13
  551. package/src/standard/elements/SoftwareDiagnostics.ts +1 -1
  552. package/src/standard/elements/Switch.ts +6 -6
  553. package/src/standard/elements/Thermostat.ts +44 -89
  554. package/src/standard/elements/ThreadBorderRouterManagement.ts +4 -4
  555. package/src/standard/elements/ThreadNetworkDiagnostics.ts +13 -21
  556. package/src/standard/elements/ThreadNetworkDirectory.ts +3 -3
  557. package/src/standard/elements/TimeSynchronization.ts +6 -8
  558. package/src/standard/elements/WakeOnLan.ts +6 -6
  559. package/src/standard/elements/WaterHeaterManagement.ts +16 -14
  560. package/src/standard/elements/WiFiNetworkManagement.ts +9 -11
  561. package/src/standard/elements/WindowCovering.ts +6 -4
  562. package/src/standard/elements/definitions.ts +1 -1
  563. package/src/standard/elements/epoch-us.ts +1 -1
  564. package/src/standard/elements/locationdesc.ts +6 -6
  565. package/src/standard/elements/models.ts +1 -1
  566. package/src/standard/elements/status.ts +4 -4
  567. package/src/standard/elements/temperature.ts +4 -7
  568. package/dist/cjs/standard/elements/JointFabricDatastoreCluster.d.ts.map +0 -1
  569. package/dist/esm/standard/elements/JointFabricDatastoreCluster.d.ts.map +0 -1
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
+ import { ModelTraversal } from "#logic/ModelTraversal.js";
7
8
  import { Access, Aspect, Conformance, Constraint, Quality } from "../../aspects/index.js";
8
9
  import { DefinitionError, FieldValue, Metatype } from "../../common/index.js";
9
10
  import { ClusterModel, Globals, ValueModel } from "../../models/index.js";
@@ -23,7 +24,7 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
23
24
  this.validateProperty({ name: "quality", type: Quality });
24
25
  this.validateProperty({ name: "metatype", type: Metatype });
25
26
 
26
- this.validateAspect("conformance");
27
+ this.#validateAspect("conformance");
27
28
  this.model.conformance.validateReferences(this, name => {
28
29
  // Features are all caps, other names are field references
29
30
  if (name.match(/^[A-Z0-9_$]+$/)) {
@@ -41,24 +42,24 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
41
42
  }
42
43
  });
43
44
 
44
- this.validateAspect("constraint");
45
- this.validateAspect("access");
46
- this.validateAspect("quality");
45
+ this.#validateAspect("constraint");
46
+ this.#validateAspect("access");
47
+ this.#validateAspect("quality");
47
48
 
48
- this.validateType();
49
- this.validateEntries();
49
+ this.#validateType();
50
+ this.#validateEntries();
50
51
 
51
52
  super.validate();
52
53
  }
53
54
 
54
- private validateAspect(name: string) {
55
+ #validateAspect(name: string) {
55
56
  const aspect = (this.model as any)[name] as Aspect;
56
57
  if (aspect?.errors) {
57
58
  aspect.errors.forEach((e: DefinitionError) => this.model.error(e.code, `${e.source}: ${e.message}`));
58
59
  }
59
60
  }
60
61
 
61
- private validateType() {
62
+ #validateType() {
62
63
  if (this.model.effectiveType === undefined) {
63
64
  if (this.model.metatype) {
64
65
  // Not a derivative type
@@ -70,9 +71,13 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
70
71
  return;
71
72
  }
72
73
 
73
- // Non-global types must specify a base type
74
- this.error("NO_TYPE", "No type information");
75
- return;
74
+ // If the type is supposed to have a shadow but we didn't find it due to a case mismatch, we correct that
75
+ // now. Otherwise this is an error
76
+ if (!this.#correctCaseFromShadow()) {
77
+ // Non-global types must specify a base type
78
+ this.error("NO_TYPE", "No type information");
79
+ return;
80
+ }
76
81
  }
77
82
 
78
83
  const base = this.model.base;
@@ -99,7 +104,7 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
99
104
  return;
100
105
  }
101
106
 
102
- if (this.validateSpecialDefault(metatype, defaultValue)) {
107
+ if (this.#validateSpecialDefault(metatype, defaultValue)) {
103
108
  return;
104
109
  }
105
110
 
@@ -159,7 +164,7 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
159
164
  this.model.default = defaultValue;
160
165
  }
161
166
 
162
- private validateEntries() {
167
+ #validateEntries() {
163
168
  // Note - these checks only apply for first-order derived types, so use direct metatype
164
169
  const metatype =
165
170
  this.model.type === undefined
@@ -186,9 +191,9 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
186
191
  }
187
192
 
188
193
  if (metatype == Metatype.enum) {
189
- this.validateEnumKeys();
194
+ this.#validateEnumKeys();
190
195
  } else {
191
- this.validateBitFields();
196
+ this.#validateBitFields();
192
197
  }
193
198
  break;
194
199
 
@@ -202,7 +207,7 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
202
207
  }
203
208
  }
204
209
 
205
- private validateEnumKeys() {
210
+ #validateEnumKeys() {
206
211
  const ids = new Set<number>();
207
212
  const names = new Set<string>();
208
213
  for (const c of this.model.children) {
@@ -222,7 +227,7 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
222
227
  }
223
228
  }
224
229
 
225
- private validateBitFields() {
230
+ #validateBitFields() {
226
231
  const ranges = Array<{ name: string; min: number; max: number }>();
227
232
  for (const c of this.model.children) {
228
233
  let min, max;
@@ -255,7 +260,7 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
255
260
  }
256
261
  }
257
262
 
258
- private validateSpecialDefault(metatype: Metatype, def: any) {
263
+ #validateSpecialDefault(metatype: Metatype, def: any) {
259
264
  // Special "reference" object referencing another field by name
260
265
  if (typeof def === "object" && FieldValue.is(def, FieldValue.reference)) {
261
266
  const reference = (def as FieldValue.Reference).name;
@@ -299,4 +304,20 @@ export class ValueValidator<T extends ValueModel> extends ModelValidator<T> {
299
304
  return true;
300
305
  }
301
306
  }
307
+
308
+ #correctCaseFromShadow() {
309
+ const tag = this.model.tag;
310
+ const name = this.model.name.toLowerCase();
311
+ return (
312
+ false ===
313
+ new ModelTraversal().visitInheritance(this.model.parent?.base, owner => {
314
+ for (const child of owner.children) {
315
+ if (child.tag === tag && child.name.toLowerCase() === name) {
316
+ this.model.name = child.name;
317
+ return false;
318
+ }
319
+ }
320
+ })
321
+ );
322
+ }
302
323
  }
@@ -16,7 +16,7 @@ function isNameChar(c: string) {
16
16
  *
17
17
  * Tokenizes simple text dialects. Currently sufficient for Matter conformance and constraint tokenization.
18
18
  */
19
- export class Lexer<T extends BasicToken<KW>, const KW extends string[] = []> {
19
+ export class Lexer<T extends BasicToken<KW>, const KW extends readonly string[] = []> {
20
20
  #keywords: Set<string>;
21
21
 
22
22
  constructor(keywords?: KW) {
@@ -18,7 +18,7 @@ export interface Token {
18
18
  /**
19
19
  * The base token produced by the tokenizer.
20
20
  */
21
- export type BasicToken<KW extends string[] = []> =
21
+ export type BasicToken<KW extends readonly string[] = []> =
22
22
  | BasicToken.Special
23
23
  | BasicToken.Word
24
24
  | BasicToken.Number
@@ -68,7 +68,7 @@ export namespace BasicToken {
68
68
  value: FieldValue;
69
69
  }
70
70
 
71
- export interface Keyword<T extends string[]> extends Token {
71
+ export interface Keyword<T extends readonly string[]> extends Token {
72
72
  type: T[number];
73
73
  }
74
74
  }
@@ -22,9 +22,8 @@ export const AcceptedCommandList = Attribute(
22
22
  "This attribute shall be a list of the command IDs for client generated commands that are supported " +
23
23
  "and processed by the server." +
24
24
  "\n" +
25
- "For each client request command in this list that mandates a response from the server, the" +
26
- "\n" +
27
- "response command shall be indicated in the GeneratedCommandList attribute." +
25
+ "For each client request command in this list that mandates a response from the server, the response " +
26
+ "command shall be indicated in the GeneratedCommandList attribute." +
28
27
  "\n" +
29
28
  "If any attribute on a server supports atomic writes, this attribute shall contain the command ID for " +
30
29
  "AtomicRequest.",
@@ -199,7 +199,7 @@ export const AccessControl = Cluster(
199
199
 
200
200
  Attribute(
201
201
  {
202
- name: "CommissioningArL", id: 0x5, type: "list", access: "R V", conformance: "MNGD",
202
+ name: "CommissioningArl", id: 0x5, type: "list", access: "R V", conformance: "MNGD",
203
203
  constraint: "desc", default: [], quality: "F",
204
204
 
205
205
  details: "This attribute shall provide the set of CommissioningAccessRestrictionEntryStruct applied during " +
@@ -452,13 +452,11 @@ export const AccessControl = Cluster(
452
452
  "\n" +
453
453
  " • The query shall use the & delimiter between key/value pairs." +
454
454
  "\n" +
455
- " • The key-value pairs shall in the format name=<value> where name is the key name, and <value>" +
455
+ " • The key-value pairs shall in the format name=<value> where name is the key name, and <value> is " +
456
+ " the contents of the value encoded with proper URL-encoded escaping." +
456
457
  "\n" +
457
- "is the contents of the value encoded with proper URL-encoded escaping." +
458
- "\n" +
459
- " • If key MTcu is present, it shall have a value of \"_\" (i.e. MTcu=_). This is the \"callback URL" +
460
- "\n" +
461
- "backUrl) placeholder\"." +
458
+ " • If key MTcu is present, it shall have a value of \"_\" (i.e. MTcu=_). This is the \"callback URL " +
459
+ " (CallbackUrl) placeholder\"." +
462
460
  "\n" +
463
461
  " • Any key whose name begins with MT not mentioned in the previous bullets shall be reserved for " +
464
462
  " future use by this specification. Manufacturers shall NOT include query keys starting with MT in " +
@@ -467,8 +465,6 @@ export const AccessControl = Cluster(
467
465
  "Any other element in the ARLRequestFlowUrl query field not covered by the above rules, as well as " +
468
466
  "the fragment field (if present), shall remain including the order of query key/value pairs present." +
469
467
  "\n" +
470
- "Expansion of ARLRequestFlowUrl by client" +
471
- "\n" +
472
468
  "Once the URL is obtained, it shall be expanded to form a final URL (ExpandedARLRequestFlowUrl) by " +
473
469
  "proceeding with the following substitution algorithm on the original ARLRequestFlowUrl:" +
474
470
  "\n" +
@@ -491,9 +487,8 @@ export const AccessControl = Cluster(
491
487
  "\n" +
492
488
  " • The query shall use the & delimiter between key/value pairs." +
493
489
  "\n" +
494
- " • The key-value pairs shall follow the format name=<value> where name is the key name, and" +
495
- "\n" +
496
- "<value> is the contents of the value encoded with proper URL-encoded escaping." +
490
+ " • The key-value pairs shall follow the format name=<value> where name is the key name, and <value> " +
491
+ " is the contents of the value encoded with proper URL-encoded escaping." +
497
492
  "\n" +
498
493
  " • If key MTaer is present, it shall have a value of \"_\" (i.e. MTaer=_). This is the placeholder " +
499
494
  " for a \"access extension response\" provided by the manufacturer flow to the client. The " +
@@ -504,14 +499,10 @@ export const AccessControl = Cluster(
504
499
  " • Any key whose name begins with MT not mentioned in the previous bullets shall be reserved for " +
505
500
  " future use by this specification." +
506
501
  "\n" +
507
- "Any other element in the CallbackUrl query field not covered by the above rules, as well as the frag" +
508
- "\n" +
509
- "ment field (if present), shall remain as provided by the client through embedding within the" +
510
- "\n" +
502
+ "Any other element in the CallbackUrl query field not covered by the above rules, as well as the " +
503
+ "fragment field (if present), shall remain as provided by the client through embedding within the " +
511
504
  "ExpandedARLRequestFlowUrl, including the order of query key/value pairs present." +
512
505
  "\n" +
513
- "### Expansion of CallbackUrl by the manufacturer custom flow" +
514
- "\n" +
515
506
  "Once the CallbackUrl is obtained by the manufacturer flow, it may be expanded to form a final " +
516
507
  "ExpandedARLRequestCallbackUrl URL to be used by proceeding with the following substitution algorithm " +
517
508
  "on the provided CallbackUrl:" +
@@ -538,7 +529,7 @@ export const AccessControl = Cluster(
538
529
  "ExpandedARLRequestCallbackUrl, on completion of the request, if an ExpandedARLRequestCallbackUrl was " +
539
530
  "computed from the CallbackUrl and opening such a URL is supported." +
540
531
  "\n" +
541
- "Examples of ARLRequestFlowUrl URLs" +
532
+ "### Examples of ARLRequestFlowUrl URLs" +
542
533
  "\n" +
543
534
  "Below are some examples of valid ExpandedARLRequestFlowUrl for several valid values of " +
544
535
  "ARLRequestFlowUrl, as well as some examples of invalid values of ARLRequestFlowUrl:" +
@@ -557,10 +548,9 @@ export const AccessControl = Cluster(
557
548
  "\n" +
558
549
  "https://company.domain.example/matter/arl?vid=FFF1&pid=1234&MTcu=_" +
559
550
  "\n" +
560
- " ◦ After expansion:" +
561
- "\n" +
562
- "https://company.domain.example/matter/arl?vid=FFF1&pid=1234&MTcu=https%3A%2F%2Fc " +
563
- "lient.domain.example%2Fcb%3Ftoken%3DmAsJ6_vqbr-vjDiG_w%253D%253D%26MTaer%3D_" +
551
+ " ◦ After expansion: " +
552
+ " https://company.domain.example/matter/arl?vid=FFF1&pid=1234&MTcu=https%3A%2F%2Fc " +
553
+ " lient.domain.example%2Fcb%3Ftoken%3DmAsJ6_vqbr-vjDiG_w%253D%253D%26MTaer%3D_" +
564
554
  "\n" +
565
555
  " ◦ The ExpandedARLRequestFlowUrl URL contains:" +
566
556
  "\n" +
@@ -572,7 +562,7 @@ export const AccessControl = Cluster(
572
562
  " return access extension completion status of Success, the ExpandedARLRequestCallbackUrl would " +
573
563
  " be:" +
574
564
  "\n" +
575
- "https://client.domain.example/cb?token=mAsJ6_vqbr- vjDiG_w%3D%3D&MTaer=Success" +
565
+ "https://client.domain.example/cb?token=mAsJ6_vqbr-vjDiG_w%3D%3D&MTaer=Success" +
576
566
  "\n" +
577
567
  "Note that the MTcu key/value pair was initially provided URL-encoded within the " +
578
568
  "ExpandedARLRequestFlowUrl URL and the MTaer=_ key/value pair placeholder now contains a substituted " +
@@ -652,9 +642,9 @@ export const AccessControl = Cluster(
652
642
  Datatype(
653
643
  {
654
644
  name: "AccessControlEntryPrivilegeEnum", type: "enum8",
655
- details: "Proxy View Value" +
645
+ details: "### Proxy View Value" +
656
646
  "\n" +
657
- "This value implicitly grants View privileges",
647
+ "### This value implicitly grants View privileges",
658
648
  xref: { document: "core", section: "9.10.5.2" }
659
649
  },
660
650
 
@@ -670,7 +660,7 @@ export const AccessControl = Cluster(
670
660
  Field({
671
661
  name: "Operate", id: 0x3, conformance: "M",
672
662
  description: "View privileges, and can perform the primary function of this Node (except Access Control Cluster)",
673
- details: "This value implicitly grants View privileges",
663
+ details: "### This value implicitly grants View privileges",
674
664
  xref: { document: "core", section: "9.10.5.2.1" }
675
665
  }),
676
666
 
@@ -730,8 +720,6 @@ export const AccessControl = Cluster(
730
720
  name: "Privilege", id: 0x1, type: "AccessControlEntryPrivilegeEnum", access: "S", conformance: "M",
731
721
 
732
722
  details: "The privilege field shall specify the level of privilege granted by this Access Control Entry." +
733
- "\n" +
734
- "NOTE The Proxy View privilege is provisional." +
735
723
  "\n" +
736
724
  "Each privilege builds upon its predecessor, expanding the set of actions that can be performed upon " +
737
725
  "a Node. Administer is the highest privilege, and is special as it pertains to the administration of " +
@@ -741,8 +729,6 @@ export const AccessControl = Cluster(
741
729
  "privilege levels as well. The following diagram illustrates how the higher privilege levels subsume " +
742
730
  "the lower privilege levels:" +
743
731
  "\n" +
744
- "Figure 46. Access Control Privilege Levels" +
745
- "\n" +
746
732
  "Individual clusters shall define whether attributes are readable, writable, or both readable and " +
747
733
  "writable. Clusters also shall define which privilege is minimally required to be able to perform a " +
748
734
  "particular read or write action on those attributes, or invoke particular commands. Device type " +
@@ -777,8 +763,6 @@ export const AccessControl = Cluster(
777
763
  "\n" +
778
764
  "### Subject ID shall be of type uint64 with semantics depending on the entry’s AuthMode as follows:" +
779
765
  "\n" +
780
- "Subject Semantics" +
781
- "\n" +
782
766
  "An empty subjects list indicates a wildcard; that is, this entry shall grant access to any Node that " +
783
767
  "successfully authenticates via AuthMode. The subjects list shall NOT be empty if the entry’s " +
784
768
  "AuthMode is PASE." +
@@ -825,8 +809,6 @@ export const AccessControl = Cluster(
825
809
  "\n" +
826
810
  "A target grants access based on the presence of fields as follows:" +
827
811
  "\n" +
828
- "Target Semantics" +
829
- "\n" +
830
812
  "An empty targets list indicates a wildcard: that is, this entry shall grant access to all cluster " +
831
813
  "instances on all endpoints on this Node.",
832
814
 
@@ -845,8 +827,7 @@ export const AccessControl = Cluster(
845
827
  Field({
846
828
  name: "Data", id: 0x1, type: "octstr", access: "S", conformance: "M", constraint: "max 128",
847
829
 
848
- details: "This field may be used by manufacturers to store arbitrary TLV-encoded data related to a fabric’s" +
849
- "\n" +
830
+ details: "This field may be used by manufacturers to store arbitrary TLV-encoded data related to a fabric’s " +
850
831
  "Access Control Entries." +
851
832
  "\n" +
852
833
  "The contents shall consist of a top-level anonymous list; each list element shall include a " +
@@ -40,10 +40,9 @@ export const AccountLogin = Cluster(
40
40
  "The cluster server for this cluster may be supported on each endpoint that represents a Content App " +
41
41
  "on a Video Player device." +
42
42
  "\n" +
43
- "See Device Type Library document for details of how a Content App, represented as an endpoint on" +
44
- "\n" +
45
- "the Video Player device, may implement the cluster server for this cluster to simplify account login " +
46
- "for its users.",
43
+ "See Device Type Library document for details of how a Content App, represented as an endpoint on the " +
44
+ "Video Player device, may implement the cluster server for this cluster to simplify account login for " +
45
+ "its users.",
47
46
 
48
47
  xref: { document: "cluster", section: "6.2" }
49
48
  },
@@ -78,10 +77,9 @@ export const AccountLogin = Cluster(
78
77
  "\n" +
79
78
  "For example, a Video Player with a Content App Platform may invoke this command on one of its " +
80
79
  "Content App endpoints to facilitate commissioning of a Phone App made by the same vendor as the " +
81
- "Content App. If the accounts match, then the Content App may return a setup code that can be used" +
82
- "\n" +
83
- "by the Video Player to commission the Phone App without requiring the user to physically input a " +
84
- "setup code." +
80
+ "Content App. If the accounts match, then the Content App may return a setup code that can be used by " +
81
+ "the Video Player to commission the Phone App without requiring the user to physically input a setup " +
82
+ "code." +
85
83
  "\n" +
86
84
  "The account match is determined by the Content App using a method which is outside the scope of this " +
87
85
  "specification and will typically involve a central service which is in communication with both the " +
@@ -145,10 +143,10 @@ export const AccountLogin = Cluster(
145
143
  details: "This field shall provide the setup PIN code as a text string at least 8 characters in length or " +
146
144
  "empty string to indicate that the accounts do not match." +
147
145
  "\n" +
148
- "NOTE" +
146
+ "> [!NOTE]" +
149
147
  "\n" +
150
- "Newer cluster clients should be aware that AccountLogin cluster version 1 specified an 11 digit " +
151
- "minimum length.",
148
+ "> Newer cluster clients should be aware that AccountLogin cluster version 1 specified an 11 digit " +
149
+ " minimum length.",
152
150
 
153
151
  xref: { document: "cluster", section: "6.2.4.2.1" }
154
152
  })
@@ -212,10 +210,10 @@ export const AccountLogin = Cluster(
212
210
 
213
211
  details: "This field shall provide the setup PIN code as a text string at least 8 characters in length." +
214
212
  "\n" +
215
- "NOTE" +
213
+ "> [!NOTE]" +
216
214
  "\n" +
217
- "Newer cluster clients should be aware that AccountLogin cluster version 1 specified an 11 digit " +
218
- "minimum length.",
215
+ "> Newer cluster clients should be aware that AccountLogin cluster version 1 specified an 11 digit " +
216
+ " minimum length.",
219
217
 
220
218
  xref: { document: "cluster", section: "6.2.4.3.2" }
221
219
  }),
@@ -239,8 +237,7 @@ export const AccountLogin = Cluster(
239
237
 
240
238
  Field({
241
239
  name: "Node", id: 0x0, type: "node-id", conformance: "O",
242
- details: "This optional field shall provide the Node ID of the Client. This field can be used by the Content" +
243
- "\n" +
240
+ details: "This optional field shall provide the Node ID of the Client. This field can be used by the Content " +
244
241
  "App to keep track of Nodes which currently have access to it.",
245
242
  xref: { document: "cluster", section: "6.2.4.4.1" }
246
243
  })
@@ -505,9 +505,7 @@ export const Actions = Cluster(
505
505
  "InstantActionWithTransition), or to bring these endpoints into a more dynamic state (typically using " +
506
506
  "StartAction), where the endpoints would e.g. gradually cycle through certain colors for a pleasing " +
507
507
  "effect. A voice controller could use \"set\" (to map to InstantAction) or \"play\" (to map to " +
508
- "StartAction) to trig" +
509
- "\n" +
510
- "ger such actions." +
508
+ "StartAction) to trigger such actions." +
511
509
  "\n" +
512
510
  "Example: see examples 1 and 2.",
513
511
 
@@ -619,13 +617,11 @@ export const Actions = Cluster(
619
617
  description: "User-configured group of endpoints where an endpoint can be in any number of zones",
620
618
 
621
619
  details: "Is a more general concept where an endpoint can be part of multiple zones, e.g. a light in the " +
622
- "living" +
623
- "\n" +
624
- "room can be part of the \"reading corner\" zone (subset of the lights in the living room) but also " +
625
- "part of the \"downstairs\" zone which contains all the lights on a floor, e.g. combining living room, " +
626
- "kitchen and hallway. This indicates that a user has defined this list of endpoints as something they " +
627
- "logically would like to control as a group, so Matter controllers could provide the user with a way " +
628
- "to do as such.",
620
+ "living room can be part of the \"reading corner\" zone (subset of the lights in the living room) but " +
621
+ "also part of the \"downstairs\" zone which contains all the lights on a floor, e.g. combining living " +
622
+ "room, kitchen and hallway. This indicates that a user has defined this list of endpoints as " +
623
+ "something they logically would like to control as a group, so Matter controllers could provide the " +
624
+ "user with a way to do as such.",
629
625
 
630
626
  xref: { document: "core", section: "9.14.4.5.3" }
631
627
  })
@@ -62,11 +62,11 @@ export const AdministratorCommissioning = Cluster(
62
62
  "\n" +
63
63
  "This attribute shall revert to WindowNotOpen upon expiry of a commissioning window." +
64
64
  "\n" +
65
- "NOTE" +
65
+ "> [!NOTE]" +
66
66
  "\n" +
67
- "An initial commissioning window is not opened using either the OpenCommissioningWindow command or " +
68
- "the OpenBasicCommissioningWindow command, and therefore this attribute shall be set to WindowNotOpen " +
69
- "on initial commissioning.",
67
+ "> An initial commissioning window is not opened using either the OpenCommissioningWindow command or " +
68
+ " the OpenBasicCommissioningWindow command, and therefore this attribute shall be set to " +
69
+ " WindowNotOpen on initial commissioning.",
70
70
 
71
71
  xref: { document: "core", section: "11.19.7.1" }
72
72
  }),
@@ -114,9 +114,8 @@ export const AdministratorCommissioning = Cluster(
114
114
  "\n" +
115
115
  "When the OpenCommissioningWindow command expires or commissioning completes, the Node shall remove " +
116
116
  "the Passcode by deleting the PAKE passcode verifier as well as stop publishing the DNS-SD record " +
117
- "corresponding to this command as described in Section 4.3.1, “Commissionable" +
118
- "\n" +
119
- "Node Discovery”. The commissioning into a new Fabric completes when the Node successfully receives a " +
117
+ "corresponding to this command as described in Section 4.3.1, “Commissionable Node Discovery”. The " +
118
+ "commissioning into a new Fabric completes when the Node successfully receives a " +
120
119
  "CommissioningComplete command, see Section 5.5, “Commissioning Flows”." +
121
120
  "\n" +
122
121
  "The parameters for OpenCommissioningWindow command are as follows:" +
@@ -155,13 +154,13 @@ export const AdministratorCommissioning = Cluster(
155
154
  Field({
156
155
  name: "PakePasscodeVerifier", id: 0x1, type: "octstr", conformance: "M", constraint: "97",
157
156
 
158
- details: "This field shall specify an ephemeral PAKE passcode verifier (see Section 3.10, " +
159
- "“Password-Authenticated Key Exchange (PAKE)”) computed by the existing Administrator to be used for " +
160
- "this commissioning. The field is concatenation of two values (w0 || L) shall be " +
161
- "(CRYPTO_GROUP_SIZE_BYTES + CRYPTO_PUBLIC_KEY_SIZE_BYTES)-octets long as detailed in " +
162
- "Crypto_PAKEValues_Responder. It shall be derived from an ephemeral passcode (See PAKE). It shall be " +
163
- "deleted by the Node at the end of commissioning or expiration of the OpenCommissioningWindow " +
164
- "command, and shall be deleted by the existing Administrator after sending it to the Node(s).",
157
+ details: "This field shall specify an ephemeral PAKE passcode verifier (see Section 3.10, “Password- " +
158
+ "Authenticated Key Exchange (PAKE)”) computed by the existing Administrator to be used for this " +
159
+ "commissioning. The field is concatenation of two values (w0 || L) shall be (CRYPTO_GROUP_SIZE_BYTES " +
160
+ "+ CRYPTO_PUBLIC_KEY_SIZE_BYTES)-octets long as detailed in Crypto_PAKEValues_Responder. It shall be " +
161
+ "derived from an ephemeral passcode (See PAKE). It shall be deleted by the Node at the end of " +
162
+ "commissioning or expiration of the OpenCommissioningWindow command, and shall be deleted by the " +
163
+ "existing Administrator after sending it to the Node(s).",
165
164
 
166
165
  xref: { document: "core", section: "11.19.8.1.2" }
167
166
  }),
@@ -268,9 +267,8 @@ export const AdministratorCommissioning = Cluster(
268
267
  "specific status code of WindowNotOpen." +
269
268
  "\n" +
270
269
  "If the commissioning window was open and the fail-safe was armed when this command is received, the " +
271
- "device shall immediately expire the fail-safe and perform the cleanup steps outlined" +
272
- "\n" +
273
- "in Section 11.10.7.2.2, “Behavior on expiry of Fail-Safe timer”.",
270
+ "device shall immediately expire the fail-safe and perform the cleanup steps outlined in Section " +
271
+ "11.10.7.2.2, “Behavior on expiry of Fail-Safe timer”.",
274
272
 
275
273
  xref: { document: "core", section: "11.19.8.3" }
276
274
  }),
@@ -104,12 +104,12 @@ export const ApplicationLauncher = Cluster(
104
104
 
105
105
  details: "This field shall specify optional app-specific data to be sent to the app." +
106
106
  "\n" +
107
- "NOTE" +
107
+ "> [!NOTE]" +
108
108
  "\n" +
109
- "This format and meaning of this value is proprietary and outside the specification. It provides a " +
110
- "transition path for device makers that use other protocols (like DIAL) which allow for proprietary " +
111
- "data. Apps that are not yet Matter aware can be launched via Matter, while retaining the existing " +
112
- "ability to launch with proprietary data.",
109
+ "> This format and meaning of this value is proprietary and outside the specification. It provides a " +
110
+ " transition path for device makers that use other protocols (like DIAL) which allow for proprietary " +
111
+ " data. Apps that are not yet Matter aware can be launched via Matter, while retaining the existing " +
112
+ " ability to launch with proprietary data.",
113
113
 
114
114
  xref: { document: "cluster", section: "6.4.7.1.2" }
115
115
  })
@@ -158,9 +158,7 @@ export const ApplicationLauncher = Cluster(
158
158
  "constraints if any. The Status attribute shall be updated to ActiveHidden or Stopped, depending on " +
159
159
  "the action taken, on the Application Basic cluster of the Endpoint corresponding to the application " +
160
160
  "on which the action was taken. The Status attribute shall be updated on any other application whose " +
161
- "Status may have changed as a result of this command." +
162
- "\n" +
163
- "This command returns a Launcher Response.",
161
+ "Status may have changed as a result of this command. This command returns a Launcher Response.",
164
162
 
165
163
  xref: { document: "cluster", section: "6.4.7.3" }
166
164
  },
@@ -17,12 +17,9 @@ import {
17
17
  export const BallastConfiguration = Cluster(
18
18
  {
19
19
  name: "BallastConfiguration", id: 0x301, classification: "application", pics: "BC",
20
- details: "This cluster is used for configuring a lighting ballast." +
21
- "\n" +
22
- "NOTE Support for Ballast Configuration cluster is provisional.",
20
+ details: "This cluster is used for configuring a lighting ballast.",
23
21
  xref: { document: "cluster", section: "3.3" }
24
22
  },
25
-
26
23
  Attribute({ name: "ClusterRevision", id: 0xfffd, type: "ClusterRevision", default: 4 }),
27
24
 
28
25
  Attribute({
@@ -75,11 +72,10 @@ export const BallastConfiguration = Cluster(
75
72
  "(see Dimming Curve) when the Level Control Cluster’s CurrentLevel attribute equals to 254 (and the " +
76
73
  "On/Off Cluster’s OnOff attribute equals to TRUE)." +
77
74
  "\n" +
78
- "The value of this attribute shall be both less than or equal to PhysicalMaxLevel and greater than" +
79
- "\n" +
80
- "or equal to MinLevel. If an attempt is made to set this attribute to a level where these conditions " +
81
- "are not met, a response shall be returned with status code set to CONSTRAINT_ERROR, and the level " +
82
- "shall NOT be set.",
75
+ "The value of this attribute shall be both less than or equal to PhysicalMaxLevel and greater than or " +
76
+ "equal to MinLevel. If an attempt is made to set this attribute to a level where these conditions are " +
77
+ "not met, a response shall be returned with status code set to CONSTRAINT_ERROR, and the level shall " +
78
+ "NOT be set.",
83
79
 
84
80
  xref: { document: "cluster", section: "3.3.6.5" }
85
81
  }),
@@ -106,7 +102,7 @@ export const BallastConfiguration = Cluster(
106
102
  "configured light output of the lamps. A typical use for this attribute is to compensate for " +
107
103
  "reduction in efficiency over the lifetime of a lamp." +
108
104
  "\n" +
109
- "The light output is given by" +
105
+ "### The light output is given by" +
110
106
  "\n" +
111
107
  "actual light output = configured light output x BallastFactorAdjustment / 100%" +
112
108
  "\n" +
@@ -169,9 +165,7 @@ export const BallastConfiguration = Cluster(
169
165
  name: "LampAlarmMode", id: 0x34, type: "LampAlarmModeBitmap", access: "RW VM", conformance: "O",
170
166
  default: 0,
171
167
  details: "This attribute shall specify which attributes may cause an alarm notification to be generated. Ain " +
172
- "each bit position means that its associated attribute is able to generate an alarm." +
173
- "\n" +
174
- "NOTE All alarms are also logged in the alarm table – see Alarms cluster.",
168
+ "each bit position means that its associated attribute is able to generate an alarm.",
175
169
  xref: { document: "cluster", section: "3.3.6.13" }
176
170
  }),
177
171