@matter/node 0.16.0-alpha.0-20250817-1b000357c → 0.16.0-alpha.0-20250820-24939dd26

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 (323) hide show
  1. package/dist/cjs/behavior/Behavior.d.ts +1 -1
  2. package/dist/cjs/behavior/Behavior.d.ts.map +1 -1
  3. package/dist/cjs/behavior/Events.js +1 -1
  4. package/dist/cjs/behavior/Events.js.map +1 -1
  5. package/dist/cjs/behavior/Transitions.d.ts +8 -8
  6. package/dist/cjs/behavior/Transitions.d.ts.map +1 -1
  7. package/dist/cjs/behavior/Transitions.js +8 -8
  8. package/dist/cjs/behavior/Transitions.js.map +1 -1
  9. package/dist/cjs/behavior/cluster/FabricScopedDataHandler.js +1 -1
  10. package/dist/cjs/behavior/cluster/FabricScopedDataHandler.js.map +1 -1
  11. package/dist/cjs/behavior/internal/BehaviorBacking.d.ts.map +1 -1
  12. package/dist/cjs/behavior/internal/BehaviorBacking.js +7 -2
  13. package/dist/cjs/behavior/internal/BehaviorBacking.js.map +1 -1
  14. package/dist/cjs/behavior/internal/Reactors.js +2 -2
  15. package/dist/cjs/behavior/internal/Reactors.js.map +1 -1
  16. package/dist/cjs/behavior/state/managed/values/PrimitiveManager.d.ts +3 -4
  17. package/dist/cjs/behavior/state/managed/values/PrimitiveManager.d.ts.map +1 -1
  18. package/dist/cjs/behavior/state/managed/values/PrimitiveManager.js.map +1 -1
  19. package/dist/cjs/behavior/state/managed/values/ValuePatcher.js.map +1 -1
  20. package/dist/cjs/behavior/state/migrations/Migration.d.ts +20 -0
  21. package/dist/cjs/behavior/state/migrations/Migration.d.ts.map +1 -0
  22. package/dist/cjs/behavior/state/migrations/Migration.js +43 -0
  23. package/dist/cjs/behavior/state/migrations/Migration.js.map +6 -0
  24. package/dist/cjs/behavior/{system/subscription → state/migrations}/index.d.ts +1 -1
  25. package/dist/cjs/behavior/state/migrations/index.d.ts.map +1 -0
  26. package/dist/{esm/behavior/system/subscription → cjs/behavior/state/migrations}/index.js +1 -1
  27. package/dist/cjs/behavior/state/migrations/index.js.map +6 -0
  28. package/dist/cjs/behavior/state/validation/ValueValidator.d.ts.map +1 -1
  29. package/dist/cjs/behavior/state/validation/ValueValidator.js +1 -0
  30. package/dist/cjs/behavior/state/validation/ValueValidator.js.map +1 -1
  31. package/dist/cjs/behavior/supervision/RootSupervisor.js +2 -2
  32. package/dist/cjs/behavior/supervision/RootSupervisor.js.map +1 -1
  33. package/dist/cjs/behavior/supervision/ValueSupervisor.d.ts +1 -1
  34. package/dist/cjs/behavior/supervision/ValueSupervisor.d.ts.map +1 -1
  35. package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts +7 -7
  36. package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
  37. package/dist/cjs/behavior/system/commissioning/CommissioningClient.js +61 -61
  38. package/dist/cjs/behavior/system/commissioning/CommissioningClient.js.map +1 -1
  39. package/dist/cjs/behavior/system/commissioning/RemoteDescriptor.d.ts.map +1 -1
  40. package/dist/cjs/behavior/system/commissioning/RemoteDescriptor.js +15 -14
  41. package/dist/cjs/behavior/system/commissioning/RemoteDescriptor.js.map +1 -1
  42. package/dist/cjs/behavior/system/controller/discovery/ContinuousDiscovery.js +1 -1
  43. package/dist/cjs/behavior/system/controller/discovery/ContinuousDiscovery.js.map +1 -1
  44. package/dist/cjs/behavior/system/controller/discovery/Discovery.d.ts +2 -2
  45. package/dist/cjs/behavior/system/controller/discovery/Discovery.d.ts.map +1 -1
  46. package/dist/cjs/behavior/system/controller/discovery/Discovery.js +2 -2
  47. package/dist/cjs/behavior/system/controller/discovery/Discovery.js.map +1 -1
  48. package/dist/cjs/behavior/system/network/ClientNetworkRuntime.d.ts +1 -0
  49. package/dist/cjs/behavior/system/network/ClientNetworkRuntime.d.ts.map +1 -1
  50. package/dist/cjs/behavior/system/network/ClientNetworkRuntime.js +40 -4
  51. package/dist/cjs/behavior/system/network/ClientNetworkRuntime.js.map +2 -2
  52. package/dist/cjs/behavior/system/network/NetworkBehavior.d.ts +5 -0
  53. package/dist/cjs/behavior/system/network/NetworkBehavior.d.ts.map +1 -1
  54. package/dist/cjs/behavior/system/network/NetworkBehavior.js +5 -0
  55. package/dist/cjs/behavior/system/network/NetworkBehavior.js.map +1 -1
  56. package/dist/cjs/behavior/system/network/NetworkClient.d.ts +7 -4
  57. package/dist/cjs/behavior/system/network/NetworkClient.d.ts.map +1 -1
  58. package/dist/cjs/behavior/system/network/NetworkClient.js +15 -9
  59. package/dist/cjs/behavior/system/network/NetworkClient.js.map +1 -1
  60. package/dist/cjs/behavior/system/network/NetworkRuntime.d.ts.map +1 -1
  61. package/dist/cjs/behavior/system/network/NetworkRuntime.js +0 -1
  62. package/dist/cjs/behavior/system/network/NetworkRuntime.js.map +1 -1
  63. package/dist/cjs/behavior/system/network/ServerNetworkRuntime.d.ts.map +1 -1
  64. package/dist/cjs/behavior/system/network/ServerNetworkRuntime.js +3 -2
  65. package/dist/cjs/behavior/system/network/ServerNetworkRuntime.js.map +1 -1
  66. package/dist/cjs/behavior/system/{subscription/SubscriptionBehavior.d.ts → subscriptions/SubscriptionsServer.d.ts} +6 -6
  67. package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.d.ts.map +1 -0
  68. package/dist/cjs/behavior/system/{subscription/SubscriptionBehavior.js → subscriptions/SubscriptionsServer.js} +22 -22
  69. package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.js.map +6 -0
  70. package/dist/{esm/behavior/system/subscription → cjs/behavior/system/subscriptions}/index.d.ts +1 -1
  71. package/dist/cjs/behavior/system/subscriptions/index.d.ts.map +1 -0
  72. package/dist/cjs/behavior/system/{subscription → subscriptions}/index.js +3 -3
  73. package/dist/cjs/behavior/system/subscriptions/index.js.map +6 -0
  74. package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts +3 -3
  75. package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts.map +1 -1
  76. package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.js +13 -11
  77. package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.js.map +1 -1
  78. package/dist/cjs/behaviors/color-control/ColorControlServer.d.ts +2 -2
  79. package/dist/cjs/behaviors/color-control/ColorControlServer.d.ts.map +1 -1
  80. package/dist/cjs/behaviors/color-control/ColorControlServer.js +4 -4
  81. package/dist/cjs/behaviors/color-control/ColorControlServer.js.map +1 -1
  82. package/dist/cjs/behaviors/general-commissioning/GeneralCommissioningServer.d.ts.map +1 -1
  83. package/dist/cjs/behaviors/general-commissioning/GeneralCommissioningServer.js +3 -3
  84. package/dist/cjs/behaviors/general-commissioning/GeneralCommissioningServer.js.map +1 -1
  85. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts +4 -4
  86. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
  87. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js +17 -16
  88. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
  89. package/dist/cjs/behaviors/identify/IdentifyServer.d.ts.map +1 -1
  90. package/dist/cjs/behaviors/identify/IdentifyServer.js +1 -1
  91. package/dist/cjs/behaviors/identify/IdentifyServer.js.map +1 -1
  92. package/dist/cjs/behaviors/level-control/LevelControlServer.d.ts +1 -1
  93. package/dist/cjs/behaviors/level-control/LevelControlServer.d.ts.map +1 -1
  94. package/dist/cjs/behaviors/level-control/LevelControlServer.js +3 -3
  95. package/dist/cjs/behaviors/level-control/LevelControlServer.js.map +1 -1
  96. package/dist/cjs/behaviors/on-off/OnOffServer.d.ts.map +1 -1
  97. package/dist/cjs/behaviors/on-off/OnOffServer.js +2 -2
  98. package/dist/cjs/behaviors/on-off/OnOffServer.js.map +1 -1
  99. package/dist/cjs/behaviors/power-source/PowerSourceServer.d.ts.map +1 -1
  100. package/dist/cjs/behaviors/power-source/PowerSourceServer.js +2 -1
  101. package/dist/cjs/behaviors/power-source/PowerSourceServer.js.map +1 -1
  102. package/dist/cjs/behaviors/switch/SwitchServer.d.ts +4 -4
  103. package/dist/cjs/behaviors/switch/SwitchServer.d.ts.map +1 -1
  104. package/dist/cjs/behaviors/switch/SwitchServer.js +8 -6
  105. package/dist/cjs/behaviors/switch/SwitchServer.js.map +1 -1
  106. package/dist/cjs/endpoint/Endpoint.d.ts.map +1 -1
  107. package/dist/cjs/endpoint/Endpoint.js +11 -1
  108. package/dist/cjs/endpoint/Endpoint.js.map +1 -1
  109. package/dist/cjs/endpoint/properties/SupportedBehaviors.d.ts +1 -1
  110. package/dist/cjs/endpoint/properties/SupportedBehaviors.d.ts.map +1 -1
  111. package/dist/cjs/node/ClientNode.d.ts +12 -0
  112. package/dist/cjs/node/ClientNode.d.ts.map +1 -1
  113. package/dist/cjs/node/ClientNode.js +26 -0
  114. package/dist/cjs/node/ClientNode.js.map +1 -1
  115. package/dist/cjs/node/Node.d.ts.map +1 -1
  116. package/dist/cjs/node/Node.js +2 -0
  117. package/dist/cjs/node/Node.js.map +1 -1
  118. package/dist/cjs/node/ServerNode.d.ts +2 -2
  119. package/dist/cjs/node/ServerNode.d.ts.map +1 -1
  120. package/dist/cjs/node/ServerNode.js +2 -2
  121. package/dist/cjs/node/ServerNode.js.map +1 -1
  122. package/dist/cjs/node/client/ClientNodes.js +4 -4
  123. package/dist/cjs/node/client/ClientNodes.js.map +1 -1
  124. package/dist/cjs/node/client/NodePeerAddressStore.d.ts +4 -1
  125. package/dist/cjs/node/client/NodePeerAddressStore.d.ts.map +1 -1
  126. package/dist/cjs/node/client/NodePeerAddressStore.js +2 -1
  127. package/dist/cjs/node/client/NodePeerAddressStore.js.map +2 -2
  128. package/dist/cjs/node/server/InteractionServer.d.ts +6 -6
  129. package/dist/cjs/node/server/InteractionServer.d.ts.map +1 -1
  130. package/dist/cjs/node/server/InteractionServer.js +12 -11
  131. package/dist/cjs/node/server/InteractionServer.js.map +1 -1
  132. package/dist/cjs/node/server/ProtocolService.js +2 -2
  133. package/dist/cjs/node/server/ProtocolService.js.map +1 -1
  134. package/dist/cjs/node/server/ServerSubscription.d.ts +18 -17
  135. package/dist/cjs/node/server/ServerSubscription.d.ts.map +1 -1
  136. package/dist/cjs/node/server/ServerSubscription.js +61 -54
  137. package/dist/cjs/node/server/ServerSubscription.js.map +1 -1
  138. package/dist/esm/behavior/Behavior.d.ts +1 -1
  139. package/dist/esm/behavior/Behavior.d.ts.map +1 -1
  140. package/dist/esm/behavior/Events.js +1 -1
  141. package/dist/esm/behavior/Events.js.map +1 -1
  142. package/dist/esm/behavior/Transitions.d.ts +8 -8
  143. package/dist/esm/behavior/Transitions.d.ts.map +1 -1
  144. package/dist/esm/behavior/Transitions.js +12 -9
  145. package/dist/esm/behavior/Transitions.js.map +1 -1
  146. package/dist/esm/behavior/cluster/FabricScopedDataHandler.js +2 -2
  147. package/dist/esm/behavior/cluster/FabricScopedDataHandler.js.map +1 -1
  148. package/dist/esm/behavior/internal/BehaviorBacking.d.ts.map +1 -1
  149. package/dist/esm/behavior/internal/BehaviorBacking.js +7 -2
  150. package/dist/esm/behavior/internal/BehaviorBacking.js.map +1 -1
  151. package/dist/esm/behavior/internal/Reactors.js +2 -2
  152. package/dist/esm/behavior/internal/Reactors.js.map +1 -1
  153. package/dist/esm/behavior/state/managed/values/PrimitiveManager.d.ts +3 -4
  154. package/dist/esm/behavior/state/managed/values/PrimitiveManager.d.ts.map +1 -1
  155. package/dist/esm/behavior/state/managed/values/PrimitiveManager.js.map +1 -1
  156. package/dist/esm/behavior/state/managed/values/ValuePatcher.js.map +1 -1
  157. package/dist/esm/behavior/state/migrations/Migration.d.ts +20 -0
  158. package/dist/esm/behavior/state/migrations/Migration.d.ts.map +1 -0
  159. package/dist/esm/behavior/state/migrations/Migration.js +23 -0
  160. package/dist/esm/behavior/state/migrations/Migration.js.map +6 -0
  161. package/dist/esm/behavior/state/migrations/index.d.ts +7 -0
  162. package/dist/esm/behavior/state/migrations/index.d.ts.map +1 -0
  163. package/dist/esm/behavior/state/migrations/index.js +6 -0
  164. package/dist/esm/behavior/state/migrations/index.js.map +6 -0
  165. package/dist/esm/behavior/state/validation/ValueValidator.d.ts.map +1 -1
  166. package/dist/esm/behavior/state/validation/ValueValidator.js +1 -0
  167. package/dist/esm/behavior/state/validation/ValueValidator.js.map +1 -1
  168. package/dist/esm/behavior/supervision/RootSupervisor.js +2 -2
  169. package/dist/esm/behavior/supervision/RootSupervisor.js.map +1 -1
  170. package/dist/esm/behavior/supervision/ValueSupervisor.d.ts +1 -1
  171. package/dist/esm/behavior/supervision/ValueSupervisor.d.ts.map +1 -1
  172. package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts +7 -7
  173. package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
  174. package/dist/esm/behavior/system/commissioning/CommissioningClient.js +68 -62
  175. package/dist/esm/behavior/system/commissioning/CommissioningClient.js.map +1 -1
  176. package/dist/esm/behavior/system/commissioning/RemoteDescriptor.d.ts.map +1 -1
  177. package/dist/esm/behavior/system/commissioning/RemoteDescriptor.js +15 -14
  178. package/dist/esm/behavior/system/commissioning/RemoteDescriptor.js.map +1 -1
  179. package/dist/esm/behavior/system/controller/discovery/ContinuousDiscovery.js +1 -1
  180. package/dist/esm/behavior/system/controller/discovery/ContinuousDiscovery.js.map +1 -1
  181. package/dist/esm/behavior/system/controller/discovery/Discovery.d.ts +2 -2
  182. package/dist/esm/behavior/system/controller/discovery/Discovery.d.ts.map +1 -1
  183. package/dist/esm/behavior/system/controller/discovery/Discovery.js +2 -2
  184. package/dist/esm/behavior/system/controller/discovery/Discovery.js.map +1 -1
  185. package/dist/esm/behavior/system/network/ClientNetworkRuntime.d.ts +1 -0
  186. package/dist/esm/behavior/system/network/ClientNetworkRuntime.d.ts.map +1 -1
  187. package/dist/esm/behavior/system/network/ClientNetworkRuntime.js +42 -6
  188. package/dist/esm/behavior/system/network/ClientNetworkRuntime.js.map +2 -2
  189. package/dist/esm/behavior/system/network/NetworkBehavior.d.ts +5 -0
  190. package/dist/esm/behavior/system/network/NetworkBehavior.d.ts.map +1 -1
  191. package/dist/esm/behavior/system/network/NetworkBehavior.js +5 -0
  192. package/dist/esm/behavior/system/network/NetworkBehavior.js.map +1 -1
  193. package/dist/esm/behavior/system/network/NetworkClient.d.ts +7 -4
  194. package/dist/esm/behavior/system/network/NetworkClient.d.ts.map +1 -1
  195. package/dist/esm/behavior/system/network/NetworkClient.js +16 -10
  196. package/dist/esm/behavior/system/network/NetworkClient.js.map +1 -1
  197. package/dist/esm/behavior/system/network/NetworkRuntime.d.ts.map +1 -1
  198. package/dist/esm/behavior/system/network/NetworkRuntime.js +0 -1
  199. package/dist/esm/behavior/system/network/NetworkRuntime.js.map +1 -1
  200. package/dist/esm/behavior/system/network/ServerNetworkRuntime.d.ts.map +1 -1
  201. package/dist/esm/behavior/system/network/ServerNetworkRuntime.js +3 -2
  202. package/dist/esm/behavior/system/network/ServerNetworkRuntime.js.map +1 -1
  203. package/dist/esm/behavior/system/{subscription/SubscriptionBehavior.d.ts → subscriptions/SubscriptionsServer.d.ts} +6 -6
  204. package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.d.ts.map +1 -0
  205. package/dist/esm/behavior/system/{subscription/SubscriptionBehavior.js → subscriptions/SubscriptionsServer.js} +20 -20
  206. package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.js.map +6 -0
  207. package/dist/esm/behavior/system/subscriptions/index.d.ts +7 -0
  208. package/dist/esm/behavior/system/subscriptions/index.d.ts.map +1 -0
  209. package/dist/esm/behavior/system/subscriptions/index.js +7 -0
  210. package/dist/esm/behavior/system/{subscription → subscriptions}/index.js.map +1 -1
  211. package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts +3 -3
  212. package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts.map +1 -1
  213. package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.js +16 -14
  214. package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.js.map +1 -1
  215. package/dist/esm/behaviors/color-control/ColorControlServer.d.ts +2 -2
  216. package/dist/esm/behaviors/color-control/ColorControlServer.d.ts.map +1 -1
  217. package/dist/esm/behaviors/color-control/ColorControlServer.js +6 -5
  218. package/dist/esm/behaviors/color-control/ColorControlServer.js.map +1 -1
  219. package/dist/esm/behaviors/general-commissioning/GeneralCommissioningServer.d.ts.map +1 -1
  220. package/dist/esm/behaviors/general-commissioning/GeneralCommissioningServer.js +4 -4
  221. package/dist/esm/behaviors/general-commissioning/GeneralCommissioningServer.js.map +1 -1
  222. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts +4 -4
  223. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
  224. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js +29 -17
  225. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
  226. package/dist/esm/behaviors/identify/IdentifyServer.d.ts.map +1 -1
  227. package/dist/esm/behaviors/identify/IdentifyServer.js +2 -2
  228. package/dist/esm/behaviors/identify/IdentifyServer.js.map +1 -1
  229. package/dist/esm/behaviors/level-control/LevelControlServer.d.ts +1 -1
  230. package/dist/esm/behaviors/level-control/LevelControlServer.d.ts.map +1 -1
  231. package/dist/esm/behaviors/level-control/LevelControlServer.js +4 -4
  232. package/dist/esm/behaviors/level-control/LevelControlServer.js.map +1 -1
  233. package/dist/esm/behaviors/on-off/OnOffServer.d.ts.map +1 -1
  234. package/dist/esm/behaviors/on-off/OnOffServer.js +3 -3
  235. package/dist/esm/behaviors/on-off/OnOffServer.js.map +1 -1
  236. package/dist/esm/behaviors/power-source/PowerSourceServer.d.ts.map +1 -1
  237. package/dist/esm/behaviors/power-source/PowerSourceServer.js +2 -1
  238. package/dist/esm/behaviors/power-source/PowerSourceServer.js.map +1 -1
  239. package/dist/esm/behaviors/switch/SwitchServer.d.ts +4 -4
  240. package/dist/esm/behaviors/switch/SwitchServer.d.ts.map +1 -1
  241. package/dist/esm/behaviors/switch/SwitchServer.js +9 -7
  242. package/dist/esm/behaviors/switch/SwitchServer.js.map +1 -1
  243. package/dist/esm/endpoint/Endpoint.d.ts.map +1 -1
  244. package/dist/esm/endpoint/Endpoint.js +11 -1
  245. package/dist/esm/endpoint/Endpoint.js.map +1 -1
  246. package/dist/esm/endpoint/properties/SupportedBehaviors.d.ts +1 -1
  247. package/dist/esm/endpoint/properties/SupportedBehaviors.d.ts.map +1 -1
  248. package/dist/esm/node/ClientNode.d.ts +12 -0
  249. package/dist/esm/node/ClientNode.d.ts.map +1 -1
  250. package/dist/esm/node/ClientNode.js +26 -0
  251. package/dist/esm/node/ClientNode.js.map +1 -1
  252. package/dist/esm/node/Node.d.ts.map +1 -1
  253. package/dist/esm/node/Node.js +2 -0
  254. package/dist/esm/node/Node.js.map +1 -1
  255. package/dist/esm/node/ServerNode.d.ts +2 -2
  256. package/dist/esm/node/ServerNode.d.ts.map +1 -1
  257. package/dist/esm/node/ServerNode.js +2 -2
  258. package/dist/esm/node/ServerNode.js.map +1 -1
  259. package/dist/esm/node/client/ClientNodes.js +5 -5
  260. package/dist/esm/node/client/ClientNodes.js.map +1 -1
  261. package/dist/esm/node/client/NodePeerAddressStore.d.ts +4 -1
  262. package/dist/esm/node/client/NodePeerAddressStore.d.ts.map +1 -1
  263. package/dist/esm/node/client/NodePeerAddressStore.js +3 -2
  264. package/dist/esm/node/client/NodePeerAddressStore.js.map +2 -2
  265. package/dist/esm/node/server/InteractionServer.d.ts +6 -6
  266. package/dist/esm/node/server/InteractionServer.d.ts.map +1 -1
  267. package/dist/esm/node/server/InteractionServer.js +16 -12
  268. package/dist/esm/node/server/InteractionServer.js.map +1 -1
  269. package/dist/esm/node/server/ProtocolService.js +2 -2
  270. package/dist/esm/node/server/ProtocolService.js.map +1 -1
  271. package/dist/esm/node/server/ServerSubscription.d.ts +18 -17
  272. package/dist/esm/node/server/ServerSubscription.d.ts.map +1 -1
  273. package/dist/esm/node/server/ServerSubscription.js +75 -55
  274. package/dist/esm/node/server/ServerSubscription.js.map +1 -1
  275. package/package.json +7 -7
  276. package/src/behavior/Behavior.ts +1 -1
  277. package/src/behavior/Events.ts +1 -1
  278. package/src/behavior/Transitions.ts +17 -13
  279. package/src/behavior/cluster/FabricScopedDataHandler.ts +2 -2
  280. package/src/behavior/internal/BehaviorBacking.ts +9 -2
  281. package/src/behavior/state/managed/values/PrimitiveManager.ts +3 -4
  282. package/src/behavior/state/managed/values/ValuePatcher.ts +2 -2
  283. package/src/behavior/state/migrations/Migration.ts +34 -0
  284. package/src/behavior/{system/subscription → state/migrations}/index.ts +1 -1
  285. package/src/behavior/state/validation/ValueValidator.ts +1 -0
  286. package/src/behavior/supervision/ValueSupervisor.ts +1 -1
  287. package/src/behavior/system/commissioning/CommissioningClient.ts +78 -68
  288. package/src/behavior/system/commissioning/RemoteDescriptor.ts +15 -15
  289. package/src/behavior/system/controller/discovery/ContinuousDiscovery.ts +1 -1
  290. package/src/behavior/system/controller/discovery/Discovery.ts +4 -4
  291. package/src/behavior/system/network/ClientNetworkRuntime.ts +59 -6
  292. package/src/behavior/system/network/NetworkBehavior.ts +6 -1
  293. package/src/behavior/system/network/NetworkClient.ts +19 -12
  294. package/src/behavior/system/network/NetworkRuntime.ts +0 -1
  295. package/src/behavior/system/network/ServerNetworkRuntime.ts +4 -2
  296. package/src/behavior/system/sessions/SessionsBehavior.ts +1 -1
  297. package/src/behavior/system/{subscription/SubscriptionBehavior.ts → subscriptions/SubscriptionsServer.ts} +17 -17
  298. package/src/behavior/system/subscriptions/index.ts +7 -0
  299. package/src/behaviors/administrator-commissioning/AdministratorCommissioningServer.ts +20 -16
  300. package/src/behaviors/color-control/ColorControlServer.ts +5 -4
  301. package/src/behaviors/general-commissioning/GeneralCommissioningServer.ts +4 -4
  302. package/src/behaviors/general-diagnostics/GeneralDiagnosticsServer.ts +38 -21
  303. package/src/behaviors/identify/IdentifyServer.ts +2 -2
  304. package/src/behaviors/level-control/LevelControlServer.ts +4 -4
  305. package/src/behaviors/on-off/OnOffServer.ts +3 -3
  306. package/src/behaviors/power-source/PowerSourceServer.ts +2 -1
  307. package/src/behaviors/switch/SwitchServer.ts +10 -7
  308. package/src/endpoint/Endpoint.ts +13 -1
  309. package/src/endpoint/properties/SupportedBehaviors.ts +1 -1
  310. package/src/node/ClientNode.ts +30 -0
  311. package/src/node/Node.ts +2 -0
  312. package/src/node/ServerNode.ts +2 -2
  313. package/src/node/client/ClientNodes.ts +8 -8
  314. package/src/node/client/NodePeerAddressStore.ts +4 -2
  315. package/src/node/server/InteractionServer.ts +21 -15
  316. package/src/node/server/ServerSubscription.ts +86 -64
  317. package/dist/cjs/behavior/system/subscription/SubscriptionBehavior.d.ts.map +0 -1
  318. package/dist/cjs/behavior/system/subscription/SubscriptionBehavior.js.map +0 -6
  319. package/dist/cjs/behavior/system/subscription/index.d.ts.map +0 -1
  320. package/dist/cjs/behavior/system/subscription/index.js.map +0 -6
  321. package/dist/esm/behavior/system/subscription/SubscriptionBehavior.d.ts.map +0 -1
  322. package/dist/esm/behavior/system/subscription/SubscriptionBehavior.js.map +0 -6
  323. package/dist/esm/behavior/system/subscription/index.d.ts.map +0 -1
