@matter/protocol 0.11.0-alpha.0-20241005-e3e4e4a7a

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 (853) hide show
  1. package/LICENSE +201 -0
  2. package/dist/cjs/MatterDevice.d.ts +79 -0
  3. package/dist/cjs/MatterDevice.d.ts.map +1 -0
  4. package/dist/cjs/MatterDevice.js +253 -0
  5. package/dist/cjs/MatterDevice.js.map +6 -0
  6. package/dist/cjs/ble/Ble.d.ts +29 -0
  7. package/dist/cjs/ble/Ble.d.ts.map +1 -0
  8. package/dist/cjs/ble/Ble.js +50 -0
  9. package/dist/cjs/ble/Ble.js.map +6 -0
  10. package/dist/cjs/ble/BleConsts.d.ts +32 -0
  11. package/dist/cjs/ble/BleConsts.d.ts.map +1 -0
  12. package/dist/cjs/ble/BleConsts.js +53 -0
  13. package/dist/cjs/ble/BleConsts.js.map +6 -0
  14. package/dist/cjs/ble/BtpSessionHandler.d.ts +87 -0
  15. package/dist/cjs/ble/BtpSessionHandler.d.ts.map +1 -0
  16. package/dist/cjs/ble/BtpSessionHandler.js +432 -0
  17. package/dist/cjs/ble/BtpSessionHandler.js.map +6 -0
  18. package/dist/cjs/ble/index.d.ts +9 -0
  19. package/dist/cjs/ble/index.d.ts.map +1 -0
  20. package/dist/cjs/ble/index.js +26 -0
  21. package/dist/cjs/ble/index.js.map +6 -0
  22. package/dist/cjs/certificate/AttestationCertificateManager.d.ts +28 -0
  23. package/dist/cjs/certificate/AttestationCertificateManager.d.ts.map +1 -0
  24. package/dist/cjs/certificate/AttestationCertificateManager.js +171 -0
  25. package/dist/cjs/certificate/AttestationCertificateManager.js.map +6 -0
  26. package/dist/cjs/certificate/CertificateManager.d.ts +575 -0
  27. package/dist/cjs/certificate/CertificateManager.d.ts.map +1 -0
  28. package/dist/cjs/certificate/CertificateManager.js +810 -0
  29. package/dist/cjs/certificate/CertificateManager.js.map +6 -0
  30. package/dist/cjs/certificate/CertificationDeclarationManager.d.ts +5 -0
  31. package/dist/cjs/certificate/CertificationDeclarationManager.d.ts.map +1 -0
  32. package/dist/cjs/certificate/CertificationDeclarationManager.js +54 -0
  33. package/dist/cjs/certificate/CertificationDeclarationManager.js.map +6 -0
  34. package/dist/cjs/certificate/ChipPAAuthorities.d.ts +14 -0
  35. package/dist/cjs/certificate/ChipPAAuthorities.d.ts.map +1 -0
  36. package/dist/cjs/certificate/ChipPAAuthorities.js +57 -0
  37. package/dist/cjs/certificate/ChipPAAuthorities.js.map +6 -0
  38. package/dist/cjs/certificate/DeviceCertification.d.ts +30 -0
  39. package/dist/cjs/certificate/DeviceCertification.d.ts.map +1 -0
  40. package/dist/cjs/certificate/DeviceCertification.js +103 -0
  41. package/dist/cjs/certificate/DeviceCertification.js.map +6 -0
  42. package/dist/cjs/certificate/RootCertificateManager.d.ts +33 -0
  43. package/dist/cjs/certificate/RootCertificateManager.d.ts.map +1 -0
  44. package/dist/cjs/certificate/RootCertificateManager.js +142 -0
  45. package/dist/cjs/certificate/RootCertificateManager.js.map +6 -0
  46. package/dist/cjs/certificate/index.d.ts +12 -0
  47. package/dist/cjs/certificate/index.d.ts.map +1 -0
  48. package/dist/cjs/certificate/index.js +29 -0
  49. package/dist/cjs/certificate/index.js.map +6 -0
  50. package/dist/cjs/cluster/client/AttributeClient.d.ts +61 -0
  51. package/dist/cjs/cluster/client/AttributeClient.d.ts.map +1 -0
  52. package/dist/cjs/cluster/client/AttributeClient.js +177 -0
  53. package/dist/cjs/cluster/client/AttributeClient.js.map +6 -0
  54. package/dist/cjs/cluster/client/ClusterClient.d.ts +10 -0
  55. package/dist/cjs/cluster/client/ClusterClient.d.ts.map +1 -0
  56. package/dist/cjs/cluster/client/ClusterClient.js +281 -0
  57. package/dist/cjs/cluster/client/ClusterClient.js.map +6 -0
  58. package/dist/cjs/cluster/client/ClusterClientTypes.d.ts +171 -0
  59. package/dist/cjs/cluster/client/ClusterClientTypes.d.ts.map +1 -0
  60. package/dist/cjs/cluster/client/ClusterClientTypes.js +22 -0
  61. package/dist/cjs/cluster/client/ClusterClientTypes.js.map +6 -0
  62. package/dist/cjs/cluster/client/EventClient.d.ts +41 -0
  63. package/dist/cjs/cluster/client/EventClient.d.ts.map +1 -0
  64. package/dist/cjs/cluster/client/EventClient.js +94 -0
  65. package/dist/cjs/cluster/client/EventClient.js.map +6 -0
  66. package/dist/cjs/cluster/client/index.d.ts +10 -0
  67. package/dist/cjs/cluster/client/index.d.ts.map +1 -0
  68. package/dist/cjs/cluster/client/index.js +27 -0
  69. package/dist/cjs/cluster/client/index.js.map +6 -0
  70. package/dist/cjs/cluster/index.d.ts +8 -0
  71. package/dist/cjs/cluster/index.d.ts.map +1 -0
  72. package/dist/cjs/cluster/index.js +25 -0
  73. package/dist/cjs/cluster/index.js.map +6 -0
  74. package/dist/cjs/cluster/server/AttributeServer.d.ts +307 -0
  75. package/dist/cjs/cluster/server/AttributeServer.d.ts.map +1 -0
  76. package/dist/cjs/cluster/server/AttributeServer.js +734 -0
  77. package/dist/cjs/cluster/server/AttributeServer.js.map +6 -0
  78. package/dist/cjs/cluster/server/ClusterDatasource.d.ts +16 -0
  79. package/dist/cjs/cluster/server/ClusterDatasource.d.ts.map +1 -0
  80. package/dist/cjs/cluster/server/ClusterDatasource.js +22 -0
  81. package/dist/cjs/cluster/server/ClusterDatasource.js.map +6 -0
  82. package/dist/cjs/cluster/server/ClusterServer.d.ts +40 -0
  83. package/dist/cjs/cluster/server/ClusterServer.d.ts.map +1 -0
  84. package/dist/cjs/cluster/server/ClusterServer.js +22 -0
  85. package/dist/cjs/cluster/server/ClusterServer.js.map +6 -0
  86. package/dist/cjs/cluster/server/CommandServer.d.ts +34 -0
  87. package/dist/cjs/cluster/server/CommandServer.d.ts.map +1 -0
  88. package/dist/cjs/cluster/server/CommandServer.js +76 -0
  89. package/dist/cjs/cluster/server/CommandServer.js.map +6 -0
  90. package/dist/cjs/cluster/server/EventServer.d.ts +41 -0
  91. package/dist/cjs/cluster/server/EventServer.d.ts.map +1 -0
  92. package/dist/cjs/cluster/server/EventServer.js +149 -0
  93. package/dist/cjs/cluster/server/EventServer.js.map +6 -0
  94. package/dist/cjs/cluster/server/index.d.ts +11 -0
  95. package/dist/cjs/cluster/server/index.d.ts.map +1 -0
  96. package/dist/cjs/cluster/server/index.js +28 -0
  97. package/dist/cjs/cluster/server/index.js.map +6 -0
  98. package/dist/cjs/codec/BtpCodec.d.ts +78 -0
  99. package/dist/cjs/codec/BtpCodec.d.ts.map +1 -0
  100. package/dist/cjs/codec/BtpCodec.js +254 -0
  101. package/dist/cjs/codec/BtpCodec.js.map +6 -0
  102. package/dist/cjs/codec/MessageCodec.d.ts +63 -0
  103. package/dist/cjs/codec/MessageCodec.d.ts.map +1 -0
  104. package/dist/cjs/codec/MessageCodec.js +220 -0
  105. package/dist/cjs/codec/MessageCodec.js.map +6 -0
  106. package/dist/cjs/codec/index.d.ts +9 -0
  107. package/dist/cjs/codec/index.d.ts.map +1 -0
  108. package/dist/cjs/codec/index.js +36 -0
  109. package/dist/cjs/codec/index.js.map +6 -0
  110. package/dist/cjs/common/FailsafeContext.d.ts +79 -0
  111. package/dist/cjs/common/FailsafeContext.d.ts.map +1 -0
  112. package/dist/cjs/common/FailsafeContext.js +237 -0
  113. package/dist/cjs/common/FailsafeContext.js.map +6 -0
  114. package/dist/cjs/common/FailsafeTimer.d.ts +25 -0
  115. package/dist/cjs/common/FailsafeTimer.d.ts.map +1 -0
  116. package/dist/cjs/common/FailsafeTimer.js +91 -0
  117. package/dist/cjs/common/FailsafeTimer.js.map +6 -0
  118. package/dist/cjs/common/InstanceBroadcaster.d.ts +273 -0
  119. package/dist/cjs/common/InstanceBroadcaster.d.ts.map +1 -0
  120. package/dist/cjs/common/InstanceBroadcaster.js +139 -0
  121. package/dist/cjs/common/InstanceBroadcaster.js.map +6 -0
  122. package/dist/cjs/common/OperationalCredentialsTypes.d.ts +21 -0
  123. package/dist/cjs/common/OperationalCredentialsTypes.d.ts.map +1 -0
  124. package/dist/cjs/common/OperationalCredentialsTypes.js +45 -0
  125. package/dist/cjs/common/OperationalCredentialsTypes.js.map +6 -0
  126. package/dist/cjs/common/Scanner.d.ts +121 -0
  127. package/dist/cjs/common/Scanner.d.ts.map +1 -0
  128. package/dist/cjs/common/Scanner.js +51 -0
  129. package/dist/cjs/common/Scanner.js.map +6 -0
  130. package/dist/cjs/common/index.d.ts +12 -0
  131. package/dist/cjs/common/index.d.ts.map +1 -0
  132. package/dist/cjs/common/index.js +29 -0
  133. package/dist/cjs/common/index.js.map +6 -0
  134. package/dist/cjs/endpoint/EndpointInterface.d.ts +37 -0
  135. package/dist/cjs/endpoint/EndpointInterface.d.ts.map +1 -0
  136. package/dist/cjs/endpoint/EndpointInterface.js +22 -0
  137. package/dist/cjs/endpoint/EndpointInterface.js.map +6 -0
  138. package/dist/cjs/endpoint/EndpointStructureLogger.d.ts +31 -0
  139. package/dist/cjs/endpoint/EndpointStructureLogger.d.ts.map +1 -0
  140. package/dist/cjs/endpoint/EndpointStructureLogger.js +236 -0
  141. package/dist/cjs/endpoint/EndpointStructureLogger.js.map +6 -0
  142. package/dist/cjs/endpoint/index.d.ts +8 -0
  143. package/dist/cjs/endpoint/index.d.ts.map +1 -0
  144. package/dist/cjs/endpoint/index.js +25 -0
  145. package/dist/cjs/endpoint/index.js.map +6 -0
  146. package/dist/cjs/fabric/Fabric.d.ts +121 -0
  147. package/dist/cjs/fabric/Fabric.d.ts.map +1 -0
  148. package/dist/cjs/fabric/Fabric.js +427 -0
  149. package/dist/cjs/fabric/Fabric.js.map +6 -0
  150. package/dist/cjs/fabric/FabricManager.d.ts +44 -0
  151. package/dist/cjs/fabric/FabricManager.d.ts.map +1 -0
  152. package/dist/cjs/fabric/FabricManager.js +209 -0
  153. package/dist/cjs/fabric/FabricManager.js.map +6 -0
  154. package/dist/cjs/fabric/index.d.ts +8 -0
  155. package/dist/cjs/fabric/index.d.ts.map +1 -0
  156. package/dist/cjs/fabric/index.js +25 -0
  157. package/dist/cjs/fabric/index.js.map +6 -0
  158. package/dist/cjs/index.d.ts +20 -0
  159. package/dist/cjs/index.d.ts.map +1 -0
  160. package/dist/cjs/index.js +37 -0
  161. package/dist/cjs/index.js.map +6 -0
  162. package/dist/cjs/interaction/AccessControlManager.d.ts +49 -0
  163. package/dist/cjs/interaction/AccessControlManager.d.ts.map +1 -0
  164. package/dist/cjs/interaction/AccessControlManager.js +248 -0
  165. package/dist/cjs/interaction/AccessControlManager.js.map +6 -0
  166. package/dist/cjs/interaction/AttributeDataDecoder.d.ts +52 -0
  167. package/dist/cjs/interaction/AttributeDataDecoder.d.ts.map +1 -0
  168. package/dist/cjs/interaction/AttributeDataDecoder.js +185 -0
  169. package/dist/cjs/interaction/AttributeDataDecoder.js.map +6 -0
  170. package/dist/cjs/interaction/AttributeDataEncoder.d.ts +71 -0
  171. package/dist/cjs/interaction/AttributeDataEncoder.d.ts.map +1 -0
  172. package/dist/cjs/interaction/AttributeDataEncoder.js +190 -0
  173. package/dist/cjs/interaction/AttributeDataEncoder.js.map +6 -0
  174. package/dist/cjs/interaction/EventDataDecoder.d.ts +30 -0
  175. package/dist/cjs/interaction/EventDataDecoder.d.ts.map +1 -0
  176. package/dist/cjs/interaction/EventDataDecoder.js +103 -0
  177. package/dist/cjs/interaction/EventDataDecoder.js.map +6 -0
  178. package/dist/cjs/interaction/EventHandler.d.ts +42 -0
  179. package/dist/cjs/interaction/EventHandler.d.ts.map +1 -0
  180. package/dist/cjs/interaction/EventHandler.js +112 -0
  181. package/dist/cjs/interaction/EventHandler.js.map +6 -0
  182. package/dist/cjs/interaction/InteractionClient.d.ts +294 -0
  183. package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -0
  184. package/dist/cjs/interaction/InteractionClient.js +829 -0
  185. package/dist/cjs/interaction/InteractionClient.js.map +6 -0
  186. package/dist/cjs/interaction/InteractionEndpointStructure.d.ts +59 -0
  187. package/dist/cjs/interaction/InteractionEndpointStructure.d.ts.map +1 -0
  188. package/dist/cjs/interaction/InteractionEndpointStructure.js +341 -0
  189. package/dist/cjs/interaction/InteractionEndpointStructure.js.map +6 -0
  190. package/dist/cjs/interaction/InteractionMessenger.d.ts +315 -0
  191. package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -0
  192. package/dist/cjs/interaction/InteractionMessenger.js +484 -0
  193. package/dist/cjs/interaction/InteractionMessenger.js.map +6 -0
  194. package/dist/cjs/interaction/InteractionServer.d.ts +97 -0
  195. package/dist/cjs/interaction/InteractionServer.d.ts.map +1 -0
  196. package/dist/cjs/interaction/InteractionServer.js +1026 -0
  197. package/dist/cjs/interaction/InteractionServer.js.map +6 -0
  198. package/dist/cjs/interaction/ServerSubscription.d.ts +121 -0
  199. package/dist/cjs/interaction/ServerSubscription.d.ts.map +1 -0
  200. package/dist/cjs/interaction/ServerSubscription.js +672 -0
  201. package/dist/cjs/interaction/ServerSubscription.js.map +6 -0
  202. package/dist/cjs/interaction/Subscription.d.ts +44 -0
  203. package/dist/cjs/interaction/Subscription.d.ts.map +1 -0
  204. package/dist/cjs/interaction/Subscription.js +85 -0
  205. package/dist/cjs/interaction/Subscription.js.map +6 -0
  206. package/dist/cjs/interaction/SubscriptionOptions.d.ts +43 -0
  207. package/dist/cjs/interaction/SubscriptionOptions.d.ts.map +1 -0
  208. package/dist/cjs/interaction/SubscriptionOptions.js +46 -0
  209. package/dist/cjs/interaction/SubscriptionOptions.js.map +6 -0
  210. package/dist/cjs/interaction/index.d.ts +17 -0
  211. package/dist/cjs/interaction/index.d.ts.map +1 -0
  212. package/dist/cjs/interaction/index.js +34 -0
  213. package/dist/cjs/interaction/index.js.map +6 -0
  214. package/dist/cjs/mdns/MdnsBroadcaster.d.ts +34 -0
  215. package/dist/cjs/mdns/MdnsBroadcaster.d.ts.map +1 -0
  216. package/dist/cjs/mdns/MdnsBroadcaster.js +338 -0
  217. package/dist/cjs/mdns/MdnsBroadcaster.js.map +6 -0
  218. package/dist/cjs/mdns/MdnsConsts.d.ts +19 -0
  219. package/dist/cjs/mdns/MdnsConsts.d.ts.map +1 -0
  220. package/dist/cjs/mdns/MdnsConsts.js +52 -0
  221. package/dist/cjs/mdns/MdnsConsts.js.map +6 -0
  222. package/dist/cjs/mdns/MdnsInstanceBroadcaster.d.ts +28 -0
  223. package/dist/cjs/mdns/MdnsInstanceBroadcaster.d.ts.map +1 -0
  224. package/dist/cjs/mdns/MdnsInstanceBroadcaster.js +87 -0
  225. package/dist/cjs/mdns/MdnsInstanceBroadcaster.js.map +6 -0
  226. package/dist/cjs/mdns/MdnsScanner.d.ts +79 -0
  227. package/dist/cjs/mdns/MdnsScanner.d.ts.map +1 -0
  228. package/dist/cjs/mdns/MdnsScanner.js +842 -0
  229. package/dist/cjs/mdns/MdnsScanner.js.map +6 -0
  230. package/dist/cjs/mdns/MdnsServer.d.ts +29 -0
  231. package/dist/cjs/mdns/MdnsServer.d.ts.map +1 -0
  232. package/dist/cjs/mdns/MdnsServer.js +275 -0
  233. package/dist/cjs/mdns/MdnsServer.js.map +6 -0
  234. package/dist/cjs/mdns/MdnsService.d.ts +28 -0
  235. package/dist/cjs/mdns/MdnsService.d.ts.map +1 -0
  236. package/dist/cjs/mdns/MdnsService.js +95 -0
  237. package/dist/cjs/mdns/MdnsService.js.map +6 -0
  238. package/dist/cjs/mdns/index.d.ts +12 -0
  239. package/dist/cjs/mdns/index.d.ts.map +1 -0
  240. package/dist/cjs/mdns/index.js +29 -0
  241. package/dist/cjs/mdns/index.js.map +6 -0
  242. package/dist/cjs/package.json +10 -0
  243. package/dist/cjs/peer/ControllerCommissioner.d.ts +82 -0
  244. package/dist/cjs/peer/ControllerCommissioner.d.ts.map +1 -0
  245. package/dist/cjs/peer/ControllerCommissioner.js +224 -0
  246. package/dist/cjs/peer/ControllerCommissioner.js.map +6 -0
  247. package/dist/cjs/peer/ControllerCommissioningFlow.d.ts +88 -0
  248. package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -0
  249. package/dist/cjs/peer/ControllerCommissioningFlow.js +849 -0
  250. package/dist/cjs/peer/ControllerCommissioningFlow.js.map +6 -0
  251. package/dist/cjs/peer/ControllerDiscovery.d.ts +43 -0
  252. package/dist/cjs/peer/ControllerDiscovery.d.ts.map +1 -0
  253. package/dist/cjs/peer/ControllerDiscovery.js +192 -0
  254. package/dist/cjs/peer/ControllerDiscovery.js.map +6 -0
  255. package/dist/cjs/peer/OperationalPeer.d.ts +28 -0
  256. package/dist/cjs/peer/OperationalPeer.d.ts.map +1 -0
  257. package/dist/cjs/peer/OperationalPeer.js +22 -0
  258. package/dist/cjs/peer/OperationalPeer.js.map +6 -0
  259. package/dist/cjs/peer/PeerAddress.d.ts +30 -0
  260. package/dist/cjs/peer/PeerAddress.d.ts.map +1 -0
  261. package/dist/cjs/peer/PeerAddress.js +71 -0
  262. package/dist/cjs/peer/PeerAddress.js.map +6 -0
  263. package/dist/cjs/peer/PeerSet.d.ts +98 -0
  264. package/dist/cjs/peer/PeerSet.d.ts.map +1 -0
  265. package/dist/cjs/peer/PeerSet.js +500 -0
  266. package/dist/cjs/peer/PeerSet.js.map +6 -0
  267. package/dist/cjs/peer/PeerStore.d.ts +17 -0
  268. package/dist/cjs/peer/PeerStore.d.ts.map +1 -0
  269. package/dist/cjs/peer/PeerStore.js +31 -0
  270. package/dist/cjs/peer/PeerStore.js.map +6 -0
  271. package/dist/cjs/peer/index.d.ts +13 -0
  272. package/dist/cjs/peer/index.d.ts.map +1 -0
  273. package/dist/cjs/peer/index.js +30 -0
  274. package/dist/cjs/peer/index.js.map +6 -0
  275. package/dist/cjs/protocol/ChannelManager.d.ts +30 -0
  276. package/dist/cjs/protocol/ChannelManager.d.ts.map +1 -0
  277. package/dist/cjs/protocol/ChannelManager.js +168 -0
  278. package/dist/cjs/protocol/ChannelManager.js.map +6 -0
  279. package/dist/cjs/protocol/DeviceAdvertiser.d.ts +43 -0
  280. package/dist/cjs/protocol/DeviceAdvertiser.d.ts.map +1 -0
  281. package/dist/cjs/protocol/DeviceAdvertiser.js +185 -0
  282. package/dist/cjs/protocol/DeviceAdvertiser.js.map +6 -0
  283. package/dist/cjs/protocol/DeviceCommissioner.d.ts +49 -0
  284. package/dist/cjs/protocol/DeviceCommissioner.d.ts.map +1 -0
  285. package/dist/cjs/protocol/DeviceCommissioner.js +198 -0
  286. package/dist/cjs/protocol/DeviceCommissioner.js.map +6 -0
  287. package/dist/cjs/protocol/ExchangeManager.d.ts +73 -0
  288. package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -0
  289. package/dist/cjs/protocol/ExchangeManager.js +407 -0
  290. package/dist/cjs/protocol/ExchangeManager.js.map +6 -0
  291. package/dist/cjs/protocol/MessageCounter.d.ts +57 -0
  292. package/dist/cjs/protocol/MessageCounter.d.ts.map +1 -0
  293. package/dist/cjs/protocol/MessageCounter.js +104 -0
  294. package/dist/cjs/protocol/MessageCounter.js.map +6 -0
  295. package/dist/cjs/protocol/MessageExchange.d.ts +84 -0
  296. package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -0
  297. package/dist/cjs/protocol/MessageExchange.js +508 -0
  298. package/dist/cjs/protocol/MessageExchange.js.map +6 -0
  299. package/dist/cjs/protocol/MessageReceptionState.d.ts +65 -0
  300. package/dist/cjs/protocol/MessageReceptionState.d.ts.map +1 -0
  301. package/dist/cjs/protocol/MessageReceptionState.js +173 -0
  302. package/dist/cjs/protocol/MessageReceptionState.js.map +6 -0
  303. package/dist/cjs/protocol/ProtocolHandler.d.ts +13 -0
  304. package/dist/cjs/protocol/ProtocolHandler.d.ts.map +1 -0
  305. package/dist/cjs/protocol/ProtocolHandler.js +22 -0
  306. package/dist/cjs/protocol/ProtocolHandler.js.map +6 -0
  307. package/dist/cjs/protocol/index.d.ts +14 -0
  308. package/dist/cjs/protocol/index.d.ts.map +1 -0
  309. package/dist/cjs/protocol/index.js +31 -0
  310. package/dist/cjs/protocol/index.js.map +6 -0
  311. package/dist/cjs/securechannel/SecureChannelMessenger.d.ts +53 -0
  312. package/dist/cjs/securechannel/SecureChannelMessenger.d.ts.map +1 -0
  313. package/dist/cjs/securechannel/SecureChannelMessenger.js +143 -0
  314. package/dist/cjs/securechannel/SecureChannelMessenger.js.map +6 -0
  315. package/dist/cjs/securechannel/SecureChannelProtocol.d.ts +31 -0
  316. package/dist/cjs/securechannel/SecureChannelProtocol.d.ts.map +1 -0
  317. package/dist/cjs/securechannel/SecureChannelProtocol.js +140 -0
  318. package/dist/cjs/securechannel/SecureChannelProtocol.js.map +6 -0
  319. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts +23 -0
  320. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -0
  321. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js +53 -0
  322. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js.map +6 -0
  323. package/dist/cjs/securechannel/index.d.ts +9 -0
  324. package/dist/cjs/securechannel/index.d.ts.map +1 -0
  325. package/dist/cjs/securechannel/index.js +26 -0
  326. package/dist/cjs/securechannel/index.js.map +6 -0
  327. package/dist/cjs/session/InsecureSession.d.ts +38 -0
  328. package/dist/cjs/session/InsecureSession.d.ts.map +1 -0
  329. package/dist/cjs/session/InsecureSession.js +95 -0
  330. package/dist/cjs/session/InsecureSession.js.map +6 -0
  331. package/dist/cjs/session/SecureSession.d.ts +81 -0
  332. package/dist/cjs/session/SecureSession.d.ts.map +1 -0
  333. package/dist/cjs/session/SecureSession.js +291 -0
  334. package/dist/cjs/session/SecureSession.js.map +6 -0
  335. package/dist/cjs/session/Session.d.ts +102 -0
  336. package/dist/cjs/session/Session.d.ts.map +1 -0
  337. package/dist/cjs/session/Session.js +141 -0
  338. package/dist/cjs/session/Session.js.map +6 -0
  339. package/dist/cjs/session/SessionManager.d.ts +132 -0
  340. package/dist/cjs/session/SessionManager.d.ts.map +1 -0
  341. package/dist/cjs/session/SessionManager.js +410 -0
  342. package/dist/cjs/session/SessionManager.js.map +6 -0
  343. package/dist/cjs/session/case/CaseClient.d.ts +18 -0
  344. package/dist/cjs/session/case/CaseClient.d.ts.map +1 -0
  345. package/dist/cjs/session/case/CaseClient.js +216 -0
  346. package/dist/cjs/session/case/CaseClient.js.map +6 -0
  347. package/dist/cjs/session/case/CaseMessages.d.ts +82 -0
  348. package/dist/cjs/session/case/CaseMessages.d.ts.map +1 -0
  349. package/dist/cjs/session/case/CaseMessages.js +97 -0
  350. package/dist/cjs/session/case/CaseMessages.js.map +6 -0
  351. package/dist/cjs/session/case/CaseMessenger.d.ts +79 -0
  352. package/dist/cjs/session/case/CaseMessenger.d.ts.map +1 -0
  353. package/dist/cjs/session/case/CaseMessenger.js +74 -0
  354. package/dist/cjs/session/case/CaseMessenger.js.map +6 -0
  355. package/dist/cjs/session/case/CaseServer.d.ts +18 -0
  356. package/dist/cjs/session/case/CaseServer.d.ts.map +1 -0
  357. package/dist/cjs/session/case/CaseServer.js +232 -0
  358. package/dist/cjs/session/case/CaseServer.js.map +6 -0
  359. package/dist/cjs/session/index.d.ts +18 -0
  360. package/dist/cjs/session/index.d.ts.map +1 -0
  361. package/dist/cjs/session/index.js +35 -0
  362. package/dist/cjs/session/index.js.map +6 -0
  363. package/dist/cjs/session/pase/PaseClient.d.ts +18 -0
  364. package/dist/cjs/session/pase/PaseClient.d.ts.map +1 -0
  365. package/dist/cjs/session/pase/PaseClient.js +101 -0
  366. package/dist/cjs/session/pase/PaseClient.js.map +6 -0
  367. package/dist/cjs/session/pase/PaseMessages.d.ts +85 -0
  368. package/dist/cjs/session/pase/PaseMessages.d.ts.map +1 -0
  369. package/dist/cjs/session/pase/PaseMessages.js +88 -0
  370. package/dist/cjs/session/pase/PaseMessages.js.map +6 -0
  371. package/dist/cjs/session/pase/PaseMessenger.d.ts +75 -0
  372. package/dist/cjs/session/pase/PaseMessenger.d.ts.map +1 -0
  373. package/dist/cjs/session/pase/PaseMessenger.js +86 -0
  374. package/dist/cjs/session/pase/PaseMessenger.js.map +6 -0
  375. package/dist/cjs/session/pase/PaseServer.d.ts +29 -0
  376. package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -0
  377. package/dist/cjs/session/pase/PaseServer.js +159 -0
  378. package/dist/cjs/session/pase/PaseServer.js.map +6 -0
  379. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  380. package/dist/esm/MatterDevice.d.ts +79 -0
  381. package/dist/esm/MatterDevice.d.ts.map +1 -0
  382. package/dist/esm/MatterDevice.js +239 -0
  383. package/dist/esm/MatterDevice.js.map +6 -0
  384. package/dist/esm/ble/Ble.d.ts +29 -0
  385. package/dist/esm/ble/Ble.d.ts.map +1 -0
  386. package/dist/esm/ble/Ble.js +30 -0
  387. package/dist/esm/ble/Ble.js.map +6 -0
  388. package/dist/esm/ble/BleConsts.d.ts +32 -0
  389. package/dist/esm/ble/BleConsts.d.ts.map +1 -0
  390. package/dist/esm/ble/BleConsts.js +33 -0
  391. package/dist/esm/ble/BleConsts.js.map +6 -0
  392. package/dist/esm/ble/BtpSessionHandler.d.ts +87 -0
  393. package/dist/esm/ble/BtpSessionHandler.d.ts.map +1 -0
  394. package/dist/esm/ble/BtpSessionHandler.js +419 -0
  395. package/dist/esm/ble/BtpSessionHandler.js.map +6 -0
  396. package/dist/esm/ble/index.d.ts +9 -0
  397. package/dist/esm/ble/index.d.ts.map +1 -0
  398. package/dist/esm/ble/index.js +9 -0
  399. package/dist/esm/ble/index.js.map +6 -0
  400. package/dist/esm/certificate/AttestationCertificateManager.d.ts +28 -0
  401. package/dist/esm/certificate/AttestationCertificateManager.d.ts.map +1 -0
  402. package/dist/esm/certificate/AttestationCertificateManager.js +155 -0
  403. package/dist/esm/certificate/AttestationCertificateManager.js.map +6 -0
  404. package/dist/esm/certificate/CertificateManager.d.ts +575 -0
  405. package/dist/esm/certificate/CertificateManager.d.ts.map +1 -0
  406. package/dist/esm/certificate/CertificateManager.js +837 -0
  407. package/dist/esm/certificate/CertificateManager.js.map +6 -0
  408. package/dist/esm/certificate/CertificationDeclarationManager.d.ts +5 -0
  409. package/dist/esm/certificate/CertificationDeclarationManager.d.ts.map +1 -0
  410. package/dist/esm/certificate/CertificationDeclarationManager.js +34 -0
  411. package/dist/esm/certificate/CertificationDeclarationManager.js.map +6 -0
  412. package/dist/esm/certificate/ChipPAAuthorities.d.ts +14 -0
  413. package/dist/esm/certificate/ChipPAAuthorities.d.ts.map +1 -0
  414. package/dist/esm/certificate/ChipPAAuthorities.js +37 -0
  415. package/dist/esm/certificate/ChipPAAuthorities.js.map +6 -0
  416. package/dist/esm/certificate/DeviceCertification.d.ts +30 -0
  417. package/dist/esm/certificate/DeviceCertification.d.ts.map +1 -0
  418. package/dist/esm/certificate/DeviceCertification.js +83 -0
  419. package/dist/esm/certificate/DeviceCertification.js.map +6 -0
  420. package/dist/esm/certificate/RootCertificateManager.d.ts +33 -0
  421. package/dist/esm/certificate/RootCertificateManager.d.ts.map +1 -0
  422. package/dist/esm/certificate/RootCertificateManager.js +139 -0
  423. package/dist/esm/certificate/RootCertificateManager.js.map +6 -0
  424. package/dist/esm/certificate/index.d.ts +12 -0
  425. package/dist/esm/certificate/index.d.ts.map +1 -0
  426. package/dist/esm/certificate/index.js +12 -0
  427. package/dist/esm/certificate/index.js.map +6 -0
  428. package/dist/esm/cluster/client/AttributeClient.d.ts +61 -0
  429. package/dist/esm/cluster/client/AttributeClient.d.ts.map +1 -0
  430. package/dist/esm/cluster/client/AttributeClient.js +157 -0
  431. package/dist/esm/cluster/client/AttributeClient.js.map +6 -0
  432. package/dist/esm/cluster/client/ClusterClient.d.ts +10 -0
  433. package/dist/esm/cluster/client/ClusterClient.d.ts.map +1 -0
  434. package/dist/esm/cluster/client/ClusterClient.js +267 -0
  435. package/dist/esm/cluster/client/ClusterClient.js.map +6 -0
  436. package/dist/esm/cluster/client/ClusterClientTypes.d.ts +171 -0
  437. package/dist/esm/cluster/client/ClusterClientTypes.d.ts.map +1 -0
  438. package/dist/esm/cluster/client/ClusterClientTypes.js +6 -0
  439. package/dist/esm/cluster/client/ClusterClientTypes.js.map +6 -0
  440. package/dist/esm/cluster/client/EventClient.d.ts +41 -0
  441. package/dist/esm/cluster/client/EventClient.d.ts.map +1 -0
  442. package/dist/esm/cluster/client/EventClient.js +74 -0
  443. package/dist/esm/cluster/client/EventClient.js.map +6 -0
  444. package/dist/esm/cluster/client/index.d.ts +10 -0
  445. package/dist/esm/cluster/client/index.d.ts.map +1 -0
  446. package/dist/esm/cluster/client/index.js +10 -0
  447. package/dist/esm/cluster/client/index.js.map +6 -0
  448. package/dist/esm/cluster/index.d.ts +8 -0
  449. package/dist/esm/cluster/index.d.ts.map +1 -0
  450. package/dist/esm/cluster/index.js +8 -0
  451. package/dist/esm/cluster/index.js.map +6 -0
  452. package/dist/esm/cluster/server/AttributeServer.d.ts +307 -0
  453. package/dist/esm/cluster/server/AttributeServer.d.ts.map +1 -0
  454. package/dist/esm/cluster/server/AttributeServer.js +718 -0
  455. package/dist/esm/cluster/server/AttributeServer.js.map +6 -0
  456. package/dist/esm/cluster/server/ClusterDatasource.d.ts +16 -0
  457. package/dist/esm/cluster/server/ClusterDatasource.d.ts.map +1 -0
  458. package/dist/esm/cluster/server/ClusterDatasource.js +6 -0
  459. package/dist/esm/cluster/server/ClusterDatasource.js.map +6 -0
  460. package/dist/esm/cluster/server/ClusterServer.d.ts +40 -0
  461. package/dist/esm/cluster/server/ClusterServer.d.ts.map +1 -0
  462. package/dist/esm/cluster/server/ClusterServer.js +6 -0
  463. package/dist/esm/cluster/server/ClusterServer.js.map +6 -0
  464. package/dist/esm/cluster/server/CommandServer.d.ts +34 -0
  465. package/dist/esm/cluster/server/CommandServer.d.ts.map +1 -0
  466. package/dist/esm/cluster/server/CommandServer.js +56 -0
  467. package/dist/esm/cluster/server/CommandServer.js.map +6 -0
  468. package/dist/esm/cluster/server/EventServer.d.ts +41 -0
  469. package/dist/esm/cluster/server/EventServer.d.ts.map +1 -0
  470. package/dist/esm/cluster/server/EventServer.js +137 -0
  471. package/dist/esm/cluster/server/EventServer.js.map +6 -0
  472. package/dist/esm/cluster/server/index.d.ts +11 -0
  473. package/dist/esm/cluster/server/index.d.ts.map +1 -0
  474. package/dist/esm/cluster/server/index.js +11 -0
  475. package/dist/esm/cluster/server/index.js.map +6 -0
  476. package/dist/esm/codec/BtpCodec.d.ts +78 -0
  477. package/dist/esm/codec/BtpCodec.d.ts.map +1 -0
  478. package/dist/esm/codec/BtpCodec.js +234 -0
  479. package/dist/esm/codec/BtpCodec.js.map +6 -0
  480. package/dist/esm/codec/MessageCodec.d.ts +63 -0
  481. package/dist/esm/codec/MessageCodec.d.ts.map +1 -0
  482. package/dist/esm/codec/MessageCodec.js +200 -0
  483. package/dist/esm/codec/MessageCodec.js.map +6 -0
  484. package/dist/esm/codec/index.d.ts +9 -0
  485. package/dist/esm/codec/index.d.ts.map +1 -0
  486. package/dist/esm/codec/index.js +15 -0
  487. package/dist/esm/codec/index.js.map +6 -0
  488. package/dist/esm/common/FailsafeContext.d.ts +79 -0
  489. package/dist/esm/common/FailsafeContext.d.ts.map +1 -0
  490. package/dist/esm/common/FailsafeContext.js +217 -0
  491. package/dist/esm/common/FailsafeContext.js.map +6 -0
  492. package/dist/esm/common/FailsafeTimer.d.ts +25 -0
  493. package/dist/esm/common/FailsafeTimer.d.ts.map +1 -0
  494. package/dist/esm/common/FailsafeTimer.js +71 -0
  495. package/dist/esm/common/FailsafeTimer.js.map +6 -0
  496. package/dist/esm/common/InstanceBroadcaster.d.ts +273 -0
  497. package/dist/esm/common/InstanceBroadcaster.d.ts.map +1 -0
  498. package/dist/esm/common/InstanceBroadcaster.js +119 -0
  499. package/dist/esm/common/InstanceBroadcaster.js.map +6 -0
  500. package/dist/esm/common/OperationalCredentialsTypes.d.ts +21 -0
  501. package/dist/esm/common/OperationalCredentialsTypes.d.ts.map +1 -0
  502. package/dist/esm/common/OperationalCredentialsTypes.js +25 -0
  503. package/dist/esm/common/OperationalCredentialsTypes.js.map +6 -0
  504. package/dist/esm/common/Scanner.d.ts +121 -0
  505. package/dist/esm/common/Scanner.d.ts.map +1 -0
  506. package/dist/esm/common/Scanner.js +31 -0
  507. package/dist/esm/common/Scanner.js.map +6 -0
  508. package/dist/esm/common/index.d.ts +12 -0
  509. package/dist/esm/common/index.d.ts.map +1 -0
  510. package/dist/esm/common/index.js +12 -0
  511. package/dist/esm/common/index.js.map +6 -0
  512. package/dist/esm/endpoint/EndpointInterface.d.ts +37 -0
  513. package/dist/esm/endpoint/EndpointInterface.d.ts.map +1 -0
  514. package/dist/esm/endpoint/EndpointInterface.js +6 -0
  515. package/dist/esm/endpoint/EndpointInterface.js.map +6 -0
  516. package/dist/esm/endpoint/EndpointStructureLogger.d.ts +31 -0
  517. package/dist/esm/endpoint/EndpointStructureLogger.d.ts.map +1 -0
  518. package/dist/esm/endpoint/EndpointStructureLogger.js +216 -0
  519. package/dist/esm/endpoint/EndpointStructureLogger.js.map +6 -0
  520. package/dist/esm/endpoint/index.d.ts +8 -0
  521. package/dist/esm/endpoint/index.d.ts.map +1 -0
  522. package/dist/esm/endpoint/index.js +8 -0
  523. package/dist/esm/endpoint/index.js.map +6 -0
  524. package/dist/esm/fabric/Fabric.d.ts +121 -0
  525. package/dist/esm/fabric/Fabric.d.ts.map +1 -0
  526. package/dist/esm/fabric/Fabric.js +422 -0
  527. package/dist/esm/fabric/Fabric.js.map +6 -0
  528. package/dist/esm/fabric/FabricManager.d.ts +44 -0
  529. package/dist/esm/fabric/FabricManager.d.ts.map +1 -0
  530. package/dist/esm/fabric/FabricManager.js +200 -0
  531. package/dist/esm/fabric/FabricManager.js.map +6 -0
  532. package/dist/esm/fabric/index.d.ts +8 -0
  533. package/dist/esm/fabric/index.d.ts.map +1 -0
  534. package/dist/esm/fabric/index.js +8 -0
  535. package/dist/esm/fabric/index.js.map +6 -0
  536. package/dist/esm/index.d.ts +20 -0
  537. package/dist/esm/index.d.ts.map +1 -0
  538. package/dist/esm/index.js +20 -0
  539. package/dist/esm/index.js.map +6 -0
  540. package/dist/esm/interaction/AccessControlManager.d.ts +49 -0
  541. package/dist/esm/interaction/AccessControlManager.d.ts.map +1 -0
  542. package/dist/esm/interaction/AccessControlManager.js +228 -0
  543. package/dist/esm/interaction/AccessControlManager.js.map +6 -0
  544. package/dist/esm/interaction/AttributeDataDecoder.d.ts +52 -0
  545. package/dist/esm/interaction/AttributeDataDecoder.d.ts.map +1 -0
  546. package/dist/esm/interaction/AttributeDataDecoder.js +171 -0
  547. package/dist/esm/interaction/AttributeDataDecoder.js.map +6 -0
  548. package/dist/esm/interaction/AttributeDataEncoder.d.ts +71 -0
  549. package/dist/esm/interaction/AttributeDataEncoder.d.ts.map +1 -0
  550. package/dist/esm/interaction/AttributeDataEncoder.js +174 -0
  551. package/dist/esm/interaction/AttributeDataEncoder.js.map +6 -0
  552. package/dist/esm/interaction/EventDataDecoder.d.ts +30 -0
  553. package/dist/esm/interaction/EventDataDecoder.d.ts.map +1 -0
  554. package/dist/esm/interaction/EventDataDecoder.js +87 -0
  555. package/dist/esm/interaction/EventDataDecoder.js.map +6 -0
  556. package/dist/esm/interaction/EventHandler.d.ts +42 -0
  557. package/dist/esm/interaction/EventHandler.d.ts.map +1 -0
  558. package/dist/esm/interaction/EventHandler.js +96 -0
  559. package/dist/esm/interaction/EventHandler.js.map +6 -0
  560. package/dist/esm/interaction/InteractionClient.d.ts +294 -0
  561. package/dist/esm/interaction/InteractionClient.d.ts.map +1 -0
  562. package/dist/esm/interaction/InteractionClient.js +827 -0
  563. package/dist/esm/interaction/InteractionClient.js.map +6 -0
  564. package/dist/esm/interaction/InteractionEndpointStructure.d.ts +59 -0
  565. package/dist/esm/interaction/InteractionEndpointStructure.d.ts.map +1 -0
  566. package/dist/esm/interaction/InteractionEndpointStructure.js +343 -0
  567. package/dist/esm/interaction/InteractionEndpointStructure.js.map +6 -0
  568. package/dist/esm/interaction/InteractionMessenger.d.ts +315 -0
  569. package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -0
  570. package/dist/esm/interaction/InteractionMessenger.js +489 -0
  571. package/dist/esm/interaction/InteractionMessenger.js.map +6 -0
  572. package/dist/esm/interaction/InteractionServer.d.ts +97 -0
  573. package/dist/esm/interaction/InteractionServer.d.ts.map +1 -0
  574. package/dist/esm/interaction/InteractionServer.js +1027 -0
  575. package/dist/esm/interaction/InteractionServer.js.map +6 -0
  576. package/dist/esm/interaction/ServerSubscription.d.ts +121 -0
  577. package/dist/esm/interaction/ServerSubscription.d.ts.map +1 -0
  578. package/dist/esm/interaction/ServerSubscription.js +669 -0
  579. package/dist/esm/interaction/ServerSubscription.js.map +6 -0
  580. package/dist/esm/interaction/Subscription.d.ts +44 -0
  581. package/dist/esm/interaction/Subscription.d.ts.map +1 -0
  582. package/dist/esm/interaction/Subscription.js +65 -0
  583. package/dist/esm/interaction/Subscription.js.map +6 -0
  584. package/dist/esm/interaction/SubscriptionOptions.d.ts +43 -0
  585. package/dist/esm/interaction/SubscriptionOptions.d.ts.map +1 -0
  586. package/dist/esm/interaction/SubscriptionOptions.js +26 -0
  587. package/dist/esm/interaction/SubscriptionOptions.js.map +6 -0
  588. package/dist/esm/interaction/index.d.ts +17 -0
  589. package/dist/esm/interaction/index.d.ts.map +1 -0
  590. package/dist/esm/interaction/index.js +17 -0
  591. package/dist/esm/interaction/index.js.map +6 -0
  592. package/dist/esm/mdns/MdnsBroadcaster.d.ts +34 -0
  593. package/dist/esm/mdns/MdnsBroadcaster.d.ts.map +1 -0
  594. package/dist/esm/mdns/MdnsBroadcaster.js +351 -0
  595. package/dist/esm/mdns/MdnsBroadcaster.js.map +6 -0
  596. package/dist/esm/mdns/MdnsConsts.d.ts +19 -0
  597. package/dist/esm/mdns/MdnsConsts.d.ts.map +1 -0
  598. package/dist/esm/mdns/MdnsConsts.js +32 -0
  599. package/dist/esm/mdns/MdnsConsts.js.map +6 -0
  600. package/dist/esm/mdns/MdnsInstanceBroadcaster.d.ts +28 -0
  601. package/dist/esm/mdns/MdnsInstanceBroadcaster.d.ts.map +1 -0
  602. package/dist/esm/mdns/MdnsInstanceBroadcaster.js +67 -0
  603. package/dist/esm/mdns/MdnsInstanceBroadcaster.js.map +6 -0
  604. package/dist/esm/mdns/MdnsScanner.d.ts +79 -0
  605. package/dist/esm/mdns/MdnsScanner.d.ts.map +1 -0
  606. package/dist/esm/mdns/MdnsScanner.js +847 -0
  607. package/dist/esm/mdns/MdnsScanner.js.map +6 -0
  608. package/dist/esm/mdns/MdnsServer.d.ts +29 -0
  609. package/dist/esm/mdns/MdnsServer.d.ts.map +1 -0
  610. package/dist/esm/mdns/MdnsServer.js +266 -0
  611. package/dist/esm/mdns/MdnsServer.js.map +6 -0
  612. package/dist/esm/mdns/MdnsService.d.ts +28 -0
  613. package/dist/esm/mdns/MdnsService.d.ts.map +1 -0
  614. package/dist/esm/mdns/MdnsService.js +83 -0
  615. package/dist/esm/mdns/MdnsService.js.map +6 -0
  616. package/dist/esm/mdns/index.d.ts +12 -0
  617. package/dist/esm/mdns/index.d.ts.map +1 -0
  618. package/dist/esm/mdns/index.js +12 -0
  619. package/dist/esm/mdns/index.js.map +6 -0
  620. package/dist/esm/package.json +10 -0
  621. package/dist/esm/peer/ControllerCommissioner.d.ts +82 -0
  622. package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -0
  623. package/dist/esm/peer/ControllerCommissioner.js +211 -0
  624. package/dist/esm/peer/ControllerCommissioner.js.map +6 -0
  625. package/dist/esm/peer/ControllerCommissioningFlow.d.ts +88 -0
  626. package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -0
  627. package/dist/esm/peer/ControllerCommissioningFlow.js +832 -0
  628. package/dist/esm/peer/ControllerCommissioningFlow.js.map +6 -0
  629. package/dist/esm/peer/ControllerDiscovery.d.ts +43 -0
  630. package/dist/esm/peer/ControllerDiscovery.d.ts.map +1 -0
  631. package/dist/esm/peer/ControllerDiscovery.js +172 -0
  632. package/dist/esm/peer/ControllerDiscovery.js.map +6 -0
  633. package/dist/esm/peer/OperationalPeer.d.ts +28 -0
  634. package/dist/esm/peer/OperationalPeer.d.ts.map +1 -0
  635. package/dist/esm/peer/OperationalPeer.js +6 -0
  636. package/dist/esm/peer/OperationalPeer.js.map +6 -0
  637. package/dist/esm/peer/PeerAddress.d.ts +30 -0
  638. package/dist/esm/peer/PeerAddress.d.ts.map +1 -0
  639. package/dist/esm/peer/PeerAddress.js +51 -0
  640. package/dist/esm/peer/PeerAddress.js.map +6 -0
  641. package/dist/esm/peer/PeerSet.d.ts +98 -0
  642. package/dist/esm/peer/PeerSet.d.ts.map +1 -0
  643. package/dist/esm/peer/PeerSet.js +495 -0
  644. package/dist/esm/peer/PeerSet.js.map +6 -0
  645. package/dist/esm/peer/PeerStore.d.ts +17 -0
  646. package/dist/esm/peer/PeerStore.d.ts.map +1 -0
  647. package/dist/esm/peer/PeerStore.js +11 -0
  648. package/dist/esm/peer/PeerStore.js.map +6 -0
  649. package/dist/esm/peer/index.d.ts +13 -0
  650. package/dist/esm/peer/index.d.ts.map +1 -0
  651. package/dist/esm/peer/index.js +13 -0
  652. package/dist/esm/peer/index.js.map +6 -0
  653. package/dist/esm/protocol/ChannelManager.d.ts +30 -0
  654. package/dist/esm/protocol/ChannelManager.d.ts.map +1 -0
  655. package/dist/esm/protocol/ChannelManager.js +148 -0
  656. package/dist/esm/protocol/ChannelManager.js.map +6 -0
  657. package/dist/esm/protocol/DeviceAdvertiser.d.ts +43 -0
  658. package/dist/esm/protocol/DeviceAdvertiser.d.ts.map +1 -0
  659. package/dist/esm/protocol/DeviceAdvertiser.js +173 -0
  660. package/dist/esm/protocol/DeviceAdvertiser.js.map +6 -0
  661. package/dist/esm/protocol/DeviceCommissioner.d.ts +49 -0
  662. package/dist/esm/protocol/DeviceCommissioner.d.ts.map +1 -0
  663. package/dist/esm/protocol/DeviceCommissioner.js +187 -0
  664. package/dist/esm/protocol/DeviceCommissioner.js.map +6 -0
  665. package/dist/esm/protocol/ExchangeManager.d.ts +73 -0
  666. package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -0
  667. package/dist/esm/protocol/ExchangeManager.js +398 -0
  668. package/dist/esm/protocol/ExchangeManager.js.map +6 -0
  669. package/dist/esm/protocol/MessageCounter.d.ts +57 -0
  670. package/dist/esm/protocol/MessageCounter.d.ts.map +1 -0
  671. package/dist/esm/protocol/MessageCounter.js +84 -0
  672. package/dist/esm/protocol/MessageCounter.js.map +6 -0
  673. package/dist/esm/protocol/MessageExchange.d.ts +84 -0
  674. package/dist/esm/protocol/MessageExchange.d.ts.map +1 -0
  675. package/dist/esm/protocol/MessageExchange.js +504 -0
  676. package/dist/esm/protocol/MessageExchange.js.map +6 -0
  677. package/dist/esm/protocol/MessageReceptionState.d.ts +65 -0
  678. package/dist/esm/protocol/MessageReceptionState.d.ts.map +1 -0
  679. package/dist/esm/protocol/MessageReceptionState.js +153 -0
  680. package/dist/esm/protocol/MessageReceptionState.js.map +6 -0
  681. package/dist/esm/protocol/ProtocolHandler.d.ts +13 -0
  682. package/dist/esm/protocol/ProtocolHandler.d.ts.map +1 -0
  683. package/dist/esm/protocol/ProtocolHandler.js +6 -0
  684. package/dist/esm/protocol/ProtocolHandler.js.map +6 -0
  685. package/dist/esm/protocol/index.d.ts +14 -0
  686. package/dist/esm/protocol/index.d.ts.map +1 -0
  687. package/dist/esm/protocol/index.js +14 -0
  688. package/dist/esm/protocol/index.js.map +6 -0
  689. package/dist/esm/securechannel/SecureChannelMessenger.d.ts +53 -0
  690. package/dist/esm/securechannel/SecureChannelMessenger.d.ts.map +1 -0
  691. package/dist/esm/securechannel/SecureChannelMessenger.js +128 -0
  692. package/dist/esm/securechannel/SecureChannelMessenger.js.map +6 -0
  693. package/dist/esm/securechannel/SecureChannelProtocol.d.ts +31 -0
  694. package/dist/esm/securechannel/SecureChannelProtocol.d.ts.map +1 -0
  695. package/dist/esm/securechannel/SecureChannelProtocol.js +127 -0
  696. package/dist/esm/securechannel/SecureChannelProtocol.js.map +6 -0
  697. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts +23 -0
  698. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -0
  699. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js +33 -0
  700. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js.map +6 -0
  701. package/dist/esm/securechannel/index.d.ts +9 -0
  702. package/dist/esm/securechannel/index.d.ts.map +1 -0
  703. package/dist/esm/securechannel/index.js +9 -0
  704. package/dist/esm/securechannel/index.js.map +6 -0
  705. package/dist/esm/session/InsecureSession.d.ts +38 -0
  706. package/dist/esm/session/InsecureSession.d.ts.map +1 -0
  707. package/dist/esm/session/InsecureSession.js +75 -0
  708. package/dist/esm/session/InsecureSession.js.map +6 -0
  709. package/dist/esm/session/SecureSession.d.ts +81 -0
  710. package/dist/esm/session/SecureSession.d.ts.map +1 -0
  711. package/dist/esm/session/SecureSession.js +281 -0
  712. package/dist/esm/session/SecureSession.js.map +6 -0
  713. package/dist/esm/session/Session.d.ts +102 -0
  714. package/dist/esm/session/Session.d.ts.map +1 -0
  715. package/dist/esm/session/Session.js +121 -0
  716. package/dist/esm/session/Session.js.map +6 -0
  717. package/dist/esm/session/SessionManager.d.ts +132 -0
  718. package/dist/esm/session/SessionManager.d.ts.map +1 -0
  719. package/dist/esm/session/SessionManager.js +411 -0
  720. package/dist/esm/session/SessionManager.js.map +6 -0
  721. package/dist/esm/session/case/CaseClient.d.ts +18 -0
  722. package/dist/esm/session/case/CaseClient.d.ts.map +1 -0
  723. package/dist/esm/session/case/CaseClient.js +208 -0
  724. package/dist/esm/session/case/CaseClient.js.map +6 -0
  725. package/dist/esm/session/case/CaseMessages.d.ts +82 -0
  726. package/dist/esm/session/case/CaseMessages.d.ts.map +1 -0
  727. package/dist/esm/session/case/CaseMessages.js +83 -0
  728. package/dist/esm/session/case/CaseMessages.js.map +6 -0
  729. package/dist/esm/session/case/CaseMessenger.d.ts +79 -0
  730. package/dist/esm/session/case/CaseMessenger.d.ts.map +1 -0
  731. package/dist/esm/session/case/CaseMessenger.js +54 -0
  732. package/dist/esm/session/case/CaseMessenger.js.map +6 -0
  733. package/dist/esm/session/case/CaseServer.d.ts +18 -0
  734. package/dist/esm/session/case/CaseServer.d.ts.map +1 -0
  735. package/dist/esm/session/case/CaseServer.js +224 -0
  736. package/dist/esm/session/case/CaseServer.js.map +6 -0
  737. package/dist/esm/session/index.d.ts +18 -0
  738. package/dist/esm/session/index.d.ts.map +1 -0
  739. package/dist/esm/session/index.js +18 -0
  740. package/dist/esm/session/index.js.map +6 -0
  741. package/dist/esm/session/pase/PaseClient.d.ts +18 -0
  742. package/dist/esm/session/pase/PaseClient.d.ts.map +1 -0
  743. package/dist/esm/session/pase/PaseClient.js +81 -0
  744. package/dist/esm/session/pase/PaseClient.js.map +6 -0
  745. package/dist/esm/session/pase/PaseMessages.d.ts +85 -0
  746. package/dist/esm/session/pase/PaseMessages.d.ts.map +1 -0
  747. package/dist/esm/session/pase/PaseMessages.js +68 -0
  748. package/dist/esm/session/pase/PaseMessages.js.map +6 -0
  749. package/dist/esm/session/pase/PaseMessenger.d.ts +75 -0
  750. package/dist/esm/session/pase/PaseMessenger.d.ts.map +1 -0
  751. package/dist/esm/session/pase/PaseMessenger.js +75 -0
  752. package/dist/esm/session/pase/PaseMessenger.js.map +6 -0
  753. package/dist/esm/session/pase/PaseServer.d.ts +29 -0
  754. package/dist/esm/session/pase/PaseServer.d.ts.map +1 -0
  755. package/dist/esm/session/pase/PaseServer.js +148 -0
  756. package/dist/esm/session/pase/PaseServer.js.map +6 -0
  757. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  758. package/package.json +83 -0
  759. package/src/MatterDevice.ts +319 -0
  760. package/src/ble/Ble.ts +40 -0
  761. package/src/ble/BleConsts.ts +41 -0
  762. package/src/ble/BtpSessionHandler.ts +490 -0
  763. package/src/ble/index.ts +9 -0
  764. package/src/certificate/AttestationCertificateManager.ts +166 -0
  765. package/src/certificate/CertificateManager.ts +1136 -0
  766. package/src/certificate/CertificationDeclarationManager.ts +52 -0
  767. package/src/certificate/ChipPAAuthorities.ts +35 -0
  768. package/src/certificate/DeviceCertification.ts +116 -0
  769. package/src/certificate/RootCertificateManager.ts +179 -0
  770. package/src/certificate/index.ts +12 -0
  771. package/src/cluster/client/AttributeClient.ts +196 -0
  772. package/src/cluster/client/ClusterClient.ts +354 -0
  773. package/src/cluster/client/ClusterClientTypes.ts +257 -0
  774. package/src/cluster/client/EventClient.ts +110 -0
  775. package/src/cluster/client/index.ts +10 -0
  776. package/src/cluster/index.ts +8 -0
  777. package/src/cluster/server/AttributeServer.ts +986 -0
  778. package/src/cluster/server/ClusterDatasource.ts +17 -0
  779. package/src/cluster/server/ClusterServer.ts +46 -0
  780. package/src/cluster/server/CommandServer.ts +89 -0
  781. package/src/cluster/server/EventServer.ts +198 -0
  782. package/src/cluster/server/index.ts +11 -0
  783. package/src/codec/BtpCodec.ts +333 -0
  784. package/src/codec/MessageCodec.ts +276 -0
  785. package/src/codec/index.ts +9 -0
  786. package/src/common/FailsafeContext.ts +330 -0
  787. package/src/common/FailsafeTimer.ts +91 -0
  788. package/src/common/InstanceBroadcaster.ts +220 -0
  789. package/src/common/OperationalCredentialsTypes.ts +24 -0
  790. package/src/common/Scanner.ts +188 -0
  791. package/src/common/index.ts +12 -0
  792. package/src/endpoint/EndpointInterface.ts +41 -0
  793. package/src/endpoint/EndpointStructureLogger.ts +277 -0
  794. package/src/endpoint/index.ts +8 -0
  795. package/src/fabric/Fabric.ts +528 -0
  796. package/src/fabric/FabricManager.ts +231 -0
  797. package/src/fabric/index.ts +8 -0
  798. package/src/index.ts +20 -0
  799. package/src/interaction/AccessControlManager.ts +343 -0
  800. package/src/interaction/AttributeDataDecoder.ts +266 -0
  801. package/src/interaction/AttributeDataEncoder.ts +268 -0
  802. package/src/interaction/EventDataDecoder.ts +133 -0
  803. package/src/interaction/EventHandler.ts +141 -0
  804. package/src/interaction/InteractionClient.ts +1215 -0
  805. package/src/interaction/InteractionEndpointStructure.ts +462 -0
  806. package/src/interaction/InteractionMessenger.ts +592 -0
  807. package/src/interaction/InteractionServer.ts +1428 -0
  808. package/src/interaction/ServerSubscription.ts +908 -0
  809. package/src/interaction/Subscription.ts +89 -0
  810. package/src/interaction/SubscriptionOptions.ts +49 -0
  811. package/src/interaction/index.ts +17 -0
  812. package/src/mdns/MdnsBroadcaster.ts +415 -0
  813. package/src/mdns/MdnsConsts.ts +24 -0
  814. package/src/mdns/MdnsInstanceBroadcaster.ts +88 -0
  815. package/src/mdns/MdnsScanner.ts +1042 -0
  816. package/src/mdns/MdnsServer.ts +322 -0
  817. package/src/mdns/MdnsService.ts +102 -0
  818. package/src/mdns/index.ts +12 -0
  819. package/src/peer/ControllerCommissioner.ts +372 -0
  820. package/src/peer/ControllerCommissioningFlow.ts +1127 -0
  821. package/src/peer/ControllerDiscovery.ts +231 -0
  822. package/src/peer/OperationalPeer.ts +32 -0
  823. package/src/peer/PeerAddress.ts +78 -0
  824. package/src/peer/PeerSet.ts +684 -0
  825. package/src/peer/PeerStore.ts +19 -0
  826. package/src/peer/index.ts +13 -0
  827. package/src/protocol/ChannelManager.ts +168 -0
  828. package/src/protocol/DeviceAdvertiser.ts +208 -0
  829. package/src/protocol/DeviceCommissioner.ts +280 -0
  830. package/src/protocol/ExchangeManager.ts +493 -0
  831. package/src/protocol/MessageCounter.ts +128 -0
  832. package/src/protocol/MessageExchange.ts +662 -0
  833. package/src/protocol/MessageReceptionState.ts +207 -0
  834. package/src/protocol/ProtocolHandler.ts +14 -0
  835. package/src/protocol/index.ts +14 -0
  836. package/src/securechannel/SecureChannelMessenger.ts +166 -0
  837. package/src/securechannel/SecureChannelProtocol.ts +150 -0
  838. package/src/securechannel/SecureChannelStatusMessageSchema.ts +40 -0
  839. package/src/securechannel/index.ts +10 -0
  840. package/src/session/InsecureSession.ts +96 -0
  841. package/src/session/SecureSession.ts +349 -0
  842. package/src/session/Session.ts +188 -0
  843. package/src/session/SessionManager.ts +559 -0
  844. package/src/session/case/CaseClient.ts +235 -0
  845. package/src/session/case/CaseMessages.ts +81 -0
  846. package/src/session/case/CaseMessenger.ts +57 -0
  847. package/src/session/case/CaseServer.ts +269 -0
  848. package/src/session/index.ts +21 -0
  849. package/src/session/pase/PaseClient.ts +100 -0
  850. package/src/session/pase/PaseMessages.ts +72 -0
  851. package/src/session/pase/PaseMessenger.ts +86 -0
  852. package/src/session/pase/PaseServer.ts +187 -0
  853. package/src/tsconfig.json +20 -0
