@matter/node 0.13.0-alpha.0-20250405-7fc7db48 → 0.13.0-alpha.0-20250412-5fad64e7b

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 (215) hide show
  1. package/dist/cjs/behavior/cluster/ClusterBehavior.js +2 -2
  2. package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.d.ts.map +1 -1
  3. package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.js +12 -3
  4. package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.js.map +1 -1
  5. package/dist/cjs/behavior/state/validation/conformance-compiler.d.ts.map +1 -1
  6. package/dist/cjs/behavior/state/validation/conformance-compiler.js +3 -0
  7. package/dist/cjs/behavior/state/validation/conformance-compiler.js.map +1 -1
  8. package/dist/cjs/behavior/state/validation/conformance-util.d.ts.map +1 -1
  9. package/dist/cjs/behavior/state/validation/conformance-util.js +1 -1
  10. package/dist/cjs/behavior/state/validation/conformance-util.js.map +1 -1
  11. package/dist/cjs/behaviors/device-energy-management-mode/DeviceEnergyManagementModeBehavior.d.ts +9 -3
  12. package/dist/cjs/behaviors/device-energy-management-mode/DeviceEnergyManagementModeBehavior.d.ts.map +1 -1
  13. package/dist/cjs/behaviors/device-energy-management-mode/DeviceEnergyManagementModeBehavior.js +1 -1
  14. package/dist/cjs/behaviors/device-energy-management-mode/DeviceEnergyManagementModeBehavior.js.map +1 -1
  15. package/dist/cjs/behaviors/device-energy-management-mode/DeviceEnergyManagementModeInterface.d.ts +27 -0
  16. package/dist/cjs/behaviors/device-energy-management-mode/DeviceEnergyManagementModeInterface.d.ts.map +1 -0
  17. package/dist/cjs/behaviors/device-energy-management-mode/DeviceEnergyManagementModeInterface.js +22 -0
  18. package/dist/cjs/behaviors/device-energy-management-mode/DeviceEnergyManagementModeInterface.js.map +6 -0
  19. package/dist/cjs/behaviors/dishwasher-alarm/DishwasherAlarmBehavior.d.ts +9 -3
  20. package/dist/cjs/behaviors/dishwasher-alarm/DishwasherAlarmBehavior.d.ts.map +1 -1
  21. package/dist/cjs/behaviors/dishwasher-alarm/DishwasherAlarmBehavior.js +1 -1
  22. package/dist/cjs/behaviors/dishwasher-alarm/DishwasherAlarmBehavior.js.map +1 -1
  23. package/dist/cjs/behaviors/dishwasher-alarm/DishwasherAlarmInterface.d.ts +42 -0
  24. package/dist/cjs/behaviors/dishwasher-alarm/DishwasherAlarmInterface.d.ts.map +1 -0
  25. package/dist/cjs/behaviors/dishwasher-alarm/DishwasherAlarmInterface.js +22 -0
  26. package/dist/cjs/behaviors/dishwasher-alarm/DishwasherAlarmInterface.js.map +6 -0
  27. package/dist/cjs/behaviors/dishwasher-mode/DishwasherModeBehavior.d.ts +9 -3
  28. package/dist/cjs/behaviors/dishwasher-mode/DishwasherModeBehavior.d.ts.map +1 -1
  29. package/dist/cjs/behaviors/dishwasher-mode/DishwasherModeBehavior.js +1 -1
  30. package/dist/cjs/behaviors/dishwasher-mode/DishwasherModeBehavior.js.map +1 -1
  31. package/dist/cjs/behaviors/dishwasher-mode/DishwasherModeInterface.d.ts +27 -0
  32. package/dist/cjs/behaviors/dishwasher-mode/DishwasherModeInterface.d.ts.map +1 -0
  33. package/dist/cjs/behaviors/dishwasher-mode/DishwasherModeInterface.js +22 -0
  34. package/dist/cjs/behaviors/dishwasher-mode/DishwasherModeInterface.js.map +6 -0
  35. package/dist/cjs/behaviors/energy-evse-mode/EnergyEvseModeBehavior.d.ts +9 -3
  36. package/dist/cjs/behaviors/energy-evse-mode/EnergyEvseModeBehavior.d.ts.map +1 -1
  37. package/dist/cjs/behaviors/energy-evse-mode/EnergyEvseModeBehavior.js +1 -1
  38. package/dist/cjs/behaviors/energy-evse-mode/EnergyEvseModeBehavior.js.map +1 -1
  39. package/dist/cjs/behaviors/energy-evse-mode/EnergyEvseModeInterface.d.ts +27 -0
  40. package/dist/cjs/behaviors/energy-evse-mode/EnergyEvseModeInterface.d.ts.map +1 -0
  41. package/dist/cjs/behaviors/energy-evse-mode/EnergyEvseModeInterface.js +22 -0
  42. package/dist/cjs/behaviors/energy-evse-mode/EnergyEvseModeInterface.js.map +6 -0
  43. package/dist/cjs/behaviors/laundry-washer-mode/LaundryWasherModeBehavior.d.ts +9 -3
  44. package/dist/cjs/behaviors/laundry-washer-mode/LaundryWasherModeBehavior.d.ts.map +1 -1
  45. package/dist/cjs/behaviors/laundry-washer-mode/LaundryWasherModeBehavior.js +1 -1
  46. package/dist/cjs/behaviors/laundry-washer-mode/LaundryWasherModeBehavior.js.map +1 -1
  47. package/dist/cjs/behaviors/laundry-washer-mode/LaundryWasherModeInterface.d.ts +27 -0
  48. package/dist/cjs/behaviors/laundry-washer-mode/LaundryWasherModeInterface.d.ts.map +1 -0
  49. package/dist/cjs/behaviors/laundry-washer-mode/LaundryWasherModeInterface.js +22 -0
  50. package/dist/cjs/behaviors/laundry-washer-mode/LaundryWasherModeInterface.js.map +6 -0
  51. package/dist/cjs/behaviors/oven-cavity-operational-state/OvenCavityOperationalStateInterface.d.ts +18 -2
  52. package/dist/cjs/behaviors/oven-cavity-operational-state/OvenCavityOperationalStateInterface.d.ts.map +1 -1
  53. package/dist/cjs/behaviors/oven-mode/OvenModeBehavior.d.ts +9 -3
  54. package/dist/cjs/behaviors/oven-mode/OvenModeBehavior.d.ts.map +1 -1
  55. package/dist/cjs/behaviors/oven-mode/OvenModeBehavior.js +1 -1
  56. package/dist/cjs/behaviors/oven-mode/OvenModeBehavior.js.map +1 -1
  57. package/dist/cjs/behaviors/oven-mode/OvenModeInterface.d.ts +27 -0
  58. package/dist/cjs/behaviors/oven-mode/OvenModeInterface.d.ts.map +1 -0
  59. package/dist/cjs/behaviors/oven-mode/OvenModeInterface.js +22 -0
  60. package/dist/cjs/behaviors/oven-mode/OvenModeInterface.js.map +6 -0
  61. package/dist/cjs/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeBehavior.d.ts +9 -3
  62. package/dist/cjs/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeBehavior.d.ts.map +1 -1
  63. package/dist/cjs/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeBehavior.js +1 -1
  64. package/dist/cjs/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeBehavior.js.map +1 -1
  65. package/dist/cjs/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeInterface.d.ts +27 -0
  66. package/dist/cjs/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeInterface.d.ts.map +1 -0
  67. package/dist/cjs/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeInterface.js +22 -0
  68. package/dist/cjs/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeInterface.js.map +6 -0
  69. package/dist/cjs/behaviors/rvc-clean-mode/RvcCleanModeBehavior.d.ts +9 -3
  70. package/dist/cjs/behaviors/rvc-clean-mode/RvcCleanModeBehavior.d.ts.map +1 -1
  71. package/dist/cjs/behaviors/rvc-clean-mode/RvcCleanModeBehavior.js +1 -1
  72. package/dist/cjs/behaviors/rvc-clean-mode/RvcCleanModeBehavior.js.map +1 -1
  73. package/dist/cjs/behaviors/rvc-clean-mode/RvcCleanModeInterface.d.ts +27 -0
  74. package/dist/cjs/behaviors/rvc-clean-mode/RvcCleanModeInterface.d.ts.map +1 -0
  75. package/dist/cjs/behaviors/rvc-clean-mode/RvcCleanModeInterface.js +22 -0
  76. package/dist/cjs/behaviors/rvc-clean-mode/RvcCleanModeInterface.js.map +6 -0
  77. package/dist/cjs/behaviors/rvc-operational-state/RvcOperationalStateInterface.d.ts +8 -0
  78. package/dist/cjs/behaviors/rvc-operational-state/RvcOperationalStateInterface.d.ts.map +1 -1
  79. package/dist/cjs/behaviors/rvc-run-mode/RvcRunModeBehavior.d.ts +9 -3
  80. package/dist/cjs/behaviors/rvc-run-mode/RvcRunModeBehavior.d.ts.map +1 -1
  81. package/dist/cjs/behaviors/rvc-run-mode/RvcRunModeBehavior.js +1 -1
  82. package/dist/cjs/behaviors/rvc-run-mode/RvcRunModeBehavior.js.map +1 -1
  83. package/dist/cjs/behaviors/rvc-run-mode/RvcRunModeInterface.d.ts +27 -0
  84. package/dist/cjs/behaviors/rvc-run-mode/RvcRunModeInterface.d.ts.map +1 -0
  85. package/dist/cjs/behaviors/rvc-run-mode/RvcRunModeInterface.js +22 -0
  86. package/dist/cjs/behaviors/rvc-run-mode/RvcRunModeInterface.js.map +6 -0
  87. package/dist/cjs/behaviors/water-heater-mode/WaterHeaterModeBehavior.d.ts +9 -3
  88. package/dist/cjs/behaviors/water-heater-mode/WaterHeaterModeBehavior.d.ts.map +1 -1
  89. package/dist/cjs/behaviors/water-heater-mode/WaterHeaterModeBehavior.js +1 -1
  90. package/dist/cjs/behaviors/water-heater-mode/WaterHeaterModeBehavior.js.map +1 -1
  91. package/dist/cjs/behaviors/water-heater-mode/WaterHeaterModeInterface.d.ts +27 -0
  92. package/dist/cjs/behaviors/water-heater-mode/WaterHeaterModeInterface.d.ts.map +1 -0
  93. package/dist/cjs/behaviors/water-heater-mode/WaterHeaterModeInterface.js +22 -0
  94. package/dist/cjs/behaviors/water-heater-mode/WaterHeaterModeInterface.js.map +6 -0
  95. package/dist/esm/behavior/cluster/ClusterBehavior.js +2 -2
  96. package/dist/esm/behavior/cluster/ClusterBehaviorUtil.d.ts.map +1 -1
  97. package/dist/esm/behavior/cluster/ClusterBehaviorUtil.js +13 -3
  98. package/dist/esm/behavior/cluster/ClusterBehaviorUtil.js.map +1 -1
  99. package/dist/esm/behavior/state/validation/conformance-compiler.d.ts.map +1 -1
  100. package/dist/esm/behavior/state/validation/conformance-compiler.js +3 -0
  101. package/dist/esm/behavior/state/validation/conformance-compiler.js.map +1 -1
  102. package/dist/esm/behavior/state/validation/conformance-util.d.ts.map +1 -1
  103. package/dist/esm/behavior/state/validation/conformance-util.js +1 -1
  104. package/dist/esm/behavior/state/validation/conformance-util.js.map +1 -1
  105. package/dist/esm/behaviors/device-energy-management-mode/DeviceEnergyManagementModeBehavior.d.ts +9 -3
  106. package/dist/esm/behaviors/device-energy-management-mode/DeviceEnergyManagementModeBehavior.d.ts.map +1 -1
  107. package/dist/esm/behaviors/device-energy-management-mode/DeviceEnergyManagementModeBehavior.js +1 -1
  108. package/dist/esm/behaviors/device-energy-management-mode/DeviceEnergyManagementModeBehavior.js.map +1 -1
  109. package/dist/esm/behaviors/device-energy-management-mode/DeviceEnergyManagementModeInterface.d.ts +27 -0
  110. package/dist/esm/behaviors/device-energy-management-mode/DeviceEnergyManagementModeInterface.d.ts.map +1 -0
  111. package/dist/esm/behaviors/device-energy-management-mode/DeviceEnergyManagementModeInterface.js +6 -0
  112. package/dist/esm/behaviors/device-energy-management-mode/DeviceEnergyManagementModeInterface.js.map +6 -0
  113. package/dist/esm/behaviors/dishwasher-alarm/DishwasherAlarmBehavior.d.ts +9 -3
  114. package/dist/esm/behaviors/dishwasher-alarm/DishwasherAlarmBehavior.d.ts.map +1 -1
  115. package/dist/esm/behaviors/dishwasher-alarm/DishwasherAlarmBehavior.js +1 -1
  116. package/dist/esm/behaviors/dishwasher-alarm/DishwasherAlarmBehavior.js.map +1 -1
  117. package/dist/esm/behaviors/dishwasher-alarm/DishwasherAlarmInterface.d.ts +42 -0
  118. package/dist/esm/behaviors/dishwasher-alarm/DishwasherAlarmInterface.d.ts.map +1 -0
  119. package/dist/esm/behaviors/dishwasher-alarm/DishwasherAlarmInterface.js +6 -0
  120. package/dist/esm/behaviors/dishwasher-alarm/DishwasherAlarmInterface.js.map +6 -0
  121. package/dist/esm/behaviors/dishwasher-mode/DishwasherModeBehavior.d.ts +9 -3
  122. package/dist/esm/behaviors/dishwasher-mode/DishwasherModeBehavior.d.ts.map +1 -1
  123. package/dist/esm/behaviors/dishwasher-mode/DishwasherModeBehavior.js +1 -1
  124. package/dist/esm/behaviors/dishwasher-mode/DishwasherModeBehavior.js.map +1 -1
  125. package/dist/esm/behaviors/dishwasher-mode/DishwasherModeInterface.d.ts +27 -0
  126. package/dist/esm/behaviors/dishwasher-mode/DishwasherModeInterface.d.ts.map +1 -0
  127. package/dist/esm/behaviors/dishwasher-mode/DishwasherModeInterface.js +6 -0
  128. package/dist/esm/behaviors/dishwasher-mode/DishwasherModeInterface.js.map +6 -0
  129. package/dist/esm/behaviors/energy-evse-mode/EnergyEvseModeBehavior.d.ts +9 -3
  130. package/dist/esm/behaviors/energy-evse-mode/EnergyEvseModeBehavior.d.ts.map +1 -1
  131. package/dist/esm/behaviors/energy-evse-mode/EnergyEvseModeBehavior.js +1 -1
  132. package/dist/esm/behaviors/energy-evse-mode/EnergyEvseModeBehavior.js.map +1 -1
  133. package/dist/esm/behaviors/energy-evse-mode/EnergyEvseModeInterface.d.ts +27 -0
  134. package/dist/esm/behaviors/energy-evse-mode/EnergyEvseModeInterface.d.ts.map +1 -0
  135. package/dist/esm/behaviors/energy-evse-mode/EnergyEvseModeInterface.js +6 -0
  136. package/dist/esm/behaviors/energy-evse-mode/EnergyEvseModeInterface.js.map +6 -0
  137. package/dist/esm/behaviors/laundry-washer-mode/LaundryWasherModeBehavior.d.ts +9 -3
  138. package/dist/esm/behaviors/laundry-washer-mode/LaundryWasherModeBehavior.d.ts.map +1 -1
  139. package/dist/esm/behaviors/laundry-washer-mode/LaundryWasherModeBehavior.js +1 -1
  140. package/dist/esm/behaviors/laundry-washer-mode/LaundryWasherModeBehavior.js.map +1 -1
  141. package/dist/esm/behaviors/laundry-washer-mode/LaundryWasherModeInterface.d.ts +27 -0
  142. package/dist/esm/behaviors/laundry-washer-mode/LaundryWasherModeInterface.d.ts.map +1 -0
  143. package/dist/esm/behaviors/laundry-washer-mode/LaundryWasherModeInterface.js +6 -0
  144. package/dist/esm/behaviors/laundry-washer-mode/LaundryWasherModeInterface.js.map +6 -0
  145. package/dist/esm/behaviors/oven-cavity-operational-state/OvenCavityOperationalStateInterface.d.ts +18 -2
  146. package/dist/esm/behaviors/oven-cavity-operational-state/OvenCavityOperationalStateInterface.d.ts.map +1 -1
  147. package/dist/esm/behaviors/oven-mode/OvenModeBehavior.d.ts +9 -3
  148. package/dist/esm/behaviors/oven-mode/OvenModeBehavior.d.ts.map +1 -1
  149. package/dist/esm/behaviors/oven-mode/OvenModeBehavior.js +1 -1
  150. package/dist/esm/behaviors/oven-mode/OvenModeBehavior.js.map +1 -1
  151. package/dist/esm/behaviors/oven-mode/OvenModeInterface.d.ts +27 -0
  152. package/dist/esm/behaviors/oven-mode/OvenModeInterface.d.ts.map +1 -0
  153. package/dist/esm/behaviors/oven-mode/OvenModeInterface.js +6 -0
  154. package/dist/esm/behaviors/oven-mode/OvenModeInterface.js.map +6 -0
  155. package/dist/esm/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeBehavior.d.ts +9 -3
  156. package/dist/esm/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeBehavior.d.ts.map +1 -1
  157. package/dist/esm/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeBehavior.js +1 -1
  158. package/dist/esm/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeBehavior.js.map +1 -1
  159. package/dist/esm/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeInterface.d.ts +27 -0
  160. package/dist/esm/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeInterface.d.ts.map +1 -0
  161. package/dist/esm/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeInterface.js +6 -0
  162. package/dist/esm/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeInterface.js.map +6 -0
  163. package/dist/esm/behaviors/rvc-clean-mode/RvcCleanModeBehavior.d.ts +9 -3
  164. package/dist/esm/behaviors/rvc-clean-mode/RvcCleanModeBehavior.d.ts.map +1 -1
  165. package/dist/esm/behaviors/rvc-clean-mode/RvcCleanModeBehavior.js +1 -1
  166. package/dist/esm/behaviors/rvc-clean-mode/RvcCleanModeBehavior.js.map +1 -1
  167. package/dist/esm/behaviors/rvc-clean-mode/RvcCleanModeInterface.d.ts +27 -0
  168. package/dist/esm/behaviors/rvc-clean-mode/RvcCleanModeInterface.d.ts.map +1 -0
  169. package/dist/esm/behaviors/rvc-clean-mode/RvcCleanModeInterface.js +6 -0
  170. package/dist/esm/behaviors/rvc-clean-mode/RvcCleanModeInterface.js.map +6 -0
  171. package/dist/esm/behaviors/rvc-operational-state/RvcOperationalStateInterface.d.ts +8 -0
  172. package/dist/esm/behaviors/rvc-operational-state/RvcOperationalStateInterface.d.ts.map +1 -1
  173. package/dist/esm/behaviors/rvc-run-mode/RvcRunModeBehavior.d.ts +9 -3
  174. package/dist/esm/behaviors/rvc-run-mode/RvcRunModeBehavior.d.ts.map +1 -1
  175. package/dist/esm/behaviors/rvc-run-mode/RvcRunModeBehavior.js +1 -1
  176. package/dist/esm/behaviors/rvc-run-mode/RvcRunModeBehavior.js.map +1 -1
  177. package/dist/esm/behaviors/rvc-run-mode/RvcRunModeInterface.d.ts +27 -0
  178. package/dist/esm/behaviors/rvc-run-mode/RvcRunModeInterface.d.ts.map +1 -0
  179. package/dist/esm/behaviors/rvc-run-mode/RvcRunModeInterface.js +6 -0
  180. package/dist/esm/behaviors/rvc-run-mode/RvcRunModeInterface.js.map +6 -0
  181. package/dist/esm/behaviors/water-heater-mode/WaterHeaterModeBehavior.d.ts +9 -3
  182. package/dist/esm/behaviors/water-heater-mode/WaterHeaterModeBehavior.d.ts.map +1 -1
  183. package/dist/esm/behaviors/water-heater-mode/WaterHeaterModeBehavior.js +1 -1
  184. package/dist/esm/behaviors/water-heater-mode/WaterHeaterModeBehavior.js.map +1 -1
  185. package/dist/esm/behaviors/water-heater-mode/WaterHeaterModeInterface.d.ts +27 -0
  186. package/dist/esm/behaviors/water-heater-mode/WaterHeaterModeInterface.d.ts.map +1 -0
  187. package/dist/esm/behaviors/water-heater-mode/WaterHeaterModeInterface.js +6 -0
  188. package/dist/esm/behaviors/water-heater-mode/WaterHeaterModeInterface.js.map +6 -0
  189. package/package.json +7 -7
  190. package/src/behavior/cluster/ClusterBehavior.ts +2 -2
  191. package/src/behavior/cluster/ClusterBehaviorUtil.ts +24 -4
  192. package/src/behavior/state/validation/conformance-compiler.ts +5 -0
  193. package/src/behavior/state/validation/conformance-util.ts +1 -4
  194. package/src/behaviors/device-energy-management-mode/DeviceEnergyManagementModeBehavior.ts +4 -1
  195. package/src/behaviors/device-energy-management-mode/DeviceEnergyManagementModeInterface.ts +27 -0
  196. package/src/behaviors/dishwasher-alarm/DishwasherAlarmBehavior.ts +4 -1
  197. package/src/behaviors/dishwasher-alarm/DishwasherAlarmInterface.ts +38 -0
  198. package/src/behaviors/dishwasher-mode/DishwasherModeBehavior.ts +4 -1
  199. package/src/behaviors/dishwasher-mode/DishwasherModeInterface.ts +25 -0
  200. package/src/behaviors/energy-evse-mode/EnergyEvseModeBehavior.ts +4 -1
  201. package/src/behaviors/energy-evse-mode/EnergyEvseModeInterface.ts +25 -0
  202. package/src/behaviors/laundry-washer-mode/LaundryWasherModeBehavior.ts +4 -1
  203. package/src/behaviors/laundry-washer-mode/LaundryWasherModeInterface.ts +25 -0
  204. package/src/behaviors/oven-cavity-operational-state/OvenCavityOperationalStateInterface.ts +20 -2
  205. package/src/behaviors/oven-mode/OvenModeBehavior.ts +4 -1
  206. package/src/behaviors/oven-mode/OvenModeInterface.ts +25 -0
  207. package/src/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeBehavior.ts +4 -0
  208. package/src/behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeInterface.ts +27 -0
  209. package/src/behaviors/rvc-clean-mode/RvcCleanModeBehavior.ts +4 -1
  210. package/src/behaviors/rvc-clean-mode/RvcCleanModeInterface.ts +25 -0
  211. package/src/behaviors/rvc-operational-state/RvcOperationalStateInterface.ts +10 -0
  212. package/src/behaviors/rvc-run-mode/RvcRunModeBehavior.ts +4 -1
  213. package/src/behaviors/rvc-run-mode/RvcRunModeInterface.ts +25 -0
  214. package/src/behaviors/water-heater-mode/WaterHeaterModeBehavior.ts +4 -1
  215. package/src/behaviors/water-heater-mode/WaterHeaterModeInterface.ts +25 -0
