@matter/node 0.16.0-alpha.0-20251006-3fe1e7c57 → 0.16.0-alpha.0-20251013-89bb7099d

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 (573) hide show
  1. package/dist/cjs/behavior/Behavior.d.ts +4 -0
  2. package/dist/cjs/behavior/Behavior.d.ts.map +1 -1
  3. package/dist/cjs/behavior/Behavior.js +7 -1
  4. package/dist/cjs/behavior/Behavior.js.map +1 -1
  5. package/dist/cjs/behavior/Events.js +2 -2
  6. package/dist/cjs/behavior/internal/BehaviorBacking.d.ts.map +1 -1
  7. package/dist/cjs/behavior/internal/BehaviorBacking.js +67 -3
  8. package/dist/cjs/behavior/internal/BehaviorBacking.js.map +1 -1
  9. package/dist/cjs/behavior/state/managed/Datasource.d.ts +4 -9
  10. package/dist/cjs/behavior/state/managed/Datasource.d.ts.map +1 -1
  11. package/dist/cjs/behavior/state/managed/Datasource.js +9 -12
  12. package/dist/cjs/behavior/state/managed/Datasource.js.map +1 -1
  13. package/dist/cjs/behavior/state/managed/NameResolver.d.ts.map +1 -1
  14. package/dist/cjs/behavior/state/managed/NameResolver.js.map +1 -1
  15. package/dist/cjs/behavior/state/managed/values/ValueCaster.d.ts +3 -2
  16. package/dist/cjs/behavior/state/managed/values/ValueCaster.d.ts.map +1 -1
  17. package/dist/cjs/behavior/state/managed/values/ValueCaster.js +16 -3
  18. package/dist/cjs/behavior/state/managed/values/ValueCaster.js.map +1 -1
  19. package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts +12 -5
  20. package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
  21. package/dist/cjs/behavior/system/commissioning/CommissioningClient.js +17 -1
  22. package/dist/cjs/behavior/system/commissioning/CommissioningClient.js.map +1 -1
  23. package/dist/cjs/behavior/system/commissioning/CommissioningServer.d.ts.map +1 -1
  24. package/dist/cjs/behavior/system/commissioning/CommissioningServer.js +2 -1
  25. package/dist/cjs/behavior/system/commissioning/CommissioningServer.js.map +1 -1
  26. package/dist/cjs/behavior/system/controller/ControllerBehavior.d.ts.map +1 -1
  27. package/dist/cjs/behavior/system/controller/ControllerBehavior.js +0 -4
  28. package/dist/cjs/behavior/system/controller/ControllerBehavior.js.map +1 -1
  29. package/dist/cjs/behavior/system/http/HttpInterface.d.ts +36 -0
  30. package/dist/cjs/behavior/system/http/HttpInterface.d.ts.map +1 -0
  31. package/dist/cjs/behavior/system/http/HttpInterface.js +282 -0
  32. package/dist/cjs/behavior/system/http/HttpInterface.js.map +6 -0
  33. package/dist/cjs/behavior/system/http/HttpServer.d.ts +30 -0
  34. package/dist/cjs/behavior/system/http/HttpServer.d.ts.map +1 -0
  35. package/dist/cjs/behavior/system/http/HttpServer.js +51 -0
  36. package/dist/cjs/behavior/system/http/HttpServer.js.map +6 -0
  37. package/dist/cjs/behavior/system/http/index.d.ts +8 -0
  38. package/dist/cjs/behavior/system/http/index.d.ts.map +1 -0
  39. package/dist/cjs/behavior/system/http/index.js +25 -0
  40. package/dist/cjs/behavior/system/http/index.js.map +6 -0
  41. package/dist/cjs/behavior/system/index/IndexBehavior.d.ts +4 -4
  42. package/dist/cjs/behavior/system/index/IndexBehavior.d.ts.map +1 -1
  43. package/dist/cjs/behavior/system/index/IndexBehavior.js +9 -4
  44. package/dist/cjs/behavior/system/index/IndexBehavior.js.map +1 -1
  45. package/dist/cjs/behavior/system/index.d.ts +4 -0
  46. package/dist/cjs/behavior/system/index.d.ts.map +1 -1
  47. package/dist/cjs/behavior/system/index.js +4 -0
  48. package/dist/cjs/behavior/system/index.js.map +1 -1
  49. package/dist/cjs/behavior/system/mqtt/MqttInterface.d.ts +22 -0
  50. package/dist/cjs/behavior/system/mqtt/MqttInterface.d.ts.map +1 -0
  51. package/dist/cjs/behavior/system/mqtt/MqttInterface.js +351 -0
  52. package/dist/cjs/behavior/system/mqtt/MqttInterface.js.map +6 -0
  53. package/dist/cjs/behavior/system/mqtt/MqttServer.d.ts +36 -0
  54. package/dist/cjs/behavior/system/mqtt/MqttServer.d.ts.map +1 -0
  55. package/dist/cjs/behavior/system/mqtt/MqttServer.js +55 -0
  56. package/dist/cjs/behavior/system/mqtt/MqttServer.js.map +6 -0
  57. package/dist/cjs/behavior/system/mqtt/index.d.ts +8 -0
  58. package/dist/cjs/behavior/system/mqtt/index.d.ts.map +1 -0
  59. package/dist/cjs/behavior/system/mqtt/index.js +25 -0
  60. package/dist/cjs/behavior/system/mqtt/index.js.map +6 -0
  61. package/dist/cjs/behavior/system/network/NetworkClient.d.ts +32 -3
  62. package/dist/cjs/behavior/system/network/NetworkClient.d.ts.map +1 -1
  63. package/dist/cjs/behavior/system/network/NetworkClient.js +100 -18
  64. package/dist/cjs/behavior/system/network/NetworkClient.js.map +1 -1
  65. package/dist/cjs/behavior/system/product-description/ProductDescriptionServer.d.ts +2 -1
  66. package/dist/cjs/behavior/system/product-description/ProductDescriptionServer.d.ts.map +1 -1
  67. package/dist/cjs/behavior/system/product-description/ProductDescriptionServer.js +7 -5
  68. package/dist/cjs/behavior/system/product-description/ProductDescriptionServer.js.map +1 -1
  69. package/dist/cjs/behavior/system/remote/RemoteInterface.d.ts +41 -0
  70. package/dist/cjs/behavior/system/remote/RemoteInterface.d.ts.map +1 -0
  71. package/dist/cjs/behavior/system/remote/RemoteInterface.js +105 -0
  72. package/dist/cjs/behavior/system/remote/RemoteInterface.js.map +6 -0
  73. package/dist/cjs/behavior/system/remote/RemoteServer.d.ts +61 -0
  74. package/dist/cjs/behavior/system/remote/RemoteServer.d.ts.map +1 -0
  75. package/dist/cjs/behavior/system/remote/RemoteServer.js +118 -0
  76. package/dist/cjs/behavior/system/remote/RemoteServer.js.map +6 -0
  77. package/dist/cjs/behavior/system/remote/api/Api.d.ts +36 -0
  78. package/dist/cjs/behavior/system/remote/api/Api.d.ts.map +1 -0
  79. package/dist/cjs/behavior/system/remote/api/Api.js +157 -0
  80. package/dist/cjs/behavior/system/remote/api/Api.js.map +6 -0
  81. package/dist/cjs/behavior/system/remote/api/ApiPath.d.ts +32 -0
  82. package/dist/cjs/behavior/system/remote/api/ApiPath.d.ts.map +1 -0
  83. package/dist/cjs/behavior/system/remote/api/ApiPath.js +101 -0
  84. package/dist/cjs/behavior/system/remote/api/ApiPath.js.map +6 -0
  85. package/dist/cjs/behavior/system/remote/api/ApiResource.d.ts +102 -0
  86. package/dist/cjs/behavior/system/remote/api/ApiResource.d.ts.map +1 -0
  87. package/dist/cjs/behavior/system/remote/api/ApiResource.js +123 -0
  88. package/dist/cjs/behavior/system/remote/api/ApiResource.js.map +6 -0
  89. package/dist/cjs/behavior/system/remote/api/Envelope.d.ts +53 -0
  90. package/dist/cjs/behavior/system/remote/api/Envelope.d.ts.map +1 -0
  91. package/dist/cjs/behavior/system/remote/api/Envelope.js +107 -0
  92. package/dist/cjs/behavior/system/remote/api/Envelope.js.map +6 -0
  93. package/dist/cjs/behavior/system/remote/api/LocalResponse.d.ts +28 -0
  94. package/dist/cjs/behavior/system/remote/api/LocalResponse.d.ts.map +1 -0
  95. package/dist/cjs/behavior/system/remote/api/LocalResponse.js +22 -0
  96. package/dist/cjs/behavior/system/remote/api/LocalResponse.js.map +6 -0
  97. package/dist/cjs/behavior/system/remote/api/RemoteRequest.d.ts +43 -0
  98. package/dist/cjs/behavior/system/remote/api/RemoteRequest.d.ts.map +1 -0
  99. package/dist/cjs/behavior/system/remote/api/RemoteRequest.js +55 -0
  100. package/dist/cjs/behavior/system/remote/api/RemoteRequest.js.map +6 -0
  101. package/dist/cjs/behavior/system/remote/api/RemoteResponse.d.ts +38 -0
  102. package/dist/cjs/behavior/system/remote/api/RemoteResponse.d.ts.map +1 -0
  103. package/dist/cjs/behavior/system/remote/api/RemoteResponse.js +65 -0
  104. package/dist/cjs/behavior/system/remote/api/RemoteResponse.js.map +6 -0
  105. package/dist/cjs/behavior/system/remote/api/index.d.ts +13 -0
  106. package/dist/cjs/behavior/system/remote/api/index.d.ts.map +1 -0
  107. package/dist/cjs/behavior/system/remote/api/index.js +30 -0
  108. package/dist/cjs/behavior/system/remote/api/index.js.map +6 -0
  109. package/dist/cjs/behavior/system/remote/api/resources/BehaviorResource.d.ts +22 -0
  110. package/dist/cjs/behavior/system/remote/api/resources/BehaviorResource.d.ts.map +1 -0
  111. package/dist/cjs/behavior/system/remote/api/resources/BehaviorResource.js +69 -0
  112. package/dist/cjs/behavior/system/remote/api/resources/BehaviorResource.js.map +6 -0
  113. package/dist/cjs/behavior/system/remote/api/resources/ChangesResource.d.ts +25 -0
  114. package/dist/cjs/behavior/system/remote/api/resources/ChangesResource.d.ts.map +1 -0
  115. package/dist/cjs/behavior/system/remote/api/resources/ChangesResource.js +76 -0
  116. package/dist/cjs/behavior/system/remote/api/resources/ChangesResource.js.map +6 -0
  117. package/dist/cjs/behavior/system/remote/api/resources/CommandResource.d.ts +26 -0
  118. package/dist/cjs/behavior/system/remote/api/resources/CommandResource.d.ts.map +1 -0
  119. package/dist/cjs/behavior/system/remote/api/resources/CommandResource.js +83 -0
  120. package/dist/cjs/behavior/system/remote/api/resources/CommandResource.js.map +6 -0
  121. package/dist/cjs/behavior/system/remote/api/resources/EndpointContainerResource.d.ts +22 -0
  122. package/dist/cjs/behavior/system/remote/api/resources/EndpointContainerResource.d.ts.map +1 -0
  123. package/dist/cjs/behavior/system/remote/api/resources/EndpointContainerResource.js +52 -0
  124. package/dist/cjs/behavior/system/remote/api/resources/EndpointContainerResource.js.map +6 -0
  125. package/dist/cjs/behavior/system/remote/api/resources/EndpointResource.d.ts +34 -0
  126. package/dist/cjs/behavior/system/remote/api/resources/EndpointResource.d.ts.map +1 -0
  127. package/dist/cjs/behavior/system/remote/api/resources/EndpointResource.js +78 -0
  128. package/dist/cjs/behavior/system/remote/api/resources/EndpointResource.js.map +6 -0
  129. package/dist/cjs/behavior/system/remote/api/resources/NodeResource.d.ts +20 -0
  130. package/dist/cjs/behavior/system/remote/api/resources/NodeResource.d.ts.map +1 -0
  131. package/dist/cjs/behavior/system/remote/api/resources/NodeResource.js +74 -0
  132. package/dist/cjs/behavior/system/remote/api/resources/NodeResource.js.map +6 -0
  133. package/dist/cjs/behavior/system/remote/api/resources/PropertyResource.d.ts +28 -0
  134. package/dist/cjs/behavior/system/remote/api/resources/PropertyResource.d.ts.map +1 -0
  135. package/dist/cjs/behavior/system/remote/api/resources/PropertyResource.js +123 -0
  136. package/dist/cjs/behavior/system/remote/api/resources/PropertyResource.js.map +6 -0
  137. package/dist/cjs/behavior/system/remote/api/resources/ServerNodeResource.d.ts +22 -0
  138. package/dist/cjs/behavior/system/remote/api/resources/ServerNodeResource.d.ts.map +1 -0
  139. package/dist/cjs/behavior/system/remote/api/resources/ServerNodeResource.js +74 -0
  140. package/dist/cjs/behavior/system/remote/api/resources/ServerNodeResource.js.map +6 -0
  141. package/dist/cjs/behavior/system/remote/api/resources/index.d.ts +13 -0
  142. package/dist/cjs/behavior/system/remote/api/resources/index.d.ts.map +1 -0
  143. package/dist/cjs/behavior/system/remote/api/resources/index.js +30 -0
  144. package/dist/cjs/behavior/system/remote/api/resources/index.js.map +6 -0
  145. package/dist/cjs/behavior/system/remote/index.d.ts +9 -0
  146. package/dist/cjs/behavior/system/remote/index.d.ts.map +1 -0
  147. package/dist/cjs/behavior/system/remote/index.js +26 -0
  148. package/dist/cjs/behavior/system/remote/index.js.map +6 -0
  149. package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.d.ts.map +1 -1
  150. package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.js +1 -2
  151. package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.js.map +1 -1
  152. package/dist/cjs/behavior/system/websocket/WebSocketInterface.d.ts +16 -0
  153. package/dist/cjs/behavior/system/websocket/WebSocketInterface.d.ts.map +1 -0
  154. package/dist/cjs/behavior/system/websocket/WebSocketInterface.js +171 -0
  155. package/dist/cjs/behavior/system/websocket/WebSocketInterface.js.map +6 -0
  156. package/dist/cjs/behavior/system/websocket/WebSocketServer.d.ts +30 -0
  157. package/dist/cjs/behavior/system/websocket/WebSocketServer.d.ts.map +1 -0
  158. package/dist/cjs/behavior/system/websocket/WebSocketServer.js +51 -0
  159. package/dist/cjs/behavior/system/websocket/WebSocketServer.js.map +6 -0
  160. package/dist/cjs/behavior/system/websocket/index.d.ts +8 -0
  161. package/dist/cjs/behavior/system/websocket/index.d.ts.map +1 -0
  162. package/dist/cjs/behavior/system/websocket/index.js +25 -0
  163. package/dist/cjs/behavior/system/websocket/index.js.map +6 -0
  164. package/dist/cjs/endpoint/Agent.js +1 -1
  165. package/dist/cjs/endpoint/Agent.js.map +1 -1
  166. package/dist/cjs/endpoint/Endpoint.d.ts.map +1 -1
  167. package/dist/cjs/endpoint/Endpoint.js +6 -4
  168. package/dist/cjs/endpoint/Endpoint.js.map +1 -1
  169. package/dist/cjs/endpoint/properties/Behaviors.d.ts +4 -0
  170. package/dist/cjs/endpoint/properties/Behaviors.d.ts.map +1 -1
  171. package/dist/cjs/endpoint/properties/Behaviors.js +11 -2
  172. package/dist/cjs/endpoint/properties/Behaviors.js.map +1 -1
  173. package/dist/cjs/endpoint/properties/ClientNodeEndpoints.d.ts +20 -0
  174. package/dist/cjs/endpoint/properties/ClientNodeEndpoints.d.ts.map +1 -0
  175. package/dist/cjs/endpoint/properties/ClientNodeEndpoints.js +56 -0
  176. package/dist/cjs/endpoint/properties/ClientNodeEndpoints.js.map +6 -0
  177. package/dist/cjs/endpoint/properties/EndpointInitializer.d.ts +4 -0
  178. package/dist/cjs/endpoint/properties/EndpointInitializer.d.ts.map +1 -1
  179. package/dist/cjs/endpoint/properties/EndpointInitializer.js +6 -0
  180. package/dist/cjs/endpoint/properties/EndpointInitializer.js.map +1 -1
  181. package/dist/cjs/endpoint/properties/Endpoints.d.ts +1 -0
  182. package/dist/cjs/endpoint/properties/Endpoints.d.ts.map +1 -1
  183. package/dist/cjs/endpoint/properties/Endpoints.js +3 -0
  184. package/dist/cjs/endpoint/properties/Endpoints.js.map +1 -1
  185. package/dist/cjs/endpoint/type/EndpointType.d.ts +2 -0
  186. package/dist/cjs/endpoint/type/EndpointType.d.ts.map +1 -1
  187. package/dist/cjs/endpoint/type/EndpointType.js +5 -0
  188. package/dist/cjs/endpoint/type/EndpointType.js.map +2 -2
  189. package/dist/cjs/node/ClientNode.d.ts +4 -2
  190. package/dist/cjs/node/ClientNode.d.ts.map +1 -1
  191. package/dist/cjs/node/ClientNode.js +6 -2
  192. package/dist/cjs/node/ClientNode.js.map +1 -1
  193. package/dist/cjs/node/Node.js +1 -1
  194. package/dist/cjs/node/NodeLifecycle.d.ts +1 -1
  195. package/dist/cjs/node/NodeLifecycle.d.ts.map +1 -1
  196. package/dist/cjs/node/NodeLifecycle.js +1 -1
  197. package/dist/cjs/node/NodeLifecycle.js.map +1 -1
  198. package/dist/cjs/node/client/ClientEndpointInitializer.d.ts +2 -0
  199. package/dist/cjs/node/client/ClientEndpointInitializer.d.ts.map +1 -1
  200. package/dist/cjs/node/client/ClientEndpointInitializer.js +33 -0
  201. package/dist/cjs/node/client/ClientEndpointInitializer.js.map +1 -1
  202. package/dist/cjs/node/client/ClientEventEmitter.d.ts +3 -3
  203. package/dist/cjs/node/client/ClientEventEmitter.d.ts.map +1 -1
  204. package/dist/cjs/node/client/ClientNodeInteraction.d.ts +1 -0
  205. package/dist/cjs/node/client/ClientNodeInteraction.d.ts.map +1 -1
  206. package/dist/cjs/node/client/ClientNodeInteraction.js +6 -0
  207. package/dist/cjs/node/client/ClientNodeInteraction.js.map +1 -1
  208. package/dist/cjs/node/client/ClientStructure.d.ts +2 -0
  209. package/dist/cjs/node/client/ClientStructure.d.ts.map +1 -1
  210. package/dist/cjs/node/client/ClientStructure.js +18 -5
  211. package/dist/cjs/node/client/ClientStructure.js.map +1 -1
  212. package/dist/cjs/node/client/Peers.d.ts +6 -0
  213. package/dist/cjs/node/client/Peers.d.ts.map +1 -1
  214. package/dist/cjs/node/client/Peers.js +55 -3
  215. package/dist/cjs/node/client/Peers.js.map +2 -2
  216. package/dist/cjs/node/index.d.ts +1 -0
  217. package/dist/cjs/node/index.d.ts.map +1 -1
  218. package/dist/cjs/node/index.js +1 -0
  219. package/dist/cjs/node/index.js.map +1 -1
  220. package/dist/cjs/node/integration/ChangeNotificationService.d.ts +56 -0
  221. package/dist/cjs/node/integration/ChangeNotificationService.d.ts.map +1 -0
  222. package/dist/cjs/node/integration/ChangeNotificationService.js +93 -0
  223. package/dist/cjs/node/integration/ChangeNotificationService.js.map +6 -0
  224. package/dist/cjs/node/{server → integration}/ProtocolService.d.ts +15 -0
  225. package/dist/cjs/node/integration/ProtocolService.d.ts.map +1 -0
  226. package/dist/cjs/node/{server → integration}/ProtocolService.js +26 -51
  227. package/dist/cjs/node/integration/ProtocolService.js.map +6 -0
  228. package/dist/cjs/node/integration/StateStream.d.ts +87 -0
  229. package/dist/cjs/node/integration/StateStream.d.ts.map +1 -0
  230. package/dist/cjs/node/integration/StateStream.js +276 -0
  231. package/dist/cjs/node/integration/StateStream.js.map +6 -0
  232. package/dist/cjs/node/integration/index.d.ts +9 -0
  233. package/dist/cjs/node/integration/index.d.ts.map +1 -0
  234. package/dist/cjs/node/integration/index.js +26 -0
  235. package/dist/cjs/node/integration/index.js.map +6 -0
  236. package/dist/cjs/node/server/OnlineServerInteraction.d.ts +1 -0
  237. package/dist/cjs/node/server/OnlineServerInteraction.d.ts.map +1 -1
  238. package/dist/cjs/node/server/OnlineServerInteraction.js +4 -1
  239. package/dist/cjs/node/server/OnlineServerInteraction.js.map +1 -1
  240. package/dist/cjs/node/server/ServerEnvironment.d.ts.map +1 -1
  241. package/dist/cjs/node/server/ServerEnvironment.js +6 -0
  242. package/dist/cjs/node/server/ServerEnvironment.js.map +1 -1
  243. package/dist/cjs/node/server/ServerSubscription.d.ts.map +1 -1
  244. package/dist/cjs/node/server/ServerSubscription.js +2 -2
  245. package/dist/cjs/node/server/index.d.ts +0 -1
  246. package/dist/cjs/node/server/index.d.ts.map +1 -1
  247. package/dist/cjs/node/server/index.js +0 -1
  248. package/dist/cjs/node/server/index.js.map +1 -1
  249. package/dist/cjs/storage/client/ClientNodeStores.d.ts.map +1 -1
  250. package/dist/cjs/storage/client/ClientNodeStores.js.map +1 -1
  251. package/dist/esm/behavior/Behavior.d.ts +4 -0
  252. package/dist/esm/behavior/Behavior.d.ts.map +1 -1
  253. package/dist/esm/behavior/Behavior.js +7 -1
  254. package/dist/esm/behavior/Behavior.js.map +1 -1
  255. package/dist/esm/behavior/Events.js +2 -2
  256. package/dist/esm/behavior/internal/BehaviorBacking.d.ts.map +1 -1
  257. package/dist/esm/behavior/internal/BehaviorBacking.js +70 -4
  258. package/dist/esm/behavior/internal/BehaviorBacking.js.map +1 -1
  259. package/dist/esm/behavior/state/managed/Datasource.d.ts +4 -9
  260. package/dist/esm/behavior/state/managed/Datasource.d.ts.map +1 -1
  261. package/dist/esm/behavior/state/managed/Datasource.js +9 -13
  262. package/dist/esm/behavior/state/managed/Datasource.js.map +1 -1
  263. package/dist/esm/behavior/state/managed/NameResolver.d.ts.map +1 -1
  264. package/dist/esm/behavior/state/managed/NameResolver.js.map +1 -1
  265. package/dist/esm/behavior/state/managed/values/ValueCaster.d.ts +3 -2
  266. package/dist/esm/behavior/state/managed/values/ValueCaster.d.ts.map +1 -1
  267. package/dist/esm/behavior/state/managed/values/ValueCaster.js +16 -3
  268. package/dist/esm/behavior/state/managed/values/ValueCaster.js.map +1 -1
  269. package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts +12 -5
  270. package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
  271. package/dist/esm/behavior/system/commissioning/CommissioningClient.js +19 -1
  272. package/dist/esm/behavior/system/commissioning/CommissioningClient.js.map +1 -1
  273. package/dist/esm/behavior/system/commissioning/CommissioningServer.d.ts.map +1 -1
  274. package/dist/esm/behavior/system/commissioning/CommissioningServer.js +2 -1
  275. package/dist/esm/behavior/system/commissioning/CommissioningServer.js.map +1 -1
  276. package/dist/esm/behavior/system/controller/ControllerBehavior.d.ts.map +1 -1
  277. package/dist/esm/behavior/system/controller/ControllerBehavior.js +0 -5
  278. package/dist/esm/behavior/system/controller/ControllerBehavior.js.map +1 -1
  279. package/dist/esm/behavior/system/http/HttpInterface.d.ts +36 -0
  280. package/dist/esm/behavior/system/http/HttpInterface.d.ts.map +1 -0
  281. package/dist/esm/behavior/system/http/HttpInterface.js +273 -0
  282. package/dist/esm/behavior/system/http/HttpInterface.js.map +6 -0
  283. package/dist/esm/behavior/system/http/HttpServer.d.ts +30 -0
  284. package/dist/esm/behavior/system/http/HttpServer.d.ts.map +1 -0
  285. package/dist/esm/behavior/system/http/HttpServer.js +31 -0
  286. package/dist/esm/behavior/system/http/HttpServer.js.map +6 -0
  287. package/dist/esm/behavior/system/http/index.d.ts +8 -0
  288. package/dist/esm/behavior/system/http/index.d.ts.map +1 -0
  289. package/dist/esm/behavior/system/http/index.js +8 -0
  290. package/dist/esm/behavior/system/http/index.js.map +6 -0
  291. package/dist/esm/behavior/system/index/IndexBehavior.d.ts +4 -4
  292. package/dist/esm/behavior/system/index/IndexBehavior.d.ts.map +1 -1
  293. package/dist/esm/behavior/system/index/IndexBehavior.js +9 -4
  294. package/dist/esm/behavior/system/index/IndexBehavior.js.map +1 -1
  295. package/dist/esm/behavior/system/index.d.ts +4 -0
  296. package/dist/esm/behavior/system/index.d.ts.map +1 -1
  297. package/dist/esm/behavior/system/index.js +4 -0
  298. package/dist/esm/behavior/system/index.js.map +1 -1
  299. package/dist/esm/behavior/system/mqtt/MqttInterface.d.ts +22 -0
  300. package/dist/esm/behavior/system/mqtt/MqttInterface.d.ts.map +1 -0
  301. package/dist/esm/behavior/system/mqtt/MqttInterface.js +341 -0
  302. package/dist/esm/behavior/system/mqtt/MqttInterface.js.map +6 -0
  303. package/dist/esm/behavior/system/mqtt/MqttServer.d.ts +36 -0
  304. package/dist/esm/behavior/system/mqtt/MqttServer.d.ts.map +1 -0
  305. package/dist/esm/behavior/system/mqtt/MqttServer.js +35 -0
  306. package/dist/esm/behavior/system/mqtt/MqttServer.js.map +6 -0
  307. package/dist/esm/behavior/system/mqtt/index.d.ts +8 -0
  308. package/dist/esm/behavior/system/mqtt/index.d.ts.map +1 -0
  309. package/dist/esm/behavior/system/mqtt/index.js +8 -0
  310. package/dist/esm/behavior/system/mqtt/index.js.map +6 -0
  311. package/dist/esm/behavior/system/network/NetworkClient.d.ts +32 -3
  312. package/dist/esm/behavior/system/network/NetworkClient.d.ts.map +1 -1
  313. package/dist/esm/behavior/system/network/NetworkClient.js +101 -19
  314. package/dist/esm/behavior/system/network/NetworkClient.js.map +1 -1
  315. package/dist/esm/behavior/system/product-description/ProductDescriptionServer.d.ts +2 -1
  316. package/dist/esm/behavior/system/product-description/ProductDescriptionServer.d.ts.map +1 -1
  317. package/dist/esm/behavior/system/product-description/ProductDescriptionServer.js +8 -6
  318. package/dist/esm/behavior/system/product-description/ProductDescriptionServer.js.map +1 -1
  319. package/dist/esm/behavior/system/remote/RemoteInterface.d.ts +41 -0
  320. package/dist/esm/behavior/system/remote/RemoteInterface.d.ts.map +1 -0
  321. package/dist/esm/behavior/system/remote/RemoteInterface.js +85 -0
  322. package/dist/esm/behavior/system/remote/RemoteInterface.js.map +6 -0
  323. package/dist/esm/behavior/system/remote/RemoteServer.d.ts +61 -0
  324. package/dist/esm/behavior/system/remote/RemoteServer.d.ts.map +1 -0
  325. package/dist/esm/behavior/system/remote/RemoteServer.js +98 -0
  326. package/dist/esm/behavior/system/remote/RemoteServer.js.map +6 -0
  327. package/dist/esm/behavior/system/remote/api/Api.d.ts +36 -0
  328. package/dist/esm/behavior/system/remote/api/Api.d.ts.map +1 -0
  329. package/dist/esm/behavior/system/remote/api/Api.js +137 -0
  330. package/dist/esm/behavior/system/remote/api/Api.js.map +6 -0
  331. package/dist/esm/behavior/system/remote/api/ApiPath.d.ts +32 -0
  332. package/dist/esm/behavior/system/remote/api/ApiPath.d.ts.map +1 -0
  333. package/dist/esm/behavior/system/remote/api/ApiPath.js +81 -0
  334. package/dist/esm/behavior/system/remote/api/ApiPath.js.map +6 -0
  335. package/dist/esm/behavior/system/remote/api/ApiResource.d.ts +102 -0
  336. package/dist/esm/behavior/system/remote/api/ApiResource.d.ts.map +1 -0
  337. package/dist/esm/behavior/system/remote/api/ApiResource.js +103 -0
  338. package/dist/esm/behavior/system/remote/api/ApiResource.js.map +6 -0
  339. package/dist/esm/behavior/system/remote/api/Envelope.d.ts +53 -0
  340. package/dist/esm/behavior/system/remote/api/Envelope.d.ts.map +1 -0
  341. package/dist/esm/behavior/system/remote/api/Envelope.js +87 -0
  342. package/dist/esm/behavior/system/remote/api/Envelope.js.map +6 -0
  343. package/dist/esm/behavior/system/remote/api/LocalResponse.d.ts +28 -0
  344. package/dist/esm/behavior/system/remote/api/LocalResponse.d.ts.map +1 -0
  345. package/dist/esm/behavior/system/remote/api/LocalResponse.js +6 -0
  346. package/dist/esm/behavior/system/remote/api/LocalResponse.js.map +6 -0
  347. package/dist/esm/behavior/system/remote/api/RemoteRequest.d.ts +43 -0
  348. package/dist/esm/behavior/system/remote/api/RemoteRequest.d.ts.map +1 -0
  349. package/dist/esm/behavior/system/remote/api/RemoteRequest.js +35 -0
  350. package/dist/esm/behavior/system/remote/api/RemoteRequest.js.map +6 -0
  351. package/dist/esm/behavior/system/remote/api/RemoteResponse.d.ts +38 -0
  352. package/dist/esm/behavior/system/remote/api/RemoteResponse.d.ts.map +1 -0
  353. package/dist/esm/behavior/system/remote/api/RemoteResponse.js +45 -0
  354. package/dist/esm/behavior/system/remote/api/RemoteResponse.js.map +6 -0
  355. package/dist/esm/behavior/system/remote/api/index.d.ts +13 -0
  356. package/dist/esm/behavior/system/remote/api/index.d.ts.map +1 -0
  357. package/dist/esm/behavior/system/remote/api/index.js +13 -0
  358. package/dist/esm/behavior/system/remote/api/index.js.map +6 -0
  359. package/dist/esm/behavior/system/remote/api/resources/BehaviorResource.d.ts +22 -0
  360. package/dist/esm/behavior/system/remote/api/resources/BehaviorResource.d.ts.map +1 -0
  361. package/dist/esm/behavior/system/remote/api/resources/BehaviorResource.js +49 -0
  362. package/dist/esm/behavior/system/remote/api/resources/BehaviorResource.js.map +6 -0
  363. package/dist/esm/behavior/system/remote/api/resources/ChangesResource.d.ts +25 -0
  364. package/dist/esm/behavior/system/remote/api/resources/ChangesResource.d.ts.map +1 -0
  365. package/dist/esm/behavior/system/remote/api/resources/ChangesResource.js +56 -0
  366. package/dist/esm/behavior/system/remote/api/resources/ChangesResource.js.map +6 -0
  367. package/dist/esm/behavior/system/remote/api/resources/CommandResource.d.ts +26 -0
  368. package/dist/esm/behavior/system/remote/api/resources/CommandResource.d.ts.map +1 -0
  369. package/dist/esm/behavior/system/remote/api/resources/CommandResource.js +63 -0
  370. package/dist/esm/behavior/system/remote/api/resources/CommandResource.js.map +6 -0
  371. package/dist/esm/behavior/system/remote/api/resources/EndpointContainerResource.d.ts +22 -0
  372. package/dist/esm/behavior/system/remote/api/resources/EndpointContainerResource.d.ts.map +1 -0
  373. package/dist/esm/behavior/system/remote/api/resources/EndpointContainerResource.js +32 -0
  374. package/dist/esm/behavior/system/remote/api/resources/EndpointContainerResource.js.map +6 -0
  375. package/dist/esm/behavior/system/remote/api/resources/EndpointResource.d.ts +34 -0
  376. package/dist/esm/behavior/system/remote/api/resources/EndpointResource.d.ts.map +1 -0
  377. package/dist/esm/behavior/system/remote/api/resources/EndpointResource.js +58 -0
  378. package/dist/esm/behavior/system/remote/api/resources/EndpointResource.js.map +6 -0
  379. package/dist/esm/behavior/system/remote/api/resources/NodeResource.d.ts +20 -0
  380. package/dist/esm/behavior/system/remote/api/resources/NodeResource.d.ts.map +1 -0
  381. package/dist/esm/behavior/system/remote/api/resources/NodeResource.js +54 -0
  382. package/dist/esm/behavior/system/remote/api/resources/NodeResource.js.map +6 -0
  383. package/dist/esm/behavior/system/remote/api/resources/PropertyResource.d.ts +28 -0
  384. package/dist/esm/behavior/system/remote/api/resources/PropertyResource.d.ts.map +1 -0
  385. package/dist/esm/behavior/system/remote/api/resources/PropertyResource.js +103 -0
  386. package/dist/esm/behavior/system/remote/api/resources/PropertyResource.js.map +6 -0
  387. package/dist/esm/behavior/system/remote/api/resources/ServerNodeResource.d.ts +22 -0
  388. package/dist/esm/behavior/system/remote/api/resources/ServerNodeResource.d.ts.map +1 -0
  389. package/dist/esm/behavior/system/remote/api/resources/ServerNodeResource.js +54 -0
  390. package/dist/esm/behavior/system/remote/api/resources/ServerNodeResource.js.map +6 -0
  391. package/dist/esm/behavior/system/remote/api/resources/index.d.ts +13 -0
  392. package/dist/esm/behavior/system/remote/api/resources/index.d.ts.map +1 -0
  393. package/dist/esm/behavior/system/remote/api/resources/index.js +13 -0
  394. package/dist/esm/behavior/system/remote/api/resources/index.js.map +6 -0
  395. package/dist/esm/behavior/system/remote/index.d.ts +9 -0
  396. package/dist/esm/behavior/system/remote/index.d.ts.map +1 -0
  397. package/dist/esm/behavior/system/remote/index.js +9 -0
  398. package/dist/esm/behavior/system/remote/index.js.map +6 -0
  399. package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.d.ts.map +1 -1
  400. package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.js +1 -2
  401. package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.js.map +1 -1
  402. package/dist/esm/behavior/system/websocket/WebSocketInterface.d.ts +16 -0
  403. package/dist/esm/behavior/system/websocket/WebSocketInterface.d.ts.map +1 -0
  404. package/dist/esm/behavior/system/websocket/WebSocketInterface.js +151 -0
  405. package/dist/esm/behavior/system/websocket/WebSocketInterface.js.map +6 -0
  406. package/dist/esm/behavior/system/websocket/WebSocketServer.d.ts +30 -0
  407. package/dist/esm/behavior/system/websocket/WebSocketServer.d.ts.map +1 -0
  408. package/dist/esm/behavior/system/websocket/WebSocketServer.js +31 -0
  409. package/dist/esm/behavior/system/websocket/WebSocketServer.js.map +6 -0
  410. package/dist/esm/behavior/system/websocket/index.d.ts +8 -0
  411. package/dist/esm/behavior/system/websocket/index.d.ts.map +1 -0
  412. package/dist/esm/behavior/system/websocket/index.js +8 -0
  413. package/dist/esm/behavior/system/websocket/index.js.map +6 -0
  414. package/dist/esm/endpoint/Agent.js +1 -1
  415. package/dist/esm/endpoint/Agent.js.map +1 -1
  416. package/dist/esm/endpoint/Endpoint.d.ts.map +1 -1
  417. package/dist/esm/endpoint/Endpoint.js +7 -4
  418. package/dist/esm/endpoint/Endpoint.js.map +1 -1
  419. package/dist/esm/endpoint/properties/Behaviors.d.ts +4 -0
  420. package/dist/esm/endpoint/properties/Behaviors.d.ts.map +1 -1
  421. package/dist/esm/endpoint/properties/Behaviors.js +11 -2
  422. package/dist/esm/endpoint/properties/Behaviors.js.map +1 -1
  423. package/dist/esm/endpoint/properties/ClientNodeEndpoints.d.ts +20 -0
  424. package/dist/esm/endpoint/properties/ClientNodeEndpoints.d.ts.map +1 -0
  425. package/dist/esm/endpoint/properties/ClientNodeEndpoints.js +36 -0
  426. package/dist/esm/endpoint/properties/ClientNodeEndpoints.js.map +6 -0
  427. package/dist/esm/endpoint/properties/EndpointInitializer.d.ts +4 -0
  428. package/dist/esm/endpoint/properties/EndpointInitializer.d.ts.map +1 -1
  429. package/dist/esm/endpoint/properties/EndpointInitializer.js +6 -0
  430. package/dist/esm/endpoint/properties/EndpointInitializer.js.map +1 -1
  431. package/dist/esm/endpoint/properties/Endpoints.d.ts +1 -0
  432. package/dist/esm/endpoint/properties/Endpoints.d.ts.map +1 -1
  433. package/dist/esm/endpoint/properties/Endpoints.js +3 -0
  434. package/dist/esm/endpoint/properties/Endpoints.js.map +1 -1
  435. package/dist/esm/endpoint/type/EndpointType.d.ts +2 -0
  436. package/dist/esm/endpoint/type/EndpointType.d.ts.map +1 -1
  437. package/dist/esm/endpoint/type/EndpointType.js +5 -0
  438. package/dist/esm/endpoint/type/EndpointType.js.map +2 -2
  439. package/dist/esm/node/ClientNode.d.ts +4 -2
  440. package/dist/esm/node/ClientNode.d.ts.map +1 -1
  441. package/dist/esm/node/ClientNode.js +6 -2
  442. package/dist/esm/node/ClientNode.js.map +1 -1
  443. package/dist/esm/node/Node.js +1 -1
  444. package/dist/esm/node/NodeLifecycle.d.ts +1 -1
  445. package/dist/esm/node/NodeLifecycle.d.ts.map +1 -1
  446. package/dist/esm/node/NodeLifecycle.js +1 -1
  447. package/dist/esm/node/NodeLifecycle.js.map +1 -1
  448. package/dist/esm/node/client/ClientEndpointInitializer.d.ts +2 -0
  449. package/dist/esm/node/client/ClientEndpointInitializer.d.ts.map +1 -1
  450. package/dist/esm/node/client/ClientEndpointInitializer.js +33 -0
  451. package/dist/esm/node/client/ClientEndpointInitializer.js.map +1 -1
  452. package/dist/esm/node/client/ClientEventEmitter.d.ts +3 -3
  453. package/dist/esm/node/client/ClientEventEmitter.d.ts.map +1 -1
  454. package/dist/esm/node/client/ClientNodeInteraction.d.ts +1 -0
  455. package/dist/esm/node/client/ClientNodeInteraction.d.ts.map +1 -1
  456. package/dist/esm/node/client/ClientNodeInteraction.js +6 -0
  457. package/dist/esm/node/client/ClientNodeInteraction.js.map +1 -1
  458. package/dist/esm/node/client/ClientStructure.d.ts +2 -0
  459. package/dist/esm/node/client/ClientStructure.d.ts.map +1 -1
  460. package/dist/esm/node/client/ClientStructure.js +18 -5
  461. package/dist/esm/node/client/ClientStructure.js.map +1 -1
  462. package/dist/esm/node/client/Peers.d.ts +6 -0
  463. package/dist/esm/node/client/Peers.d.ts.map +1 -1
  464. package/dist/esm/node/client/Peers.js +57 -5
  465. package/dist/esm/node/client/Peers.js.map +1 -1
  466. package/dist/esm/node/index.d.ts +1 -0
  467. package/dist/esm/node/index.d.ts.map +1 -1
  468. package/dist/esm/node/index.js +1 -0
  469. package/dist/esm/node/index.js.map +1 -1
  470. package/dist/esm/node/integration/ChangeNotificationService.d.ts +56 -0
  471. package/dist/esm/node/integration/ChangeNotificationService.d.ts.map +1 -0
  472. package/dist/esm/node/integration/ChangeNotificationService.js +73 -0
  473. package/dist/esm/node/integration/ChangeNotificationService.js.map +6 -0
  474. package/dist/esm/node/{server → integration}/ProtocolService.d.ts +15 -0
  475. package/dist/esm/node/integration/ProtocolService.d.ts.map +1 -0
  476. package/dist/esm/node/{server → integration}/ProtocolService.js +26 -52
  477. package/dist/esm/node/integration/ProtocolService.js.map +6 -0
  478. package/dist/esm/node/integration/StateStream.d.ts +87 -0
  479. package/dist/esm/node/integration/StateStream.d.ts.map +1 -0
  480. package/dist/esm/node/integration/StateStream.js +256 -0
  481. package/dist/esm/node/integration/StateStream.js.map +6 -0
  482. package/dist/esm/node/integration/index.d.ts +9 -0
  483. package/dist/esm/node/integration/index.d.ts.map +1 -0
  484. package/dist/esm/node/integration/index.js +9 -0
  485. package/dist/esm/node/integration/index.js.map +6 -0
  486. package/dist/esm/node/server/OnlineServerInteraction.d.ts +1 -0
  487. package/dist/esm/node/server/OnlineServerInteraction.d.ts.map +1 -1
  488. package/dist/esm/node/server/OnlineServerInteraction.js +4 -1
  489. package/dist/esm/node/server/OnlineServerInteraction.js.map +1 -1
  490. package/dist/esm/node/server/ServerEnvironment.d.ts.map +1 -1
  491. package/dist/esm/node/server/ServerEnvironment.js +7 -1
  492. package/dist/esm/node/server/ServerEnvironment.js.map +1 -1
  493. package/dist/esm/node/server/ServerSubscription.d.ts.map +1 -1
  494. package/dist/esm/node/server/ServerSubscription.js +2 -2
  495. package/dist/esm/node/server/index.d.ts +0 -1
  496. package/dist/esm/node/server/index.d.ts.map +1 -1
  497. package/dist/esm/node/server/index.js +0 -1
  498. package/dist/esm/node/server/index.js.map +1 -1
  499. package/dist/esm/storage/client/ClientNodeStores.d.ts.map +1 -1
  500. package/dist/esm/storage/client/ClientNodeStores.js.map +1 -1
  501. package/package.json +7 -7
  502. package/src/behavior/Behavior.ts +8 -1
  503. package/src/behavior/Events.ts +2 -2
  504. package/src/behavior/internal/BehaviorBacking.ts +82 -2
  505. package/src/behavior/state/managed/Datasource.ts +20 -26
  506. package/src/behavior/state/managed/NameResolver.ts +1 -1
  507. package/src/behavior/state/managed/values/ValueCaster.ts +21 -5
  508. package/src/behavior/system/commissioning/CommissioningClient.ts +34 -6
  509. package/src/behavior/system/commissioning/CommissioningServer.ts +2 -3
  510. package/src/behavior/system/controller/ControllerBehavior.ts +0 -7
  511. package/src/behavior/system/http/HttpInterface.ts +326 -0
  512. package/src/behavior/system/http/HttpServer.ts +32 -0
  513. package/src/behavior/system/http/index.ts +8 -0
  514. package/src/behavior/system/index/IndexBehavior.ts +14 -6
  515. package/src/behavior/system/index.ts +4 -0
  516. package/src/behavior/system/mqtt/MqttInterface.ts +414 -0
  517. package/src/behavior/system/mqtt/MqttServer.ts +38 -0
  518. package/src/behavior/system/mqtt/index.ts +8 -0
  519. package/src/behavior/system/network/NetworkClient.ts +124 -24
  520. package/src/behavior/system/product-description/ProductDescriptionServer.ts +7 -5
  521. package/src/behavior/system/remote/RemoteInterface.ts +119 -0
  522. package/src/behavior/system/remote/RemoteServer.ts +132 -0
  523. package/src/behavior/system/remote/api/Api.ts +179 -0
  524. package/src/behavior/system/remote/api/ApiPath.ts +101 -0
  525. package/src/behavior/system/remote/api/ApiResource.ts +169 -0
  526. package/src/behavior/system/remote/api/Envelope.ts +112 -0
  527. package/src/behavior/system/remote/api/LocalResponse.ts +37 -0
  528. package/src/behavior/system/remote/api/RemoteRequest.ts +88 -0
  529. package/src/behavior/system/remote/api/RemoteResponse.ts +83 -0
  530. package/src/behavior/system/remote/api/index.ts +13 -0
  531. package/src/behavior/system/remote/api/resources/BehaviorResource.ts +66 -0
  532. package/src/behavior/system/remote/api/resources/ChangesResource.ts +75 -0
  533. package/src/behavior/system/remote/api/resources/CommandResource.ts +91 -0
  534. package/src/behavior/system/remote/api/resources/EndpointContainerResource.ts +45 -0
  535. package/src/behavior/system/remote/api/resources/EndpointResource.ts +75 -0
  536. package/src/behavior/system/remote/api/resources/NodeResource.ts +71 -0
  537. package/src/behavior/system/remote/api/resources/PropertyResource.ts +124 -0
  538. package/src/behavior/system/remote/api/resources/ServerNodeResource.ts +63 -0
  539. package/src/behavior/system/remote/api/resources/index.ts +13 -0
  540. package/src/behavior/system/remote/index.ts +9 -0
  541. package/src/behavior/system/subscriptions/SubscriptionsServer.ts +1 -2
  542. package/src/behavior/system/websocket/WebSocketInterface.ts +127 -0
  543. package/src/behavior/system/websocket/WebSocketServer.ts +32 -0
  544. package/src/behavior/system/websocket/index.ts +8 -0
  545. package/src/endpoint/Agent.ts +1 -1
  546. package/src/endpoint/Endpoint.ts +10 -4
  547. package/src/endpoint/properties/Behaviors.ts +15 -2
  548. package/src/endpoint/properties/ClientNodeEndpoints.ts +38 -0
  549. package/src/endpoint/properties/EndpointInitializer.ts +7 -0
  550. package/src/endpoint/properties/Endpoints.ts +4 -0
  551. package/src/endpoint/type/EndpointType.ts +3 -0
  552. package/src/node/ClientNode.ts +7 -2
  553. package/src/node/Node.ts +1 -1
  554. package/src/node/NodeLifecycle.ts +1 -1
  555. package/src/node/client/ClientEndpointInitializer.ts +38 -0
  556. package/src/node/client/ClientEventEmitter.ts +5 -5
  557. package/src/node/client/ClientNodeInteraction.ts +7 -0
  558. package/src/node/client/ClientStructure.ts +23 -5
  559. package/src/node/client/Peers.ts +71 -5
  560. package/src/node/index.ts +1 -0
  561. package/src/node/integration/ChangeNotificationService.ts +122 -0
  562. package/src/node/{server → integration}/ProtocolService.ts +32 -74
  563. package/src/node/integration/StateStream.ts +474 -0
  564. package/src/node/integration/index.ts +9 -0
  565. package/src/node/server/OnlineServerInteraction.ts +5 -1
  566. package/src/node/server/ServerEnvironment.ts +9 -1
  567. package/src/node/server/ServerSubscription.ts +6 -6
  568. package/src/node/server/index.ts +0 -1
  569. package/src/storage/client/ClientNodeStores.ts +4 -0
  570. package/dist/cjs/node/server/ProtocolService.d.ts.map +0 -1
  571. package/dist/cjs/node/server/ProtocolService.js.map +0 -6
  572. package/dist/esm/node/server/ProtocolService.d.ts.map +0 -1
  573. package/dist/esm/node/server/ProtocolService.js.map +0 -6
