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