@matter/node 0.16.0-alpha.0-20250817-1b000357c → 0.16.0-alpha.0-20250819-0a388db8b

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 (276) 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 +6 -6
  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/NetworkClient.d.ts.map +1 -1
  49. package/dist/cjs/behavior/system/network/NetworkClient.js +2 -2
  50. package/dist/cjs/behavior/system/network/NetworkClient.js.map +1 -1
  51. package/dist/cjs/behavior/system/network/ServerNetworkRuntime.js +2 -2
  52. package/dist/cjs/behavior/system/network/ServerNetworkRuntime.js.map +1 -1
  53. package/dist/cjs/behavior/system/{subscription/SubscriptionBehavior.d.ts → subscriptions/SubscriptionsServer.d.ts} +6 -6
  54. package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.d.ts.map +1 -0
  55. package/dist/cjs/behavior/system/{subscription/SubscriptionBehavior.js → subscriptions/SubscriptionsServer.js} +22 -22
  56. package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.js.map +6 -0
  57. package/dist/{esm/behavior/system/subscription → cjs/behavior/system/subscriptions}/index.d.ts +1 -1
  58. package/dist/cjs/behavior/system/subscriptions/index.d.ts.map +1 -0
  59. package/dist/cjs/behavior/system/{subscription → subscriptions}/index.js +3 -3
  60. package/dist/cjs/behavior/system/subscriptions/index.js.map +6 -0
  61. package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts +3 -3
  62. package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts.map +1 -1
  63. package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.js +13 -11
  64. package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.js.map +1 -1
  65. package/dist/cjs/behaviors/color-control/ColorControlServer.d.ts +2 -2
  66. package/dist/cjs/behaviors/color-control/ColorControlServer.d.ts.map +1 -1
  67. package/dist/cjs/behaviors/color-control/ColorControlServer.js +4 -4
  68. package/dist/cjs/behaviors/color-control/ColorControlServer.js.map +1 -1
  69. package/dist/cjs/behaviors/general-commissioning/GeneralCommissioningServer.d.ts.map +1 -1
  70. package/dist/cjs/behaviors/general-commissioning/GeneralCommissioningServer.js +3 -3
  71. package/dist/cjs/behaviors/general-commissioning/GeneralCommissioningServer.js.map +1 -1
  72. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts +4 -4
  73. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
  74. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js +17 -16
  75. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
  76. package/dist/cjs/behaviors/identify/IdentifyServer.d.ts.map +1 -1
  77. package/dist/cjs/behaviors/identify/IdentifyServer.js +1 -1
  78. package/dist/cjs/behaviors/identify/IdentifyServer.js.map +1 -1
  79. package/dist/cjs/behaviors/level-control/LevelControlServer.d.ts +1 -1
  80. package/dist/cjs/behaviors/level-control/LevelControlServer.d.ts.map +1 -1
  81. package/dist/cjs/behaviors/level-control/LevelControlServer.js +3 -3
  82. package/dist/cjs/behaviors/level-control/LevelControlServer.js.map +1 -1
  83. package/dist/cjs/behaviors/on-off/OnOffServer.d.ts.map +1 -1
  84. package/dist/cjs/behaviors/on-off/OnOffServer.js +2 -2
  85. package/dist/cjs/behaviors/on-off/OnOffServer.js.map +1 -1
  86. package/dist/cjs/behaviors/power-source/PowerSourceServer.d.ts.map +1 -1
  87. package/dist/cjs/behaviors/power-source/PowerSourceServer.js +2 -1
  88. package/dist/cjs/behaviors/power-source/PowerSourceServer.js.map +1 -1
  89. package/dist/cjs/behaviors/switch/SwitchServer.d.ts +4 -4
  90. package/dist/cjs/behaviors/switch/SwitchServer.d.ts.map +1 -1
  91. package/dist/cjs/behaviors/switch/SwitchServer.js +8 -6
  92. package/dist/cjs/behaviors/switch/SwitchServer.js.map +1 -1
  93. package/dist/cjs/endpoint/Endpoint.d.ts.map +1 -1
  94. package/dist/cjs/endpoint/Endpoint.js +11 -1
  95. package/dist/cjs/endpoint/Endpoint.js.map +1 -1
  96. package/dist/cjs/endpoint/properties/SupportedBehaviors.d.ts +1 -1
  97. package/dist/cjs/endpoint/properties/SupportedBehaviors.d.ts.map +1 -1
  98. package/dist/cjs/node/ServerNode.d.ts +2 -2
  99. package/dist/cjs/node/ServerNode.d.ts.map +1 -1
  100. package/dist/cjs/node/ServerNode.js +2 -2
  101. package/dist/cjs/node/ServerNode.js.map +1 -1
  102. package/dist/cjs/node/client/ClientNodes.js +4 -4
  103. package/dist/cjs/node/client/ClientNodes.js.map +1 -1
  104. package/dist/cjs/node/client/NodePeerAddressStore.d.ts.map +1 -1
  105. package/dist/cjs/node/client/NodePeerAddressStore.js +2 -1
  106. package/dist/cjs/node/client/NodePeerAddressStore.js.map +2 -2
  107. package/dist/cjs/node/server/InteractionServer.d.ts +6 -6
  108. package/dist/cjs/node/server/InteractionServer.d.ts.map +1 -1
  109. package/dist/cjs/node/server/InteractionServer.js +12 -11
  110. package/dist/cjs/node/server/InteractionServer.js.map +1 -1
  111. package/dist/cjs/node/server/ProtocolService.js +2 -2
  112. package/dist/cjs/node/server/ProtocolService.js.map +1 -1
  113. package/dist/cjs/node/server/ServerSubscription.d.ts +18 -17
  114. package/dist/cjs/node/server/ServerSubscription.d.ts.map +1 -1
  115. package/dist/cjs/node/server/ServerSubscription.js +61 -54
  116. package/dist/cjs/node/server/ServerSubscription.js.map +1 -1
  117. package/dist/esm/behavior/Behavior.d.ts +1 -1
  118. package/dist/esm/behavior/Behavior.d.ts.map +1 -1
  119. package/dist/esm/behavior/Events.js +1 -1
  120. package/dist/esm/behavior/Events.js.map +1 -1
  121. package/dist/esm/behavior/Transitions.d.ts +8 -8
  122. package/dist/esm/behavior/Transitions.d.ts.map +1 -1
  123. package/dist/esm/behavior/Transitions.js +12 -9
  124. package/dist/esm/behavior/Transitions.js.map +1 -1
  125. package/dist/esm/behavior/cluster/FabricScopedDataHandler.js +2 -2
  126. package/dist/esm/behavior/cluster/FabricScopedDataHandler.js.map +1 -1
  127. package/dist/esm/behavior/internal/BehaviorBacking.d.ts.map +1 -1
  128. package/dist/esm/behavior/internal/BehaviorBacking.js +7 -2
  129. package/dist/esm/behavior/internal/BehaviorBacking.js.map +1 -1
  130. package/dist/esm/behavior/internal/Reactors.js +2 -2
  131. package/dist/esm/behavior/internal/Reactors.js.map +1 -1
  132. package/dist/esm/behavior/state/managed/values/PrimitiveManager.d.ts +3 -4
  133. package/dist/esm/behavior/state/managed/values/PrimitiveManager.d.ts.map +1 -1
  134. package/dist/esm/behavior/state/managed/values/PrimitiveManager.js.map +1 -1
  135. package/dist/esm/behavior/state/managed/values/ValuePatcher.js.map +1 -1
  136. package/dist/esm/behavior/state/migrations/Migration.d.ts +20 -0
  137. package/dist/esm/behavior/state/migrations/Migration.d.ts.map +1 -0
  138. package/dist/esm/behavior/state/migrations/Migration.js +23 -0
  139. package/dist/esm/behavior/state/migrations/Migration.js.map +6 -0
  140. package/dist/esm/behavior/state/migrations/index.d.ts +7 -0
  141. package/dist/esm/behavior/state/migrations/index.d.ts.map +1 -0
  142. package/dist/esm/behavior/state/migrations/index.js +6 -0
  143. package/dist/esm/behavior/state/migrations/index.js.map +6 -0
  144. package/dist/esm/behavior/state/validation/ValueValidator.d.ts.map +1 -1
  145. package/dist/esm/behavior/state/validation/ValueValidator.js +1 -0
  146. package/dist/esm/behavior/state/validation/ValueValidator.js.map +1 -1
  147. package/dist/esm/behavior/supervision/RootSupervisor.js +2 -2
  148. package/dist/esm/behavior/supervision/RootSupervisor.js.map +1 -1
  149. package/dist/esm/behavior/supervision/ValueSupervisor.d.ts +1 -1
  150. package/dist/esm/behavior/supervision/ValueSupervisor.d.ts.map +1 -1
  151. package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts +7 -7
  152. package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
  153. package/dist/esm/behavior/system/commissioning/CommissioningClient.js +13 -7
  154. package/dist/esm/behavior/system/commissioning/CommissioningClient.js.map +1 -1
  155. package/dist/esm/behavior/system/commissioning/RemoteDescriptor.d.ts.map +1 -1
  156. package/dist/esm/behavior/system/commissioning/RemoteDescriptor.js +15 -14
  157. package/dist/esm/behavior/system/commissioning/RemoteDescriptor.js.map +1 -1
  158. package/dist/esm/behavior/system/controller/discovery/ContinuousDiscovery.js +1 -1
  159. package/dist/esm/behavior/system/controller/discovery/ContinuousDiscovery.js.map +1 -1
  160. package/dist/esm/behavior/system/controller/discovery/Discovery.d.ts +2 -2
  161. package/dist/esm/behavior/system/controller/discovery/Discovery.d.ts.map +1 -1
  162. package/dist/esm/behavior/system/controller/discovery/Discovery.js +2 -2
  163. package/dist/esm/behavior/system/controller/discovery/Discovery.js.map +1 -1
  164. package/dist/esm/behavior/system/network/NetworkClient.d.ts.map +1 -1
  165. package/dist/esm/behavior/system/network/NetworkClient.js +3 -3
  166. package/dist/esm/behavior/system/network/NetworkClient.js.map +1 -1
  167. package/dist/esm/behavior/system/network/ServerNetworkRuntime.js +2 -2
  168. package/dist/esm/behavior/system/network/ServerNetworkRuntime.js.map +1 -1
  169. package/dist/esm/behavior/system/{subscription/SubscriptionBehavior.d.ts → subscriptions/SubscriptionsServer.d.ts} +6 -6
  170. package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.d.ts.map +1 -0
  171. package/dist/esm/behavior/system/{subscription/SubscriptionBehavior.js → subscriptions/SubscriptionsServer.js} +20 -20
  172. package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.js.map +6 -0
  173. package/dist/esm/behavior/system/subscriptions/index.d.ts +7 -0
  174. package/dist/esm/behavior/system/subscriptions/index.d.ts.map +1 -0
  175. package/dist/esm/behavior/system/subscriptions/index.js +7 -0
  176. package/dist/esm/behavior/system/{subscription → subscriptions}/index.js.map +1 -1
  177. package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts +3 -3
  178. package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts.map +1 -1
  179. package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.js +16 -14
  180. package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.js.map +1 -1
  181. package/dist/esm/behaviors/color-control/ColorControlServer.d.ts +2 -2
  182. package/dist/esm/behaviors/color-control/ColorControlServer.d.ts.map +1 -1
  183. package/dist/esm/behaviors/color-control/ColorControlServer.js +6 -5
  184. package/dist/esm/behaviors/color-control/ColorControlServer.js.map +1 -1
  185. package/dist/esm/behaviors/general-commissioning/GeneralCommissioningServer.d.ts.map +1 -1
  186. package/dist/esm/behaviors/general-commissioning/GeneralCommissioningServer.js +4 -4
  187. package/dist/esm/behaviors/general-commissioning/GeneralCommissioningServer.js.map +1 -1
  188. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts +4 -4
  189. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
  190. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js +29 -17
  191. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
  192. package/dist/esm/behaviors/identify/IdentifyServer.d.ts.map +1 -1
  193. package/dist/esm/behaviors/identify/IdentifyServer.js +2 -2
  194. package/dist/esm/behaviors/identify/IdentifyServer.js.map +1 -1
  195. package/dist/esm/behaviors/level-control/LevelControlServer.d.ts +1 -1
  196. package/dist/esm/behaviors/level-control/LevelControlServer.d.ts.map +1 -1
  197. package/dist/esm/behaviors/level-control/LevelControlServer.js +4 -4
  198. package/dist/esm/behaviors/level-control/LevelControlServer.js.map +1 -1
  199. package/dist/esm/behaviors/on-off/OnOffServer.d.ts.map +1 -1
  200. package/dist/esm/behaviors/on-off/OnOffServer.js +3 -3
  201. package/dist/esm/behaviors/on-off/OnOffServer.js.map +1 -1
  202. package/dist/esm/behaviors/power-source/PowerSourceServer.d.ts.map +1 -1
  203. package/dist/esm/behaviors/power-source/PowerSourceServer.js +2 -1
  204. package/dist/esm/behaviors/power-source/PowerSourceServer.js.map +1 -1
  205. package/dist/esm/behaviors/switch/SwitchServer.d.ts +4 -4
  206. package/dist/esm/behaviors/switch/SwitchServer.d.ts.map +1 -1
  207. package/dist/esm/behaviors/switch/SwitchServer.js +9 -7
  208. package/dist/esm/behaviors/switch/SwitchServer.js.map +1 -1
  209. package/dist/esm/endpoint/Endpoint.d.ts.map +1 -1
  210. package/dist/esm/endpoint/Endpoint.js +11 -1
  211. package/dist/esm/endpoint/Endpoint.js.map +1 -1
  212. package/dist/esm/endpoint/properties/SupportedBehaviors.d.ts +1 -1
  213. package/dist/esm/endpoint/properties/SupportedBehaviors.d.ts.map +1 -1
  214. package/dist/esm/node/ServerNode.d.ts +2 -2
  215. package/dist/esm/node/ServerNode.d.ts.map +1 -1
  216. package/dist/esm/node/ServerNode.js +2 -2
  217. package/dist/esm/node/ServerNode.js.map +1 -1
  218. package/dist/esm/node/client/ClientNodes.js +5 -5
  219. package/dist/esm/node/client/ClientNodes.js.map +1 -1
  220. package/dist/esm/node/client/NodePeerAddressStore.d.ts.map +1 -1
  221. package/dist/esm/node/client/NodePeerAddressStore.js +3 -2
  222. package/dist/esm/node/client/NodePeerAddressStore.js.map +2 -2
  223. package/dist/esm/node/server/InteractionServer.d.ts +6 -6
  224. package/dist/esm/node/server/InteractionServer.d.ts.map +1 -1
  225. package/dist/esm/node/server/InteractionServer.js +16 -12
  226. package/dist/esm/node/server/InteractionServer.js.map +1 -1
  227. package/dist/esm/node/server/ProtocolService.js +2 -2
  228. package/dist/esm/node/server/ProtocolService.js.map +1 -1
  229. package/dist/esm/node/server/ServerSubscription.d.ts +18 -17
  230. package/dist/esm/node/server/ServerSubscription.d.ts.map +1 -1
  231. package/dist/esm/node/server/ServerSubscription.js +75 -55
  232. package/dist/esm/node/server/ServerSubscription.js.map +1 -1
  233. package/package.json +7 -7
  234. package/src/behavior/Behavior.ts +1 -1
  235. package/src/behavior/Events.ts +1 -1
  236. package/src/behavior/Transitions.ts +17 -13
  237. package/src/behavior/cluster/FabricScopedDataHandler.ts +2 -2
  238. package/src/behavior/internal/BehaviorBacking.ts +9 -2
  239. package/src/behavior/state/managed/values/PrimitiveManager.ts +3 -4
  240. package/src/behavior/state/managed/values/ValuePatcher.ts +2 -2
  241. package/src/behavior/state/migrations/Migration.ts +34 -0
  242. package/src/behavior/{system/subscription → state/migrations}/index.ts +1 -1
  243. package/src/behavior/state/validation/ValueValidator.ts +1 -0
  244. package/src/behavior/supervision/ValueSupervisor.ts +1 -1
  245. package/src/behavior/system/commissioning/CommissioningClient.ts +20 -12
  246. package/src/behavior/system/commissioning/RemoteDescriptor.ts +15 -15
  247. package/src/behavior/system/controller/discovery/ContinuousDiscovery.ts +1 -1
  248. package/src/behavior/system/controller/discovery/Discovery.ts +4 -4
  249. package/src/behavior/system/network/NetworkClient.ts +3 -3
  250. package/src/behavior/system/network/ServerNetworkRuntime.ts +2 -2
  251. package/src/behavior/system/sessions/SessionsBehavior.ts +1 -1
  252. package/src/behavior/system/{subscription/SubscriptionBehavior.ts → subscriptions/SubscriptionsServer.ts} +17 -17
  253. package/src/behavior/system/subscriptions/index.ts +7 -0
  254. package/src/behaviors/administrator-commissioning/AdministratorCommissioningServer.ts +20 -16
  255. package/src/behaviors/color-control/ColorControlServer.ts +5 -4
  256. package/src/behaviors/general-commissioning/GeneralCommissioningServer.ts +4 -4
  257. package/src/behaviors/general-diagnostics/GeneralDiagnosticsServer.ts +38 -21
  258. package/src/behaviors/identify/IdentifyServer.ts +2 -2
  259. package/src/behaviors/level-control/LevelControlServer.ts +4 -4
  260. package/src/behaviors/on-off/OnOffServer.ts +3 -3
  261. package/src/behaviors/power-source/PowerSourceServer.ts +2 -1
  262. package/src/behaviors/switch/SwitchServer.ts +10 -7
  263. package/src/endpoint/Endpoint.ts +13 -1
  264. package/src/endpoint/properties/SupportedBehaviors.ts +1 -1
  265. package/src/node/ServerNode.ts +2 -2
  266. package/src/node/client/ClientNodes.ts +8 -8
  267. package/src/node/client/NodePeerAddressStore.ts +4 -2
  268. package/src/node/server/InteractionServer.ts +21 -15
  269. package/src/node/server/ServerSubscription.ts +86 -64
  270. package/dist/cjs/behavior/system/subscription/SubscriptionBehavior.d.ts.map +0 -1
  271. package/dist/cjs/behavior/system/subscription/SubscriptionBehavior.js.map +0 -6
  272. package/dist/cjs/behavior/system/subscription/index.d.ts.map +0 -1
  273. package/dist/cjs/behavior/system/subscription/index.js.map +0 -6
  274. package/dist/esm/behavior/system/subscription/SubscriptionBehavior.d.ts.map +0 -1
  275. package/dist/esm/behavior/system/subscription/SubscriptionBehavior.js.map +0 -6
  276. package/dist/esm/behavior/system/subscription/index.d.ts.map +0 -1