@@ -8,9 +8,11 @@ import { CommissioningDiscovery } from "#behavior/system/controller/discovery/Co
8
8
  import { ContinuousDiscovery } from "#behavior/system/controller/discovery/ContinuousDiscovery.js";
9
9
  import { InstanceDiscovery } from "#behavior/system/controller/discovery/InstanceDiscovery.js";
10
10
  import { EndpointContainer } from "#endpoint/properties/EndpointContainer.js";
11
- import { Logger, Minutes, Seconds, Time, Timestamp } from "#general";
12
- import { PeerAddress, PeerAddressStore } from "#protocol";
11
+ import { ImplementationError, Logger, Minutes, Seconds, Time, Timestamp } from "#general";
12
+ import { InteractionServer } from "#node/index.js";
13
+ import { FabricManager, PeerAddress, PeerAddressStore } from "#protocol";
13
14
  import { ServerNodeStore } from "#storage/server/ServerNodeStore.js";
15
+ import { ClientSubscriptionHandler, ClientSubscriptions } from "@matter/protocol";
14
16
  import { ClientNode } from "../ClientNode.js";
15
17
  import { ClientNodeFactory } from "./ClientNodeFactory.js";
16
18
  import { NodePeerAddressStore } from "./NodePeerAddressStore.js";