@@ -5,7 +5,20 @@
5
5
  */
6
6
  import { NodeActivity } from "#behavior/context/NodeActivity.js";
7
7
  import { OnlineContext } from "#behavior/context/server/OnlineContext.js";
8
- import { Logger, MatterError, NetworkError, NoResponseTimeoutError, ObserverGroup, Time } from "#general";
8
+ import {
9
+ Duration,
10
+ Hours,
11
+ Logger,
12
+ MatterError,
13
+ Millis,
14
+ Minutes,
15
+ NetworkError,
16
+ NoResponseTimeoutError,
17
+ ObserverGroup,
18
+ Seconds,
19
+ Time,
20
+ Timestamp
21
+ } from "#general";
9
22
  import { Specification } from "#model";
10
23
  import {
11
24
  AttributeReadResponse,
@@ -25,28 +38,28 @@ import {
25
38
  StatusResponseError
26
39
  } from "#types";
27
40
  const logger = Logger.get("ServerSubscription");
28
- const MAX_INTERVAL_PUBLISHER_LIMIT_S = 60 * 60;
29
- const INTERNAL_INTERVAL_PUBLISHER_LIMIT_S = 3 * 60;
30
- const MIN_INTERVAL_S = 2;
31
- const DEFAULT_RANDOMIZATION_WINDOW_S = 10;
41
+ const MAX_INTERVAL_PUBLISHER_LIMIT = Hours.one;
42
+ const INTERNAL_INTERVAL_PUBLISHER_LIMIT = Minutes(3);
43
+ const MIN_INTERVAL = Seconds(2);
44
+ const DEFAULT_RANDOMIZATION_WINDOW = Seconds(10);
32
45
  var ServerSubscriptionConfig;
33
46
  ((ServerSubscriptionConfig2) => {
34
47
  function of(options) {
35
48
  return {
36
- maxIntervalSeconds: options?.maxIntervalSeconds ?? INTERNAL_INTERVAL_PUBLISHER_LIMIT_S,
37
- minIntervalSeconds: Math.max(options?.minIntervalSeconds ?? MIN_INTERVAL_S, MIN_INTERVAL_S),
38
- randomizationWindowSeconds: options?.randomizationWindowSeconds ?? DEFAULT_RANDOMIZATION_WINDOW_S
49
+ maxInterval: options?.maxInterval ?? INTERNAL_INTERVAL_PUBLISHER_LIMIT,
50
+ minInterval: Duration.max(options?.minInterval ?? MIN_INTERVAL, MIN_INTERVAL),
51
+ randomizationWindow: options?.randomizationWindow ?? DEFAULT_RANDOMIZATION_WINDOW
39
52
  };
40
53
  }
41
54
  ServerSubscriptionConfig2.of = of;
42
55
  })(ServerSubscriptionConfig || (ServerSubscriptionConfig = {}));
43
56
  class ServerSubscription extends Subscription {
44
57
  #context;
45
- #lastUpdateTimeMs = 0;
58
+ #lastUpdateTime = Timestamp.zero;
46
59
  #updateTimer;
47
60
  #sendDelayTimer = Time.getTimer(
48
61
  `Subscription ${this.id} delay`,
49
- 50,
62
+ Millis(50),
50
63
  () => this.#triggerSendUpdate()
51
64
  );
52
65
  #outstandingAttributeUpdates;
@@ -55,9 +68,9 @@ class ServerSubscription extends Subscription {
55
68
  #sendUpdatesActivated = false;
56
69
  #seededClusterDetails = /* @__PURE__ */ new Map();
57
70
  #latestSeededEventNumber = EventNumber(0);
58
- #sendIntervalMs;
59
- #minIntervalFloorMs;
60
- #maxIntervalCeilingMs;
71
+ #sendInterval;
72
+ #minIntervalFloor;
73
+ #maxIntervalCeiling;
61
74
  #peerAddress;
62
75
  #sendNextUpdateImmediately = false;
63
76
  #sendUpdateErrorCounter = 0;
@@ -67,8 +80,8 @@ class ServerSubscription extends Subscription {
67
80
  id,
68
81
  context,
69
82
  criteria,
70
- minIntervalFloorSeconds,
71
- maxIntervalCeilingSeconds,
83
+ minIntervalFloor,
84
+ maxIntervalCeiling,
72
85
  subscriptionOptions,
73
86
  useAsMaxInterval,
74
87
  useAsSendInterval
@@ -76,45 +89,52 @@ class ServerSubscription extends Subscription {
76
89
  super(context.session, id, criteria);
77
90
  this.#context = context;
78
91
  this.#peerAddress = this.session.peerAddress;
79
- this.#minIntervalFloorMs = minIntervalFloorSeconds * 1e3;
80
- this.#maxIntervalCeilingMs = maxIntervalCeilingSeconds * 1e3;
92
+ this.#minIntervalFloor = minIntervalFloor;
93
+ this.#maxIntervalCeiling = maxIntervalCeiling;
81
94
  let maxInterval;
82
95
  let sendInterval;
83
96
  if (useAsMaxInterval !== void 0 && useAsSendInterval !== void 0) {
84
- maxInterval = useAsMaxInterval * 1e3;
85
- sendInterval = useAsSendInterval * 1e3;
97
+ maxInterval = useAsMaxInterval;
98
+ sendInterval = useAsSendInterval;
86
99
  } else {
87
100
  ({ maxInterval, sendInterval } = this.#determineSendingIntervals(
88
- subscriptionOptions.minIntervalSeconds * 1e3,
89
- subscriptionOptions.maxIntervalSeconds * 1e3,
90
- subscriptionOptions.randomizationWindowSeconds * 1e3
101
+ subscriptionOptions.minInterval,
102
+ subscriptionOptions.maxInterval,
103
+ subscriptionOptions.randomizationWindow
91
104
  ));
92
105
  }
93
- this.maxIntervalMs = maxInterval;
94
- this.#sendIntervalMs = sendInterval;
106
+ this.maxInterval = maxInterval;
107
+ this.#sendInterval = sendInterval;
95
108
  this.#updateTimer = Time.getTimer(
96
109
  `Subscription ${this.id} update`,
97
- this.#sendIntervalMs,
110
+ this.#sendInterval,
98
111
  () => this.#prepareDataUpdate()
99
112
  );
100
113
  }
101
- #determineSendingIntervals(subscriptionMinIntervalMs, subscriptionMaxIntervalMs, subscriptionRandomizationWindowMs) {
102
- const maxInterval = Math.min(
103
- Math.max(
104
- subscriptionMinIntervalMs,
105
- Math.max(this.#minIntervalFloorMs, Math.min(subscriptionMaxIntervalMs, this.#maxIntervalCeilingMs))
106
- ) + Math.floor(subscriptionRandomizationWindowMs * Math.random()),
107
- MAX_INTERVAL_PUBLISHER_LIMIT_S * 1e3
114
+ #determineSendingIntervals(subscriptionMinInterval, subscriptionMaxInterval, subscriptionRandomizationWindow) {
115
+ const maxInterval = Duration.min(
116
+ Millis.floor(
117
+ Millis(
118
+ Duration.max(
119
+ subscriptionMinInterval,
120
+ Duration.max(
121
+ this.#minIntervalFloor,
122
+ Duration.min(subscriptionMaxInterval, this.#maxIntervalCeiling)
123
+ )
124
+ ) + subscriptionRandomizationWindow * Math.random()
125
+ )
126
+ ),
127
+ MAX_INTERVAL_PUBLISHER_LIMIT
108
128
  );
109
- let sendInterval = Math.floor(maxInterval / 2);
110
- if (sendInterval < 6e4) {
111
- sendInterval = Math.max(this.#minIntervalFloorMs, Math.floor(maxInterval * 0.8));
129
+ let sendInterval = Millis.floor(Millis(maxInterval / 2));
130
+ if (sendInterval < Minutes.one) {
131
+ sendInterval = Duration.max(this.#minIntervalFloor, Millis.floor(Millis(maxInterval * 0.8)));
112
132
  }
113
- if (sendInterval < subscriptionMinIntervalMs) {
133
+ if (sendInterval < subscriptionMinInterval) {
114
134
  logger.warn(
115
- `Determined subscription send interval of ${sendInterval}ms is too low. Using maxInterval (${maxInterval}ms) instead.`
135
+ `Determined subscription send interval of ${Duration.format(sendInterval)} is too low. Using maxInterval (${maxInterval}) instead.`
116
136
  );
117
- sendInterval = subscriptionMinIntervalMs;
137
+ sendInterval = subscriptionMinInterval;
118
138
  }
119
139
  return { maxInterval, sendInterval };
120
140
  }
@@ -159,13 +179,13 @@ class ServerSubscription extends Subscription {
159
179
  );
160
180
  }
161
181
  get sendInterval() {
162
- return Math.ceil(this.#sendIntervalMs / 1e3);
182
+ return this.#sendInterval;
163
183
  }
164
- get minIntervalFloorSeconds() {
165
- return Math.ceil(this.#minIntervalFloorMs / 1e3);
184
+ get minIntervalFloor() {
185
+ return this.#minIntervalFloor;
166
186
  }
167
- get maxIntervalCeilingSeconds() {
168
- return Math.ceil(this.#maxIntervalCeilingMs / 1e3);
187
+ get maxIntervalCeiling() {
188
+ return this.#maxIntervalCeiling;
169
189
  }
170
190
  activate() {
171
191
  super.activate();
@@ -186,7 +206,7 @@ class ServerSubscription extends Subscription {
186
206
  }
187
207
  this.#updateTimer = Time.getTimer(
188
208
  "Subscription update",
189
- this.#sendIntervalMs,
209
+ this.#sendInterval,
190
210
  () => this.#prepareDataUpdate()
191
211
  ).start();
192
212
  }
@@ -202,12 +222,12 @@ class ServerSubscription extends Subscription {
202
222
  return;
203
223
  }
204
224
  this.#updateTimer.stop();
205
- const now = Time.nowMs();
206
- const timeSinceLastUpdateMs = now - this.#lastUpdateTimeMs;
207
- if (timeSinceLastUpdateMs < this.#minIntervalFloorMs) {
225
+ const now = Time.nowMs;
226
+ const timeSinceLastUpdate = Millis(now - this.#lastUpdateTime);
227
+ if (timeSinceLastUpdate < this.#minIntervalFloor) {
208
228
  this.#updateTimer = Time.getTimer(
209
229
  "Subscription update",
210
- this.#minIntervalFloorMs - timeSinceLastUpdateMs,
230
+ Millis(this.#minIntervalFloor - timeSinceLastUpdate),
211
231
  () => this.#prepareDataUpdate()
212
232
  ).start();
213
233
  return;
@@ -215,7 +235,7 @@ class ServerSubscription extends Subscription {
215
235
  this.#sendDelayTimer.start();
216
236
  this.#updateTimer = Time.getTimer(
217
237
  `Subscription update ${this.id}`,
218
- this.#sendIntervalMs,
238
+ this.#sendInterval,
219
239
  () => this.#prepareDataUpdate()
220
240
  ).start();
221
241
  }
@@ -239,7 +259,7 @@ class ServerSubscription extends Subscription {
239
259
  if (onlyWithData && attributeFilter === void 0 && eventsMinNumber === void 0) {
240
260
  return;
241
261
  }
242
- this.#lastUpdateTimeMs = Time.nowMs();
262
+ this.#lastUpdateTime = Time.nowMs;
243
263
  try {
244
264
  if (await this.#sendUpdateMessage(attributeFilter, eventsMinNumber, onlyWithData)) {
245
265
  this.#sendUpdateErrorCounter = 0;
@@ -374,7 +394,7 @@ class ServerSubscription extends Subscription {
374
394
  } finally {
375
395
  session[Symbol.dispose]();
376
396
  }
377
- this.#lastUpdateTimeMs = Time.nowMs();
397
+ this.#lastUpdateTime = Time.nowMs;
378
398
  }
379
399
  async sendInitialReport(messenger, readContext, suppressStatusReports) {
380
400
  this.#updateTimer.stop();
@@ -529,10 +549,10 @@ class ServerSubscription extends Subscription {
529
549
  }
530
550
  }
531
551
  export {
532
- DEFAULT_RANDOMIZATION_WINDOW_S,
533
- INTERNAL_INTERVAL_PUBLISHER_LIMIT_S,
534
- MAX_INTERVAL_PUBLISHER_LIMIT_S,
535
- MIN_INTERVAL_S,
552
+ DEFAULT_RANDOMIZATION_WINDOW,
553
+ INTERNAL_INTERVAL_PUBLISHER_LIMIT,
554
+ MAX_INTERVAL_PUBLISHER_LIMIT,
555
+ MIN_INTERVAL,
536
556
  ServerSubscription,
537
557
  ServerSubscriptionConfig
538
558
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/node/server/ServerSubscription.ts"],
4
- "mappings": "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",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,OACG;AACP,SAAS,qBAAqB;AAG9B;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EAEA;AAAA,OAEG;AACP;AAAA,EAEI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,MAAM,SAAS,OAAO,IAAI,oBAAoB;AAYvC,MAAM,+BAA+B,MAAM;AAC3C,MAAM,oCAAoC,QAAQ,CAAC;AACnD,MAAM,eAAe,QAAQ,CAAC;AAC9B,MAAM,+BAA+B,QAAQ,EAAE;AA2B/C,IAAU;AAAA,CAAV,CAAUA,8BAAV;AAMI,WAAS,GAAG,SAA6C;AAC5D,WAAO;AAAA,MACH,aAAa,SAAS,eAAe;AAAA,MACrC,aAAa,SAAS,IAAI,SAAS,eAAe,cAAc,YAAY;AAAA,MAC5E,qBAAqB,SAAS,uBAAuB;AAAA,IACzD;AAAA,EACJ;AANO,EAAAA,0BAAS;AAAA,GANH;AA2BV,MAAM,2BAA2B,aAAa;AAAA,EACxC;AAAA,EAET,kBAAkB,UAAU;AAAA,EAC5B;AAAA,EACS,kBAAyB,KAAK;AAAA,IAAS,gBAAgB,KAAK,EAAE;AAAA,IAAU,OAAO,EAAE;AAAA,IAAG,MACzF,KAAK,mBAAmB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACS,kBAAkB,IAAI,cAAc;AAAA,EAE7C,wBAAwB;AAAA,EACxB,wBAAyB,oBAAI,IAAoB;AAAA,EACjD,2BAA4B,YAAY,CAAC;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,6BAA6B;AAAA,EAC7B,0BAA0B;AAAA,EAC1B;AAAA,EAEA,YAAY,SAST;AACC,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAI;AAEJ,UAAM,QAAQ,SAAS,IAAI,QAAQ;AACnC,SAAK,WAAW;AAEhB,SAAK,eAAe,KAAK,QAAQ;AACjC,SAAK,oBAAoB;AACzB,SAAK,sBAAsB;AAE3B,QAAI;AACJ,QAAI;AACJ,QAAI,qBAAqB,UAAa,sBAAsB,QAAW;AACnE,oBAAc;AACd,qBAAe;AAAA,IACnB,OAAO;AACH,OAAC,EAAE,aAAa,aAAa,IAAI,KAAK;AAAA,QAClC,oBAAoB;AAAA,QACpB,oBAAoB;AAAA,QACpB,oBAAoB;AAAA,MACxB;AAAA,IACJ;AACA,SAAK,cAAc;AACnB,SAAK,gBAAgB;AAErB,SAAK,eAAe,KAAK;AAAA,MAAS,gBAAgB,KAAK,EAAE;AAAA,MAAW,KAAK;AAAA,MAAe,MACpF,KAAK,mBAAmB;AAAA,IAC5B;AAAA,EACJ;AAAA,EAEA,2BACI,yBACA,yBACA,iCACiD;AAMjD,UAAM,cAAc,SAAS;AAAA,MACzB,OAAO;AAAA,QACH;AAAA,UACI,SAAS;AAAA,YACL;AAAA,YACA,SAAS;AAAA,cACL,KAAK;AAAA,cACL,SAAS,IAAI,yBAAyB,KAAK,mBAAmB;AAAA,YAClE;AAAA,UACJ,IACI,kCAAkC,KAAK,OAAO;AAAA,QACtD;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AACA,QAAI,eAAe,OAAO,MAAM,OAAO,cAAc,CAAC,CAAC;AACvD,QAAI,eAAe,QAAQ,KAAK;AAI5B,qBAAe,SAAS,IAAI,KAAK,mBAAmB,OAAO,MAAM,OAAO,cAAc,GAAG,CAAC,CAAC;AAAA,IAC/F;AACA,QAAI,eAAe,yBAAyB;AAExC,aAAO;AAAA,QACH,4CAA4C,SAAS,OAAO,YAAY,CAAC,mCAAmC,WAAW;AAAA,MAC3H;AACA,qBAAe;AAAA,IACnB;AACA,WAAO,EAAE,aAAa,aAAa;AAAA,EACvC;AAAA,EAEA,0BAA0B,YAA4B,WAAsB,cAA6B;AACrG,QAAI,CAAC,aAAa,QAAQ;AACtB;AAAA,IACJ;AACA,SAAK,+BAA+B,KAAK,gCAAgC,CAAC;AAC1E,SAAK,6BAA6B,UAAU,IAAI,KAAK,6BAA6B,UAAU,KAAK,CAAC;AAClG,SAAK,6BAA6B,UAAU,EAAE,SAAS,IACnD,KAAK,6BAA6B,UAAU,EAAE,SAAS,KAAK,oBAAI,IAAI;AACxE,eAAW,eAAe,cAAc;AACpC,WAAK,6BAA6B,UAAU,EAAE,SAAS,EAAE,IAAI,WAAW;AAAA,IAC5E;AAAA,EACJ;AAAA,EAEA,2BACI,YACA,WACA,cACA,SACF;AACE,QAAI,KAAK,YAAY,CAAC,aAAa,QAAQ;AACvC;AAAA,IACJ;AAGA,QAAI,KAAK,0BAA0B,QAAW;AAC1C,YAAM,gBAAgB,KAAK,sBAAsB,IAAI,GAAG,UAAU,IAAI,SAAS,EAAE;AACjF,UAAI,kBAAkB,UAAa,kBAAkB,SAAS;AAE1D;AAAA,MACJ;AAAA,IACJ;AAEA,SAAK,0BAA0B,YAAY,WAAW,YAAY;AAElE,SAAK,mBAAmB;AAAA,EAC5B;AAAA,EAEA,mBAAmB,YAAgC;AAC/C,QAAI,KAAK,UAAU;AACf;AAAA,IACJ;AAIA,QAAI,KAAK,gCAAgC,UAAa,KAAK,6BAA6B,QAAW;AAC/F,WAAK,8BAA8B,WAAW;AAAA,IAClD;AAEA,QAAI,KAAK,mBAAmB,UAAU,GAAG;AACrC,WAAK,mBAAmB;AAAA,IAC5B;AAAA,EACJ;AAAA,EAEA,mBAAmB,EAAE,YAAY,WAAW,QAAQ,GAA0C;AAC1F,YAAQ,KAAK,SAAS,iBAAiB,CAAC,GAAG;AAAA,MACvC,CAAC,EAAE,YAAY,eAAe,WAAW,cAAc,SAAS,YAAY,SAAS,MACjF,aACC,kBAAkB,UAAa,kBAAkB,gBACjD,iBAAiB,UAAa,iBAAiB,eAC/C,eAAe,UAAa,eAAe;AAAA,IACpD;AAAA,EACJ;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,mBAAmB;AACnB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,qBAAqB;AACrB,WAAO,KAAK;AAAA,EAChB;AAAA,EAES,WAAW;AAChB,UAAM,SAAS;AAGf,QAAI,KAAK,SAAS,iBAAiB,OAAW,MAAK,SAAS,aAAa,SAAS;AAClF,QAAI,KAAK,SAAS,uBAAuB,OAAW,MAAK,SAAS,mBAAmB,SAAS;AAE9F,SAAK,wBAAwB;AAE7B,QAAI,KAAK,gCAAgC,UAAa,KAAK,6BAA6B,QAAW;AAC/F,UAAI,KAAK,2BAA2B,KAAK,6BAA6B;AAClE,aAAK,8BAA8B,YAAY,OAAO,KAAK,wBAAwB,IAAI,OAAO,CAAC,CAAC;AAAA,MACpG,OAAO;AACH,aAAK,8BAA8B;AAAA,MACvC;AAAA,IACJ;AAEA,SAAK,2BAA2B;AAChC,SAAK,wBAAwB;AAE7B,QAAI,KAAK,iCAAiC,UAAa,KAAK,gCAAgC,QAAW;AACnG,WAAK,mBAAmB;AAAA,IAC5B;AACA,SAAK,eAAe,KAAK;AAAA,MAAS;AAAA,MAAuB,KAAK;AAAA,MAAe,MACzE,KAAK,mBAAmB;AAAA,IAC5B,EAAE,MAAM;AAAA,EACZ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,qBAAqB;AACjB,QAAI,KAAK,gBAAgB,aAAa,KAAK,UAAU;AAEjD;AAAA,IACJ;AAEA,QAAI,CAAC,KAAK,uBAAuB;AAC7B;AAAA,IACJ;AAEA,SAAK,aAAa,KAAK;AACvB,UAAM,MAAM,KAAK;AACjB,UAAM,sBAAsB,OAAO,MAAM,KAAK,eAAe;AAC7D,QAAI,sBAAsB,KAAK,mBAAmB;AAE9C,WAAK,eAAe,KAAK;AAAA,QACrB;AAAA,QACA,OAAO,KAAK,oBAAoB,mBAAmB;AAAA,QACnD,MAAM,KAAK,mBAAmB;AAAA,MAClC,EAAE,MAAM;AACR;AAAA,IACJ;AAEA,SAAK,gBAAgB,MAAM;AAC3B,SAAK,eAAe,KAAK;AAAA,MAAS,uBAAuB,KAAK,EAAE;AAAA,MAAI,KAAK;AAAA,MAAe,MACpF,KAAK,mBAAmB;AAAA,IAC5B,EAAE,MAAM;AAAA,EACZ;AAAA,EAEA,mBAAmB,eAAwB,OAAO;AAC9C,QAAI,KAAK,0BAA0B,QAAW;AAC1C,aAAO,MAAM,yDAAyD;AACtE,WAAK,6BAA6B;AAClC;AAAA,IACJ;AACA,SAAK,wBAAwB,KAAK,YAAY,YAAY,EACrD,MAAM,WAAS,OAAO,KAAK,uCAAuC,KAAK,CAAC,EACxE,QAAQ,MAAO,KAAK,wBAAwB,MAAU;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,YAAY,eAAe,OAAO;AAEpC,UAAM,kBAAkB,KAAK;AAC7B,SAAK,+BAA+B;AAEpC,UAAM,kBAAkB,KAAK;AAC7B,SAAK,8BAA8B;AAEnC,QAAI,gBAAgB,oBAAoB,UAAa,oBAAoB,QAAW;AAChF;AAAA,IACJ;AAEA,SAAK,kBAAkB,KAAK;AAE5B,QAAI;AACA,UAAI,MAAM,KAAK,mBAAmB,iBAAiB,iBAAiB,YAAY,GAAG;AAC/E,aAAK,0BAA0B;AAAA,MACnC;AAAA,IACJ,SAAS,OAAO;AACZ,UAAI,KAAK,UAAU;AAEf;AAAA,MACJ;AAEA,WAAK;AACL,aAAO;AAAA,QACH,0DAA0D,KAAK,uBAAuB;AAAA,QACrF,iBAAiB,eAAe,MAAM,WAAY;AAAA,MACvD;AACA,UAAI,KAAK,2BAA2B,GAAG;AAEnC,YAAI,oBAAoB,QAAW;AAC/B,qBAAW,CAAC,YAAY,QAAQ,KAAK,OAAO,QAAQ,eAAe,GAAG;AAClE,uBAAW,CAAC,WAAW,UAAU,KAAK,OAAO,QAAQ,QAAQ,GAAG;AAC5D,mBAAK;AAAA,gBACD,eAAe,SAAS,UAAU,CAAC;AAAA,gBACnC,UAAU,SAAS,SAAS,CAAC;AAAA,gBAC7B,MAAM,KAAK,UAAU;AAAA,cACzB;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AACA,YAAI,oBAAoB,QAAW;AAC/B,eAAK,8BAA8B;AAAA,QACvC;AAAA,MACJ,OAAO;AACH,eAAO;AAAA,UACH,kEAAkE,KAAK,EAAE;AAAA,QAC7E;AACA,aAAK,6BAA6B;AAClC,YACI,iBAAiB,0BACjB,iBAAiB,gBACjB,iBAAiB,gBACnB;AAEE,eAAK,mBAAmB;AACxB,gBAAM,KAAK,QAAQ;AACnB;AAAA,QACJ,OAAO;AACH,gBAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI,KAAK,4BAA4B;AACjC,aAAO,MAAM,6DAA6D;AAC1E,WAAK,6BAA6B;AAClC,YAAM,KAAK,YAAY,IAAI;AAAA,IAC/B;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,kCAAkC,SAAgC,wBAAwB,OAAO;AACpG,UAAM,UAAU;AAAA,MACZ,GAAG,KAAK;AAAA,MACR,0BAA0B,cAAc;AAAA;AAAA,IAC5C;AAEA,UAAM,uBAAuB,IAAI,MAAyB;AAC1D,QAAI,sBAAsB;AAC1B,QAAI,kBAAkB;AACtB,QAAI,cAAc;AAElB,UAAM,UAAU,cAAc,OAAO,EAAE,cAAc;AAErD,QAAI;AACA,UAAI,KAAK,kBAAkB,OAAO,GAAG;AACjC,cAAM,kBAAkB,IAAI,sBAAsB,KAAK,SAAS,KAAK,UAAU,OAAO;AACtF,mBAAW,SAAS,gBAAgB,QAAQ,OAAO,GAAG;AAClD,qBAAW,UAAU,OAAO;AACxB,gBAAI,OAAO,SAAS,eAAe;AAC/B,kBAAI,uBAAuB;AACvB;AAAA,cACJ;AACA,kBAAI,CAAC,qBAAqB;AAEtB,qCAAqB,KAAK,MAAM;AAChC;AAAA,cACJ;AAAA,YACJ,WAAW,CAAC,uBAAuB,OAAO,SAAS,cAAc;AAE7D,yBAAW,iBAAiB,sBAAsB;AAC9C,sBAAM,2BAA2B,+BAA+B,aAAa;AAAA,cACjF;AACA,mCAAqB,SAAS;AAC9B,oCAAsB;AAAA,YAC1B;AACA,gBAAI,KAAK,0BAA0B,UAAa,OAAO,SAAS,cAAc;AAC1E,oBAAM;AAAA,gBACF,MAAM,EAAE,YAAY,UAAU;AAAA,gBAC9B;AAAA,cACJ,IAAI;AACJ,mBAAK,sBAAsB,IAAI,GAAG,UAAU,IAAI,SAAS,IAAI,OAAO;AAAA,YACxE;AACA,kBAAM,2BAA2B,+BAA+B,MAAM;AAAA,UAC1E;AAAA,QACJ;AACA,0BAAkB,gBAAgB,OAAO;AAAA,MAC7C;AAEA,UAAI,KAAK,cAAc,OAAO,GAAG;AAC7B,cAAM,cAAc,IAAI,kBAAkB,KAAK,SAAS,KAAK,UAAU,OAAO;AAC9E,yBAAiB,SAAS,YAAY,QAAQ,OAAO,GAAG;AACpD,qBAAW,UAAU,OAAO;AACxB,gBAAI,OAAO,SAAS,gBAAgB;AAChC,kBAAI,uBAAuB;AACvB;AAAA,cACJ;AACA,kBAAI,CAAC,qBAAqB;AAEtB,qCAAqB,KAAK,MAAM;AAChC;AAAA,cACJ;AAAA,YACJ,WAAW,CAAC,uBAAuB,OAAO,SAAS,eAAe;AAE9D,yBAAW,iBAAiB,sBAAsB;AAC9C,sBAAM,2BAA2B,+BAA+B,aAAa;AAAA,cACjF;AACA,mCAAqB,SAAS;AAC9B,oCAAsB;AAAA,YAC1B;AACA,gBAAI,KAAK,6BAA6B,UAAa,OAAO,SAAS,eAAe;AAC9E,mBAAK,2BAA2B,OAAO;AAAA,YAC3C;AACA,kBAAM,2BAA2B,+BAA+B,MAAM;AAAA,UAC1E;AAAA,QACJ;AACA,sBAAc,YAAY,OAAO;AAAA,MACrC;AAEA,UAAI,oBAAoB,KAAK,gBAAgB,GAAG;AAC5C,cAAM,IAAI;AAAA,UACN;AAAA,UACA,WAAW;AAAA,QACf;AAAA,MACJ,WAAW,CAAC,uBAAuB,qBAAqB,QAAQ;AAE5D,mBAAW,iBAAiB,sBAAsB;AAC9C,gBAAM,2BAA2B,+BAA+B,aAAa;AAAA,QACjF;AAAA,MACJ;AAAA,IACJ,UAAE;AACE,cAAQ,OAAO,OAAO,EAAE;AAAA,IAC5B;AACA,SAAK,kBAAkB,KAAK;AAAA,EAChC;AAAA,EAEA,MAAM,kBACF,WACA,aACA,uBACF;AACE,SAAK,aAAa,KAAK;AAGvB,QAAI,KAAK,SAAS,mBAAmB,QAAQ;AACzC,WAAK,gBAAgB;AAAA,QACjB,KAAK,SAAS,KAAK,SAAS;AAAA,QAC5B,KAAK,2BAA2B,KAAK,IAAI;AAAA,MAC7C;AAAA,IACJ;AACA,QAAI,KAAK,SAAS,eAAe,QAAQ;AACrC,WAAK,gBAAgB,GAAG,KAAK,SAAS,KAAK,SAAS,aAAa,OAAO,KAAK,mBAAmB,KAAK,IAAI,CAAC;AAAA,IAC9G;AAEA,UAAM,UAAU,eAAe;AAAA,MAC3B,gBAAgB;AAAA,QACZ,kBAAkB;AAAA;AAAA,QAClB,gBAAgB,KAAK;AAAA,QACrB,0BAA0B,cAAc;AAAA,MAC5C;AAAA,MACA,uBAAuB,KAAK,SAAS;AAAA,MACrC,SAAS,KAAK,kCAAkC,aAAa,qBAAqB;AAAA,IACtF,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,SAAS;AACX,SAAK,gBAAgB,KAAK;AAC1B,QAAI,KAAK,iCAAiC,UAAa,KAAK,gCAAgC,QAAW;AACnG,aAAO,MAAM,yBAAyB,KAAK,EAAE,GAAG,KAAK,WAAW,mBAAmB,EAAE,EAAE;AACvF,WAAK,mBAAmB,IAAI;AAC5B,UAAI,KAAK,uBAAuB;AAC5B,cAAM,KAAK;AAAA,MACf;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAyB,UAAU;AAC/B,SAAK,wBAAwB;AAE7B,SAAK,gBAAgB,MAAM;AAE3B,SAAK,aAAa,KAAK;AACvB,SAAK,gBAAgB,KAAK;AAC1B,UAAM,MAAM,QAAQ;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAe,MAAM,WAAW,OAAO,kBAAkB,OAAO;AAC5D,QAAI,KAAK,UAAU;AACf;AAAA,IACJ;AACA,QAAI,iBAAiB;AACjB,WAAK,mBAAmB;AAAA,IAC5B;AACA,UAAM,KAAK,QAAQ;AACnB,QAAI,UAAU;AACV,YAAM,KAAK,OAAO;AAAA,IACtB;AACA,QAAI,KAAK,uBAAuB;AAC5B,YAAM,KAAK;AAAA,IACf;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,mBACH,UACA,iBACA,iBACF;AACE,UAAM,UAAU;AAAA,MACZ,GAAG,KAAK;AAAA,MACR,0BAA0B,cAAc;AAAA;AAAA,IAC5C;AAEA,UAAM,UAAU,cAAc;AAAA,MAC1B,UAAW,SAAuC,aAAa,WAAW;AAAA,MAC1E,gBAAgB,QAAQ;AAAA,MACxB,SAAS,CAAC;AAAA,MACV;AAAA,MACA,MAAM,KAAK,SAAS;AAAA,IACxB,CAAC,EAAE,cAAc;AAEjB,QAAI;AACA,UAAI,oBAAoB,UAAa,KAAK,kBAAkB,OAAO,GAAG;AAClE,cAAM,kBAAkB,IAAI;AAAA,UACxB,KAAK,SAAS,KAAK;AAAA,UACnB;AAAA,UACA;AAAA,QACJ;AACA,mBAAW,SAAS,gBAAgB,QAAQ,OAAO,GAAG;AAClD,qBAAW,UAAU,OAAO;AAExB,kBAAM,2BAA2B,+BAA+B,MAAM;AAAA,UAC1E;AAAA,QACJ;AAAA,MACJ;AAEA,UAAI,oBAAoB,UAAa,KAAK,cAAc,OAAO,GAAG;AAE9D,gBAAQ,eAAe,CAAC,EAAE,UAAU,gBAAgB,CAAC;AAErD,cAAM,cAAc,IAAI,kBAAkB,KAAK,SAAS,KAAK,UAAU,OAAO;AAC9E,yBAAiB,SAAS,YAAY,QAAQ,OAAO,GAAG;AACpD,qBAAW,UAAU,OAAO;AACxB,gBAAI,OAAO,SAAS,gBAAgB;AAChC;AAAA,YACJ;AACA,kBAAM,2BAA2B,+BAA+B,MAAM;AAAA,UAC1E;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,UAAE;AACE,cAAQ,OAAO,OAAO,EAAE;AAAA,IAC5B;AAAA,EACJ;AAAA,EAEA,MAAM,mBACF,iBACA,iBACA,cACF;AACE,UAAM,WAAW,KAAK,SAAS,iBAAiB,KAAK,cAAc,uBAAuB;AAC1F,QAAI,aAAa,OAAW,QAAO;AAEnC,UAAM,YAAY,IAAI,2BAA2B,QAAQ;AAEzD,QAAI;AACA,UAAI,oBAAoB,UAAa,oBAAoB,QAAW;AAChE,cAAM,UAAU,eAAe;AAAA,UAC3B,gBAAgB;AAAA,YACZ,kBAAkB;AAAA;AAAA,YAClB,gBAAgB,KAAK;AAAA,YACrB,0BAA0B,cAAc;AAAA,UAC5C;AAAA,UACA,uBAAuB,KAAK,SAAS;AAAA,UACrC,YAAY,CAAC,KAAK;AAAA;AAAA,QACtB,CAAC;AAAA,MACL,OAAO;AAIH,cAAM,UAAU,eAAe;AAAA,UAC3B,gBAAgB;AAAA,YACZ,kBAAkB;AAAA;AAAA,YAClB,gBAAgB,KAAK;AAAA,YACrB,0BAA0B,cAAc;AAAA,UAC5C;AAAA,UACA,uBAAuB,KAAK,SAAS;AAAA,UACrC,SAAS,KAAK,mBAAmB,UAAU,iBAAiB,eAAe;AAAA,UAC3E,YAAY,CAAC,KAAK;AAAA;AAAA,UAClB,qBAAqB;AAAA,QACzB,CAAC;AAAA,MACL;AAAA,IACJ,SAAS,OAAO;AACZ,UAAI,oBAAoB,GAAG,OAAO,WAAW,qBAAqB,WAAW,OAAO,GAAG;AACnF,eAAO,KAAK,gBAAgB,KAAK,EAAE,qBAAqB;AACxD,aAAK,mBAAmB;AACxB,cAAM,KAAK,MAAM,KAAK;AAAA,MAC1B,OAAO;AACH,4BAAoB,OAAO,KAAK;AAChC,eAAO,KAAK,gBAAgB,KAAK,EAAE,mBAAmB,KAAK;AAC3D,cAAM,KAAK,MAAM,KAAK;AAAA,MAC1B;AAAA,IACJ,UAAE;AACE,YAAM,UAAU,MAAM;AAAA,IAC1B;AACA,WAAO;AAAA,EACX;AACJ;",
5
5
  "names": ["ServerSubscriptionConfig"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/node",
3
- "version": "0.16.0-alpha.0-20250817-1b000357c",
3
+ "version": "0.16.0-alpha.0-20250820-24939dd26",
4
4
  "description": "API for building Matter nodes",
5
5
  "keywords": [
6
6
  "iot",
@@ -42,14 +42,14 @@
42
42
  "#*": "./src/*"
43
43
  },
44
44
  "dependencies": {
45
- "@matter/general": "0.16.0-alpha.0-20250817-1b000357c",
46
- "@matter/model": "0.16.0-alpha.0-20250817-1b000357c",
47
- "@matter/types": "0.16.0-alpha.0-20250817-1b000357c",
48
- "@matter/protocol": "0.16.0-alpha.0-20250817-1b000357c"
45
+ "@matter/general": "0.16.0-alpha.0-20250820-24939dd26",
46
+ "@matter/model": "0.16.0-alpha.0-20250820-24939dd26",
47
+ "@matter/types": "0.16.0-alpha.0-20250820-24939dd26",
48
+ "@matter/protocol": "0.16.0-alpha.0-20250820-24939dd26"
49
49
  },
50
50
  "devDependencies": {
51
- "@matter/tools": "0.16.0-alpha.0-20250817-1b000357c",
52
- "@matter/testing": "0.16.0-alpha.0-20250817-1b000357c"
51
+ "@matter/tools": "0.16.0-alpha.0-20250820-24939dd26",
52
+ "@matter/testing": "0.16.0-alpha.0-20250820-24939dd26"
53
53
  },
54
54
  "files": [
55
55
  "dist/**/*",
@@ -382,7 +382,7 @@ export namespace Behavior {
382
382
  /**
383
383
  * Input variant of StateOf.
384
384
  */
385
- export type InputStateOf<B extends Type> = Partial<ClusterType.RelaxTypes<StateOf<B>>>;
385
+ export type InputStateOf<B extends Type> = Partial<StateOf<B>>;
386
386
 
387
387
  /**
388
388
  * Patch variant of StateOf.
@@ -182,7 +182,7 @@ export class OnlineEvent<T extends any[] = any[], S extends ValueModel = ValueMo
182
182
  const trigger = (payload?: any) => {
183
183
  const maybePromise = occurrenceManager.add({
184
184
  ...this.#baseOccurrence!,
185
- epochTimestamp: Time.nowMs(),
185
+ epochTimestamp: Time.nowMs,
186
186
  payload,
187
187
  });
188
188
 
@@ -10,12 +10,16 @@ import {
10
10
  addValueWithOverflow,
11
11
  cropValueRange,
12
12
  Diagnostic,
13
+ Duration,
13
14
  ImplementationError,
14
15
  Logger,
15
16
  MaybePromise,
17
+ Millis,
16
18
  ObserverGroup,
17
19
  Time,
18
20
  Timer,
21
+ Timespan,
22
+ Timestamp,
19
23
  } from "#general";
20
24
  import { Behavior } from "./Behavior.js";
21
25
  import { ClusterEvents } from "./cluster/ClusterEvents.js";
@@ -170,7 +174,7 @@ export class Transitions<B extends Behavior> {
170
174
  configuration: transition,
171
175
  currentValue,
172
176
  changePerMs: changePerS / 1000,
173
- prevStepAt: Time.nowMs() - (this.#config.stepIntervalMs ?? Transitions.DEFAULT_STEP_INTERVAL_MS),
177
+ prevStepAt: Timestamp(Time.nowMs - (this.#config.stepInterval ?? Transitions.DEFAULT_STEP_INTERVAL)),
174
178
  distanceLeft,
175
179
  };
176
180
 
@@ -244,7 +248,7 @@ export class Transitions<B extends Behavior> {
244
248
  if (this.#timer === undefined) {
245
249
  this.#timer = Time.getPeriodicTimer(
246
250
  `transition-${this.#endpoint}-${this.#config.type.name}`,
247
- this.#config.stepIntervalMs ?? Transitions.DEFAULT_STEP_INTERVAL_MS,
251
+ this.#config.stepInterval ?? Transitions.DEFAULT_STEP_INTERVAL,
248
252
  this.#step.bind(this),
249
253
  );
250
254
 
@@ -357,7 +361,7 @@ export class Transitions<B extends Behavior> {
357
361
  get remainingTime() {
358
362
  if (this.#config.manageTransitions === false) {
359
363
  if (this.#config.transitionEndTimeMs !== undefined) {
360
- const remaining = this.#config.transitionEndTimeMs - Time.nowMs();
364
+ const remaining = Timespan(Time.nowMs, this.#config.transitionEndTimeMs).duration;
361
365
  if (remaining < 0) {
362
366
  return 0;
363
367
  }
@@ -403,7 +407,7 @@ export class Transitions<B extends Behavior> {
403
407
  * You may override this method if you want matter.js to run a timer, but you want to handle value updates yourself.
404
408
  */
405
409
  protected async step(behavior: B) {
406
- const now = Time.nowMs();
410
+ const now = Time.nowMs;
407
411
 
408
412
  // Compute updated values for all transitioning attributes
409
413
  for (const prop of this) {
@@ -593,11 +597,11 @@ export class Transitions<B extends Behavior> {
593
597
  }
594
598
 
595
599
  #externalTimeOf(ms: number) {
596
- return Math.round(ms / (this.#config.externalTimeUnitMs ?? Transitions.DEFAULT_EXTERNAL_TIME_UNIT_MS));
600
+ return Math.round(ms / (this.#config.externalTimeUnit ?? Transitions.DEFAULT_EXTERNAL_TIME_UNIT));
597
601
  }
598
602
 
599
603
  #internalTimeOf(externalUnits: number) {
600
- return externalUnits * (this.#config.externalTimeUnitMs ?? Transitions.DEFAULT_EXTERNAL_TIME_UNIT_MS);
604
+ return Millis(externalUnits * (this.#config.externalTimeUnit ?? Transitions.DEFAULT_EXTERNAL_TIME_UNIT));
601
605
  }
602
606
 
603
607
  /**
@@ -644,8 +648,8 @@ export class Transitions<B extends Behavior> {
644
648
  }
645
649
 
646
650
  export namespace Transitions {
647
- export const DEFAULT_STEP_INTERVAL_MS = 100;
648
- export const DEFAULT_EXTERNAL_TIME_UNIT_MS = 100;
651
+ export const DEFAULT_STEP_INTERVAL = Millis(100);
652
+ export const DEFAULT_EXTERNAL_TIME_UNIT = Millis(100);
649
653
 
650
654
  /**
651
655
  * A valid transitionable attribute name for the specified type.
@@ -674,19 +678,19 @@ export namespace Transitions {
674
678
  readonly manageTransitions?: boolean;
675
679
 
676
680
  /**
677
- * Milliseconds-per external time unit. Defaults to 100 which is appropriate for CC & LVL "remaining time"
681
+ * Interval per external time unit. Defaults to 100ms which is appropriate for CC & LVL "remaining time"
678
682
  * attribute that is defined as 10ths of a second.
679
683
  */
680
- readonly externalTimeUnitMs?: number;
684
+ readonly externalTimeUnit?: Duration;
681
685
 
682
686
  /**
683
687
  * The internal tick rate for transitions.
684
688
  *
685
689
  * This is the smallest time increment between value adjustments.
686
690
  *
687
- * Defaults to {@link DEFAULT_STEP_INTERVAL_MS}.
691
+ * Defaults to {@link DEFAULT_STEP_INTERVAL}.
688
692
  */
689
- readonly stepIntervalMs?: number;
693
+ readonly stepInterval?: Duration;
690
694
 
691
695
  /**
692
696
  * The end time for a transition if transition management is disabled.
@@ -821,7 +825,7 @@ export namespace Transitions {
821
825
  /**
822
826
  * The time of the last step.
823
827
  */
824
- prevStepAt: number;
828
+ prevStepAt: Timestamp;
825
829
 
826
830
  /**
827
831
  * Set to true when the reporting of remaining time should be suppressed when finishing the transition.
@@ -7,7 +7,7 @@
7
7
  import type { Behavior } from "#behavior/Behavior.js";
8
8
  import type { Endpoint } from "#endpoint/Endpoint.js";
9
9
  import type { SupportedElements } from "#endpoint/properties/Behaviors.js";
10
- import { createPromise, deepCopy, isObject, Logger, MaybePromise, withTimeout } from "#general";
10
+ import { createPromise, deepCopy, isObject, Logger, MaybePromise, Seconds, withTimeout } from "#general";
11
11
  import type { ServerNode } from "#node/ServerNode.js";
12
12
  import { OccurrenceManager, Val } from "#protocol";
13
13
  import type { ClusterType, FabricIndex, ObjectSchema } from "#types";
@@ -67,7 +67,7 @@ async function sanitizeAttributeData(
67
67
  (endpoint.eventsOf(type) as Behavior.EventsOf<any>).stateChanged?.on(resolver);
68
68
  try {
69
69
  await endpoint.setStateOf(type, stateUpdate);
70
- stateUpdatePromises.push(withTimeout(5_000, promise)); // 5s should be enough for state change
70
+ stateUpdatePromises.push(withTimeout(Seconds(5), promise)); // 5s should be enough for state change
71
71
  } catch (error) {
72
72
  logger.warn(
73
73
  `Could not sanitize fabric-scoped attributes for cluster ${cluster.name} on endpoint ${endpoint.id}`,
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
+ import { Migration } from "#behavior/state/migrations/Migration.js";
7
8
  import type { Agent } from "#endpoint/Agent.js";
8
9
  import type { Endpoint } from "#endpoint/Endpoint.js";
9
10
  import { BehaviorInitializationError } from "#endpoint/errors.js";
@@ -102,9 +103,15 @@ export abstract class BehaviorBacking {
102
103
  }
103
104
 
104
105
  initializeDataSource() {
105
- if (!this.#datasource) {
106
- this.#datasource = Datasource(this.datasourceOptions);
106
+ if (this.#datasource) {
107
+ return;
107
108
  }
109
+
110
+ if (this.store.initialValues !== undefined) {
111
+ Migration.migrate(this.type, this.store.initialValues);
112
+ }
113
+
114
+ this.#datasource = Datasource(this.datasourceOptions);
108
115
  }
109
116
 
110
117
  /**
@@ -7,10 +7,9 @@
7
7
  import type { ValueSupervisor } from "../../../supervision/ValueSupervisor.js";
8
8
 
9
9
  /**
10
- * If you invoke {@link ValueSupervisor.manage} on a non-collection value, this is
11
- * the manage implementation you will receive.
10
+ * If you invoke {@link ValueSupervisor.manage} on a non-collection value, this is the manage implementation you will
11
+ * receive.
12
12
  *
13
- * Struct and list manager implementations optimize by bypassing
14
- * PrimitiveManager.
13
+ * Struct and list manager implementations optimize by bypassing PrimitiveManager.
15
14
  */
16
15
  export const PrimitiveManager: ValueSupervisor.Manage = reference => reference;
@@ -105,13 +105,13 @@ function StructPatcher(schema: ValueModel, supervisor: RootSupervisor): ValueSup
105
105
  throw new WriteError(path, `cannot patch ${target} because it is not an object`);
106
106
  }
107
107
 
108
- for (const key in changes) {
108
+ for (const key in changes as Val.Struct) {
109
109
  // Validate the key
110
110
  if (!(key in memberPatchers)) {
111
111
  throw new WriteError(path, `${key} is not a property of ${schema.name}`);
112
112
  }
113
113
 
114
- let newValue = changes[key];
114
+ let newValue = (changes as Val.Struct)[key];
115
115
 
116
116
  // If this is not a subcollection or the new value is not an object, just do direct set
117
117
  const subpatch = memberPatchers[key];
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { Behavior } from "#behavior/Behavior.js";
8
+ import { InternalError } from "#general";
9
+ import { Val } from "#protocol";
10
+
11
+ const migrations = new Map<string, Migration.Migrator>();
12
+
13
+ /**
14
+ * Add a data migration.
15
+ *
16
+ * Migrations allow the server to adjust persisted data when the stored format is incompatible with current code.
17
+ */
18
+ export function Migration(id: string, migrator: Migration.Migrator) {
19
+ if (migrations.has(id)) {
20
+ throw new InternalError(`Duplicate migration ${id}`);
21
+ }
22
+
23
+ migrations.set(id, migrator);
24
+ }
25
+
26
+ export namespace Migration {
27
+ export function migrate(type: Behavior.Type, values: Val.Struct) {
28
+ migrations.get(type.id)?.(values, type);
29
+ }
30
+
31
+ export interface Migrator {
32
+ (values: Val.Struct, type: Behavior.Type): void;
33
+ }
34
+ }
@@ -4,4 +4,4 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- export * from "./SubscriptionBehavior.js";
7
+ // Currently there are no migrations
@@ -73,6 +73,7 @@ export function ValueValidator(schema: Schema, supervisor: RootSupervisor): Valu
73
73
  break;
74
74
 
75
75
  case Metatype.date:
76
+ case Metatype.duration:
76
77
  case Metatype.any:
77
78
  break;
78
79
 
@@ -102,7 +102,7 @@ export namespace ValueSupervisor {
102
102
 
103
103
  export type Manage = (reference: Val.Reference, session: Session) => Val;
104
104
 
105
- export type Patch = (changes: Val.Collection, target: Val.Collection, path: DataModelPath) => Val;
105
+ export type Patch = (changes: Val.ReadonlyCollection, target: Val.Collection, path: DataModelPath) => Val;
106
106
 
107
107
  export type Cast = (value: Val) => Val;
108
108
  }