@@ -1 +1 @@
1
- {"version":3,"file":"RvcOperationalStateInterface.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/rvc-operational-state/RvcOperationalStateInterface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,yBAAiB,4BAA4B,CAAC;IAC1C,UAAiB,IAAI;QACjB;;;;;;;;;;;;;;;;;;;WAmBG;QACH,MAAM,IAAI,YAAY,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;KAC1E;CACJ;AAED,MAAM,MAAM,4BAA4B,GAAG;IAAE,UAAU,EAAE,CAAC;QAAE,KAAK,EAAE,EAAE,CAAC;QAAC,OAAO,EAAE,4BAA4B,CAAC,IAAI,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"RvcOperationalStateInterface.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/rvc-operational-state/RvcOperationalStateInterface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,yBAAiB,4BAA4B,CAAC;IAC1C,UAAiB,IAAI;QACjB;;WAEG;QACH,KAAK,IAAI,YAAY,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;QAEtE;;WAEG;QACH,MAAM,IAAI,YAAY,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;QAEvE;;;;;;;;;;;;;;;;;;;WAmBG;QACH,MAAM,IAAI,YAAY,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;KAC1E;CACJ;AAED,MAAM,MAAM,4BAA4B,GAAG;IAAE,UAAU,EAAE,CAAC;QAAE,KAAK,EAAE,EAAE,CAAC;QAAC,OAAO,EAAE,4BAA4B,CAAC,IAAI,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC"}
@@ -6,12 +6,18 @@
6
6
  /*** THIS FILE IS GENERATED, DO NOT EDIT ***/
7
7
  import { RvcRunMode } from "#clusters/rvc-run-mode";
8
8
  import { ClusterBehavior } from "../../behavior/cluster/ClusterBehavior.js";
9
+ import { RvcRunModeInterface } from "./RvcRunModeInterface.js";
9
10
  /**
10
11
  * RvcRunModeBehavior is the base class for objects that support interaction with {@link RvcRunMode.Cluster}.
11
12
  */
12
- export declare const RvcRunModeBehavior: ClusterBehavior.Type<RvcRunMode.Cluster, typeof ClusterBehavior, {
13
- components: never[];
14
- }>;
13
+ export declare const RvcRunModeBehavior: ClusterBehavior.Type<RvcRunMode.Cluster, ClusterBehavior.Type<import("@matter/types").ClusterType.Of<{
14
+ readonly id: 0;
15
+ readonly revision: 0;
16
+ readonly name: "Unknown";
17
+ readonly attributes: {};
18
+ readonly commands: {};
19
+ readonly events: {};
20
+ }>, typeof ClusterBehavior, RvcRunModeInterface>, RvcRunModeInterface>;
15
21
  type RvcRunModeBehaviorType = InstanceType<typeof RvcRunModeBehavior>;
16
22
  export interface RvcRunModeBehavior extends RvcRunModeBehaviorType {
17
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RvcRunModeBehavior.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/rvc-run-mode/RvcRunModeBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,kBAAkB;;EAA0C,CAAC;AAE1E,KAAK,sBAAsB,GAAG,YAAY,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACtE,MAAM,WAAW,kBAAmB,SAAQ,sBAAsB;CAAG;AACrE,KAAK,SAAS,GAAG,YAAY,CAAC,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC/D,yBAAiB,kBAAkB,CAAC;IAAE,UAAiB,KAAM,SAAQ,SAAS;KAAG;CAAE"}
1
+ {"version":3,"file":"RvcRunModeBehavior.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/rvc-run-mode/RvcRunModeBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;sEAEH,CAAC;AAE7B,KAAK,sBAAsB,GAAG,YAAY,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACtE,MAAM,WAAW,kBAAmB,SAAQ,sBAAsB;CAAG;AACrE,KAAK,SAAS,GAAG,YAAY,CAAC,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC/D,yBAAiB,kBAAkB,CAAC;IAAE,UAAiB,KAAM,SAAQ,SAAS;KAAG;CAAE"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { RvcRunMode } from "#clusters/rvc-run-mode";
7
7
  import { ClusterBehavior } from "../../behavior/cluster/ClusterBehavior.js";
8
- const RvcRunModeBehavior = ClusterBehavior.for(RvcRunMode.Cluster);
8
+ const RvcRunModeBehavior = ClusterBehavior.withInterface().for(RvcRunMode.Cluster);
9
9
  export {
10
10
  RvcRunModeBehavior
11
11
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/behaviors/rvc-run-mode/RvcRunModeBehavior.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAKzB,MAAM,qBAAqB,gBAAgB,IAAI,WAAW,OAAO;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAMzB,MAAM,qBAAqB,gBAC7B,cAAmC,EACnC,IAAI,WAAW,OAAO;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /*** THIS FILE IS GENERATED, DO NOT EDIT ***/
7
+ import { MaybePromise } from "#general";
8
+ import { ModeBase } from "#clusters/mode-base";
9
+ export declare namespace RvcRunModeInterface {
10
+ interface Base {
11
+ /**
12
+ * This command is used to change device modes.
13
+ *
14
+ * On receipt of this command the device shall respond with a ChangeToModeResponse command.
15
+ *
16
+ * @see {@link MatterSpecification.v14.Cluster} § 1.10.7.1
17
+ */
18
+ changeToMode(request: ModeBase.ChangeToModeRequest): MaybePromise<ModeBase.ChangeToModeResponse>;
19
+ }
20
+ }
21
+ export type RvcRunModeInterface = {
22
+ components: [{
23
+ flags: {};
24
+ methods: RvcRunModeInterface.Base;
25
+ }];
26
+ };
27
+ //# sourceMappingURL=RvcRunModeInterface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RvcRunModeInterface.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/rvc-run-mode/RvcRunModeInterface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,yBAAiB,mBAAmB,CAAC;IACjC,UAAiB,IAAI;QACjB;;;;;;WAMG;QACH,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,GAAG,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;KACpG;CACJ;AAED,MAAM,MAAM,mBAAmB,GAAG;IAAE,UAAU,EAAE,CAAC;QAAE,KAAK,EAAE,EAAE,CAAC;QAAC,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ //# sourceMappingURL=RvcRunModeInterface.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/behaviors/rvc-run-mode/RvcRunModeInterface.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;",
5
+ "names": []
6
+ }
@@ -6,12 +6,18 @@
6
6
  /*** THIS FILE IS GENERATED, DO NOT EDIT ***/
7
7
  import { WaterHeaterMode } from "#clusters/water-heater-mode";
8
8
  import { ClusterBehavior } from "../../behavior/cluster/ClusterBehavior.js";
9
+ import { WaterHeaterModeInterface } from "./WaterHeaterModeInterface.js";
9
10
  /**
10
11
  * WaterHeaterModeBehavior is the base class for objects that support interaction with {@link WaterHeaterMode.Cluster}.
11
12
  */
12
- export declare const WaterHeaterModeBehavior: ClusterBehavior.Type<WaterHeaterMode.Cluster, typeof ClusterBehavior, {
13
- components: never[];
14
- }>;
13
+ export declare const WaterHeaterModeBehavior: ClusterBehavior.Type<WaterHeaterMode.Cluster, ClusterBehavior.Type<import("@matter/types").ClusterType.Of<{
14
+ readonly id: 0;
15
+ readonly revision: 0;
16
+ readonly name: "Unknown";
17
+ readonly attributes: {};
18
+ readonly commands: {};
19
+ readonly events: {};
20
+ }>, typeof ClusterBehavior, WaterHeaterModeInterface>, WaterHeaterModeInterface>;
15
21
  type WaterHeaterModeBehaviorType = InstanceType<typeof WaterHeaterModeBehavior>;
16
22
  export interface WaterHeaterModeBehavior extends WaterHeaterModeBehaviorType {
17
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WaterHeaterModeBehavior.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/water-heater-mode/WaterHeaterModeBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,uBAAuB;;EAA+C,CAAC;AAEpF,KAAK,2BAA2B,GAAG,YAAY,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAChF,MAAM,WAAW,uBAAwB,SAAQ,2BAA2B;CAAG;AAC/E,KAAK,SAAS,GAAG,YAAY,CAAC,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACpE,yBAAiB,uBAAuB,CAAC;IAAE,UAAiB,KAAM,SAAQ,SAAS;KAAG;CAAE"}
1
+ {"version":3,"file":"WaterHeaterModeBehavior.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/water-heater-mode/WaterHeaterModeBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;gFAEH,CAAC;AAElC,KAAK,2BAA2B,GAAG,YAAY,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAChF,MAAM,WAAW,uBAAwB,SAAQ,2BAA2B;CAAG;AAC/E,KAAK,SAAS,GAAG,YAAY,CAAC,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACpE,yBAAiB,uBAAuB,CAAC;IAAE,UAAiB,KAAM,SAAQ,SAAS;KAAG;CAAE"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { WaterHeaterMode } from "#clusters/water-heater-mode";
7
7
  import { ClusterBehavior } from "../../behavior/cluster/ClusterBehavior.js";
8
- const WaterHeaterModeBehavior = ClusterBehavior.for(WaterHeaterMode.Cluster);
8
+ const WaterHeaterModeBehavior = ClusterBehavior.withInterface().for(WaterHeaterMode.Cluster);
9
9
  export {
10
10
  WaterHeaterModeBehavior
11
11
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/behaviors/water-heater-mode/WaterHeaterModeBehavior.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAKzB,MAAM,0BAA0B,gBAAgB,IAAI,gBAAgB,OAAO;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAMzB,MAAM,0BAA0B,gBAClC,cAAwC,EACxC,IAAI,gBAAgB,OAAO;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /*** THIS FILE IS GENERATED, DO NOT EDIT ***/
7
+ import { MaybePromise } from "#general";
8
+ import { ModeBase } from "#clusters/mode-base";
9
+ export declare namespace WaterHeaterModeInterface {
10
+ interface Base {
11
+ /**
12
+ * This command is used to change device modes.
13
+ *
14
+ * On receipt of this command the device shall respond with a ChangeToModeResponse command.
15
+ *
16
+ * @see {@link MatterSpecification.v14.Cluster} § 1.10.7.1
17
+ */
18
+ changeToMode(request: ModeBase.ChangeToModeRequest): MaybePromise<ModeBase.ChangeToModeResponse>;
19
+ }
20
+ }
21
+ export type WaterHeaterModeInterface = {
22
+ components: [{
23
+ flags: {};
24
+ methods: WaterHeaterModeInterface.Base;
25
+ }];
26
+ };
27
+ //# sourceMappingURL=WaterHeaterModeInterface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaterHeaterModeInterface.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/water-heater-mode/WaterHeaterModeInterface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,6CAA6C;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,yBAAiB,wBAAwB,CAAC;IACtC,UAAiB,IAAI;QACjB;;;;;;WAMG;QACH,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,GAAG,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;KACpG;CACJ;AAED,MAAM,MAAM,wBAAwB,GAAG;IAAE,UAAU,EAAE,CAAC;QAAE,KAAK,EAAE,EAAE,CAAC;QAAC,OAAO,EAAE,wBAAwB,CAAC,IAAI,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ //# sourceMappingURL=WaterHeaterModeInterface.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/behaviors/water-heater-mode/WaterHeaterModeInterface.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;",
5
+ "names": []
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/node",
3
- "version": "0.13.0-alpha.0-20250405-7fc7db48",
3
+ "version": "0.13.0-alpha.0-20250412-5fad64e7b",
4
4
  "description": "API for building Matter nodes",
5
5
  "keywords": [
6
6
  "iot",
@@ -43,14 +43,14 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "@noble/curves": "^1.8.1",
46
- "@matter/general": "0.13.0-alpha.0-20250405-7fc7db48",
47
- "@matter/model": "0.13.0-alpha.0-20250405-7fc7db48",
48
- "@matter/types": "0.13.0-alpha.0-20250405-7fc7db48",
49
- "@matter/protocol": "0.13.0-alpha.0-20250405-7fc7db48"
46
+ "@matter/general": "0.13.0-alpha.0-20250412-5fad64e7b",
47
+ "@matter/model": "0.13.0-alpha.0-20250412-5fad64e7b",
48
+ "@matter/types": "0.13.0-alpha.0-20250412-5fad64e7b",
49
+ "@matter/protocol": "0.13.0-alpha.0-20250412-5fad64e7b"
50
50
  },
51
51
  "devDependencies": {
52
- "@matter/tools": "0.13.0-alpha.0-20250405-7fc7db48",
53
- "@matter/testing": "0.13.0-alpha.0-20250405-7fc7db48"
52
+ "@matter/tools": "0.13.0-alpha.0-20250412-5fad64e7b",
53
+ "@matter/testing": "0.13.0-alpha.0-20250412-5fad64e7b"
54
54
  },
55
55
  "files": [
56
56
  "dist/**/*",
@@ -187,7 +187,7 @@ export class ClusterBehavior extends Behavior {
187
187
  ): Exclude<This["state"][K], undefined> {
188
188
  if ((this.state as any)[attributeName] === undefined) {
189
189
  throw new ImplementationError(
190
- `To use this feature, please enable attribute ${String(attributeName)} by setting the value during initialization.`,
190
+ `To use this feature, please enable attribute ${String(attributeName)} by setting the value during initialization`,
191
191
  );
192
192
  }
193
193
  return (this.state as any)[attributeName];
@@ -196,7 +196,7 @@ export class ClusterBehavior extends Behavior {
196
196
  assertAttributeEnabled<This extends Behavior, K extends keyof This["state"]>(this: This, attributeName: K): void {
197
197
  if ((this.state as any)[attributeName] === undefined) {
198
198
  throw new ImplementationError(
199
- `To use this feature, please enable attribute ${String(attributeName)} by setting the value during initialization.`,
199
+ `To use this feature, please enable attribute ${String(attributeName)} by setting the value during initialization`,
200
200
  );
201
201
  }
202
202
  }
@@ -8,6 +8,7 @@ import { Events, OfflineEvent, OnlineEvent, QuietEvent } from "#behavior/Events.
8
8
  import { AsyncObservable, camelize, EventEmitter, GeneratedClass, ImplementationError, Observable } from "#general";
9
9
  import {
10
10
  ClusterModel,
11
+ Conformance,
11
12
  DefaultValue,
12
13
  ElementTag,
13
14
  FeatureMap,
@@ -177,17 +178,35 @@ function createDerivedState(
177
178
  // value from previous configurations as otherwise conformance may not pass
178
179
  const attrs = props[name];
179
180
  let propSchema: ValueModel | undefined;
181
+ let isConditional = false;
180
182
 
181
183
  // Determine whether the attribute applies
182
184
  for (const attr of attrs) {
183
- if (attr.effectiveConformance.isApplicable(featuresAvailable, featuresSupported)) {
184
- propSchema = attr;
185
- break;
185
+ const applicability = attr.effectiveConformance.applicabilityOf(featuresAvailable, featuresSupported);
186
+
187
+ // Inapplicable; ignore
188
+ if (!applicability) {
189
+ continue;
190
+ }
191
+
192
+ // Conditionally applicable; do not add default, do not remove default
193
+ if (applicability === Conformance.Applicability.Conditional) {
194
+ isConditional = true;
186
195
  }
196
+
197
+ // Unconditionally applicable; add new default
198
+ propSchema = attr;
199
+ break;
187
200
  }
188
201
 
189
- // If the attribute doesn't apply, erase any previous default
202
+ // If the attribute doesn't apply, erase any previous default unless conditionally applicable
190
203
  if (propSchema === undefined) {
204
+ // If conditional, retain incoming default
205
+ if (isConditional) {
206
+ return;
207
+ }
208
+
209
+ // Inapplicable; ensure no default is present
191
210
  if (oldDefaults[name] !== undefined) {
192
211
  // Save the default value so we can recreate it if a future derivative re-enables this element
193
212
  if (!knownDefaults) {
@@ -200,6 +219,7 @@ function createDerivedState(
200
219
  // Now clear the default value
201
220
  defaults[name] = undefined;
202
221
  }
222
+
203
223
  continue;
204
224
  }
205
225
 
@@ -98,6 +98,11 @@ export function astToFunction(schema: ValueModel, supervisor: RootSupervisor): V
98
98
  validator = disallowValue;
99
99
  break;
100
100
 
101
+ case Code.Value:
102
+ // Passes validation if the field is defined
103
+ validator = compiledNode.value === undefined ? disallowValue : requireValue;
104
+ break;
105
+
101
106
  case Code.Optional:
102
107
  // No conformance validation required
103
108
  break;
@@ -76,10 +76,7 @@ export function evaluateNode(node: DynamicNode, value: Val, location: Validation
76
76
  export function asConformance<T extends DynamicNode>(node: T) {
77
77
  if (node.code === Code.Value) {
78
78
  return {
79
- code:
80
- node.value === undefined || node.value === null || node.value === false
81
- ? Code.Nonconformant
82
- : Code.Conformant,
79
+ code: node.value === undefined ? Code.Nonconformant : Code.Conformant,
83
80
  } as const;
84
81
  } else {
85
82
  return node;
@@ -8,12 +8,15 @@
8
8
 
9
9
  import { DeviceEnergyManagementMode } from "#clusters/device-energy-management-mode";
10
10
  import { ClusterBehavior } from "../../behavior/cluster/ClusterBehavior.js";
11
+ import { DeviceEnergyManagementModeInterface } from "./DeviceEnergyManagementModeInterface.js";
11
12
 
12
13
  /**
13
14
  * DeviceEnergyManagementModeBehavior is the base class for objects that support interaction with
14
15
  * {@link DeviceEnergyManagementMode.Cluster}.
15
16
  */
16
- export const DeviceEnergyManagementModeBehavior = ClusterBehavior.for(DeviceEnergyManagementMode.Cluster);
17
+ export const DeviceEnergyManagementModeBehavior = ClusterBehavior
18
+ .withInterface<DeviceEnergyManagementModeInterface>()
19
+ .for(DeviceEnergyManagementMode.Cluster);
17
20
 
18
21
  type DeviceEnergyManagementModeBehaviorType = InstanceType<typeof DeviceEnergyManagementModeBehavior>;
19
22
  export interface DeviceEnergyManagementModeBehavior extends DeviceEnergyManagementModeBehaviorType {}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /*** THIS FILE IS GENERATED, DO NOT EDIT ***/
8
+
9
+ import { MaybePromise } from "#general";
10
+ import { ModeBase } from "#clusters/mode-base";
11
+
12
+ export namespace DeviceEnergyManagementModeInterface {
13
+ export interface Base {
14
+ /**
15
+ * This command is used to change device modes.
16
+ *
17
+ * On receipt of this command the device shall respond with a ChangeToModeResponse command.
18
+ *
19
+ * @see {@link MatterSpecification.v14.Cluster} § 1.10.7.1
20
+ */
21
+ changeToMode(request: ModeBase.ChangeToModeRequest): MaybePromise<ModeBase.ChangeToModeResponse>;
22
+ }
23
+ }
24
+
25
+ export type DeviceEnergyManagementModeInterface = {
26
+ components: [{ flags: {}, methods: DeviceEnergyManagementModeInterface.Base }]
27
+ };
@@ -8,6 +8,7 @@
8
8
 
9
9
  import { DishwasherAlarm } from "#clusters/dishwasher-alarm";
10
10
  import { ClusterBehavior } from "../../behavior/cluster/ClusterBehavior.js";
11
+ import { DishwasherAlarmInterface } from "./DishwasherAlarmInterface.js";
11
12
 
12
13
  /**
13
14
  * DishwasherAlarmBehavior is the base class for objects that support interaction with {@link DishwasherAlarm.Cluster}.
@@ -15,7 +16,9 @@ import { ClusterBehavior } from "../../behavior/cluster/ClusterBehavior.js";
15
16
  * This class does not have optional features of DishwasherAlarm.Cluster enabled. You can enable additional features
16
17
  * using DishwasherAlarmBehavior.with.
17
18
  */
18
- export const DishwasherAlarmBehavior = ClusterBehavior.for(DishwasherAlarm.Cluster);
19
+ export const DishwasherAlarmBehavior = ClusterBehavior
20
+ .withInterface<DishwasherAlarmInterface>()
21
+ .for(DishwasherAlarm.Cluster);
19
22
 
20
23
  type DishwasherAlarmBehaviorType = InstanceType<typeof DishwasherAlarmBehavior>;
21
24
  export interface DishwasherAlarmBehavior extends DishwasherAlarmBehaviorType {}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /*** THIS FILE IS GENERATED, DO NOT EDIT ***/
8
+
9
+ import { MaybePromise } from "#general";
10
+ import { DishwasherAlarm } from "#clusters/dishwasher-alarm";
11
+
12
+ export namespace DishwasherAlarmInterface {
13
+ export interface Base {
14
+ /**
15
+ * This command allows a client to request that an alarm be enabled or suppressed at the server.
16
+ *
17
+ * @see {@link MatterSpecification.v14.Cluster} § 1.15.7.2
18
+ */
19
+ modifyEnabledAlarms(request: DishwasherAlarm.ModifyEnabledAlarmsRequest): MaybePromise;
20
+ }
21
+
22
+ export interface Reset {
23
+ /**
24
+ * This command resets active and latched alarms (if possible). Any generated Notify event shall contain fields
25
+ * that represent the state of the server after the command has been processed.
26
+ *
27
+ * @see {@link MatterSpecification.v14.Cluster} § 1.15.7.1
28
+ */
29
+ reset(request: DishwasherAlarm.ResetRequest): MaybePromise;
30
+ }
31
+ }
32
+
33
+ export type DishwasherAlarmInterface = {
34
+ components: [
35
+ { flags: {}, methods: DishwasherAlarmInterface.Base },
36
+ { flags: { reset: true }, methods: DishwasherAlarmInterface.Reset }
37
+ ]
38
+ };
@@ -8,11 +8,14 @@
8
8
 
9
9
  import { DishwasherMode } from "#clusters/dishwasher-mode";
10
10
  import { ClusterBehavior } from "../../behavior/cluster/ClusterBehavior.js";
11
+ import { DishwasherModeInterface } from "./DishwasherModeInterface.js";
11
12
 
12
13
  /**
13
14
  * DishwasherModeBehavior is the base class for objects that support interaction with {@link DishwasherMode.Cluster}.
14
15
  */
15
- export const DishwasherModeBehavior = ClusterBehavior.for(DishwasherMode.Cluster);
16
+ export const DishwasherModeBehavior = ClusterBehavior
17
+ .withInterface<DishwasherModeInterface>()
18
+ .for(DishwasherMode.Cluster);
16
19
 
17
20
  type DishwasherModeBehaviorType = InstanceType<typeof DishwasherModeBehavior>;
18
21
  export interface DishwasherModeBehavior extends DishwasherModeBehaviorType {}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /*** THIS FILE IS GENERATED, DO NOT EDIT ***/
8
+
9
+ import { MaybePromise } from "#general";
10
+ import { ModeBase } from "#clusters/mode-base";
11
+
12
+ export namespace DishwasherModeInterface {
13
+ export interface Base {
14
+ /**
15
+ * This command is used to change device modes.
16
+ *
17
+ * On receipt of this command the device shall respond with a ChangeToModeResponse command.
18
+ *
19
+ * @see {@link MatterSpecification.v14.Cluster} § 1.10.7.1
20
+ */
21
+ changeToMode(request: ModeBase.ChangeToModeRequest): MaybePromise<ModeBase.ChangeToModeResponse>;
22
+ }
23
+ }
24
+
25
+ export type DishwasherModeInterface = { components: [{ flags: {}, methods: DishwasherModeInterface.Base }] };
@@ -8,11 +8,14 @@
8
8
 
9
9
  import { EnergyEvseMode } from "#clusters/energy-evse-mode";
10
10
  import { ClusterBehavior } from "../../behavior/cluster/ClusterBehavior.js";
11
+ import { EnergyEvseModeInterface } from "./EnergyEvseModeInterface.js";
11
12
 
12
13
  /**
13
14
  * EnergyEvseModeBehavior is the base class for objects that support interaction with {@link EnergyEvseMode.Cluster}.
14
15
  */
15
- export const EnergyEvseModeBehavior = ClusterBehavior.for(EnergyEvseMode.Cluster);
16
+ export const EnergyEvseModeBehavior = ClusterBehavior
17
+ .withInterface<EnergyEvseModeInterface>()
18
+ .for(EnergyEvseMode.Cluster);
16
19
 
17
20
  type EnergyEvseModeBehaviorType = InstanceType<typeof EnergyEvseModeBehavior>;
18
21
  export interface EnergyEvseModeBehavior extends EnergyEvseModeBehaviorType {}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /*** THIS FILE IS GENERATED, DO NOT EDIT ***/
8
+
9
+ import { MaybePromise } from "#general";
10
+ import { ModeBase } from "#clusters/mode-base";
11
+
12
+ export namespace EnergyEvseModeInterface {
13
+ export interface Base {
14
+ /**
15
+ * This command is used to change device modes.
16
+ *
17
+ * On receipt of this command the device shall respond with a ChangeToModeResponse command.
18
+ *
19
+ * @see {@link MatterSpecification.v14.Cluster} § 1.10.7.1
20
+ */
21
+ changeToMode(request: ModeBase.ChangeToModeRequest): MaybePromise<ModeBase.ChangeToModeResponse>;
22
+ }
23
+ }
24
+
25
+ export type EnergyEvseModeInterface = { components: [{ flags: {}, methods: EnergyEvseModeInterface.Base }] };
@@ -8,12 +8,15 @@
8
8
 
9
9
  import { LaundryWasherMode } from "#clusters/laundry-washer-mode";
10
10
  import { ClusterBehavior } from "../../behavior/cluster/ClusterBehavior.js";
11
+ import { LaundryWasherModeInterface } from "./LaundryWasherModeInterface.js";
11
12
 
12
13
  /**
13
14
  * LaundryWasherModeBehavior is the base class for objects that support interaction with
14
15
  * {@link LaundryWasherMode.Cluster}.
15
16
  */
16
- export const LaundryWasherModeBehavior = ClusterBehavior.for(LaundryWasherMode.Cluster);
17
+ export const LaundryWasherModeBehavior = ClusterBehavior
18
+ .withInterface<LaundryWasherModeInterface>()
19
+ .for(LaundryWasherMode.Cluster);
17
20
 
18
21
  type LaundryWasherModeBehaviorType = InstanceType<typeof LaundryWasherModeBehavior>;
19
22
  export interface LaundryWasherModeBehavior extends LaundryWasherModeBehaviorType {}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /*** THIS FILE IS GENERATED, DO NOT EDIT ***/
8
+
9
+ import { MaybePromise } from "#general";
10
+ import { ModeBase } from "#clusters/mode-base";
11
+
12
+ export namespace LaundryWasherModeInterface {
13
+ export interface Base {
14
+ /**
15
+ * This command is used to change device modes.
16
+ *
17
+ * On receipt of this command the device shall respond with a ChangeToModeResponse command.
18
+ *
19
+ * @see {@link MatterSpecification.v14.Cluster} § 1.10.7.1
20
+ */
21
+ changeToMode(request: ModeBase.ChangeToModeRequest): MaybePromise<ModeBase.ChangeToModeResponse>;
22
+ }
23
+ }
24
+
25
+ export type LaundryWasherModeInterface = { components: [{ flags: {}, methods: LaundryWasherModeInterface.Base }] };
@@ -6,5 +6,23 @@
6
6
 
7
7
  /*** THIS FILE IS GENERATED, DO NOT EDIT ***/
8
8
 
9
- export namespace OvenCavityOperationalStateInterface {}
10
- export type OvenCavityOperationalStateInterface = { components: [] };
9
+ import { MaybePromise } from "#general";
10
+ import { OvenCavityOperationalState } from "#clusters/oven-cavity-operational-state";
11
+
12
+ export namespace OvenCavityOperationalStateInterface {
13
+ export interface Base {
14
+ /**
15
+ * @see {@link MatterSpecification.v14.Cluster} § 8.10.5
16
+ */
17
+ stop(): MaybePromise<OvenCavityOperationalState.OperationalCommandResponse>;
18
+
19
+ /**
20
+ * @see {@link MatterSpecification.v14.Cluster} § 8.10.5
21
+ */
22
+ start(): MaybePromise<OvenCavityOperationalState.OperationalCommandResponse>;
23
+ }
24
+ }
25
+
26
+ export type OvenCavityOperationalStateInterface = {
27
+ components: [{ flags: {}, methods: OvenCavityOperationalStateInterface.Base }]
28
+ };
@@ -8,11 +8,14 @@
8
8
 
9
9
  import { OvenMode } from "#clusters/oven-mode";
10
10
  import { ClusterBehavior } from "../../behavior/cluster/ClusterBehavior.js";
11
+ import { OvenModeInterface } from "./OvenModeInterface.js";
11
12
 
12
13
  /**
13
14
  * OvenModeBehavior is the base class for objects that support interaction with {@link OvenMode.Cluster}.
14
15
  */
15
- export const OvenModeBehavior = ClusterBehavior.for(OvenMode.Cluster);
16
+ export const OvenModeBehavior = ClusterBehavior
17
+ .withInterface<OvenModeInterface>()
18
+ .for(OvenMode.Cluster);
16
19
 
17
20
  type OvenModeBehaviorType = InstanceType<typeof OvenModeBehavior>;
18
21
  export interface OvenModeBehavior extends OvenModeBehaviorType {}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /*** THIS FILE IS GENERATED, DO NOT EDIT ***/
8
+
9
+ import { MaybePromise } from "#general";
10
+ import { ModeBase } from "#clusters/mode-base";
11
+
12
+ export namespace OvenModeInterface {
13
+ export interface Base {
14
+ /**
15
+ * This command is used to change device modes.
16
+ *
17
+ * On receipt of this command the device shall respond with a ChangeToModeResponse command.
18
+ *
19
+ * @see {@link MatterSpecification.v14.Cluster} § 1.10.7.1
20
+ */
21
+ changeToMode(request: ModeBase.ChangeToModeRequest): MaybePromise<ModeBase.ChangeToModeResponse>;
22
+ }
23
+ }
24
+
25
+ export type OvenModeInterface = { components: [{ flags: {}, methods: OvenModeInterface.Base }] };