@@ -20,6 +22,7 @@ const EXPIRATION_INTERVAL = Minutes.one;
20
22
  class Peers extends EndpointContainer {
21
23
  #expirationInterval;
22
24
  #expirationWorker;
25
+ #subscriptionHandler;
23
26
  #closed = false;
24
27
  constructor(owner) {
25
28
  super(owner);
@@ -27,7 +30,8 @@ class Peers extends EndpointContainer {
27
30
  owner.env.set(ClientNodeFactory, new Factory(this));
28
31
  }
29
32
  this.owner.env.set(PeerAddressStore, new NodePeerAddressStore(owner));
30
- this.added.on(this.#manageExpiration.bind(this));
33
+ owner.env.applyTo(InteractionServer, this.#configureInteractionServer.bind(this));
34
+ this.added.on(this.#handlePeerAdded.bind(this));
31
35
  this.deleted.on(this.#manageExpiration.bind(this));
32
36
  }
33
37
  /**
@@ -71,7 +75,7 @@ class Peers extends EndpointContainer {
71
75
  const address = PeerAddress(id);
72
76
  for (const node of this) {
73
77
  const nodeAddress = node.state.commissioning.peerAddress;
74
- if (nodeAddress && PeerAddress(nodeAddress) === address) {
78
+ if (nodeAddress && PeerAddress.is(nodeAddress, address)) {
75
79
  return node;
76
80
  }
77
81
  }
@@ -86,8 +90,30 @@ class Peers extends EndpointContainer {
86
90
  node.owner = this.owner;
87
91
  super.add(node);
88
92
  }
93
+ /**
94
+ * Get or create a client node for the given peer address.
95
+ * This is mainly used to communicate to other known nodes on the fabric without having a formal commissioning
96
+ * process.
97
+ */
98
+ async forAddress(peerAddress, options = {}) {
99
+ if (!this.owner.env.get(FabricManager).has(peerAddress)) {
100
+ throw new ImplementationError("Cannot register a peer address for a fabric we do not belong to");
101
+ }
102
+ let node = this.get(peerAddress);
103
+ if (!node) {
104
+ const factory = this.owner.env.get(ClientNodeFactory);
105
+ node = factory.create(options);
106
+ await node.construction;
107
+ this.add(node);
108
+ await node.set({
109
+ commissioning: { peerAddress: PeerAddress(peerAddress) }
110
+ });
111
+ }
112
+ return node;
113
+ }
89
114
  async close() {
90
115
  this.#closed = true;
116
+ await this.#subscriptionHandler?.close();
91
117
  this.#cancelExpiration();
92
118
  await this.#expirationWorker;
93
119
  await super.close();
@@ -98,8 +124,34 @@ class Peers extends EndpointContainer {
98
124
  this.#expirationInterval = void 0;
99
125
  }
100
126
  }
127
+ #handlePeerAdded() {
128
+ if (this.owner.env.has(InteractionServer)) {
129
+ this.#configureInteractionServer();
130
+ }
131
+ this.#manageExpiration();
132
+ }
133
+ /**
134
+ * If required, installs a listener in the environment's {@link InteractionServer} to handle subscription responses.
135
+ */
136
+ #configureInteractionServer() {
137
+ if (this.#closed || this.size > 0 || !this.owner.env.has(InteractionServer)) {
138
+ return;
139
+ }
140
+ const subscriptions = this.owner.env.get(ClientSubscriptions);
141
+ const interactionServer = this.owner.env.get(InteractionServer);
142
+ if (!this.#subscriptionHandler) {
143
+ this.#subscriptionHandler = new ClientSubscriptionHandler(subscriptions);
144
+ }
145
+ interactionServer.clientHandler = this.#subscriptionHandler;
146
+ }
147
+ /**
148
+ * Enables or disables the expiration timer that culls expired uncommissioned nodes.
149
+ */
101
150
  #manageExpiration() {
102
- if (this.#closed || this.#expirationWorker) {
151
+ if (this.#closed) {
152
+ return;
153
+ }
154
+ if (this.#expirationWorker) {
103
155
  return;
104
156
  }
105
157
  if (this.#expirationInterval) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/node/client/Peers.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["freshestExp"]
6
6
  }
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  export * from "./client/index.js";
7
+ export * from "./integration/index.js";
7
8
  export * from "./Node.js";
8
9
  export * from "./NodeLifecycle.js";
9
10
  export * from "./server/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  export * from "./client/index.js";
7
+ export * from "./integration/index.js";
7
8
  export * from "./Node.js";
8
9
  export * from "./NodeLifecycle.js";
9
10
  export * from "./server/index.js";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/node/index.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Behavior } from "#behavior/Behavior.js";
7
+ import type { BehaviorBacking } from "#behavior/internal/BehaviorBacking.js";
8
+ import type { Endpoint } from "#endpoint/Endpoint.js";
9
+ import { Observable } from "#general";
10
+ import type { ServerNode } from "#node/ServerNode.js";
11
+ /**
12
+ * High-level change notification service.
13
+ *
14
+ * This service provides an optimized path to detecting property changes for all endpoints associated with a node. This
15
+ * includes endpoints on peers.
16
+ */
17
+ export declare class ChangeNotificationService {
18
+ #private;
19
+ constructor(node: ServerNode);
20
+ /**
21
+ * Change event source.
22
+ */
23
+ get change(): Observable<[changes: ChangeNotificationService.Change], void>;
24
+ /**
25
+ * Invoked by the {@link BehaviorBacking} when state changes.
26
+ */
27
+ broadcastUpdate(backing: BehaviorBacking, properties: string[]): void;
28
+ close(): void;
29
+ }
30
+ export declare namespace ChangeNotificationService {
31
+ type Key = string | number;
32
+ /**
33
+ * Emits when state changes.
34
+ *
35
+ * If present, {@link properties} indicates the specific updated properties. Otherwise the recipient should
36
+ * consider all properties.
37
+ */
38
+ interface PropertyUpdate {
39
+ kind: "update";
40
+ endpoint: Endpoint;
41
+ behavior: Behavior.Type;
42
+ version: number;
43
+ properties?: string[];
44
+ }
45
+ /**
46
+ * Emits when endpoints/nodes are deleted.
47
+ *
48
+ * This indicates to the recipient to drop the associated data subtree.
49
+ */
50
+ interface EndpointDelete {
51
+ kind: "delete";
52
+ endpoint: Endpoint;
53
+ }
54
+ type Change = PropertyUpdate | EndpointDelete;
55
+ }
56
+ //# sourceMappingURL=ChangeNotificationService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChangeNotificationService.d.ts","sourceRoot":"","sources":["../../../../src/node/integration/ChangeNotificationService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAiB,UAAU,EAAiB,MAAM,UAAU,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;GAKG;AACH,qBAAa,yBAAyB;;gBAItB,IAAI,EAAE,UAAU;IAU5B;;OAEG;IACH,IAAI,MAAM,kEAET;IAED;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE;IAW9D,KAAK;CAoCR;AAED,yBAAiB,yBAAyB,CAAC;IACvC,KAAY,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;IAElC;;;;;OAKG;IACH,UAAiB,cAAc;QAC3B,IAAI,EAAE,QAAQ,CAAC;QACf,QAAQ,EAAE,QAAQ,CAAC;QACnB,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB;IAED;;;;OAIG;IACH,UAAiB,cAAc;QAC3B,IAAI,EAAE,QAAQ,CAAC;QACf,QAAQ,EAAE,QAAQ,CAAC;KACtB;IAED,KAAY,MAAM,GAAG,cAAc,GAAG,cAAc,CAAC;CACxD"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { EndpointLifecycle } from "#endpoint/properties/EndpointLifecycle.js";
7
+ import { InternalError, Observable, ObserverGroup } from "#general";
8
+ class ChangeNotificationService {
9
+ #change = new Observable();
10
+ #observers = /* @__PURE__ */ new Map();
11
+ constructor(node) {
12
+ this.#beginNodeObservation(node);
13
+ if (node.lifecycle.isReady) {
14
+ this.#beginPeerObservation(node);
15
+ } else {
16
+ node.lifecycle.ready.once(() => this.#beginPeerObservation(node));
17
+ }
18
+ }
19
+ /**
20
+ * Change event source.
21
+ */
22
+ get change() {
23
+ return this.#change;
24
+ }
25
+ /**
26
+ * Invoked by the {@link BehaviorBacking} when state changes.
27
+ */
28
+ broadcastUpdate(backing, properties) {
29
+ const { endpoint, type: behavior } = backing;
30
+ this.#change.emit({
31
+ kind: "update",
32
+ endpoint,
33
+ behavior,
34
+ version: backing.datasource.version,
35
+ properties
36
+ });
37
+ }
38
+ close() {
39
+ for (const observers of this.#observers.values()) {
40
+ observers.close();
41
+ }
42
+ this.#observers.clear();
43
+ }
44
+ #beginNodeObservation(node) {
45
+ const observers = new ObserverGroup();
46
+ this.#observers.set(node, observers);
47
+ observers.on(node.lifecycle.changed, (type, endpoint) => {
48
+ switch (type) {
49
+ case EndpointLifecycle.Change.Destroyed:
50
+ this.#change.emit({
51
+ kind: "delete",
52
+ endpoint
53
+ });
54
+ if (endpoint == node) {
55
+ observers.close();
56
+ this.#observers.delete(node);
57
+ }
58
+ break;
59
+ }
60
+ });
61
+ }
62
+ #beginPeerObservation(node) {
63
+ const observers = this.#observers.get(node);
64
+ if (observers === void 0) {
65
+ throw new InternalError("Change notification initialization order is broken");
66
+ }
67
+ observers.on(node.peers.added, this.#beginNodeObservation.bind(this));
68
+ }
69
+ }
70
+ export {
71
+ ChangeNotificationService
72
+ };
73
+ //# sourceMappingURL=ChangeNotificationService.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/node/integration/ChangeNotificationService.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AASA,SAAS,yBAAyB;AAClC,SAAS,eAAe,YAAY,qBAAqB;AAUlD,MAAM,0BAA0B;AAAA,EACnC,UAAU,IAAI,WAAwD;AAAA,EACtE,aAAa,oBAAI,IAAyB;AAAA,EAE1C,YAAY,MAAkB;AAC1B,SAAK,sBAAsB,IAAI;AAE/B,QAAI,KAAK,UAAU,SAAS;AACxB,WAAK,sBAAsB,IAAI;AAAA,IACnC,OAAO;AACH,WAAK,UAAU,MAAM,KAAK,MAAM,KAAK,sBAAsB,IAAI,CAAC;AAAA,IACpE;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,SAA0B,YAAsB;AAC5D,UAAM,EAAE,UAAU,MAAM,SAAS,IAAI;AACrC,SAAK,QAAQ,KAAK;AAAA,MACd,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA,SAAS,QAAQ,WAAW;AAAA,MAC5B;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,QAAQ;AACJ,eAAW,aAAa,KAAK,WAAW,OAAO,GAAG;AAC9C,gBAAU,MAAM;AAAA,IACpB;AACA,SAAK,WAAW,MAAM;AAAA,EAC1B;AAAA,EAEA,sBAAsB,MAAY;AAC9B,UAAM,YAAY,IAAI,cAAc;AACpC,SAAK,WAAW,IAAI,MAAM,SAAS;AAEnC,cAAU,GAAG,KAAK,UAAU,SAAS,CAAC,MAAM,aAAa;AACrD,cAAQ,MAAM;AAAA,QACV,KAAK,kBAAkB,OAAO;AAC1B,eAAK,QAAQ,KAAK;AAAA,YACd,MAAM;AAAA,YACN;AAAA,UACJ,CAAC;AACD,cAAI,YAAY,MAAM;AAClB,sBAAU,MAAM;AAChB,iBAAK,WAAW,OAAO,IAAI;AAAA,UAC/B;AACA;AAAA,MACR;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,sBAAsB,MAAkB;AACpC,UAAM,YAAY,KAAK,WAAW,IAAI,IAAI;AAE1C,QAAI,cAAc,QAAW;AACzB,YAAM,IAAI,cAAc,oDAAoD;AAAA,IAChF;AAEA,cAAU,GAAG,KAAK,MAAM,OAAO,KAAK,sBAAsB,KAAK,IAAI,CAAC;AAAA,EACxE;AACJ;",
5
+ "names": []
6
+ }
@@ -17,8 +17,23 @@ import type { NodeProtocol } from "#protocol";
17
17
  export declare class ProtocolService {
18
18
  #private;
19
19
  constructor(node: Node);
20
+ /**
21
+ * Invoked by a backing when initialized.
22
+ */
20
23
  addCluster(backing: BehaviorBacking): void;
24
+ /**
25
+ * Invoked by a backing when closed.
26
+ */
21
27
  deleteCluster(backing: BehaviorBacking): void;
28
+ /**
29
+ * Invoked by a backing when there is a state change.
30
+ *
31
+ * This optimized path allows us to broadcast state changes without registering observers for every change.
32
+ */
33
+ handleChange(backing: BehaviorBacking, props: string[]): void;
34
+ /**
35
+ * The {@link NodeProtocol}.
36
+ */
22
37
  get protocol(): NodeProtocol;
23
38
  }