@@ -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
  }
@@ -7,7 +7,15 @@
7
7
  import { Behavior } from "#behavior/Behavior.js";
8
8
  import { Events as BaseEvents } from "#behavior/Events.js";
9
9
  import { OperationalCredentialsClient } from "#behaviors/operational-credentials";
10
- import { ImplementationError, NotImplementedError, Observable, ServerAddress, Time } from "#general";
10
+ import {
11
+ Duration,
12
+ ImplementationError,
13
+ NotImplementedError,
14
+ Observable,
15
+ ServerAddress,
16
+ Time,
17
+ Timestamp,
18
+ } from "#general";
11
19
  import { DatatypeModel, FieldElement } from "#model";
12
20
  import type { ClientNode } from "#node/ClientNode.js";
13
21
  import type { Node } from "#node/Node.js";
@@ -55,7 +63,7 @@ export class CommissioningClient extends Behavior {
55
63
  }
56
64
 
57
65
  if (this.state.discoveredAt === undefined) {
58
- this.state.discoveredAt = Time.nowMs();
66
+ this.state.discoveredAt = Time.nowMs;
59
67
  }
60
68
 
61
69
  this.reactTo((this.endpoint as Node).lifecycle.partsReady, this.#initializeNode);
@@ -120,7 +128,7 @@ export class CommissioningClient extends Behavior {
120
128
  const address = identityService.assignNodeAddress(node, fabric.fabricIndex, opts.nodeId);
121
129
 
122
130
  const commissioningOptions: LocatedNodeCommissioningOptions = {
123
- addresses,
131
+ addresses: addresses.map(ServerAddress),
124
132
  fabric,
125
133
  nodeId: address.nodeId,
126
134
  passcode,
@@ -259,9 +267,9 @@ export class CommissioningClient extends Behavior {
259
267
  type: "struct",
260
268
  quality: "N",
261
269
  children: [
262
- FieldElement({ name: "idleIntervalMs", type: "uint32", constraint: "max 3600000" }),
263
- FieldElement({ name: "activeIntervalMs", type: "uint32", constraint: "max 3600000" }),
264
- FieldElement({ name: "activeThresholdMs", type: "uint16" }),
270
+ FieldElement({ name: "idleInterval", type: "duration", constraint: "max 3600000" }),
271
+ FieldElement({ name: "activeInterval", type: "duration", constraint: "max 3600000" }),
272
+ FieldElement({ name: "activeThreshold", type: "duration", constraint: "max 65535" }),
265
273
  ],
266
274
  }),
267
275
  FieldElement({ name: "tcpSupport", type: "uint8", quality: "N" }),
@@ -281,27 +289,27 @@ export namespace CommissioningClient {
281
289
  * Known network addresses for the device. If this is undefined the node has not been located on any network
282
290
  * interface.
283
291
  */
284
- addresses?: ServerAddress[];
292
+ addresses?: ServerAddress.Definition[];
285
293
 
286
294
  /**
287
295
  * Time at which the device was discovered.
288
296
  */
289
- discoveredAt?: number;
297
+ discoveredAt?: Timestamp;
290
298
 
291
299
  /**
292
300
  * Time at which we discovered the device's current operational addresses.
293
301
  */
294
- onlineAt?: number;
302
+ onlineAt?: Timestamp;
295
303
 
296
304
  /**
297
305
  * Time at which we concluded the device's current operational address is unreachable.
298
306
  */
299
- offlineAt?: number;
307
+ offlineAt?: Timestamp;
300
308
 
301
309
  /**
302
- * The TTL of the discovery record if applicable.
310
+ * The TTL of the discovery record if applicable (in seconds).
303
311
  */
304
- ttl?: number;
312
+ ttl?: Duration;
305
313
 
306
314
  /**
307
315
  * The canonical global ID of the device.
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { Immutable } from "#general";
7
+ import { Immutable, Seconds, ServerAddress } from "#general";
8
8
  import { CommissionableDevice, OperationalDevice, PeerAddress, SessionParameters } from "#protocol";
9
9
  import { DeviceTypeId, VendorId } from "#types";
10
10
  import type { CommissioningClient } from "./CommissioningClient.js";
@@ -67,7 +67,7 @@ export namespace RemoteDescriptor {
67
67
  }
68
68
 
69
69
  if (ttl !== undefined) {
70
- result.ttl = ttl;
70
+ result.ttl = Seconds(ttl);
71
71
  }
72
72
 
73
73
  if (deviceIdentifier !== undefined) {
@@ -103,18 +103,18 @@ export namespace RemoteDescriptor {
103
103
  }
104
104
 
105
105
  if (sessionParameters !== undefined) {
106
- const { idleIntervalMs, activeIntervalMs, activeThresholdMs } = sessionParameters;
106
+ const { idleInterval, activeInterval, activeThreshold } = sessionParameters;
107
107
 
108
- if (idleIntervalMs !== undefined) {
109
- result.SII = idleIntervalMs;
108
+ if (idleInterval !== undefined) {
109
+ result.SII = idleInterval;
110
110
  }
111
111
 
112
- if (activeIntervalMs !== undefined) {
113
- result.SAI = activeIntervalMs;
112
+ if (activeInterval !== undefined) {
113
+ result.SAI = activeInterval;
114
114
  }
115
115
 
116
- if (activeThresholdMs !== undefined) {
117
- result.SAT = activeThresholdMs;
116
+ if (activeThreshold !== undefined) {
117
+ result.SAT = activeThreshold;
118
118
  }
119
119
  }
120
120
 
@@ -129,11 +129,11 @@ export namespace RemoteDescriptor {
129
129
  const isOperational = long.peerAddress !== undefined;
130
130
  if (isOperational) {
131
131
  if (addresses !== undefined) {
132
- result.addresses = addresses?.filter(address => address.type === "udp");
132
+ result.addresses = addresses?.filter(address => address.type === "udp").map(ServerAddress);
133
133
  }
134
134
  } else {
135
135
  if (addresses !== undefined) {
136
- result.addresses = addresses.map(address => ({ ...address }));
136
+ result.addresses = addresses.map(address => ({ ...address })).map(ServerAddress);
137
137
  }
138
138
 
139
139
  if (discriminator !== undefined) {
@@ -165,7 +165,7 @@ export namespace RemoteDescriptor {
165
165
  }
166
166
 
167
167
  if (addresses?.length) {
168
- long.addresses = addresses;
168
+ long.addresses = addresses.map(ServerAddress.definitionOf);
169
169
  }
170
170
 
171
171
  if (deviceIdentifier !== undefined) {
@@ -181,13 +181,13 @@ export namespace RemoteDescriptor {
181
181
 
182
182
  let sessionParameters: Partial<SessionParameters> | undefined;
183
183
  if (SII !== undefined) {
184
- (sessionParameters ??= {}).idleIntervalMs = SII;
184
+ (sessionParameters ??= {}).idleInterval = SII;
185
185
  }
186
186
  if (SAI !== undefined) {
187
- (sessionParameters ??= {}).activeIntervalMs = SAI;
187
+ (sessionParameters ??= {}).activeInterval = SAI;
188
188
  }
189
189
  if (SAT !== undefined) {
190
- (sessionParameters ??= {}).activeThresholdMs = SAT;
190
+ (sessionParameters ??= {}).activeThreshold = SAT;
191
191
  }
192
192
  long.sessionParameters = sessionParameters;
193
193
 
@@ -22,7 +22,7 @@ export class ContinuousDiscovery extends Discovery<ClientNode[]> {
22
22
 
23
23
  constructor(owner: ServerNode, options?: Discovery.Options) {
24
24
  super(owner, options);
25
- this.#bounded = options?.timeoutSeconds !== undefined;
25
+ this.#bounded = options?.timeout !== undefined;
26
26
  }
27
27
 
28
28
  /**
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { CancelablePromise, Diagnostic, Logger, MaybePromise, withTimeout } from "#general";
7
+ import { CancelablePromise, Diagnostic, Duration, Logger, MaybePromise, withTimeout } from "#general";
8
8
  import { ClientNodeFactory } from "#node/client/ClientNodeFactory.js";
9
9
  import type { ClientNode } from "#node/ClientNode.js";
10
10
  import type { ServerNode } from "#node/ServerNode.js";
@@ -224,8 +224,8 @@ export abstract class Discovery<T = unknown> extends CancelablePromise<T> {
224
224
 
225
225
  let promise = DiscoveryAggregateError.allSettled(promises, `${this} failed`);
226
226
 
227
- if (this.#options.timeoutSeconds !== undefined) {
228
- promise = withTimeout(this.#options.timeoutSeconds * 1_000, promise, this.stop.bind(this));
227
+ if (this.#options.timeout !== undefined) {
228
+ promise = withTimeout(this.#options.timeout, promise, this.stop.bind(this));
229
229
  }
230
230
 
231
231
  promise.then(this.#afterDiscovery.bind(this)).catch(this.#reject);
@@ -260,7 +260,7 @@ export abstract class Discovery<T = unknown> extends CancelablePromise<T> {
260
260
 
261
261
  export namespace Discovery {
262
262
  export type Options = CommissionableDeviceIdentifiers & {
263
- timeoutSeconds?: number;
263
+ timeout?: Duration;
264
264
  };
265
265
 
266
266
  export type InstanceOptions = Options & {
@@ -6,7 +6,7 @@
6
6
 
7
7
  import { DatatypeModel, FieldElement } from "#model";
8
8
  import { Node } from "#node/Node.js";
9
- import { DEFAULT_MIN_INTERVAL_FLOOR_SECONDS, Subscribe } from "#protocol";
9
+ import { DEFAULT_MIN_INTERVAL_FLOOR, Subscribe } from "#protocol";
10
10
  import { ClientNetworkRuntime } from "./ClientNetworkRuntime.js";
11
11
  import { NetworkBehavior } from "./NetworkBehavior.js";
12
12
 
@@ -28,8 +28,8 @@ export class NetworkClient extends NetworkBehavior {
28
28
  // TODO - configure subscription based on physical device properties
29
29
  const subscribe = Subscribe({
30
30
  fabricFilter: true,
31
- minIntervalFloorSeconds: DEFAULT_MIN_INTERVAL_FLOOR_SECONDS,
32
- maxIntervalCeilingSeconds: 0,
31
+ minIntervalFloor: DEFAULT_MIN_INTERVAL_FLOOR,
32
+ maxIntervalCeiling: 0,
33
33
  attributes: [{}],
34
34
  ...startupSubscription,
35
35
  });
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { SubscriptionBehavior } from "#behavior/system/subscription/SubscriptionBehavior.js";
7
+ import { SubscriptionsBehavior } from "#behavior/system/subscriptions/SubscriptionsServer.js";
8
8
  import {
9
9
  Construction,
10
10
  Crypto,
@@ -355,7 +355,7 @@ export class ServerNetworkRuntime extends NetworkRuntime {
355
355
  this.#formerSubscriptionsHandled = true;
356
356
 
357
357
  await this.owner.act(agent =>
358
- agent.get(SubscriptionBehavior).reestablishFormerSubscriptions(env.get(InteractionServer)),
358
+ agent.get(SubscriptionsBehavior).reestablishFormerSubscriptions(env.get(InteractionServer)),
359
359
  );
360
360
  }
361
361
 
@@ -72,7 +72,7 @@ export class SessionsBehavior extends Behavior {
72
72
  return;
73
73
  }
74
74
 
75
- // When subscription was added then inform SubscriptionBehavior
75
+ // When subscription was added then inform SubscriptionsBehavior
76
76
  if (session.subscriptions.has(subscription)) {
77
77
  this.events.subscriptionAdded.emit(subscription);
78
78
  }
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { deepCopy, isIpNetworkChannel, Logger, MatterError, MaybePromise, ServerAddressIp } from "#general";
7
+ import { deepCopy, isIpNetworkChannel, Logger, MatterError, MaybePromise, Seconds, ServerAddressIp } from "#general";
8
8
  import { DatatypeModel, FieldElement } from "#model";
9
9
  import { InteractionServer, PeerSubscription } from "#node/server/InteractionServer.js";
10
10
  import { ServerSubscription } from "#node/server/ServerSubscription.js";
@@ -21,10 +21,10 @@ import {
21
21
  import { StatusCode, StatusResponseError } from "#types";
22
22
  import { Behavior } from "../../Behavior.js";
23
23
  import { SessionsBehavior } from "../sessions/SessionsBehavior.js";
24
- const logger = Logger.get("SubscriptionBehavior");
24
+ const logger = Logger.get("SubscriptionsBehavior");
25
25
 
26
26
  /** Timeout in seconds to wait for responses or discovery of the peer node when trying to re-establish a subscription. */
27
- const REESTABLISH_SUBSCRIPTIONS_TIMEOUT_S = 2;
27
+ const REESTABLISH_SUBSCRIPTIONS_TIMEOUT = Seconds(2);
28
28
 
29
29
  /**
30
30
  * Subscriptions Persistence handling.
@@ -33,11 +33,11 @@ const REESTABLISH_SUBSCRIPTIONS_TIMEOUT_S = 2;
33
33
  * speed up the controller reconnection process. This can mean a bit more memory usage on start of the device. To
34
34
  * disable this feature set `persistenceEnabled` as state of the `subscription` behavior to `false`.
35
35
  */
36
- export class SubscriptionBehavior extends Behavior {
37
- static override readonly id = "subscription";
36
+ export class SubscriptionsBehavior extends Behavior {
37
+ static override readonly id = "subscriptions";
38
38
 
39
- declare state: SubscriptionBehavior.State;
40
- declare internal: SubscriptionBehavior.Internal;
39
+ declare state: SubscriptionsBehavior.State;
40
+ declare internal: SubscriptionsBehavior.Internal;
41
41
 
42
42
  override initialize() {
43
43
  if (this.state.subscriptions !== undefined && this.state.persistenceEnabled !== false) {
@@ -115,10 +115,10 @@ export class SubscriptionBehavior extends Behavior {
115
115
  ),
116
116
  ),
117
117
  FieldElement({ name: "isFabricFiltered", type: "bool" }),
118
- FieldElement({ name: "maxIntervalCeilingSeconds", type: "uint16" }),
119
- FieldElement({ name: "minIntervalFloorSeconds", type: "uint16" }),
120
- FieldElement({ name: "maxInterval", type: "uint16" }),
121
- FieldElement({ name: "sendInterval", type: "uint16" }),
118
+ FieldElement({ name: "maxIntervalCeiling", type: "duration" }),
119
+ FieldElement({ name: "minIntervalFloor", type: "duration" }),
120
+ FieldElement({ name: "maxInterval", type: "duration" }),
121
+ FieldElement({ name: "sendInterval", type: "duration" }),
122
122
  FieldElement(
123
123
  {
124
124
  name: "operationalAddress",
@@ -142,8 +142,8 @@ export class SubscriptionBehavior extends Behavior {
142
142
  maxInterval,
143
143
  sendInterval,
144
144
  id,
145
- maxIntervalCeilingSeconds,
146
- minIntervalFloorSeconds,
145
+ maxIntervalCeiling,
146
+ minIntervalFloor,
147
147
  } = subscription;
148
148
  const { peerAddress } = session;
149
149
  const { fabricIndex, nodeId } = peerAddress;
@@ -160,8 +160,8 @@ export class SubscriptionBehavior extends Behavior {
160
160
  const peerSubscription: PeerSubscription = {
161
161
  subscriptionId: id,
162
162
  peerAddress: { fabricIndex, nodeId },
163
- maxIntervalCeilingSeconds,
164
- minIntervalFloorSeconds,
163
+ maxIntervalCeiling,
164
+ minIntervalFloor,
165
165
  attributeRequests,
166
166
  eventRequests,
167
167
  isFabricFiltered,
@@ -234,7 +234,7 @@ export class SubscriptionBehavior extends Behavior {
234
234
  await peers.ensureConnection(peerAddress, {
235
235
  discoveryOptions: {
236
236
  discoveryType: NodeDiscoveryType.TimedDiscovery,
237
- timeoutSeconds: REESTABLISH_SUBSCRIPTIONS_TIMEOUT_S,
237
+ timeout: REESTABLISH_SUBSCRIPTIONS_TIMEOUT,
238
238
  },
239
239
  allowUnknownPeer: true,
240
240
  operationalAddress,
@@ -282,7 +282,7 @@ export class SubscriptionBehavior extends Behavior {
282
282
  }
283
283
  }
284
284
 
285
- export namespace SubscriptionBehavior {
285
+ export namespace SubscriptionsBehavior {
286
286
  export class State {
287
287
  /** Set to false if persistence of subscriptions should be disabled */
288
288
  persistenceEnabled = true;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ export * from "./SubscriptionsServer.js";