@matter/node 0.16.0-alpha.0-20251004-92135c7df → 0.16.0-alpha.0-20251011-d8942d7d5

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 (584) 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/internal/BehaviorBacking.d.ts.map +1 -1
  6. package/dist/cjs/behavior/internal/BehaviorBacking.js +67 -3
  7. package/dist/cjs/behavior/internal/BehaviorBacking.js.map +1 -1
  8. package/dist/cjs/behavior/state/managed/Datasource.d.ts +4 -9
  9. package/dist/cjs/behavior/state/managed/Datasource.d.ts.map +1 -1
  10. package/dist/cjs/behavior/state/managed/Datasource.js +9 -12
  11. package/dist/cjs/behavior/state/managed/Datasource.js.map +1 -1
  12. package/dist/cjs/behavior/state/managed/NameResolver.d.ts.map +1 -1
  13. package/dist/cjs/behavior/state/managed/NameResolver.js.map +1 -1
  14. package/dist/cjs/behavior/state/managed/values/ValueCaster.d.ts +3 -2
  15. package/dist/cjs/behavior/state/managed/values/ValueCaster.d.ts.map +1 -1
  16. package/dist/cjs/behavior/state/managed/values/ValueCaster.js +16 -3
  17. package/dist/cjs/behavior/state/managed/values/ValueCaster.js.map +1 -1
  18. package/dist/cjs/behavior/supervision/RootSupervisor.d.ts +4 -4
  19. package/dist/cjs/behavior/supervision/RootSupervisor.d.ts.map +1 -1
  20. package/dist/cjs/behavior/supervision/RootSupervisor.js +8 -10
  21. package/dist/cjs/behavior/supervision/RootSupervisor.js.map +1 -1
  22. package/dist/cjs/behavior/supervision/ValueSupervisor.d.ts +1 -1
  23. package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts +12 -5
  24. package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
  25. package/dist/cjs/behavior/system/commissioning/CommissioningClient.js +17 -1
  26. package/dist/cjs/behavior/system/commissioning/CommissioningClient.js.map +1 -1
  27. package/dist/cjs/behavior/system/commissioning/CommissioningServer.d.ts.map +1 -1
  28. package/dist/cjs/behavior/system/commissioning/CommissioningServer.js +2 -1
  29. package/dist/cjs/behavior/system/commissioning/CommissioningServer.js.map +1 -1
  30. package/dist/cjs/behavior/system/controller/ControllerBehavior.d.ts +7 -0
  31. package/dist/cjs/behavior/system/controller/ControllerBehavior.d.ts.map +1 -1
  32. package/dist/cjs/behavior/system/controller/ControllerBehavior.js +10 -4
  33. package/dist/cjs/behavior/system/controller/ControllerBehavior.js.map +1 -1
  34. package/dist/cjs/behavior/system/http/HttpInterface.d.ts +36 -0
  35. package/dist/cjs/behavior/system/http/HttpInterface.d.ts.map +1 -0
  36. package/dist/cjs/behavior/system/http/HttpInterface.js +282 -0
  37. package/dist/cjs/behavior/system/http/HttpInterface.js.map +6 -0
  38. package/dist/cjs/behavior/system/http/HttpServer.d.ts +30 -0
  39. package/dist/cjs/behavior/system/http/HttpServer.d.ts.map +1 -0
  40. package/dist/cjs/behavior/system/http/HttpServer.js +51 -0
  41. package/dist/cjs/behavior/system/http/HttpServer.js.map +6 -0
  42. package/dist/cjs/behavior/system/http/index.d.ts +8 -0
  43. package/dist/cjs/behavior/system/http/index.d.ts.map +1 -0
  44. package/dist/cjs/behavior/system/http/index.js +25 -0
  45. package/dist/cjs/behavior/system/http/index.js.map +6 -0
  46. package/dist/cjs/behavior/system/index/IndexBehavior.d.ts +4 -4
  47. package/dist/cjs/behavior/system/index/IndexBehavior.d.ts.map +1 -1
  48. package/dist/cjs/behavior/system/index/IndexBehavior.js +9 -4
  49. package/dist/cjs/behavior/system/index/IndexBehavior.js.map +1 -1
  50. package/dist/cjs/behavior/system/index.d.ts +4 -0
  51. package/dist/cjs/behavior/system/index.d.ts.map +1 -1
  52. package/dist/cjs/behavior/system/index.js +4 -0
  53. package/dist/cjs/behavior/system/index.js.map +1 -1
  54. package/dist/cjs/behavior/system/mqtt/MqttInterface.d.ts +22 -0
  55. package/dist/cjs/behavior/system/mqtt/MqttInterface.d.ts.map +1 -0
  56. package/dist/cjs/behavior/system/mqtt/MqttInterface.js +351 -0
  57. package/dist/cjs/behavior/system/mqtt/MqttInterface.js.map +6 -0
  58. package/dist/cjs/behavior/system/mqtt/MqttServer.d.ts +36 -0
  59. package/dist/cjs/behavior/system/mqtt/MqttServer.d.ts.map +1 -0
  60. package/dist/cjs/behavior/system/mqtt/MqttServer.js +55 -0
  61. package/dist/cjs/behavior/system/mqtt/MqttServer.js.map +6 -0
  62. package/dist/cjs/behavior/system/mqtt/index.d.ts +8 -0
  63. package/dist/cjs/behavior/system/mqtt/index.d.ts.map +1 -0
  64. package/dist/cjs/behavior/system/mqtt/index.js +25 -0
  65. package/dist/cjs/behavior/system/mqtt/index.js.map +6 -0
  66. package/dist/cjs/behavior/system/network/NetworkClient.d.ts +32 -3
  67. package/dist/cjs/behavior/system/network/NetworkClient.d.ts.map +1 -1
  68. package/dist/cjs/behavior/system/network/NetworkClient.js +100 -18
  69. package/dist/cjs/behavior/system/network/NetworkClient.js.map +1 -1
  70. package/dist/cjs/behavior/system/product-description/ProductDescriptionServer.d.ts +2 -1
  71. package/dist/cjs/behavior/system/product-description/ProductDescriptionServer.d.ts.map +1 -1
  72. package/dist/cjs/behavior/system/product-description/ProductDescriptionServer.js +7 -5
  73. package/dist/cjs/behavior/system/product-description/ProductDescriptionServer.js.map +1 -1
  74. package/dist/cjs/behavior/system/remote/RemoteInterface.d.ts +41 -0
  75. package/dist/cjs/behavior/system/remote/RemoteInterface.d.ts.map +1 -0
  76. package/dist/cjs/behavior/system/remote/RemoteInterface.js +105 -0
  77. package/dist/cjs/behavior/system/remote/RemoteInterface.js.map +6 -0
  78. package/dist/cjs/behavior/system/remote/RemoteServer.d.ts +61 -0
  79. package/dist/cjs/behavior/system/remote/RemoteServer.d.ts.map +1 -0
  80. package/dist/cjs/behavior/system/remote/RemoteServer.js +118 -0
  81. package/dist/cjs/behavior/system/remote/RemoteServer.js.map +6 -0
  82. package/dist/cjs/behavior/system/remote/api/Api.d.ts +36 -0
  83. package/dist/cjs/behavior/system/remote/api/Api.d.ts.map +1 -0
  84. package/dist/cjs/behavior/system/remote/api/Api.js +156 -0
  85. package/dist/cjs/behavior/system/remote/api/Api.js.map +6 -0
  86. package/dist/cjs/behavior/system/remote/api/ApiPath.d.ts +32 -0
  87. package/dist/cjs/behavior/system/remote/api/ApiPath.d.ts.map +1 -0
  88. package/dist/cjs/behavior/system/remote/api/ApiPath.js +101 -0
  89. package/dist/cjs/behavior/system/remote/api/ApiPath.js.map +6 -0
  90. package/dist/cjs/behavior/system/remote/api/ApiResource.d.ts +102 -0
  91. package/dist/cjs/behavior/system/remote/api/ApiResource.d.ts.map +1 -0
  92. package/dist/cjs/behavior/system/remote/api/ApiResource.js +123 -0
  93. package/dist/cjs/behavior/system/remote/api/ApiResource.js.map +6 -0
  94. package/dist/cjs/behavior/system/remote/api/Envelope.d.ts +53 -0
  95. package/dist/cjs/behavior/system/remote/api/Envelope.d.ts.map +1 -0
  96. package/dist/cjs/behavior/system/remote/api/Envelope.js +107 -0
  97. package/dist/cjs/behavior/system/remote/api/Envelope.js.map +6 -0
  98. package/dist/cjs/behavior/system/remote/api/LocalResponse.d.ts +28 -0
  99. package/dist/cjs/behavior/system/remote/api/LocalResponse.d.ts.map +1 -0
  100. package/dist/cjs/behavior/system/remote/api/LocalResponse.js +22 -0
  101. package/dist/cjs/behavior/system/remote/api/LocalResponse.js.map +6 -0
  102. package/dist/cjs/behavior/system/remote/api/RemoteRequest.d.ts +43 -0
  103. package/dist/cjs/behavior/system/remote/api/RemoteRequest.d.ts.map +1 -0
  104. package/dist/cjs/behavior/system/remote/api/RemoteRequest.js +55 -0
  105. package/dist/cjs/behavior/system/remote/api/RemoteRequest.js.map +6 -0
  106. package/dist/cjs/behavior/system/remote/api/RemoteResponse.d.ts +37 -0
  107. package/dist/cjs/behavior/system/remote/api/RemoteResponse.d.ts.map +1 -0
  108. package/dist/cjs/behavior/system/remote/api/RemoteResponse.js +52 -0
  109. package/dist/cjs/behavior/system/remote/api/RemoteResponse.js.map +6 -0
  110. package/dist/cjs/behavior/system/remote/api/index.d.ts +13 -0
  111. package/dist/cjs/behavior/system/remote/api/index.d.ts.map +1 -0
  112. package/dist/cjs/behavior/system/remote/api/index.js +30 -0
  113. package/dist/cjs/behavior/system/remote/api/index.js.map +6 -0
  114. package/dist/cjs/behavior/system/remote/api/resources/BehaviorResource.d.ts +22 -0
  115. package/dist/cjs/behavior/system/remote/api/resources/BehaviorResource.d.ts.map +1 -0
  116. package/dist/cjs/behavior/system/remote/api/resources/BehaviorResource.js +69 -0
  117. package/dist/cjs/behavior/system/remote/api/resources/BehaviorResource.js.map +6 -0
  118. package/dist/cjs/behavior/system/remote/api/resources/ChangesResource.d.ts +25 -0
  119. package/dist/cjs/behavior/system/remote/api/resources/ChangesResource.d.ts.map +1 -0
  120. package/dist/cjs/behavior/system/remote/api/resources/ChangesResource.js +76 -0
  121. package/dist/cjs/behavior/system/remote/api/resources/ChangesResource.js.map +6 -0
  122. package/dist/cjs/behavior/system/remote/api/resources/CommandResource.d.ts +26 -0
  123. package/dist/cjs/behavior/system/remote/api/resources/CommandResource.d.ts.map +1 -0
  124. package/dist/cjs/behavior/system/remote/api/resources/CommandResource.js +83 -0
  125. package/dist/cjs/behavior/system/remote/api/resources/CommandResource.js.map +6 -0
  126. package/dist/cjs/behavior/system/remote/api/resources/EndpointContainerResource.d.ts +22 -0
  127. package/dist/cjs/behavior/system/remote/api/resources/EndpointContainerResource.d.ts.map +1 -0
  128. package/dist/cjs/behavior/system/remote/api/resources/EndpointContainerResource.js +52 -0
  129. package/dist/cjs/behavior/system/remote/api/resources/EndpointContainerResource.js.map +6 -0
  130. package/dist/cjs/behavior/system/remote/api/resources/EndpointResource.d.ts +34 -0
  131. package/dist/cjs/behavior/system/remote/api/resources/EndpointResource.d.ts.map +1 -0
  132. package/dist/cjs/behavior/system/remote/api/resources/EndpointResource.js +78 -0
  133. package/dist/cjs/behavior/system/remote/api/resources/EndpointResource.js.map +6 -0
  134. package/dist/cjs/behavior/system/remote/api/resources/NodeResource.d.ts +20 -0
  135. package/dist/cjs/behavior/system/remote/api/resources/NodeResource.d.ts.map +1 -0
  136. package/dist/cjs/behavior/system/remote/api/resources/NodeResource.js +74 -0
  137. package/dist/cjs/behavior/system/remote/api/resources/NodeResource.js.map +6 -0
  138. package/dist/cjs/behavior/system/remote/api/resources/PropertyResource.d.ts +28 -0
  139. package/dist/cjs/behavior/system/remote/api/resources/PropertyResource.d.ts.map +1 -0
  140. package/dist/cjs/behavior/system/remote/api/resources/PropertyResource.js +123 -0
  141. package/dist/cjs/behavior/system/remote/api/resources/PropertyResource.js.map +6 -0
  142. package/dist/cjs/behavior/system/remote/api/resources/ServerNodeResource.d.ts +22 -0
  143. package/dist/cjs/behavior/system/remote/api/resources/ServerNodeResource.d.ts.map +1 -0
  144. package/dist/cjs/behavior/system/remote/api/resources/ServerNodeResource.js +74 -0
  145. package/dist/cjs/behavior/system/remote/api/resources/ServerNodeResource.js.map +6 -0
  146. package/dist/cjs/behavior/system/remote/api/resources/index.d.ts +13 -0
  147. package/dist/cjs/behavior/system/remote/api/resources/index.d.ts.map +1 -0
  148. package/dist/cjs/behavior/system/remote/api/resources/index.js +30 -0
  149. package/dist/cjs/behavior/system/remote/api/resources/index.js.map +6 -0
  150. package/dist/cjs/behavior/system/remote/index.d.ts +9 -0
  151. package/dist/cjs/behavior/system/remote/index.d.ts.map +1 -0
  152. package/dist/cjs/behavior/system/remote/index.js +26 -0
  153. package/dist/cjs/behavior/system/remote/index.js.map +6 -0
  154. package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.d.ts.map +1 -1
  155. package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.js +2 -3
  156. package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.js.map +1 -1
  157. package/dist/cjs/behavior/system/websocket/WebSocketInterface.d.ts +16 -0
  158. package/dist/cjs/behavior/system/websocket/WebSocketInterface.d.ts.map +1 -0
  159. package/dist/cjs/behavior/system/websocket/WebSocketInterface.js +171 -0
  160. package/dist/cjs/behavior/system/websocket/WebSocketInterface.js.map +6 -0
  161. package/dist/cjs/behavior/system/websocket/WebSocketServer.d.ts +30 -0
  162. package/dist/cjs/behavior/system/websocket/WebSocketServer.d.ts.map +1 -0
  163. package/dist/cjs/behavior/system/websocket/WebSocketServer.js +51 -0
  164. package/dist/cjs/behavior/system/websocket/WebSocketServer.js.map +6 -0
  165. package/dist/cjs/behavior/system/websocket/index.d.ts +8 -0
  166. package/dist/cjs/behavior/system/websocket/index.d.ts.map +1 -0
  167. package/dist/cjs/behavior/system/websocket/index.js +25 -0
  168. package/dist/cjs/behavior/system/websocket/index.js.map +6 -0
  169. package/dist/cjs/endpoint/Agent.js +1 -1
  170. package/dist/cjs/endpoint/Agent.js.map +1 -1
  171. package/dist/cjs/endpoint/Endpoint.d.ts.map +1 -1
  172. package/dist/cjs/endpoint/Endpoint.js +6 -4
  173. package/dist/cjs/endpoint/Endpoint.js.map +1 -1
  174. package/dist/cjs/endpoint/properties/Behaviors.d.ts +4 -0
  175. package/dist/cjs/endpoint/properties/Behaviors.d.ts.map +1 -1
  176. package/dist/cjs/endpoint/properties/Behaviors.js +11 -2
  177. package/dist/cjs/endpoint/properties/Behaviors.js.map +1 -1
  178. package/dist/cjs/endpoint/properties/ClientNodeEndpoints.d.ts +20 -0
  179. package/dist/cjs/endpoint/properties/ClientNodeEndpoints.d.ts.map +1 -0
  180. package/dist/cjs/endpoint/properties/ClientNodeEndpoints.js +56 -0
  181. package/dist/cjs/endpoint/properties/ClientNodeEndpoints.js.map +6 -0
  182. package/dist/cjs/endpoint/properties/EndpointInitializer.d.ts +4 -0
  183. package/dist/cjs/endpoint/properties/EndpointInitializer.d.ts.map +1 -1
  184. package/dist/cjs/endpoint/properties/EndpointInitializer.js +6 -0
  185. package/dist/cjs/endpoint/properties/EndpointInitializer.js.map +1 -1
  186. package/dist/cjs/endpoint/properties/Endpoints.d.ts +1 -0
  187. package/dist/cjs/endpoint/properties/Endpoints.d.ts.map +1 -1
  188. package/dist/cjs/endpoint/properties/Endpoints.js +3 -0
  189. package/dist/cjs/endpoint/properties/Endpoints.js.map +1 -1
  190. package/dist/cjs/endpoint/type/EndpointType.d.ts +2 -0
  191. package/dist/cjs/endpoint/type/EndpointType.d.ts.map +1 -1
  192. package/dist/cjs/endpoint/type/EndpointType.js +5 -0
  193. package/dist/cjs/endpoint/type/EndpointType.js.map +2 -2
  194. package/dist/cjs/node/ClientNode.d.ts +4 -2
  195. package/dist/cjs/node/ClientNode.d.ts.map +1 -1
  196. package/dist/cjs/node/ClientNode.js +5 -1
  197. package/dist/cjs/node/ClientNode.js.map +1 -1
  198. package/dist/cjs/node/Node.js +1 -1
  199. package/dist/cjs/node/NodeLifecycle.d.ts +1 -1
  200. package/dist/cjs/node/NodeLifecycle.d.ts.map +1 -1
  201. package/dist/cjs/node/NodeLifecycle.js +1 -1
  202. package/dist/cjs/node/NodeLifecycle.js.map +1 -1
  203. package/dist/cjs/node/client/ClientEndpointInitializer.d.ts +2 -0
  204. package/dist/cjs/node/client/ClientEndpointInitializer.d.ts.map +1 -1
  205. package/dist/cjs/node/client/ClientEndpointInitializer.js +33 -0
  206. package/dist/cjs/node/client/ClientEndpointInitializer.js.map +1 -1
  207. package/dist/cjs/node/client/ClientEventEmitter.d.ts +3 -3
  208. package/dist/cjs/node/client/ClientEventEmitter.d.ts.map +1 -1
  209. package/dist/cjs/node/client/ClientNodeInteraction.d.ts +1 -0
  210. package/dist/cjs/node/client/ClientNodeInteraction.d.ts.map +1 -1
  211. package/dist/cjs/node/client/ClientNodeInteraction.js +6 -0
  212. package/dist/cjs/node/client/ClientNodeInteraction.js.map +1 -1
  213. package/dist/cjs/node/client/ClientStructure.d.ts +2 -0
  214. package/dist/cjs/node/client/ClientStructure.d.ts.map +1 -1
  215. package/dist/cjs/node/client/ClientStructure.js +18 -5
  216. package/dist/cjs/node/client/ClientStructure.js.map +1 -1
  217. package/dist/cjs/node/client/Peers.d.ts +6 -0
  218. package/dist/cjs/node/client/Peers.d.ts.map +1 -1
  219. package/dist/cjs/node/client/Peers.js +55 -3
  220. package/dist/cjs/node/client/Peers.js.map +2 -2
  221. package/dist/cjs/node/index.d.ts +1 -0
  222. package/dist/cjs/node/index.d.ts.map +1 -1
  223. package/dist/cjs/node/index.js +1 -0
  224. package/dist/cjs/node/index.js.map +1 -1
  225. package/dist/cjs/node/integration/ChangeNotificationService.d.ts +56 -0
  226. package/dist/cjs/node/integration/ChangeNotificationService.d.ts.map +1 -0
  227. package/dist/cjs/node/integration/ChangeNotificationService.js +93 -0
  228. package/dist/cjs/node/integration/ChangeNotificationService.js.map +6 -0
  229. package/dist/cjs/node/{server → integration}/ProtocolService.d.ts +15 -0
  230. package/dist/cjs/node/integration/ProtocolService.d.ts.map +1 -0
  231. package/dist/cjs/node/{server → integration}/ProtocolService.js +26 -51
  232. package/dist/cjs/node/integration/ProtocolService.js.map +6 -0
  233. package/dist/cjs/node/integration/StateStream.d.ts +87 -0
  234. package/dist/cjs/node/integration/StateStream.d.ts.map +1 -0
  235. package/dist/cjs/node/integration/StateStream.js +276 -0
  236. package/dist/cjs/node/integration/StateStream.js.map +6 -0
  237. package/dist/cjs/node/integration/index.d.ts +9 -0
  238. package/dist/cjs/node/integration/index.d.ts.map +1 -0
  239. package/dist/cjs/node/integration/index.js +26 -0
  240. package/dist/cjs/node/integration/index.js.map +6 -0
  241. package/dist/cjs/node/server/OnlineServerInteraction.d.ts +1 -0
  242. package/dist/cjs/node/server/OnlineServerInteraction.d.ts.map +1 -1
  243. package/dist/cjs/node/server/OnlineServerInteraction.js +4 -1
  244. package/dist/cjs/node/server/OnlineServerInteraction.js.map +1 -1
  245. package/dist/cjs/node/server/ServerEnvironment.d.ts.map +1 -1
  246. package/dist/cjs/node/server/ServerEnvironment.js +6 -0
  247. package/dist/cjs/node/server/ServerEnvironment.js.map +1 -1
  248. package/dist/cjs/node/server/ServerSubscription.d.ts.map +1 -1
  249. package/dist/cjs/node/server/ServerSubscription.js +2 -2
  250. package/dist/cjs/node/server/index.d.ts +0 -1
  251. package/dist/cjs/node/server/index.d.ts.map +1 -1
  252. package/dist/cjs/node/server/index.js +0 -1
  253. package/dist/cjs/node/server/index.js.map +1 -1
  254. package/dist/cjs/storage/client/ClientNodeStores.d.ts.map +1 -1
  255. package/dist/cjs/storage/client/ClientNodeStores.js.map +1 -1
  256. package/dist/esm/behavior/Behavior.d.ts +4 -0
  257. package/dist/esm/behavior/Behavior.d.ts.map +1 -1
  258. package/dist/esm/behavior/Behavior.js +7 -1
  259. package/dist/esm/behavior/Behavior.js.map +1 -1
  260. package/dist/esm/behavior/internal/BehaviorBacking.d.ts.map +1 -1
  261. package/dist/esm/behavior/internal/BehaviorBacking.js +70 -4
  262. package/dist/esm/behavior/internal/BehaviorBacking.js.map +1 -1
  263. package/dist/esm/behavior/state/managed/Datasource.d.ts +4 -9
  264. package/dist/esm/behavior/state/managed/Datasource.d.ts.map +1 -1
  265. package/dist/esm/behavior/state/managed/Datasource.js +9 -13
  266. package/dist/esm/behavior/state/managed/Datasource.js.map +1 -1
  267. package/dist/esm/behavior/state/managed/NameResolver.d.ts.map +1 -1
  268. package/dist/esm/behavior/state/managed/NameResolver.js.map +1 -1
  269. package/dist/esm/behavior/state/managed/values/ValueCaster.d.ts +3 -2
  270. package/dist/esm/behavior/state/managed/values/ValueCaster.d.ts.map +1 -1
  271. package/dist/esm/behavior/state/managed/values/ValueCaster.js +16 -3
  272. package/dist/esm/behavior/state/managed/values/ValueCaster.js.map +1 -1
  273. package/dist/esm/behavior/supervision/RootSupervisor.d.ts +4 -4
  274. package/dist/esm/behavior/supervision/RootSupervisor.d.ts.map +1 -1
  275. package/dist/esm/behavior/supervision/RootSupervisor.js +8 -11
  276. package/dist/esm/behavior/supervision/RootSupervisor.js.map +1 -1
  277. package/dist/esm/behavior/supervision/ValueSupervisor.d.ts +1 -1
  278. package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts +12 -5
  279. package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
  280. package/dist/esm/behavior/system/commissioning/CommissioningClient.js +19 -1
  281. package/dist/esm/behavior/system/commissioning/CommissioningClient.js.map +1 -1
  282. package/dist/esm/behavior/system/commissioning/CommissioningServer.d.ts.map +1 -1
  283. package/dist/esm/behavior/system/commissioning/CommissioningServer.js +2 -1
  284. package/dist/esm/behavior/system/commissioning/CommissioningServer.js.map +1 -1
  285. package/dist/esm/behavior/system/controller/ControllerBehavior.d.ts +7 -0
  286. package/dist/esm/behavior/system/controller/ControllerBehavior.d.ts.map +1 -1
  287. package/dist/esm/behavior/system/controller/ControllerBehavior.js +10 -5
  288. package/dist/esm/behavior/system/controller/ControllerBehavior.js.map +1 -1
  289. package/dist/esm/behavior/system/http/HttpInterface.d.ts +36 -0
  290. package/dist/esm/behavior/system/http/HttpInterface.d.ts.map +1 -0
  291. package/dist/esm/behavior/system/http/HttpInterface.js +273 -0
  292. package/dist/esm/behavior/system/http/HttpInterface.js.map +6 -0
  293. package/dist/esm/behavior/system/http/HttpServer.d.ts +30 -0
  294. package/dist/esm/behavior/system/http/HttpServer.d.ts.map +1 -0
  295. package/dist/esm/behavior/system/http/HttpServer.js +31 -0
  296. package/dist/esm/behavior/system/http/HttpServer.js.map +6 -0
  297. package/dist/esm/behavior/system/http/index.d.ts +8 -0
  298. package/dist/esm/behavior/system/http/index.d.ts.map +1 -0
  299. package/dist/esm/behavior/system/http/index.js +8 -0
  300. package/dist/esm/behavior/system/http/index.js.map +6 -0
  301. package/dist/esm/behavior/system/index/IndexBehavior.d.ts +4 -4
  302. package/dist/esm/behavior/system/index/IndexBehavior.d.ts.map +1 -1
  303. package/dist/esm/behavior/system/index/IndexBehavior.js +9 -4
  304. package/dist/esm/behavior/system/index/IndexBehavior.js.map +1 -1
  305. package/dist/esm/behavior/system/index.d.ts +4 -0
  306. package/dist/esm/behavior/system/index.d.ts.map +1 -1
  307. package/dist/esm/behavior/system/index.js +4 -0
  308. package/dist/esm/behavior/system/index.js.map +1 -1
  309. package/dist/esm/behavior/system/mqtt/MqttInterface.d.ts +22 -0
  310. package/dist/esm/behavior/system/mqtt/MqttInterface.d.ts.map +1 -0
  311. package/dist/esm/behavior/system/mqtt/MqttInterface.js +341 -0
  312. package/dist/esm/behavior/system/mqtt/MqttInterface.js.map +6 -0
  313. package/dist/esm/behavior/system/mqtt/MqttServer.d.ts +36 -0
  314. package/dist/esm/behavior/system/mqtt/MqttServer.d.ts.map +1 -0
  315. package/dist/esm/behavior/system/mqtt/MqttServer.js +35 -0
  316. package/dist/esm/behavior/system/mqtt/MqttServer.js.map +6 -0
  317. package/dist/esm/behavior/system/mqtt/index.d.ts +8 -0
  318. package/dist/esm/behavior/system/mqtt/index.d.ts.map +1 -0
  319. package/dist/esm/behavior/system/mqtt/index.js +8 -0
  320. package/dist/esm/behavior/system/mqtt/index.js.map +6 -0
  321. package/dist/esm/behavior/system/network/NetworkClient.d.ts +32 -3
  322. package/dist/esm/behavior/system/network/NetworkClient.d.ts.map +1 -1
  323. package/dist/esm/behavior/system/network/NetworkClient.js +101 -19
  324. package/dist/esm/behavior/system/network/NetworkClient.js.map +1 -1
  325. package/dist/esm/behavior/system/product-description/ProductDescriptionServer.d.ts +2 -1
  326. package/dist/esm/behavior/system/product-description/ProductDescriptionServer.d.ts.map +1 -1
  327. package/dist/esm/behavior/system/product-description/ProductDescriptionServer.js +8 -6
  328. package/dist/esm/behavior/system/product-description/ProductDescriptionServer.js.map +1 -1
  329. package/dist/esm/behavior/system/remote/RemoteInterface.d.ts +41 -0
  330. package/dist/esm/behavior/system/remote/RemoteInterface.d.ts.map +1 -0
  331. package/dist/esm/behavior/system/remote/RemoteInterface.js +85 -0
  332. package/dist/esm/behavior/system/remote/RemoteInterface.js.map +6 -0
  333. package/dist/esm/behavior/system/remote/RemoteServer.d.ts +61 -0
  334. package/dist/esm/behavior/system/remote/RemoteServer.d.ts.map +1 -0
  335. package/dist/esm/behavior/system/remote/RemoteServer.js +98 -0
  336. package/dist/esm/behavior/system/remote/RemoteServer.js.map +6 -0
  337. package/dist/esm/behavior/system/remote/api/Api.d.ts +36 -0
  338. package/dist/esm/behavior/system/remote/api/Api.d.ts.map +1 -0
  339. package/dist/esm/behavior/system/remote/api/Api.js +136 -0
  340. package/dist/esm/behavior/system/remote/api/Api.js.map +6 -0
  341. package/dist/esm/behavior/system/remote/api/ApiPath.d.ts +32 -0
  342. package/dist/esm/behavior/system/remote/api/ApiPath.d.ts.map +1 -0
  343. package/dist/esm/behavior/system/remote/api/ApiPath.js +81 -0
  344. package/dist/esm/behavior/system/remote/api/ApiPath.js.map +6 -0
  345. package/dist/esm/behavior/system/remote/api/ApiResource.d.ts +102 -0
  346. package/dist/esm/behavior/system/remote/api/ApiResource.d.ts.map +1 -0
  347. package/dist/esm/behavior/system/remote/api/ApiResource.js +103 -0
  348. package/dist/esm/behavior/system/remote/api/ApiResource.js.map +6 -0
  349. package/dist/esm/behavior/system/remote/api/Envelope.d.ts +53 -0
  350. package/dist/esm/behavior/system/remote/api/Envelope.d.ts.map +1 -0
  351. package/dist/esm/behavior/system/remote/api/Envelope.js +87 -0
  352. package/dist/esm/behavior/system/remote/api/Envelope.js.map +6 -0
  353. package/dist/esm/behavior/system/remote/api/LocalResponse.d.ts +28 -0
  354. package/dist/esm/behavior/system/remote/api/LocalResponse.d.ts.map +1 -0
  355. package/dist/esm/behavior/system/remote/api/LocalResponse.js +6 -0
  356. package/dist/esm/behavior/system/remote/api/LocalResponse.js.map +6 -0
  357. package/dist/esm/behavior/system/remote/api/RemoteRequest.d.ts +43 -0
  358. package/dist/esm/behavior/system/remote/api/RemoteRequest.d.ts.map +1 -0
  359. package/dist/esm/behavior/system/remote/api/RemoteRequest.js +35 -0
  360. package/dist/esm/behavior/system/remote/api/RemoteRequest.js.map +6 -0
  361. package/dist/esm/behavior/system/remote/api/RemoteResponse.d.ts +37 -0
  362. package/dist/esm/behavior/system/remote/api/RemoteResponse.d.ts.map +1 -0
  363. package/dist/esm/behavior/system/remote/api/RemoteResponse.js +32 -0
  364. package/dist/esm/behavior/system/remote/api/RemoteResponse.js.map +6 -0
  365. package/dist/esm/behavior/system/remote/api/index.d.ts +13 -0
  366. package/dist/esm/behavior/system/remote/api/index.d.ts.map +1 -0
  367. package/dist/esm/behavior/system/remote/api/index.js +13 -0
  368. package/dist/esm/behavior/system/remote/api/index.js.map +6 -0
  369. package/dist/esm/behavior/system/remote/api/resources/BehaviorResource.d.ts +22 -0
  370. package/dist/esm/behavior/system/remote/api/resources/BehaviorResource.d.ts.map +1 -0
  371. package/dist/esm/behavior/system/remote/api/resources/BehaviorResource.js +49 -0
  372. package/dist/esm/behavior/system/remote/api/resources/BehaviorResource.js.map +6 -0
  373. package/dist/esm/behavior/system/remote/api/resources/ChangesResource.d.ts +25 -0
  374. package/dist/esm/behavior/system/remote/api/resources/ChangesResource.d.ts.map +1 -0
  375. package/dist/esm/behavior/system/remote/api/resources/ChangesResource.js +56 -0
  376. package/dist/esm/behavior/system/remote/api/resources/ChangesResource.js.map +6 -0
  377. package/dist/esm/behavior/system/remote/api/resources/CommandResource.d.ts +26 -0
  378. package/dist/esm/behavior/system/remote/api/resources/CommandResource.d.ts.map +1 -0
  379. package/dist/esm/behavior/system/remote/api/resources/CommandResource.js +63 -0
  380. package/dist/esm/behavior/system/remote/api/resources/CommandResource.js.map +6 -0
  381. package/dist/esm/behavior/system/remote/api/resources/EndpointContainerResource.d.ts +22 -0
  382. package/dist/esm/behavior/system/remote/api/resources/EndpointContainerResource.d.ts.map +1 -0
  383. package/dist/esm/behavior/system/remote/api/resources/EndpointContainerResource.js +32 -0
  384. package/dist/esm/behavior/system/remote/api/resources/EndpointContainerResource.js.map +6 -0
  385. package/dist/esm/behavior/system/remote/api/resources/EndpointResource.d.ts +34 -0
  386. package/dist/esm/behavior/system/remote/api/resources/EndpointResource.d.ts.map +1 -0
  387. package/dist/esm/behavior/system/remote/api/resources/EndpointResource.js +58 -0
  388. package/dist/esm/behavior/system/remote/api/resources/EndpointResource.js.map +6 -0
  389. package/dist/esm/behavior/system/remote/api/resources/NodeResource.d.ts +20 -0
  390. package/dist/esm/behavior/system/remote/api/resources/NodeResource.d.ts.map +1 -0
  391. package/dist/esm/behavior/system/remote/api/resources/NodeResource.js +54 -0
  392. package/dist/esm/behavior/system/remote/api/resources/NodeResource.js.map +6 -0
  393. package/dist/esm/behavior/system/remote/api/resources/PropertyResource.d.ts +28 -0
  394. package/dist/esm/behavior/system/remote/api/resources/PropertyResource.d.ts.map +1 -0
  395. package/dist/esm/behavior/system/remote/api/resources/PropertyResource.js +103 -0
  396. package/dist/esm/behavior/system/remote/api/resources/PropertyResource.js.map +6 -0
  397. package/dist/esm/behavior/system/remote/api/resources/ServerNodeResource.d.ts +22 -0
  398. package/dist/esm/behavior/system/remote/api/resources/ServerNodeResource.d.ts.map +1 -0
  399. package/dist/esm/behavior/system/remote/api/resources/ServerNodeResource.js +54 -0
  400. package/dist/esm/behavior/system/remote/api/resources/ServerNodeResource.js.map +6 -0
  401. package/dist/esm/behavior/system/remote/api/resources/index.d.ts +13 -0
  402. package/dist/esm/behavior/system/remote/api/resources/index.d.ts.map +1 -0
  403. package/dist/esm/behavior/system/remote/api/resources/index.js +13 -0
  404. package/dist/esm/behavior/system/remote/api/resources/index.js.map +6 -0
  405. package/dist/esm/behavior/system/remote/index.d.ts +9 -0
  406. package/dist/esm/behavior/system/remote/index.d.ts.map +1 -0
  407. package/dist/esm/behavior/system/remote/index.js +9 -0
  408. package/dist/esm/behavior/system/remote/index.js.map +6 -0
  409. package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.d.ts.map +1 -1
  410. package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.js +2 -3
  411. package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.js.map +1 -1
  412. package/dist/esm/behavior/system/websocket/WebSocketInterface.d.ts +16 -0
  413. package/dist/esm/behavior/system/websocket/WebSocketInterface.d.ts.map +1 -0
  414. package/dist/esm/behavior/system/websocket/WebSocketInterface.js +151 -0
  415. package/dist/esm/behavior/system/websocket/WebSocketInterface.js.map +6 -0
  416. package/dist/esm/behavior/system/websocket/WebSocketServer.d.ts +30 -0
  417. package/dist/esm/behavior/system/websocket/WebSocketServer.d.ts.map +1 -0
  418. package/dist/esm/behavior/system/websocket/WebSocketServer.js +31 -0
  419. package/dist/esm/behavior/system/websocket/WebSocketServer.js.map +6 -0
  420. package/dist/esm/behavior/system/websocket/index.d.ts +8 -0
  421. package/dist/esm/behavior/system/websocket/index.d.ts.map +1 -0
  422. package/dist/esm/behavior/system/websocket/index.js +8 -0
  423. package/dist/esm/behavior/system/websocket/index.js.map +6 -0
  424. package/dist/esm/endpoint/Agent.js +1 -1
  425. package/dist/esm/endpoint/Agent.js.map +1 -1
  426. package/dist/esm/endpoint/Endpoint.d.ts.map +1 -1
  427. package/dist/esm/endpoint/Endpoint.js +7 -4
  428. package/dist/esm/endpoint/Endpoint.js.map +1 -1
  429. package/dist/esm/endpoint/properties/Behaviors.d.ts +4 -0
  430. package/dist/esm/endpoint/properties/Behaviors.d.ts.map +1 -1
  431. package/dist/esm/endpoint/properties/Behaviors.js +11 -2
  432. package/dist/esm/endpoint/properties/Behaviors.js.map +1 -1
  433. package/dist/esm/endpoint/properties/ClientNodeEndpoints.d.ts +20 -0
  434. package/dist/esm/endpoint/properties/ClientNodeEndpoints.d.ts.map +1 -0
  435. package/dist/esm/endpoint/properties/ClientNodeEndpoints.js +36 -0
  436. package/dist/esm/endpoint/properties/ClientNodeEndpoints.js.map +6 -0
  437. package/dist/esm/endpoint/properties/EndpointInitializer.d.ts +4 -0
  438. package/dist/esm/endpoint/properties/EndpointInitializer.d.ts.map +1 -1
  439. package/dist/esm/endpoint/properties/EndpointInitializer.js +6 -0
  440. package/dist/esm/endpoint/properties/EndpointInitializer.js.map +1 -1
  441. package/dist/esm/endpoint/properties/Endpoints.d.ts +1 -0
  442. package/dist/esm/endpoint/properties/Endpoints.d.ts.map +1 -1
  443. package/dist/esm/endpoint/properties/Endpoints.js +3 -0
  444. package/dist/esm/endpoint/properties/Endpoints.js.map +1 -1
  445. package/dist/esm/endpoint/type/EndpointType.d.ts +2 -0
  446. package/dist/esm/endpoint/type/EndpointType.d.ts.map +1 -1
  447. package/dist/esm/endpoint/type/EndpointType.js +5 -0
  448. package/dist/esm/endpoint/type/EndpointType.js.map +2 -2
  449. package/dist/esm/node/ClientNode.d.ts +4 -2
  450. package/dist/esm/node/ClientNode.d.ts.map +1 -1
  451. package/dist/esm/node/ClientNode.js +5 -1
  452. package/dist/esm/node/ClientNode.js.map +1 -1
  453. package/dist/esm/node/Node.js +1 -1
  454. package/dist/esm/node/NodeLifecycle.d.ts +1 -1
  455. package/dist/esm/node/NodeLifecycle.d.ts.map +1 -1
  456. package/dist/esm/node/NodeLifecycle.js +1 -1
  457. package/dist/esm/node/NodeLifecycle.js.map +1 -1
  458. package/dist/esm/node/client/ClientEndpointInitializer.d.ts +2 -0
  459. package/dist/esm/node/client/ClientEndpointInitializer.d.ts.map +1 -1
  460. package/dist/esm/node/client/ClientEndpointInitializer.js +33 -0
  461. package/dist/esm/node/client/ClientEndpointInitializer.js.map +1 -1
  462. package/dist/esm/node/client/ClientEventEmitter.d.ts +3 -3
  463. package/dist/esm/node/client/ClientEventEmitter.d.ts.map +1 -1
  464. package/dist/esm/node/client/ClientNodeInteraction.d.ts +1 -0
  465. package/dist/esm/node/client/ClientNodeInteraction.d.ts.map +1 -1
  466. package/dist/esm/node/client/ClientNodeInteraction.js +6 -0
  467. package/dist/esm/node/client/ClientNodeInteraction.js.map +1 -1
  468. package/dist/esm/node/client/ClientStructure.d.ts +2 -0
  469. package/dist/esm/node/client/ClientStructure.d.ts.map +1 -1
  470. package/dist/esm/node/client/ClientStructure.js +18 -5
  471. package/dist/esm/node/client/ClientStructure.js.map +1 -1
  472. package/dist/esm/node/client/Peers.d.ts +6 -0
  473. package/dist/esm/node/client/Peers.d.ts.map +1 -1
  474. package/dist/esm/node/client/Peers.js +57 -5
  475. package/dist/esm/node/client/Peers.js.map +1 -1
  476. package/dist/esm/node/index.d.ts +1 -0
  477. package/dist/esm/node/index.d.ts.map +1 -1
  478. package/dist/esm/node/index.js +1 -0
  479. package/dist/esm/node/index.js.map +1 -1
  480. package/dist/esm/node/integration/ChangeNotificationService.d.ts +56 -0
  481. package/dist/esm/node/integration/ChangeNotificationService.d.ts.map +1 -0
  482. package/dist/esm/node/integration/ChangeNotificationService.js +73 -0
  483. package/dist/esm/node/integration/ChangeNotificationService.js.map +6 -0
  484. package/dist/esm/node/{server → integration}/ProtocolService.d.ts +15 -0
  485. package/dist/esm/node/integration/ProtocolService.d.ts.map +1 -0
  486. package/dist/esm/node/{server → integration}/ProtocolService.js +26 -52
  487. package/dist/esm/node/integration/ProtocolService.js.map +6 -0
  488. package/dist/esm/node/integration/StateStream.d.ts +87 -0
  489. package/dist/esm/node/integration/StateStream.d.ts.map +1 -0
  490. package/dist/esm/node/integration/StateStream.js +256 -0
  491. package/dist/esm/node/integration/StateStream.js.map +6 -0
  492. package/dist/esm/node/integration/index.d.ts +9 -0
  493. package/dist/esm/node/integration/index.d.ts.map +1 -0
  494. package/dist/esm/node/integration/index.js +9 -0
  495. package/dist/esm/node/integration/index.js.map +6 -0
  496. package/dist/esm/node/server/OnlineServerInteraction.d.ts +1 -0
  497. package/dist/esm/node/server/OnlineServerInteraction.d.ts.map +1 -1
  498. package/dist/esm/node/server/OnlineServerInteraction.js +4 -1
  499. package/dist/esm/node/server/OnlineServerInteraction.js.map +1 -1
  500. package/dist/esm/node/server/ServerEnvironment.d.ts.map +1 -1
  501. package/dist/esm/node/server/ServerEnvironment.js +7 -1
  502. package/dist/esm/node/server/ServerEnvironment.js.map +1 -1
  503. package/dist/esm/node/server/ServerSubscription.d.ts.map +1 -1
  504. package/dist/esm/node/server/ServerSubscription.js +2 -2
  505. package/dist/esm/node/server/index.d.ts +0 -1
  506. package/dist/esm/node/server/index.d.ts.map +1 -1
  507. package/dist/esm/node/server/index.js +0 -1
  508. package/dist/esm/node/server/index.js.map +1 -1
  509. package/dist/esm/storage/client/ClientNodeStores.d.ts.map +1 -1
  510. package/dist/esm/storage/client/ClientNodeStores.js.map +1 -1
  511. package/package.json +7 -7
  512. package/src/behavior/Behavior.ts +8 -1
  513. package/src/behavior/internal/BehaviorBacking.ts +82 -2
  514. package/src/behavior/state/managed/Datasource.ts +20 -26
  515. package/src/behavior/state/managed/NameResolver.ts +1 -1
  516. package/src/behavior/state/managed/values/ValueCaster.ts +21 -5
  517. package/src/behavior/supervision/RootSupervisor.ts +16 -11
  518. package/src/behavior/supervision/ValueSupervisor.ts +1 -1
  519. package/src/behavior/system/commissioning/CommissioningClient.ts +34 -6
  520. package/src/behavior/system/commissioning/CommissioningServer.ts +2 -3
  521. package/src/behavior/system/controller/ControllerBehavior.ts +13 -7
  522. package/src/behavior/system/http/HttpInterface.ts +326 -0
  523. package/src/behavior/system/http/HttpServer.ts +32 -0
  524. package/src/behavior/system/http/index.ts +8 -0
  525. package/src/behavior/system/index/IndexBehavior.ts +14 -6
  526. package/src/behavior/system/index.ts +4 -0
  527. package/src/behavior/system/mqtt/MqttInterface.ts +414 -0
  528. package/src/behavior/system/mqtt/MqttServer.ts +38 -0
  529. package/src/behavior/system/mqtt/index.ts +8 -0
  530. package/src/behavior/system/network/NetworkClient.ts +124 -24
  531. package/src/behavior/system/product-description/ProductDescriptionServer.ts +7 -5
  532. package/src/behavior/system/remote/RemoteInterface.ts +119 -0
  533. package/src/behavior/system/remote/RemoteServer.ts +132 -0
  534. package/src/behavior/system/remote/api/Api.ts +179 -0
  535. package/src/behavior/system/remote/api/ApiPath.ts +101 -0
  536. package/src/behavior/system/remote/api/ApiResource.ts +169 -0
  537. package/src/behavior/system/remote/api/Envelope.ts +112 -0
  538. package/src/behavior/system/remote/api/LocalResponse.ts +37 -0
  539. package/src/behavior/system/remote/api/RemoteRequest.ts +88 -0
  540. package/src/behavior/system/remote/api/RemoteResponse.ts +70 -0
  541. package/src/behavior/system/remote/api/index.ts +13 -0
  542. package/src/behavior/system/remote/api/resources/BehaviorResource.ts +66 -0
  543. package/src/behavior/system/remote/api/resources/ChangesResource.ts +75 -0
  544. package/src/behavior/system/remote/api/resources/CommandResource.ts +91 -0
  545. package/src/behavior/system/remote/api/resources/EndpointContainerResource.ts +45 -0
  546. package/src/behavior/system/remote/api/resources/EndpointResource.ts +75 -0
  547. package/src/behavior/system/remote/api/resources/NodeResource.ts +71 -0
  548. package/src/behavior/system/remote/api/resources/PropertyResource.ts +124 -0
  549. package/src/behavior/system/remote/api/resources/ServerNodeResource.ts +63 -0
  550. package/src/behavior/system/remote/api/resources/index.ts +13 -0
  551. package/src/behavior/system/remote/index.ts +9 -0
  552. package/src/behavior/system/subscriptions/SubscriptionsServer.ts +2 -3
  553. package/src/behavior/system/websocket/WebSocketInterface.ts +127 -0
  554. package/src/behavior/system/websocket/WebSocketServer.ts +32 -0
  555. package/src/behavior/system/websocket/index.ts +8 -0
  556. package/src/endpoint/Agent.ts +1 -1
  557. package/src/endpoint/Endpoint.ts +10 -4
  558. package/src/endpoint/properties/Behaviors.ts +15 -2
  559. package/src/endpoint/properties/ClientNodeEndpoints.ts +38 -0
  560. package/src/endpoint/properties/EndpointInitializer.ts +7 -0
  561. package/src/endpoint/properties/Endpoints.ts +4 -0
  562. package/src/endpoint/type/EndpointType.ts +3 -0
  563. package/src/node/ClientNode.ts +6 -1
  564. package/src/node/Node.ts +1 -1
  565. package/src/node/NodeLifecycle.ts +1 -1
  566. package/src/node/client/ClientEndpointInitializer.ts +38 -0
  567. package/src/node/client/ClientEventEmitter.ts +5 -5
  568. package/src/node/client/ClientNodeInteraction.ts +7 -0
  569. package/src/node/client/ClientStructure.ts +30 -5
  570. package/src/node/client/Peers.ts +71 -5
  571. package/src/node/index.ts +1 -0
  572. package/src/node/integration/ChangeNotificationService.ts +122 -0
  573. package/src/node/{server → integration}/ProtocolService.ts +32 -74
  574. package/src/node/integration/StateStream.ts +474 -0
  575. package/src/node/integration/index.ts +9 -0
  576. package/src/node/server/OnlineServerInteraction.ts +5 -1
  577. package/src/node/server/ServerEnvironment.ts +8 -1
  578. package/src/node/server/ServerSubscription.ts +6 -6
  579. package/src/node/server/index.ts +0 -1
  580. package/src/storage/client/ClientNodeStores.ts +4 -0
  581. package/dist/cjs/node/server/ProtocolService.d.ts.map +0 -1
  582. package/dist/cjs/node/server/ProtocolService.js.map +0 -6
  583. package/dist/esm/node/server/ProtocolService.d.ts.map +0 -1
  584. 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) {
@@ -8,11 +8,11 @@ import { camelize, InternalError } from "#general";
8
8
  import {
9
9
  AttributeModel,
10
10
  ClusterModel,
11
- ElementTag,
12
11
  FeatureMap,
13
12
  FeatureSet,
14
13
  Matter,
15
14
  Model,
15
+ ModelIndex,
16
16
  Schema,
17
17
  Scope,
18
18
  ValueModel,
@@ -59,7 +59,7 @@ export class RootSupervisor implements ValueSupervisor {
59
59
  #rootSchema: Schema;
60
60
  #root: ValueSupervisor;
61
61
  #memberNames?: Set<string>;
62
- #attributeNamesToIds?: Map<string, AttributeId>; // Whenever we need more than Attributes and Fields, we need to generalize
62
+ #propertyNamesAndIds?: Map<string, AttributeId | undefined>;
63
63
 
64
64
  /**
65
65
  * Create a new supervisor.
@@ -86,12 +86,20 @@ export class RootSupervisor implements ValueSupervisor {
86
86
  /**
87
87
  * Obtain the supervisor for schema. The result is cached.
88
88
  */
89
- static for(schema: Schema) {
89
+ static for<T extends Schema | undefined>(
90
+ schema: T,
91
+ ): T extends undefined ? RootSupervisor | undefined : RootSupervisor {
92
+ if (!schema) {
93
+ return undefined as any;
94
+ }
95
+
90
96
  if (cache.has(schema)) {
91
97
  return cache.get(schema)!;
92
98
  }
99
+
93
100
  const supervisor = new RootSupervisor(schema);
94
101
  cache.set(schema, supervisor);
102
+
95
103
  return supervisor;
96
104
  }
97
105
 
@@ -168,17 +176,14 @@ export class RootSupervisor implements ValueSupervisor {
168
176
  return persistent;
169
177
  }
170
178
 
171
- get attributeNamesToIds() {
172
- let names = this.#attributeNamesToIds;
179
+ get propertyNamesAndIds() {
180
+ let names = this.#propertyNamesAndIds;
173
181
  if (!names) {
174
182
  names = new Map();
175
183
  for (const member of this.#members) {
176
- if (member.id === undefined || member.tag !== ElementTag.Attribute) {
177
- continue;
178
- }
179
- names.set(camelize(member.name), AttributeId(member.id));
184
+ names.set(camelize(member.name), member.id as AttributeId | undefined);
180
185
  }
181
- this.#attributeNamesToIds = names;
186
+ this.#propertyNamesAndIds = names;
182
187
  }
183
188
  return names;
184
189
  }
@@ -188,7 +193,7 @@ export class RootSupervisor implements ValueSupervisor {
188
193
  *
189
194
  * The {@link Scope.ConformanceMode} defaults to "deconflicted" if you do not override.
190
195
  */
191
- membersOf<T extends Schema>(schema: T, options: Scope.MemberOptions = {}): Model.ChildOf<T>[] {
196
+ membersOf<T extends Schema>(schema: T, options: Scope.MemberOptions = {}): ModelIndex<Model.ChildOf<T>> {
192
197
  if (options.conformance === undefined) {
193
198
  options = { ...options, conformance: "deconflicted" };
194
199
  }
@@ -54,7 +54,7 @@ export interface ValueSupervisor {
54
54
  readonly manage: ValueSupervisor.Manage;
55
55
 
56
56
  /**
57
- * Apply changes. Does not validate perform validation.
57
+ * Apply changes. Does not perform validation.
58
58
  */
59
59
  readonly patch: ValueSupervisor.Patch;
60
60
 
@@ -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,
@@ -23,6 +21,7 @@ import {
23
21
  Scanner,
24
22
  ScannerSet,
25
23
  } from "#protocol";
24
+ import { FabricId } from "@matter/types";
26
25
  import type { CommissioningClient } from "../commissioning/CommissioningClient.js";
27
26
  import { CommissioningServer } from "../commissioning/CommissioningServer.js";
28
27
  import { NetworkServer } from "../network/NetworkServer.js";
@@ -48,6 +47,7 @@ export class ControllerBehavior extends Behavior {
48
47
  throw new ImplementationError("adminFabricLabel must be set for ControllerBehavior.");
49
48
  }
50
49
  const adminFabricLabel = this.state.adminFabricLabel;
50
+ const adminFabricId = this.state.adminFabricId;
51
51
 
52
52
  // Configure discovery transports
53
53
  if (this.state.ip === undefined) {
@@ -77,6 +77,10 @@ export class ControllerBehavior extends Behavior {
77
77
  override get adminFabricLabel() {
78
78
  return adminFabricLabel;
79
79
  }
80
+
81
+ get fabricId() {
82
+ return adminFabricId;
83
+ }
80
84
  })(),
81
85
  );
82
86
  }
@@ -115,11 +119,6 @@ export class ControllerBehavior extends Behavior {
115
119
  netTransports.add(this.env.get(Ble).centralInterface);
116
120
  }
117
121
 
118
- // Install handler to receive data reports for subscriptions
119
- const subscriptions = this.env.get(ClientSubscriptions);
120
- const interactionServer = this.env.get(InteractionServer);
121
- interactionServer.clientHandler = new ClientSubscriptionHandler(subscriptions);
122
-
123
122
  // Clean up as the node goes offline
124
123
  const node = Node.forEndpoint(this.endpoint);
125
124
  this.reactTo(node.lifecycle.goingOffline, this.#nodeGoingOffline);
@@ -185,5 +184,12 @@ export namespace ControllerBehavior {
185
184
  * Contains the label of the admin fabric which is set for all commissioned devices
186
185
  */
187
186
  adminFabricLabel = "matter.js";
187
+
188
+ /**
189
+ * Contains the FabricId of the admin fabric when a defined number needs to be used because special Certificates
190
+ * are used.
191
+ * If not provided, a random FabricId will be generated.
192
+ */
193
+ adminFabricId?: FabricId = undefined;
188
194
  }
189
195
  }