24
39
  //# sourceMappingURL=ProtocolService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtocolService.d.ts","sourceRoot":"","sources":["../../../../src/node/integration/ProtocolService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAgB7E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EASR,YAAY,EACf,MAAM,WAAW,CAAC;AAmBnB;;;;;;;GAOG;AACH,qBAAa,eAAe;;gBAGZ,IAAI,EAAE,IAAI;IAItB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,eAAe;IASnC;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,eAAe;IAMtC;;;;OAIG;IACH,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE;IAYtD;;OAEG;IACH,IAAI,QAAQ,iBAEX;CACJ"}
@@ -11,7 +11,6 @@ import {
11
11
  Logger,
12
12
  MaybePromise,
13
13
  Observable,
14
- ObserverGroup,
15
14
  Transaction
16
15
  } from "#general";
17
16
  import { AcceptedCommandList, AttributeList, ElementTag, GeneratedCommandList, Matter } from "#model";
@@ -25,6 +24,9 @@ class ProtocolService {
25
24
  constructor(node) {
26
25
  this.#state = new NodeState(node);
27
26
  }
27
+ /**
28
+ * Invoked by a backing when initialized.
29
+ */
28
30
  addCluster(backing) {
29
31
  const { schema } = backing.type;
30
32
  if (schema?.tag !== ElementTag.Cluster || schema.id === void 0) {
@@ -32,11 +34,31 @@ class ProtocolService {
32
34
  }
33
35
  this.#state.stateFor(backing.endpoint).addCluster(backing);
34
36
  }
37
+ /**
38
+ * Invoked by a backing when closed.
39
+ */
35
40
  deleteCluster(backing) {
36
41
  if (this.#state.hasEndpoint(backing.endpoint)) {
37
42
  this.#state.stateFor(backing.endpoint).deleteCluster(backing);
38
43
  }
39
44
  }
45
+ /**
46
+ * Invoked by a backing when there is a state change.
47
+ *
48
+ * This optimized path allows us to broadcast state changes without registering observers for every change.
49
+ */
50
+ handleChange(backing, props) {
51
+ const clusterId = backing.type.schema?.id;
52
+ if (clusterId === void 0) {
53
+ return;
54
+ }
55
+ const namesToIds = backing.type.supervisor.propertyNamesAndIds;
56
+ const attrs = props.map((name) => namesToIds.get(name)).filter((id) => id !== void 0);
57
+ this.protocol.attrsChanged.emit(backing.endpoint.number, clusterId, attrs, backing.datasource.version);
58
+ }
59
+ /**
60
+ * The {@link NodeProtocol}.
61
+ */
40
62
  get protocol() {
41
63
  return this.#state.protocol;
42
64
  }
@@ -55,7 +77,6 @@ class NodeState {
55
77
  protocol;
56
78
  #endpoints = /* @__PURE__ */ new Set();
57
79
  #endpointStates = {};
58
- #endpointStateObservers = /* @__PURE__ */ new Map();
59
80
  constructor(node) {
60
81
  let fabrics;
61
82
  let eventHandler;
@@ -74,7 +95,7 @@ class NodeState {
74
95
  return eventHandler;
75
96
  },
76
97
  [Symbol.iterator]: this.#endpoints[Symbol.iterator].bind(this.#endpoints),
77
- stateChanged: new Observable(),
98
+ attrsChanged: new Observable(),
78
99
  toString() {
79
100
  return `node-proto#${node.id}`;
80
101
  },
@@ -96,22 +117,12 @@ class NodeState {
96
117
  this.protocol[number] = state.protocol;
97
118
  this.#endpoints.add(state.protocol);
98
119
  this.#endpointStates[number] = state;
99
- const observer = (clusterId, changes, version) => {
100
- this.protocol.stateChanged.emit(number, clusterId, changes, version);
101
- };
102
- state.stateChanged.on(observer);
103
- this.#endpointStateObservers.set(number, observer);
104
120
  return state;
105
121
  }
106
122
  hasEndpoint(endpoint) {
107
123
  return endpoint.number in this.#endpointStates;
108
124
  }
109
125
  deleteEndpoint(endpoint) {
110
- const observer = this.#endpointStateObservers.get(endpoint.id);
111
- if (observer) {
112
- this.#endpointStates[endpoint.id].stateChanged.off(observer);
113
- this.#endpointStateObservers.delete(endpoint.id);
114
- }
115
126
  delete this.protocol[endpoint.id];
116
127
  this.#endpoints.delete(endpoint);
117
128
  delete this.#endpointStates[endpoint.id];
@@ -122,8 +133,6 @@ class EndpointState {
122
133
  #node;
123
134
  #activeClusters = /* @__PURE__ */ new Set();
124
135
  #clusters = /* @__PURE__ */ new Set();
125
- #clusterStateObservers = /* @__PURE__ */ new Map();
126
- stateChanged = new Observable();
127
136
  constructor(node, endpoint) {
128
137
  this.#node = node;
129
138
  const number = endpoint.number;
@@ -157,12 +166,9 @@ class EndpointState {
157
166
  this.protocol[cluster.type.id] = cluster;
158
167
  this.#activeClusters.add(cluster.type.id);
159
168
  this.#clusters.add(cluster);
160
- const stateObserver = (changes, version) => this.stateChanged.emit(cluster.type.id, changes, version);
161
- cluster.stateChanged.on(stateObserver);
162
- this.#clusterStateObservers.set(cluster.type.id, stateObserver);
163
- const attrs = [...cluster.type.attributes].filter((attr) => attr.limits.readable && !attr.changesOmitted && !attr.quieter).map((attr) => attr.id);
169
+ const attrs = [...cluster.type.attributes].filter((attr) => attr.limits.readable && !attr.changesOmitted).map((attr) => attr.id);
164
170
  if (attrs.length) {
165
- this.stateChanged.emit(cluster.type.id, attrs, cluster.version);
171
+ this.#node.protocol.attrsChanged.emit(this.protocol.id, cluster.type.id, attrs, cluster.version);
166
172
  }
167
173
  }
168
174
  deleteCluster(backing) {
@@ -174,17 +180,11 @@ class EndpointState {
174
180
  if (tag !== ElementTag.Cluster || id === void 0) {
175
181
  return;
176
182
  }
177
- const stateObserver = this.#clusterStateObservers.get(id);
178
183
  const protocol = this.protocol[id];
179
184
  if (protocol) {
180
- if (stateObserver) {
181
- protocol.stateChanged.off(stateObserver);
182
- }
183
- protocol[Symbol.dispose]();
184
185
  this.#clusters.delete(protocol);
185
186
  delete this.protocol[id];
186
187
  }
187
- this.#clusterStateObservers.delete(id);
188
188
  this.#activeClusters.delete(id);
189
189
  if (!this.#activeClusters.size) {
190
190
  this.#node.deleteEndpoint(this.protocol);
@@ -198,31 +198,11 @@ class ClusterState {
198
198
  type;
199
199
  #datasource;
200
200
  #endpointId;
201
- #stateChanged = new Observable();
202
- #quieterObservers = new ObserverGroup();
203
201
  commands = {};
204
202
  constructor(type, backing) {
205
203
  this.type = type;
206
204
  this.#datasource = backing.datasource;
207
205
  this.#endpointId = backing.endpoint.number;
208
- const attributeNameToIdMap = backing.type.supervisor.propertyNamesAndIds;
209
- for (const attr of type.attributes) {
210
- attributeNameToIdMap.set(attr.name, attr.id);
211
- if (attr.quieter) {
212
- this.#quieterObservers.on(
213
- this.#datasource.events[`${attr.name}$Changed`].online,
214
- () => this.stateChanged.emit([attr.id], this.version)
215
- );
216
- }
217
- }
218
- this.#quieterObservers.on(this.#datasource.changed, (changes, version) => {
219
- const data = changes.map((name) => attributeNameToIdMap.get(name)).filter(
220
- (id) => id !== void 0 && !type.attributes[id]?.changesOmitted && !type.attributes[id]?.quieter
221
- );
222
- if (data.length) {
223
- this.stateChanged.emit(data, version);
224
- }
225
- });
226
206
  for (const cmd of type.commands) {
227
207
  this.commands[cmd.id] = (args, session) => invokeCommand(backing, cmd, args, session);
228
208
  }
@@ -236,9 +216,6 @@ class ClusterState {
236
216
  readState(session) {
237
217
  return this.#datasource.reference(session);
238
218
  }
239
- get stateChanged() {
240
- return this.#stateChanged;
241
- }
242
219
  async openForWrite(session) {
243
220
  if (session.transaction === void 0) {
244
221
  throw new ImplementationError("Cluster protocol must be opened with a supervisor session");
@@ -253,9 +230,6 @@ class ClusterState {
253
230
  inspect() {
254
231
  return this.toString();
255
232
  }
256
- [Symbol.dispose]() {
257
- this.#quieterObservers.close();
258
- }
259
233
  }
260
234
  const behaviorCache = /* @__PURE__ */ new WeakMap();
261
235
  function clusterTypeProtocolOf(backing) {
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/node/integration/ProtocolService.ts"],
4
+ "mappings": "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",
5
+ "names": ["wildcardPathFlags", "result"]
6
+ }
@@ -0,0 +1,87 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Behavior } from "#behavior/Behavior.js";
7
+ import { Endpoint } from "#endpoint/Endpoint.js";
8
+ import { Abort, Duration } from "#general";
9
+ import { DatatypeModel } from "#model";
10
+ import { Node } from "#node/Node.js";
11
+ import { ServerNode } from "#node/ServerNode.js";
12
+ import { EndpointNumber } from "#types";
13
+ /**
14
+ * The time from change to notification to change broadcast when transitioning from dormant state.
15
+ */
16
+ export declare const DEFAULT_COALESCE_INTERVAL: Duration;
17
+ /**
18
+ * A streaming view of node state.
19
+ *
20
+ * These streams offer a basic synchronization primitive, delivering state from scratch or from arbitrary version
21
+ * offsets.
22
+ *
23
+ * Each stream tracks a root {@link ServerNode} as well as any available state for known peers.
24
+ */
25
+ export interface StateStream extends AsyncIterator<StateStream.Change> {
26
+ }
27
+ /**
28
+ * Open a new stream.
29
+ */
30
+ export declare function StateStream(node: ServerNode, { nodes: nodeFilter, clusters: clusterFilter, versions, coalesceInterval, abort }?: StateStream.Options): AsyncGenerator<StateStream.Change, void, void>;
31
+ export declare namespace StateStream {
32
+ /**
33
+ * A single change event.
34
+ *
35
+ * Indicates either property updates or endpoint delete.
36
+ */
37
+ type Change = Update | Delete;
38
+ /**
39
+ * A serializable version of {@link Change}.
40
+ */
41
+ type WireChange = WireUpdate | WireDelete;
42
+ type Key = string;
43
+ interface Options {
44
+ abort?: Abort.Signal;
45
+ nodes?: Key[];
46
+ clusters?: Key[];
47
+ versions?: KnownVersion[];
48
+ coalesceInterval?: Duration;
49
+ }
50
+ interface KnownVersion {
51
+ node: Key;
52
+ endpoint: EndpointNumber;
53
+ cluster: Key;
54
+ version: number;
55
+ }
56
+ interface Update {
57
+ kind: "update";
58
+ node: Node;
59
+ endpoint: Endpoint;
60
+ version: number;
61
+ behavior: Behavior.Type;
62
+ changes: Record<Key, unknown>;
63
+ }
64
+ interface Delete {
65
+ kind: "delete";
66
+ node: Node;
67
+ endpoint: Endpoint;
68
+ }
69
+ interface WireUpdate {
70
+ kind: "update";
71
+ node: Key;
72
+ endpoint: number;
73
+ version: number;
74
+ behavior: Key;
75
+ changes: Record<Key, unknown>;
76
+ }
77
+ interface WireDelete {
78
+ kind: "delete";
79
+ node: Key;
80
+ endpoint: number;
81
+ }
82
+ function WireChange(change: Change): WireChange;
83
+ const OptionsSchema: DatatypeModel;
84
+ const WireUpdateSchema: DatatypeModel;
85
+ const WireDeleteSchema: DatatypeModel;
86
+ }
87
+ //# sourceMappingURL=StateStream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateStream.d.ts","sourceRoot":"","sources":["../../../../src/node/integration/StateStream.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAY,QAAQ,EAAuB,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAgB,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAGxC;;GAEG;AACH,eAAO,MAAM,yBAAyB,UAAc,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC;CAAG;AAEzE;;GAEG;AACH,wBAAgB,WAAW,CACvB,IAAI,EAAE,UAAU,EAChB,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAE,WAAW,CAAC,OAAY,kDA4R9G;AAoCD,yBAAiB,WAAW,CAAC;IACzB;;;;OAIG;IACH,KAAY,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAErC;;OAEG;IACH,KAAY,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IAEjD,KAAY,GAAG,GAAG,MAAM,CAAC;IAEzB,UAAiB,OAAO;QACpB,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;QACd,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;QACjB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;QAC1B,gBAAgB,CAAC,EAAE,QAAQ,CAAC;KAC/B;IAED,UAAiB,YAAY;QACzB,IAAI,EAAE,GAAG,CAAC;QACV,QAAQ,EAAE,cAAc,CAAC;QACzB,OAAO,EAAE,GAAG,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACnB;IAED,UAAiB,MAAM;QACnB,IAAI,EAAE,QAAQ,CAAC;QACf,IAAI,EAAE,IAAI,CAAC;QACX,QAAQ,EAAE,QAAQ,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KACjC;IAED,UAAiB,MAAM;QACnB,IAAI,EAAE,QAAQ,CAAC;QACf,IAAI,EAAE,IAAI,CAAC;QACX,QAAQ,EAAE,QAAQ,CAAC;KACtB;IAED,UAAiB,UAAU;QACvB,IAAI,EAAE,QAAQ,CAAC;QACf,IAAI,EAAE,GAAG,CAAC;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,GAAG,CAAC;QACd,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KACjC;IAED,UAAiB,UAAU;QACvB,IAAI,EAAE,QAAQ,CAAC;QACf,IAAI,EAAE,GAAG,CAAC;QACV,QAAQ,EAAE,MAAM,CAAC;KACpB;IAED,SAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAmBrD;IAEM,MAAM,aAAa,eAkBzB,CAAC;IAEK,MAAM,gBAAgB,eAQ5B,CAAC;IAEK,MAAM,gBAAgB,eAK5B,CAAC;CACL"}