@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
@@ -4,12 +4,14 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
+ import { OnlineEvent } from "#behavior/Events.js";
7
8
  import { Migration } from "#behavior/state/migrations/Migration.js";
8
9
  import type { Agent } from "#endpoint/Agent.js";
9
10
  import type { Endpoint } from "#endpoint/Endpoint.js";
10
11
  import { BehaviorInitializationError } from "#endpoint/errors.js";
11
12
  import type { SupportedElements } from "#endpoint/properties/Behaviors.js";
12
13
  import {
14
+ camelize,
13
15
  Construction,
14
16
  Crypto,
15
17
  EventEmitter,
@@ -19,8 +21,10 @@ import {
19
21
  Logger,
20
22
  MaybePromise,
21
23
  Observable,
24
+ ObserverGroup,
22
25
  } from "#general";
23
- import { ProtocolService } from "#node/server/ProtocolService.js";
26
+ import { ChangeNotificationService } from "#node/integration/ChangeNotificationService.js";
27
+ import { ProtocolService } from "#node/integration/ProtocolService.js";
24
28
  import type { ClusterId } from "#types";
25
29
  import type { Behavior } from "../Behavior.js";
26
30
  import { Reactor } from "../Reactor.js";
@@ -36,12 +40,16 @@ const logger = Logger.get("BehaviorBacking");
36
40
  export abstract class BehaviorBacking {
37
41
  #endpoint: Endpoint;
38
42
  #type: Behavior.Type;
43
+ #protocol: ProtocolService;
44
+ #changeTracking: ChangeNotificationService;
39
45
  #internal?: object;
40
46
  #events?: EventEmitter;
41
47
  #options?: Behavior.Options;
42
48
  #datasource?: Datasource;
43
49
  #reactors?: Reactors;
44
50
  #construction: Construction<BehaviorBacking>;
51
+ #suppressedChanges?: Set<string>;
52
+ #quietObservers?: ObserverGroup;
45
53
 
46
54
  get construction() {
47
55
  return this.#construction;
@@ -50,9 +58,13 @@ export abstract class BehaviorBacking {
50
58
  constructor(endpoint: Endpoint, type: Behavior.Type, store: Datasource.Store, options?: Behavior.Options) {
51
59
  this.#endpoint = endpoint;
52
60
  this.#type = type;
61
+ this.#protocol = endpoint.env.get(ProtocolService);
62
+ this.#changeTracking = endpoint.env.get(ChangeNotificationService);
53
63
  this.store = store;
54
64
  this.#options = options;
55
65
 
66
+ this.#configureEventSuppression();
67
+
56
68
  this.#construction = Construction(this);
57
69
  this.#construction.onError(error => {
58
70
  // The endpoint reports errors during initialization. For errors occurring later we report the error
@@ -96,7 +108,7 @@ export abstract class BehaviorBacking {
96
108
 
97
109
  // Perform actual initialization
98
110
  const promise = this.invokeInitializer(behavior, this.#options);
99
- return MaybePromise.then(promise, () => this.#endpoint.env.get(ProtocolService).addCluster(this), crash);
111
+ return MaybePromise.then(promise, () => this.#protocol.addCluster(this), crash);
100
112
  } catch (e) {
101
113
  crash(e);
102
114
  }
@@ -124,6 +136,8 @@ export abstract class BehaviorBacking {
124
136
  }
125
137
 
126
138
  return this.construction.close(() => {
139
+ this.#quietObservers?.close();
140
+
127
141
  let result = MaybePromise.then(
128
142
  () => this.#reactors?.close(),
129
143
  () => {
@@ -210,6 +224,7 @@ export abstract class BehaviorBacking {
210
224
  defaults: this.#endpoint.behaviors.defaultsFor(this.type),
211
225
  store: this.store,
212
226
  owner: this.#endpoint,
227
+ onChange: this.#onChange.bind(this),
213
228
  };
214
229
  }
215
230
 
@@ -289,6 +304,50 @@ export abstract class BehaviorBacking {
289
304
  await this.#reactors.remove(selector);
290
305
  }
291
306
 
307
+ /**
308
+ * We handle events in bulk via {@link Datasource.Options.onChange}, but "quieter" and "changesOmitted" events
309
+ * require special handling. Those we ignore in the change handler and instead report only when emitted by the
310
+ * corresponding {@link OnlineEvent}.
311
+ */
312
+ #configureEventSuppression() {
313
+ const { schema } = this.type;
314
+ if (!schema) {
315
+ return;
316
+ }
317
+
318
+ for (const property of schema.conformant.properties) {
319
+ const { changesOmitted, quieter } = property.effectiveQuality;
320
+
321
+ if (!changesOmitted && !quieter) {
322
+ continue;
323
+ }
324
+
325
+ const name = camelize(property.name);
326
+
327
+ if (!this.#suppressedChanges) {
328
+ this.#suppressedChanges = new Set();
329
+ }
330
+ this.#suppressedChanges.add(name);
331
+
332
+ if (!quieter) {
333
+ continue;
334
+ }
335
+
336
+ const event = (this.events as unknown as Record<string, OnlineEvent>)[`${name}$Changed`];
337
+ if (event === undefined) {
338
+ continue;
339
+ }
340
+
341
+ if (event.isQuieter) {
342
+ if (!this.#quietObservers) {
343
+ this.#quietObservers = new ObserverGroup();
344
+ }
345
+
346
+ this.#quietObservers.on(event.quiet, () => this.#broadcastChanges([name]));
347
+ }
348
+ }
349
+ }
350
+
292
351
  /**
293
352
  * Invoke {@link Behavior.destroy} to clean up application logic.
294
353
  */
@@ -322,4 +381,25 @@ export abstract class BehaviorBacking {
322
381
  const behavior = this.createBehavior(agent, this.#type);
323
382
  return behavior;
324
383
  }
384
+
385
+ #onChange(props: string[]) {
386
+ if (this.#suppressedChanges) {
387
+ props = props.filter(name => !this.#suppressedChanges!.has(name));
388
+ }
389
+ this.#broadcastChanges(props);
390
+ }
391
+
392
+ /**
393
+ * We provide two forms of optimized change tracking.
394
+ *
395
+ * {@link ProtocolService} offers a low-level service that supports the Matter protocol.
396
+ *
397
+ * {@link ChangeNotificationService} is a higher-level service that supports state synchronization use cases.
398
+ *
399
+ * This method informs these services of changes.
400
+ */
401
+ #broadcastChanges(props: string[]) {
402
+ this.#protocol.handleChange(this, props);
403
+ this.#changeTracking.broadcastUpdate(this, props);
404
+ }
325
405
  }
@@ -26,8 +26,6 @@ const logger = Logger.get("Datasource");
26
26
 
27
27
  const FEATURES_KEY = "__features__";
28
28
 
29
- const changed = Symbol("changed");
30
-
31
29
  const viewTx = Transaction.open("offline-view", "ro");
32
30
 
33
31
  /**
@@ -63,11 +61,6 @@ export interface Datasource<T extends StateType = StateType> extends Transaction
63
61
  */
64
62
  location: AccessControl.Location;
65
63
 
66
- /**
67
- * Event that gets emitted when the state changes.
68
- */
69
- changed: Observable<[changes: string[], version: number], MaybePromise>;
70
-
71
64
  /**
72
65
  * Events registered for this Datasource
73
66
  */
@@ -105,10 +98,6 @@ export function Datasource<const T extends StateType = StateType>(options: Datas
105
98
  return internals.location;
106
99
  },
107
100
 
108
- get changed() {
109
- return internals.events[changed];
110
- },
111
-
112
101
  get events() {
113
102
  return internals.events;
114
103
  },
@@ -145,10 +134,6 @@ export namespace Datasource {
145
134
  [K in `${string}$Changing` | `${string}$Changed`]: Observable<Parameters<ValueObserver>, MaybePromise>;
146
135
  };
147
136
 
148
- export type InternalEvents = Events & {
149
- [changed]: Observable<[changes: string[], version: number], MaybePromise>;
150
- };
151
-
152
137
  /**
153
138
  * Datasource configuration options.
154
139
  */
@@ -204,6 +189,11 @@ export namespace Datasource {
204
189
  * For structs we also support the other key (id or name) for input, but always write using the preferred key.
205
190
  */
206
191
  primaryKey?: "name" | "id";
192
+
193
+ /**
194
+ * Optional callback, invoked when properties change.
195
+ */
196
+ onChange?: (attrs: string[]) => MaybePromise<void>;
207
197
  }
208
198
 
209
199
  /**
@@ -275,7 +265,7 @@ interface Internals extends Datasource.Options {
275
265
  sessions?: Map<ValueSupervisor.Session, SessionContext>;
276
266
  featuresKey?: string;
277
267
  interactionObserver(session?: ValueSupervisor.Session): MaybePromise<void>;
278
- events: Datasource.InternalEvents;
268
+ events: Datasource.Events;
279
269
  changedEventFor(key: string): undefined | Datasource.Events[any];
280
270
  persistentFields: Set<string>;
281
271
  }
@@ -328,10 +318,9 @@ function configure(options: Datasource.Options): Internals {
328
318
  // Location affects security so make it immutable
329
319
  Object.freeze(options.location);
330
320
 
331
- const events = (options.events ?? {}) as Datasource.InternalEvents;
332
- events[changed] = new Observable();
321
+ const events = options.events ?? {};
333
322
 
334
- let changedEventIndex: undefined | Map<string, undefined | Datasource.InternalEvents[`${string}$Changed`]>;
323
+ let changedEventIndex: undefined | Map<string, undefined | Datasource.Events[`${string}$Changed`]>;
335
324
 
336
325
  const persistentFields = options.supervisor.persistentKeys(options.primaryKey);
337
326
 
@@ -443,7 +432,15 @@ function configureExternalChanges(internals: Internals) {
443
432
  }
444
433
  }
445
434
 
446
- const iterator = Object.keys(changes)[Symbol.iterator]();
435
+ const changedProps = Object.keys(changes);
436
+
437
+ const onChangePromise = internals.onChange?.(Array.from(changedProps));
438
+
439
+ const iterator = changedProps[Symbol.iterator]();
440
+
441
+ if (onChangePromise) {
442
+ return onChangePromise.then(emitChanged);
443
+ }
447
444
 
448
445
  return emitChanged();
449
446
 
@@ -856,13 +853,10 @@ function createReference(resource: Transaction.Resource, internals: Internals, s
856
853
  }
857
854
  }
858
855
 
859
- const changeSetResult = internals.events[changed]?.emit(
860
- Array.from(changes.changeList.values()),
861
- internals.version,
862
- );
856
+ const onChangePromise = internals.onChange?.([...changes.changeList]);
863
857
 
864
- if (MaybePromise.is(changeSetResult)) {
865
- return changeSetResult.then(emitChanged);
858
+ if (onChangePromise) {
859
+ return onChangePromise.then(emitChanged);
866
860
  }
867
861
 
868
862
  return emitChanged();
@@ -7,7 +7,7 @@
7
7
  import { RootSupervisor } from "#behavior/supervision/RootSupervisor.js";
8
8
  import { camelize } from "#general";
9
9
  import type { Schema } from "#model";
10
- import { ClusterModel, Model, ValueModel } from "#model";
10
+ import { ClusterModel, Model, ValueModel, type FieldValue } from "#model";
11
11
  import { Val } from "#protocol";
12
12
  import { Internal } from "./Internal.js";
13
13
 
@@ -12,21 +12,37 @@ import { RootSupervisor } from "../../../supervision/RootSupervisor.js";
12
12
  import { ValueSupervisor } from "../../../supervision/ValueSupervisor.js";
13
13
 
14
14
  /**
15
- * Obtain a {@link ValueSupervisor.Caster} function for the given schema.
15
+ * Obtain a {@link ValueSupervisor.Cast} function for the given schema.
16
16
  */
17
- export function ValueCaster(schema: Schema, owner: RootSupervisor) {
17
+ export function ValueCaster(schema: Schema, owner: RootSupervisor): ValueSupervisor.Cast {
18
18
  const metatype = schema.effectiveMetatype ?? Metatype.any;
19
19
 
20
+ let cast: ValueSupervisor.Cast;
20
21
  switch (metatype) {
21
22
  case Metatype.object:
22
- return StructCaster(schema, owner);
23
+ cast = StructCaster(schema, owner);
24
+ break;
23
25
 
24
26
  case Metatype.array:
25
- return ListCaster(schema as ValueModel, owner);
27
+ cast = ListCaster(schema as ValueModel, owner);
28
+ break;
26
29
 
27
30
  default:
28
- return Metatype.cast[metatype];
31
+ cast = Metatype.cast[metatype];
32
+ break;
29
33
  }
34
+
35
+ if (schema.quality.nullable) {
36
+ return value => {
37
+ if (value === null) {
38
+ return value;
39
+ }
40
+
41
+ return cast(value);
42
+ };
43
+ }
44
+
45
+ return cast;
30
46
  }
31
47
 
32
48
  function StructCaster(schema: ValueModel | ClusterModel, owner: RootSupervisor) {
@@ -11,6 +11,7 @@ import {
11
11
  Diagnostic,
12
12
  Duration,
13
13
  ImplementationError,
14
+ isIpNetworkChannel,
14
15
  Logger,
15
16
  NotImplementedError,
16
17
  Observable,
@@ -23,6 +24,7 @@ import type { ClientNode } from "#node/ClientNode.js";
23
24
  import type { Node } from "#node/Node.js";
24
25
  import { IdentityService } from "#node/server/IdentityService.js";
25
26
  import {
27
+ ChannelManager,
26
28
  CommissioningMode,
27
29
  ControllerCommissioner,
28
30
  DiscoveryData,
@@ -156,7 +158,11 @@ export class CommissioningClient extends Behavior {
156
158
  await this.context.transaction.commit();
157
159
 
158
160
  const network = this.agent.get(NetworkClient);
159
- network.state.startupSubscription = opts.startupSubscription;
161
+ network.state.defaultSubscription = opts.defaultSubscription;
162
+ if (opts.autoSubscribe || opts.autoSubscribe === undefined) {
163
+ // Nodes we commission are auto-subscribed by default, unless disabled explicitly
164
+ network.state.autoSubscribe = opts.autoSubscribe ?? true;
165
+ }
160
166
  network.state.caseAuthenticatedTags = opts.caseAuthenticatedTags;
161
167
 
162
168
  logger.notice(
@@ -233,6 +239,20 @@ export class CommissioningClient extends Behavior {
233
239
  const node = this.endpoint as ClientNode;
234
240
 
235
241
  if (addr) {
242
+ const channels = node.env.get(ChannelManager);
243
+ if (channels.hasChannel(addr)) {
244
+ const channel = channels.getChannel(addr).channel;
245
+ const operationalAddress = isIpNetworkChannel(channel) ? channel.networkAddress : undefined;
246
+ if (operationalAddress) {
247
+ if (this.state.addresses === undefined) {
248
+ this.state.addresses = [];
249
+ }
250
+ if (!this.state.addresses.some(a => ServerAddress.isEqual(ServerAddress(a), operationalAddress))) {
251
+ this.state.addresses.push(ServerAddress.definitionOf(operationalAddress));
252
+ }
253
+ }
254
+ }
255
+
236
256
  node.lifecycle.commissioned.emit(this.context);
237
257
  } else {
238
258
  node.lifecycle.decommissioned.emit(this.context);
@@ -436,9 +456,9 @@ export namespace CommissioningClient {
436
456
  discoveryCapabilities?: TypeFromPartialBitSchema<typeof DiscoveryCapabilitiesBitmap>;
437
457
 
438
458
  /**
439
- * The initial read used to populate node data.
459
+ * The initial read/subscription used to populate node data.
440
460
  *
441
- * By default matter.js reads all attributes on the node. This allows us to efficiently initialize the complete
461
+ * By default, matter.js reads all attributes on the node. This allows us to efficiently initialize the complete
442
462
  * node structure.
443
463
  *
444
464
  * If you only require a subset of attributes you can replace this with a more discriminative read. For
@@ -447,7 +467,7 @@ export namespace CommissioningClient {
447
467
  *
448
468
  * ```js
449
469
  * {
450
- * startupSubscription: Read(
470
+ * defaultSubscription: Read(
451
471
  * Read.Attribute({ endpoint: 0 }),
452
472
  * Read.Attribute({ cluster: OnOffCluster })
453
473
  * )
@@ -455,9 +475,17 @@ export namespace CommissioningClient {
455
475
  * ```
456
476
  *
457
477
  * Note that certain clusters like Descriptor and Basic Information contain critical operational data. If your
458
- * read omits them then the node will only be partially functional once initialized.
478
+ * read omits them then the node will only be partially functional once initialized or relevant clusters and
479
+ * endpoints need to be enabled manually.
480
+ */
481
+ defaultSubscription?: Subscribe;
482
+
483
+ /**
484
+ * By default, nodes we commission are automatically subscribed to using the {@link defaultSubscription} (or a
485
+ * full wildcard subscription if that is undefined).
486
+ * When set to false, the node will not be automatically subscribed.
459
487
  */
460
- startupSubscription?: Subscribe | null;
488
+ autoSubscribe?: boolean;
461
489
 
462
490
  /**
463
491
  * Case Authenticated Tags (CATs) to use for operational CASE sessions with this node.
@@ -6,6 +6,7 @@
6
6
 
7
7
  import { SubscriptionsBehavior } from "#behavior/system/subscriptions/SubscriptionsServer.js";
8
8
  import { Endpoint } from "#endpoint/Endpoint.js";
9
+ import { EndpointType } from "#endpoint/type/EndpointType.js";
9
10
  import {
10
11
  AsyncObservable,
11
12
  Bytes,
@@ -343,9 +344,7 @@ export class CommissioningServer extends Behavior {
343
344
  }
344
345
 
345
346
  get #hasAdvertisableDeviceType() {
346
- return (
347
- this.agent.get(ProductDescriptionServer).state.deviceType !== ProductDescriptionServer.UNKNOWN_DEVICE_TYPE
348
- );
347
+ return this.agent.get(ProductDescriptionServer).state.deviceType !== EndpointType.UNKNOWN_DEVICE_TYPE;
349
348
  }
350
349
  }
351
350
 
@@ -8,10 +8,8 @@ import { Behavior } from "#behavior/Behavior.js";
8
8
  import { BasicInformationBehavior } from "#behaviors/basic-information";
9
9
  import { ConnectionlessTransportSet, ImplementationError } from "#general";
10
10
  import { Node } from "#node/Node.js";
11
- import { InteractionServer } from "#node/server/InteractionServer.js";
12
11
  import {
13
12
  Ble,
14
- ClientSubscriptionHandler,
15
13
  ClientSubscriptions,
16
14
  Fabric,
17
15
  FabricAuthority,
@@ -121,11 +119,6 @@ export class ControllerBehavior extends Behavior {
121
119
  netTransports.add(this.env.get(Ble).centralInterface);
122
120
  }
123
121
 
124
- // Install handler to receive data reports for subscriptions
125
- const subscriptions = this.env.get(ClientSubscriptions);
126
- const interactionServer = this.env.get(InteractionServer);
127
- interactionServer.clientHandler = new ClientSubscriptionHandler(subscriptions);
128
-
129
122
  // Clean up as the node goes offline
130
123
  const node = Node.forEndpoint(this.endpoint);
131
124
  this.reactTo(node.lifecycle.goingOffline, this.#nodeGoingOffline);