@@ -0,0 +1,832 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { BasicInformation } from "#clusters/basic-information";
7
+ import { Descriptor } from "#clusters/descriptor";
8
+ import { GeneralCommissioning } from "#clusters/general-commissioning";
9
+ import { NetworkCommissioning } from "#clusters/network-commissioning";
10
+ import { OperationalCredentials } from "#clusters/operational-credentials";
11
+ import { TimeSynchronizationCluster } from "#clusters/time-synchronization";
12
+ import { Bytes, ChannelType, Crypto, Logger, MatterError, Time, UnexpectedDataError } from "#general";
13
+ import {
14
+ EndpointNumber,
15
+ StatusResponseError
16
+ } from "#types";
17
+ import { CertificateManager } from "../certificate/CertificateManager.js";
18
+ import { ClusterClient } from "../cluster/client/ClusterClient.js";
19
+ import { TlvCertSigningRequest } from "../common/OperationalCredentialsTypes.js";
20
+ const logger = Logger.get("ControllerCommissioner");
21
+ var CommissioningStepResultCode = /* @__PURE__ */ ((CommissioningStepResultCode2) => {
22
+ CommissioningStepResultCode2[CommissioningStepResultCode2["Success"] = 0] = "Success";
23
+ CommissioningStepResultCode2[CommissioningStepResultCode2["Failure"] = 1] = "Failure";
24
+ CommissioningStepResultCode2[CommissioningStepResultCode2["Skipped"] = 2] = "Skipped";
25
+ CommissioningStepResultCode2[CommissioningStepResultCode2["Stop"] = 3] = "Stop";
26
+ return CommissioningStepResultCode2;
27
+ })(CommissioningStepResultCode || {});
28
+ class CommissioningError extends MatterError {
29
+ }
30
+ class RecoverableCommissioningError extends CommissioningError {
31
+ }
32
+ const DEFAULT_FAILSAFE_TIME_MS = 6e4;
33
+ class ControllerCommissioningFlow {
34
+ #interactionClient;
35
+ #certificateManager;
36
+ #fabric;
37
+ #transitionToCase;
38
+ #commissioningOptions;
39
+ #commissioningSteps = new Array();
40
+ #commissioningStepResults = /* @__PURE__ */ new Map();
41
+ #clusterClients = /* @__PURE__ */ new Map();
42
+ #commissioningStartedTime;
43
+ #commissioningExpiryTime;
44
+ #lastFailSafeTime;
45
+ #lastBreadcrumb = 1;
46
+ #collectedCommissioningData = {};
47
+ #failSafeTimeMs = DEFAULT_FAILSAFE_TIME_MS;
48
+ constructor(interactionClient, certificateManager, fabric, commissioningOptions, transitionToCase) {
49
+ this.#interactionClient = interactionClient;
50
+ this.#certificateManager = certificateManager;
51
+ this.#fabric = fabric;
52
+ this.#transitionToCase = transitionToCase;
53
+ this.#commissioningOptions = commissioningOptions;
54
+ logger.debug(`Commissioning options: ${Logger.toJSON(commissioningOptions)}`);
55
+ this.#initializeCommissioningSteps();
56
+ }
57
+ /**
58
+ * Execute the commissioning process in the defined order. The steps are sorted before execution based on the step
59
+ * number and sub step number.
60
+ * If >50% of the failsafe time has passed, the failsafe timer is re-armed (50% of 60s default are 30s and each
61
+ * action is allowed to take 30s at minimum based on specs).
62
+ */
63
+ async executeCommissioning() {
64
+ this.#sortSteps();
65
+ for (const step of this.#commissioningSteps) {
66
+ logger.info(`Executing commissioning step ${step.stepNumber}.${step.subStepNumber}: ${step.name}`);
67
+ try {
68
+ const result = await step.stepLogic();
69
+ this.#setCommissioningStepResult(step, result);
70
+ if (this.#lastFailSafeTime !== void 0) {
71
+ const timeSinceLastArmFailsafe = Time.nowMs() - this.#lastFailSafeTime;
72
+ if (this.#commissioningExpiryTime !== void 0 && Time.nowMs() > this.#commissioningExpiryTime) {
73
+ logger.error(
74
+ `Commissioning step ${step.stepNumber}.${step.subStepNumber}: ${step.name} succeeded, but commissioning took too long in general!`
75
+ );
76
+ throw new CommissioningError(`Commissioning took too long!`);
77
+ }
78
+ if (timeSinceLastArmFailsafe > this.#failSafeTimeMs / 2) {
79
+ logger.info(
80
+ `After Commissioning step ${step.stepNumber}.${step.subStepNumber}: ${step.name} succeeded, ${Math.floor(
81
+ timeSinceLastArmFailsafe / 1e3
82
+ )}s elapsed since last arm failsafe, re-arming failsafe`
83
+ );
84
+ await this.#armFailsafe();
85
+ }
86
+ }
87
+ if (result.code === 3 /* Stop */) {
88
+ break;
89
+ }
90
+ } catch (error) {
91
+ if (error instanceof RecoverableCommissioningError) {
92
+ logger.error(
93
+ `Commissioning step ${step.stepNumber}.${step.subStepNumber}: ${step.name} failed with recoverable error: ${error.message} ... Continuing with process`
94
+ );
95
+ } else if (error instanceof CommissioningError || error instanceof StatusResponseError) {
96
+ logger.error(
97
+ `Commissioning step ${step.stepNumber}.${step.subStepNumber}: ${step.name} failed with error: ${error.message} ... Aborting commissioning`
98
+ );
99
+ await this.#resetFailsafeTimer();
100
+ StatusResponseError.accept(error);
101
+ const commError = new CommissioningError(error.message);
102
+ commError.stack = error.stack;
103
+ throw commError;
104
+ } else {
105
+ throw error;
106
+ }
107
+ }
108
+ }
109
+ }
110
+ /**
111
+ * Helper method to create ClusterClients. If not feature specific and for the Root Endpoint they are also reused.
112
+ */
113
+ #getClusterClient(cluster, endpointId = EndpointNumber(0), isFeatureSpecific = false) {
114
+ if (!isFeatureSpecific && endpointId === 0) {
115
+ const clusterClient = this.#clusterClients.get(cluster.id);
116
+ if (clusterClient !== void 0) {
117
+ logger.debug(
118
+ `Returning existing cluster client for cluster ${cluster.name} (endpoint ${endpointId}, isFeatureSpecific ${isFeatureSpecific})`
119
+ );
120
+ return clusterClient;
121
+ }
122
+ }
123
+ logger.debug(
124
+ `Creating new cluster client for cluster ${cluster.name} (endpoint ${endpointId}, isFeatureSpecific ${isFeatureSpecific})`
125
+ );
126
+ const client = ClusterClient(cluster, endpointId, this.#interactionClient);
127
+ this.#clusterClients.set(cluster.id, client);
128
+ return client;
129
+ }
130
+ /**
131
+ * Initialize commissioning steps and add them in the default order
132
+ */
133
+ #initializeCommissioningSteps() {
134
+ this.#commissioningSteps.push({
135
+ stepNumber: 0,
136
+ subStepNumber: 1,
137
+ name: "GetInitialData",
138
+ stepLogic: () => this.#getInitialData()
139
+ });
140
+ this.#commissioningSteps.push({
141
+ stepNumber: 3,
142
+ subStepNumber: 1,
143
+ name: "GeneralCommissioning.ArmFailsafe",
144
+ stepLogic: () => this.#armFailsafe()
145
+ });
146
+ this.#commissioningSteps.push({
147
+ stepNumber: 5,
148
+ subStepNumber: 1,
149
+ name: "GeneralCommissioning.ConfigureRegulatoryInformation",
150
+ stepLogic: () => this.#configureRegulatoryInformation()
151
+ });
152
+ this.#commissioningSteps.push({
153
+ stepNumber: 5,
154
+ subStepNumber: 2,
155
+ name: "TimeSynchronization.SynchronizeTime",
156
+ stepLogic: () => this.#synchronizeTime()
157
+ });
158
+ this.#commissioningSteps.push({
159
+ stepNumber: 6,
160
+ subStepNumber: 1,
161
+ name: "OperationalCredentials.DeviceAttestation",
162
+ stepLogic: () => this.#deviceAttestation()
163
+ });
164
+ this.#commissioningSteps.push({
165
+ stepNumber: 7,
166
+ subStepNumber: 1,
167
+ name: "OperationalCredentials.Certificates",
168
+ stepLogic: () => this.#certificates()
169
+ });
170
+ this.#commissioningSteps.push({
171
+ stepNumber: 10,
172
+ subStepNumber: 1,
173
+ name: "AccessControl",
174
+ stepLogic: () => this.#configureAccessControlLists()
175
+ });
176
+ if (this.#interactionClient.channelType === ChannelType.BLE) {
177
+ this.#commissioningSteps.push({
178
+ stepNumber: 11,
179
+ subStepNumber: 1,
180
+ name: "NetworkCommissioning.Validate",
181
+ stepLogic: () => this.#validateNetwork()
182
+ });
183
+ if (this.#commissioningOptions.wifiNetwork !== void 0) {
184
+ this.#commissioningSteps.push({
185
+ stepNumber: 11,
186
+ subStepNumber: 2,
187
+ name: "NetworkCommissioning.Wifi",
188
+ stepLogic: () => this.#configureNetworkWifi()
189
+ });
190
+ }
191
+ if (this.#commissioningOptions.threadNetwork !== void 0) {
192
+ this.#commissioningSteps.push({
193
+ stepNumber: 11,
194
+ subStepNumber: 3,
195
+ name: "NetworkCommissioning.Thread",
196
+ stepLogic: () => this.#configureNetworkThread()
197
+ });
198
+ }
199
+ } else {
200
+ logger.info(
201
+ `Skipping NetworkCommissioning steps because the device is already on IP network (${this.#interactionClient.channelType})`
202
+ );
203
+ }
204
+ this.#commissioningSteps.push({
205
+ stepNumber: 12,
206
+ subStepNumber: 1,
207
+ name: "Reconnect",
208
+ stepLogic: () => this.#reconnectWithDevice()
209
+ });
210
+ this.#commissioningSteps.push({
211
+ stepNumber: 15,
212
+ subStepNumber: 1,
213
+ name: "GeneralCommissioning.Complete",
214
+ stepLogic: () => this.#completeCommissioning()
215
+ });
216
+ }
217
+ #sortSteps() {
218
+ this.#commissioningSteps.sort((a, b) => {
219
+ if (a.stepNumber !== b.stepNumber) return a.stepNumber - b.stepNumber;
220
+ return a.subStepNumber - b.subStepNumber;
221
+ });
222
+ }
223
+ #setCommissioningStepResult(step, result) {
224
+ this.#commissioningStepResults.set(`${step.stepNumber}-${step.subStepNumber}`, result);
225
+ }
226
+ getCommissioningStepResult(stepNumber, subStepNumber) {
227
+ return this.#commissioningStepResults.get(`${stepNumber}-${subStepNumber}`);
228
+ }
229
+ /** Helper method to check for errorCode/debugTest responses and throw error on failure */
230
+ #ensureOperationalCredentialsSuccess(context, { statusCode, debugText, fabricIndex }) {
231
+ logger.debug(
232
+ `Commissioning step ${context} returned ${statusCode}, ${debugText}${fabricIndex !== void 0 ? `, fabricIndex: ${fabricIndex}` : ""}`
233
+ );
234
+ if (statusCode === OperationalCredentials.NodeOperationalCertStatus.Ok) return;
235
+ throw new CommissioningError(
236
+ `Commission error for "${context}": ${statusCode}, ${debugText}${fabricIndex !== void 0 ? `, fabricIndex: ${fabricIndex}` : ""}`
237
+ );
238
+ }
239
+ /** Helper method to check for errorCode/debugTest responses and throw error on failure */
240
+ #ensureGeneralCommissioningSuccess(context, { errorCode, debugText }) {
241
+ logger.debug(`Commissioning step ${context} returned ${errorCode}, ${debugText}`);
242
+ if (errorCode === GeneralCommissioning.CommissioningError.Ok) return;
243
+ throw new CommissioningError(`Commission error for "${context}": ${errorCode}, ${debugText}`);
244
+ }
245
+ /**
246
+ * Initial Step to receive some common data used by other steps
247
+ */
248
+ async #getInitialData() {
249
+ const descriptorClient = this.#getClusterClient(Descriptor.Cluster);
250
+ this.#collectedCommissioningData.rootPartsList = await descriptorClient.getPartsListAttribute();
251
+ this.#collectedCommissioningData.rootServerList = await descriptorClient.getServerListAttribute();
252
+ const networkData = await this.#interactionClient.getMultipleAttributes({
253
+ attributes: [
254
+ {
255
+ clusterId: NetworkCommissioning.Complete.id,
256
+ attributeId: NetworkCommissioning.Complete.attributes.featureMap.id
257
+ },
258
+ {
259
+ clusterId: NetworkCommissioning.Complete.id,
260
+ attributeId: NetworkCommissioning.Complete.attributes.networks.id
261
+ }
262
+ ]
263
+ });
264
+ const networkFeatures = new Array();
265
+ const networkStatus = new Array();
266
+ for (const {
267
+ path: { endpointId, attributeId },
268
+ value
269
+ } of networkData) {
270
+ if (attributeId === NetworkCommissioning.Complete.attributes.featureMap.id) {
271
+ networkFeatures.push({ endpointId, value });
272
+ } else if (attributeId === NetworkCommissioning.Complete.attributes.networks.id) {
273
+ networkStatus.push({ endpointId, value });
274
+ }
275
+ }
276
+ this.#collectedCommissioningData.networkFeatures = networkFeatures;
277
+ this.#collectedCommissioningData.networkStatus = networkStatus;
278
+ const basicInfoClient = this.#getClusterClient(BasicInformation.Cluster);
279
+ this.#collectedCommissioningData.vendorId = await basicInfoClient.getVendorIdAttribute();
280
+ this.#collectedCommissioningData.productId = await basicInfoClient.getProductIdAttribute();
281
+ this.#collectedCommissioningData.productName = await basicInfoClient.getProductNameAttribute();
282
+ const generalCommissioningClient = this.#getClusterClient(GeneralCommissioning.Cluster);
283
+ this.#collectedCommissioningData.supportsConcurrentConnection = await generalCommissioningClient.getSupportsConcurrentConnectionAttribute();
284
+ return {
285
+ code: 0 /* Success */,
286
+ breadcrumb: this.#lastBreadcrumb
287
+ };
288
+ }
289
+ /**
290
+ * Step 3
291
+ * Upon completion of PASE session establishment, the Commissionee SHALL autonomously arm the Fail-safe timer for a
292
+ * timeout of 60 seconds. This is to guard against the Commissioner aborting the Commissioning process without
293
+ * arming the fail-safe, which may leave the device unable to accept additional connections.
294
+ * A Commissioner MAY obtain device information including guidance on the fail-safe value from the Commissionee by
295
+ * reading BasicCommissioningInfo attribute (see Section 11.9.5.2, “BasicCommissioningInfo Attribute”) prior to
296
+ * invoking the ArmFailSafe command.
297
+ */
298
+ async #armFailsafe() {
299
+ const client = this.#getClusterClient(GeneralCommissioning.Cluster);
300
+ if (this.#collectedCommissioningData.basicCommissioningInfo === void 0) {
301
+ const basicCommissioningInfo = await client.getBasicCommissioningInfoAttribute();
302
+ this.#collectedCommissioningData.basicCommissioningInfo = basicCommissioningInfo;
303
+ this.#failSafeTimeMs = basicCommissioningInfo.failSafeExpiryLengthSeconds * 1e3;
304
+ this.#commissioningStartedTime = Time.nowMs();
305
+ this.#commissioningExpiryTime = this.#commissioningStartedTime + basicCommissioningInfo.maxCumulativeFailsafeSeconds * 1e3;
306
+ }
307
+ this.#ensureGeneralCommissioningSuccess(
308
+ "armFailSafe",
309
+ await client.armFailSafe({
310
+ breadcrumb: this.#lastBreadcrumb,
311
+ expiryLengthSeconds: this.#collectedCommissioningData.basicCommissioningInfo?.failSafeExpiryLengthSeconds
312
+ })
313
+ );
314
+ this.#lastFailSafeTime = Time.nowMs();
315
+ return {
316
+ code: 0 /* Success */,
317
+ breadcrumb: this.#lastBreadcrumb
318
+ };
319
+ }
320
+ async #resetFailsafeTimer() {
321
+ try {
322
+ const client = this.#getClusterClient(GeneralCommissioning.Cluster);
323
+ await client.armFailSafe({
324
+ breadcrumb: this.#lastBreadcrumb,
325
+ expiryLengthSeconds: 0
326
+ });
327
+ } catch (error) {
328
+ logger.error(`Error while resetting failsafe timer`, error);
329
+ }
330
+ }
331
+ /**
332
+ * Step 5 - 1
333
+ * Commissioner SHALL configure regulatory information in the Commissionee if it has at least one instance of
334
+ * Network Commissioning cluster on any endpoint with either the WI (i.e. Wi-Fi) or TH (i.e. Thread) feature flags
335
+ * set in its FeatureMap.
336
+ * The regulatory information is configured using SetRegulatoryConfig (see Section 11.9.6.4,
337
+ * “SetRegulatoryConfig Command”).
338
+ */
339
+ async #configureRegulatoryInformation() {
340
+ if (this.#collectedCommissioningData.networkFeatures === void 0) {
341
+ throw new CommissioningError("No network features collected. This should never happen.");
342
+ }
343
+ const hasRadioNetwork = this.#collectedCommissioningData.networkFeatures.some(
344
+ ({ value: { wiFiNetworkInterface, threadNetworkInterface } }) => wiFiNetworkInterface || threadNetworkInterface
345
+ );
346
+ if (hasRadioNetwork) {
347
+ const client = this.#getClusterClient(GeneralCommissioning.Cluster);
348
+ let locationCapability = await client.getLocationCapabilityAttribute();
349
+ if (locationCapability === GeneralCommissioning.RegulatoryLocationType.IndoorOutdoor) {
350
+ locationCapability = this.#commissioningOptions.regulatoryLocation;
351
+ } else {
352
+ logger.debug(
353
+ `Device does not support a configurable regulatory location type. Location is set to "${locationCapability === GeneralCommissioning.RegulatoryLocationType.Indoor ? "Indoor" : "Outdoor"}"`
354
+ );
355
+ }
356
+ let countryCode = this.#commissioningOptions.regulatoryCountryCode;
357
+ const regulatoryResult = await client.setRegulatoryConfig(
358
+ {
359
+ breadcrumb: this.#lastBreadcrumb++,
360
+ newRegulatoryConfig: locationCapability,
361
+ countryCode
362
+ },
363
+ { useExtendedFailSafeMessageResponseTimeout: true }
364
+ );
365
+ if (regulatoryResult.errorCode === GeneralCommissioning.CommissioningError.ValueOutsideRange && countryCode !== "XX") {
366
+ logger.debug(
367
+ `Device does not support a configurable country code. Use "XX" instead of "${countryCode}"`
368
+ );
369
+ countryCode = "XX";
370
+ this.#ensureGeneralCommissioningSuccess(
371
+ "setRegulatoryConfig",
372
+ await client.setRegulatoryConfig(
373
+ {
374
+ breadcrumb: this.#lastBreadcrumb,
375
+ newRegulatoryConfig: locationCapability,
376
+ countryCode
377
+ },
378
+ { useExtendedFailSafeMessageResponseTimeout: true }
379
+ )
380
+ );
381
+ } else {
382
+ this.#ensureGeneralCommissioningSuccess("setRegulatoryConfig", regulatoryResult);
383
+ }
384
+ return {
385
+ code: 0 /* Success */,
386
+ breadcrumb: this.#lastBreadcrumb
387
+ };
388
+ }
389
+ return {
390
+ code: 2 /* Skipped */,
391
+ breadcrumb: this.#lastBreadcrumb
392
+ };
393
+ }
394
+ /**
395
+ * Step 5 - 2
396
+ * Commissioner SHOULD configure UTC time, timezone, and DST offset, if the Commissionee supports the time cluster.
397
+ * The order of configuration of this information is not critical. The UTC time is configured using SetUtcTime
398
+ * command (see Section 11.16.9.1, “SetUtcTime Command”) while timezone and DST offset are set through TimeZone
399
+ * (see Section 11.16.8.6, “TimeZone Attribute”) and DstOffset attribute (see Section 11.16.8.7,
400
+ * “DSTOffset Attribute”), respectively.
401
+ */
402
+ async #synchronizeTime() {
403
+ if (this.#collectedCommissioningData.rootServerList !== void 0 && this.#collectedCommissioningData.rootServerList.find(
404
+ (clusterId) => clusterId === TimeSynchronizationCluster.id
405
+ )) {
406
+ logger.debug("TimeSynchronization cluster is supported");
407
+ }
408
+ return {
409
+ code: 2 /* Skipped */,
410
+ breadcrumb: this.#lastBreadcrumb
411
+ };
412
+ }
413
+ /**
414
+ * Step 6
415
+ * Commissioner SHALL establish the authenticity of the Commissionee as a certified Matter device (see Section
416
+ * 6.2.3, “Device Attestation Procedure”).
417
+ */
418
+ async #deviceAttestation() {
419
+ const operationalCredentialsClusterClient = this.#getClusterClient(OperationalCredentials.Cluster);
420
+ const { certificate: deviceAttestation } = await operationalCredentialsClusterClient.certificateChainRequest(
421
+ {
422
+ certificateType: OperationalCredentials.CertificateChainType.DacCertificate
423
+ },
424
+ { useExtendedFailSafeMessageResponseTimeout: true }
425
+ );
426
+ const { certificate: productAttestation } = await operationalCredentialsClusterClient.certificateChainRequest(
427
+ {
428
+ certificateType: OperationalCredentials.CertificateChainType.PaiCertificate
429
+ },
430
+ { useExtendedFailSafeMessageResponseTimeout: true }
431
+ );
432
+ const { attestationElements, attestationSignature } = await operationalCredentialsClusterClient.attestationRequest(
433
+ {
434
+ attestationNonce: Crypto.getRandomData(32)
435
+ },
436
+ { useExtendedFailSafeMessageResponseTimeout: true }
437
+ );
438
+ if (deviceAttestation.length === 0 || productAttestation.length === 0 || attestationElements.length === 0 || attestationSignature.length === 0) {
439
+ throw new CommissioningError("Device Attestation data missing from device");
440
+ }
441
+ return {
442
+ code: 0 /* Success */,
443
+ breadcrumb: this.#lastBreadcrumb
444
+ };
445
+ }
446
+ /**
447
+ * Step 7-9
448
+ * 7: Following the Device Attestation Procedure yielding a decision to proceed with commissioning, the Commissioner
449
+ * SHALL request operational CSR from Commissionee using the CSRRequest command (see Section 11.17.6.5,
450
+ * “CSRRequest Command”). The CSRRequest command will cause the generation of a new operational key pair at the
451
+ * Commissionee.
452
+ * 8: Commissioner SHALL generate or otherwise obtain an Operational Certificate containing Operational ID after
453
+ * receiving the CSRResponse command from the Commissionee (see Section 11.17.6.5, “CSRRequest Command”), using
454
+ * implementation-specific means.
455
+ * 9: Commissioner SHALL install operational credentials (see Figure 38, “Node Operational Credentials flow”) on
456
+ * the Commissionee using the AddTrustedRootCertificate and AddNOC commands.
457
+ */
458
+ async #certificates() {
459
+ const operationalCredentialsClusterClient = this.#getClusterClient(OperationalCredentials.Cluster);
460
+ const { nocsrElements, attestationSignature: csrSignature } = await operationalCredentialsClusterClient.csrRequest(
461
+ { csrNonce: Crypto.getRandomData(32) },
462
+ { useExtendedFailSafeMessageResponseTimeout: true }
463
+ );
464
+ if (nocsrElements.length === 0 || csrSignature.length === 0) {
465
+ throw new UnexpectedDataError("Invalid response from device");
466
+ }
467
+ const { certSigningRequest } = TlvCertSigningRequest.decode(nocsrElements);
468
+ const operationalPublicKey = CertificateManager.getPublicKeyFromCsr(certSigningRequest);
469
+ await operationalCredentialsClusterClient.addTrustedRootCertificate(
470
+ {
471
+ rootCaCertificate: this.#certificateManager.rootCert
472
+ },
473
+ { useExtendedFailSafeMessageResponseTimeout: true }
474
+ );
475
+ const peerOperationalCert = this.#certificateManager.generateNoc(
476
+ operationalPublicKey,
477
+ this.#fabric.fabricId,
478
+ this.#interactionClient.address.nodeId
479
+ );
480
+ this.#ensureOperationalCredentialsSuccess(
481
+ "addNoc",
482
+ await operationalCredentialsClusterClient.addNoc(
483
+ {
484
+ nocValue: peerOperationalCert,
485
+ icacValue: new Uint8Array(0),
486
+ ipkValue: this.#fabric.identityProtectionKey,
487
+ adminVendorId: this.#fabric.rootVendorId,
488
+ caseAdminSubject: this.#fabric.rootNodeId
489
+ },
490
+ { useExtendedFailSafeMessageResponseTimeout: true }
491
+ )
492
+ );
493
+ return {
494
+ code: 0 /* Success */,
495
+ breadcrumb: this.#lastBreadcrumb
496
+ };
497
+ }
498
+ /**
499
+ * Step 10
500
+ * Commissioner MAY configure the Access Control List (see Access Control Cluster) on the Commissionee in any way
501
+ * it sees fit, if the singular entry added by the AddNOC command in the previous step granting Administer
502
+ * privilege over CASE authentication type for the Node ID provided with the command is not sufficient to express
503
+ * its desired access control policies.
504
+ */
505
+ async #configureAccessControlLists() {
506
+ return {
507
+ code: 2 /* Skipped */,
508
+ breadcrumb: this.#lastBreadcrumb
509
+ };
510
+ }
511
+ /**
512
+ * Step 11-12
513
+ * 11: If the Commissionee both supports it and requires it, the Commissioner SHALL configure the operational network
514
+ * at the Commissionee using commands such as AddOrUpdateWiFiNetwork (see Section 11.8.7.3, “AddOrUpdateWiFiNetwork
515
+ * Command”) and AddOrUpdateThreadNetwork (see Section 11.8.7.4, “AddOrUpdateThreadNetwork Command”).
516
+ * A Commissionee requires network commissioning if it is not already on the desired operational network.
517
+ * A Commissionee supports network commissioning if it has any NetworkCommissioning cluster instances.
518
+ * A Commissioner MAY learn about the networks visible to the Commissionee using ScanNetworks command
519
+ * (see Section 11.8.7.1, “ScanNetworks Command”).
520
+ * 12: The Commissioner SHALL trigger the Commissionee to connect to the operational network using ConnectNetwork
521
+ * command (see Section 11.8.7.9, “ConnectNetwork Command”) unless the Commissionee is already on the desired operational network.
522
+ */
523
+ async #validateNetwork() {
524
+ if (this.#collectedCommissioningData.networkFeatures === void 0 || this.#collectedCommissioningData.networkStatus === void 0) {
525
+ throw new CommissioningError("No network features or status collected. This should never happen.");
526
+ }
527
+ if (this.#commissioningOptions.wifiNetwork === void 0 && this.#commissioningOptions.threadNetwork === void 0) {
528
+ const anyEthernetInterface = this.#collectedCommissioningData.networkFeatures.length === 0 || this.#collectedCommissioningData.networkFeatures.some(
529
+ ({ value: { ethernetNetworkInterface } }) => ethernetNetworkInterface === true
530
+ );
531
+ const anyInterfaceConnected = this.#collectedCommissioningData.networkStatus.length === 0 || this.#collectedCommissioningData.networkStatus.some(
532
+ ({ value }) => value.some(({ connected }) => connected)
533
+ );
534
+ if (!anyEthernetInterface && !anyInterfaceConnected) {
535
+ throw new CommissioningError(
536
+ "No Wi-Fi/Thread network credentials are configured for commissioning and no Ethernet interface is available on the device and no interface already connected."
537
+ );
538
+ }
539
+ }
540
+ return {
541
+ code: 0 /* Success */,
542
+ breadcrumb: this.#lastBreadcrumb
543
+ };
544
+ }
545
+ async #configureNetworkWifi() {
546
+ if (this.#commissioningOptions.wifiNetwork === void 0) {
547
+ logger.debug("WiFi network is not configured");
548
+ return {
549
+ code: 2 /* Skipped */,
550
+ breadcrumb: this.#lastBreadcrumb
551
+ };
552
+ }
553
+ if (this.#collectedCommissioningData.networkFeatures !== void 0 && this.#collectedCommissioningData.networkStatus !== void 0) {
554
+ const rootNetworkFeatures = this.#collectedCommissioningData.networkFeatures.find(
555
+ ({ endpointId }) => endpointId === 0
556
+ )?.value;
557
+ const rootNetworkStatus = this.#collectedCommissioningData.networkStatus.find(
558
+ ({ endpointId }) => endpointId === 0
559
+ )?.value;
560
+ logger.debug(
561
+ `Root Networks found: ${Logger.toJSON(rootNetworkFeatures)} - ${Logger.toJSON(rootNetworkStatus)}`
562
+ );
563
+ if (rootNetworkFeatures?.wiFiNetworkInterface !== true) {
564
+ logger.debug("Commissionee does not support any WiFi network interface");
565
+ return {
566
+ code: 2 /* Skipped */,
567
+ breadcrumb: this.#lastBreadcrumb
568
+ };
569
+ }
570
+ if (rootNetworkStatus !== void 0 && rootNetworkStatus.length > 0 && rootNetworkStatus[0].connected) {
571
+ logger.debug("Commissionee is already connected to the WiFi network");
572
+ this.#collectedCommissioningData.successfullyConnectedToNetwork = true;
573
+ return {
574
+ code: 2 /* Skipped */,
575
+ breadcrumb: this.#lastBreadcrumb
576
+ };
577
+ }
578
+ }
579
+ logger.debug("Configuring WiFi network ...");
580
+ const networkCommissioningClusterClient = this.#getClusterClient(
581
+ NetworkCommissioning.Cluster.with("WiFiNetworkInterface"),
582
+ EndpointNumber(0),
583
+ true
584
+ );
585
+ const ssid = Bytes.fromString(this.#commissioningOptions.wifiNetwork.wifiSsid);
586
+ const credentials = Bytes.fromString(this.#commissioningOptions.wifiNetwork.wifiCredentials);
587
+ const { networkingStatus, wiFiScanResults, debugText } = await networkCommissioningClusterClient.scanNetworks(
588
+ {
589
+ ssid,
590
+ breadcrumb: this.#lastBreadcrumb++
591
+ },
592
+ { useExtendedFailSafeMessageResponseTimeout: true }
593
+ );
594
+ if (networkingStatus !== NetworkCommissioning.NetworkCommissioningStatus.Success) {
595
+ throw new CommissioningError(`Commissionee failed to scan for WiFi networks: ${debugText}`);
596
+ }
597
+ if (wiFiScanResults === void 0 || wiFiScanResults.length === 0) {
598
+ throw new CommissioningError(
599
+ `Commissionee did not return any WiFi networks for the requested SSID ${this.#commissioningOptions.wifiNetwork.wifiSsid}`
600
+ );
601
+ }
602
+ const {
603
+ networkingStatus: addNetworkingStatus,
604
+ debugText: addDebugText,
605
+ networkIndex
606
+ } = await networkCommissioningClusterClient.addOrUpdateWiFiNetwork(
607
+ {
608
+ ssid,
609
+ credentials,
610
+ breadcrumb: this.#lastBreadcrumb++
611
+ },
612
+ { useExtendedFailSafeMessageResponseTimeout: true }
613
+ );
614
+ if (addNetworkingStatus !== NetworkCommissioning.NetworkCommissioningStatus.Success) {
615
+ throw new CommissioningError(`Commissionee failed to add WiFi network: ${addDebugText}`);
616
+ }
617
+ if (networkIndex === void 0) {
618
+ throw new CommissioningError(`Commissionee did not return network index`);
619
+ }
620
+ logger.debug(
621
+ `Commissionee added WiFi network ${this.#commissioningOptions.wifiNetwork.wifiSsid} with network index ${networkIndex}`
622
+ );
623
+ const updatedNetworks = await networkCommissioningClusterClient.getNetworksAttribute();
624
+ if (updatedNetworks[networkIndex] === void 0) {
625
+ throw new CommissioningError(`Commissionee did not return network with index ${networkIndex}`);
626
+ }
627
+ const { networkId, connected } = updatedNetworks[networkIndex];
628
+ if (connected) {
629
+ this.#collectedCommissioningData.successfullyConnectedToNetwork = true;
630
+ logger.debug(
631
+ `Commissionee is already connected to WiFi network ${this.#commissioningOptions.wifiNetwork.wifiSsid} (networkId ${Bytes.toHex(networkId)})`
632
+ );
633
+ return {
634
+ code: 0 /* Success */,
635
+ breadcrumb: this.#lastBreadcrumb
636
+ };
637
+ }
638
+ const connectResult = await networkCommissioningClusterClient.connectNetwork(
639
+ {
640
+ networkId,
641
+ breadcrumb: this.#lastBreadcrumb++
642
+ },
643
+ { useExtendedFailSafeMessageResponseTimeout: true }
644
+ );
645
+ if (connectResult.networkingStatus !== NetworkCommissioning.NetworkCommissioningStatus.Success) {
646
+ throw new CommissioningError(`Commissionee failed to connect to WiFi network: ${connectResult.debugText}`);
647
+ }
648
+ this.#collectedCommissioningData.successfullyConnectedToNetwork = true;
649
+ logger.debug(
650
+ `Commissionee successfully connected to WiFi network ${this.#commissioningOptions.wifiNetwork.wifiSsid} (networkId ${Bytes.toHex(networkId)})`
651
+ );
652
+ return {
653
+ code: 0 /* Success */,
654
+ breadcrumb: this.#lastBreadcrumb
655
+ };
656
+ }
657
+ async #configureNetworkThread() {
658
+ if (this.#collectedCommissioningData.successfullyConnectedToNetwork) {
659
+ logger.debug("Node is already connected to a network. Skipping Thread configuration.");
660
+ return {
661
+ code: 2 /* Skipped */,
662
+ breadcrumb: this.#lastBreadcrumb
663
+ };
664
+ }
665
+ if (this.#commissioningOptions.threadNetwork === void 0) {
666
+ logger.debug("Thread network is not configured");
667
+ return {
668
+ code: 2 /* Skipped */,
669
+ breadcrumb: this.#lastBreadcrumb
670
+ };
671
+ }
672
+ if (this.#collectedCommissioningData.networkFeatures !== void 0 && this.#collectedCommissioningData.networkStatus !== void 0) {
673
+ const rootNetworkFeatures = this.#collectedCommissioningData.networkFeatures.find(
674
+ ({ endpointId }) => endpointId === 0
675
+ )?.value;
676
+ const rootNetworkStatus = this.#collectedCommissioningData.networkStatus.find(
677
+ ({ endpointId }) => endpointId === 0
678
+ )?.value;
679
+ logger.debug(
680
+ `Root Networks found: ${Logger.toJSON(rootNetworkFeatures)} - ${Logger.toJSON(rootNetworkStatus)}`
681
+ );
682
+ if (rootNetworkFeatures?.threadNetworkInterface !== true) {
683
+ logger.debug("Commissionee does not support any Thread network interface");
684
+ return {
685
+ code: 2 /* Skipped */,
686
+ breadcrumb: this.#lastBreadcrumb
687
+ };
688
+ }
689
+ if (rootNetworkStatus !== void 0 && rootNetworkStatus.length > 0 && rootNetworkStatus[0].connected) {
690
+ logger.debug("Commissionee is already connected to the Thread network");
691
+ return {
692
+ code: 2 /* Skipped */,
693
+ breadcrumb: this.#lastBreadcrumb
694
+ };
695
+ }
696
+ }
697
+ logger.debug("Configuring Thread network ...");
698
+ const networkCommissioningClusterClient = this.#getClusterClient(
699
+ NetworkCommissioning.Cluster.with("ThreadNetworkInterface"),
700
+ EndpointNumber(0),
701
+ true
702
+ );
703
+ const { networkingStatus, threadScanResults, debugText } = await networkCommissioningClusterClient.scanNetworks(
704
+ { breadcrumb: this.#lastBreadcrumb++ },
705
+ { useExtendedFailSafeMessageResponseTimeout: true }
706
+ );
707
+ if (networkingStatus !== NetworkCommissioning.NetworkCommissioningStatus.Success) {
708
+ throw new CommissioningError(`Commissionee failed to scan for Thread networks: ${debugText}`);
709
+ }
710
+ if (threadScanResults === void 0 || threadScanResults.length === 0) {
711
+ throw new CommissioningError(
712
+ `Commissionee did not return any Thread networks for the requested Network ${this.#commissioningOptions.threadNetwork.networkName}`
713
+ );
714
+ }
715
+ const wantedNetworkFound = threadScanResults.find(
716
+ ({ networkName }) => networkName === this.#commissioningOptions.threadNetwork?.networkName
717
+ );
718
+ if (wantedNetworkFound === void 0) {
719
+ throw new CommissioningError(
720
+ `Commissionee did not return the requested Network ${this.#commissioningOptions.threadNetwork.networkName}: ${Logger.toJSON(threadScanResults)}`
721
+ );
722
+ }
723
+ logger.debug(
724
+ `Commissionee found wanted Thread network ${this.#commissioningOptions.threadNetwork.networkName}: ${Logger.toJSON(wantedNetworkFound)}`
725
+ );
726
+ const {
727
+ networkingStatus: addNetworkingStatus,
728
+ debugText: addDebugText,
729
+ networkIndex
730
+ } = await networkCommissioningClusterClient.addOrUpdateThreadNetwork(
731
+ {
732
+ operationalDataset: Bytes.fromHex(this.#commissioningOptions.threadNetwork.operationalDataset),
733
+ breadcrumb: this.#lastBreadcrumb++
734
+ },
735
+ { useExtendedFailSafeMessageResponseTimeout: true }
736
+ );
737
+ if (addNetworkingStatus !== NetworkCommissioning.NetworkCommissioningStatus.Success) {
738
+ throw new CommissioningError(`Commissionee failed to add Thread network: ${addDebugText}`);
739
+ }
740
+ if (networkIndex === void 0) {
741
+ throw new CommissioningError(`Commissionee did not return network index`);
742
+ }
743
+ logger.debug(
744
+ `Commissionee added Thread network ${this.#commissioningOptions.threadNetwork.networkName} with network index ${networkIndex}`
745
+ );
746
+ const updatedNetworks = await networkCommissioningClusterClient.getNetworksAttribute();
747
+ if (updatedNetworks[networkIndex] === void 0) {
748
+ throw new CommissioningError(`Commissionee did not return network with index ${networkIndex}`);
749
+ }
750
+ const { networkId, connected } = updatedNetworks[networkIndex];
751
+ if (connected) {
752
+ logger.debug(
753
+ `Commissionee is already connected to Thread network ${this.#commissioningOptions.threadNetwork.networkName} (networkId ${Bytes.toHex(networkId)})`
754
+ );
755
+ return {
756
+ code: 0 /* Success */,
757
+ breadcrumb: this.#lastBreadcrumb
758
+ };
759
+ }
760
+ const connectResult = await networkCommissioningClusterClient.connectNetwork(
761
+ {
762
+ networkId,
763
+ breadcrumb: this.#lastBreadcrumb++
764
+ },
765
+ { useExtendedFailSafeMessageResponseTimeout: true }
766
+ );
767
+ if (connectResult.networkingStatus !== NetworkCommissioning.NetworkCommissioningStatus.Success) {
768
+ throw new CommissioningError(
769
+ `Commissionee failed to connect to Thread network: ${connectResult.debugText}`
770
+ );
771
+ }
772
+ logger.debug(
773
+ `Commissionee successfully connected to Thread network ${this.#commissioningOptions.threadNetwork.networkName} (networkId ${Bytes.toHex(networkId)})`
774
+ );
775
+ return {
776
+ code: 0 /* Success */,
777
+ breadcrumb: this.#lastBreadcrumb
778
+ };
779
+ }
780
+ /**
781
+ * Step 13-14
782
+ * 13: Finalization of the Commissioning process begins. An Administrator configured in the ACL of the Commissionee
783
+ * by the Commissioner SHALL use Operational Discovery to discover the Commissionee. This Administrator MAY be
784
+ * the Commissioner itself, or another Node to which the Commissioner has delegated the task.
785
+ * 14: The Administrator SHALL open a CASE (see Section 4.13.2, “Certificate Authenticated Session Establishment
786
+ * (CASE)”) session with the Commissionee over the operational network.
787
+ *
788
+ */
789
+ async #reconnectWithDevice() {
790
+ logger.debug("Reconnecting with device ...");
791
+ const transitionResult = await this.#transitionToCase(this.#interactionClient.address);
792
+ if (transitionResult === void 0) {
793
+ logger.debug("CASE commissioning handled externally, terminating commissioning flow");
794
+ return {
795
+ code: 3 /* Stop */,
796
+ breadcrumb: this.#lastBreadcrumb
797
+ };
798
+ }
799
+ this.#interactionClient = transitionResult;
800
+ this.#clusterClients.clear();
801
+ logger.debug("Successfully reconnected with device ...");
802
+ return {
803
+ code: 0 /* Success */,
804
+ breadcrumb: this.#lastBreadcrumb
805
+ };
806
+ }
807
+ /**
808
+ * Step 15
809
+ * The Administrator having established a CASE session with the Commissionee over the operational network in the
810
+ * previous steps SHALL invoke the CommissioningComplete command (see Section 11.9.6.6,
811
+ * “CommissioningComplete Command”). A success response after invocation of the CommissioningComplete command ends
812
+ * the commissioning process.
813
+ */
814
+ async #completeCommissioning() {
815
+ const generalCommissioningClusterClient = this.#getClusterClient(GeneralCommissioning.Cluster);
816
+ this.#ensureGeneralCommissioningSuccess(
817
+ "commissioningComplete",
818
+ await generalCommissioningClusterClient.commissioningComplete(void 0, {
819
+ useExtendedFailSafeMessageResponseTimeout: true
820
+ })
821
+ );
822
+ return {
823
+ code: 0 /* Success */,
824
+ breadcrumb: this.#lastBreadcrumb
825
+ };
826
+ }
827
+ }
828
+ export {
829
+ CommissioningError,
830
+ ControllerCommissioningFlow
831
+ };
832
+ //# sourceMappingURL=ControllerCommissioningFlow.js.map