@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,32 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /** @see {@link MatterSpecification.v11.Core} § 4.17.3.2 */
7
+ export declare const BLE_MATTER_SERVICE_UUID = "fff6";
8
+ export declare const BLE_MATTER_C1_CHARACTERISTIC_UUID = "18EE2EF5-263D-4559-959F-4F9C429F9D11";
9
+ export declare const BLE_MATTER_C2_CHARACTERISTIC_UUID = "18EE2EF5-263D-4559-959F-4F9C429F9D12";
10
+ export declare const BLE_MATTER_C3_CHARACTERISTIC_UUID = "64630238-8772-45F2-B87D-748A83218F04";
11
+ export declare const BLE_MINIMUM_ATT_MTU = 20;
12
+ export declare const BLE_MAXIMUM_BTP_MTU = 244;
13
+ export declare const BTP_MAXIMUM_WINDOW_SIZE = 255;
14
+ /**
15
+ * The maximum amount of time after sending a BTP Session Handshake request to wait for a BTP Session Handshake response
16
+ * before closing the connection.
17
+ */
18
+ export declare const BTP_CONN_RSP_TIMEOUT_MS = 5000;
19
+ /** The maximum amount of time after receipt of a segment before a stand-alone ACK must be sent. */
20
+ export declare const BTP_ACK_TIMEOUT_MS = 15000;
21
+ export declare const BTP_SEND_ACK_TIMEOUT_MS: number;
22
+ /**
23
+ * The maximum amount of time no unique data has been sent over a BTP session before the Central Device must close the
24
+ * BTP session.
25
+ */
26
+ export declare const BTP_CONN_IDLE_TIMEOUT = 30000;
27
+ /**
28
+ * The maximum message size that can be transported in a Matter message via BTP.
29
+ * Seems the chip code in BTPEngine limits the size currently to "one pbuf" which should mean one UDP message.
30
+ */
31
+ export declare const BLE_MAX_MATTER_PAYLOAD_SIZE: number;
32
+ //# sourceMappingURL=BleConsts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BleConsts.d.ts","sourceRoot":"","sources":["../../../src/ble/BleConsts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,2DAA2D;AAC3D,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAC9C,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AACxF,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AACxF,eAAO,MAAM,iCAAiC,yCAAyC,CAAC;AAExF,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAE7C,mGAAmG;AACnG,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,eAAO,MAAM,uBAAuB,QAAyB,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,2BAA2B,QAAuB,CAAC"}
@@ -0,0 +1,53 @@
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 BleConsts_exports = {};
20
+ __export(BleConsts_exports, {
21
+ BLE_MATTER_C1_CHARACTERISTIC_UUID: () => BLE_MATTER_C1_CHARACTERISTIC_UUID,
22
+ BLE_MATTER_C2_CHARACTERISTIC_UUID: () => BLE_MATTER_C2_CHARACTERISTIC_UUID,
23
+ BLE_MATTER_C3_CHARACTERISTIC_UUID: () => BLE_MATTER_C3_CHARACTERISTIC_UUID,
24
+ BLE_MATTER_SERVICE_UUID: () => BLE_MATTER_SERVICE_UUID,
25
+ BLE_MAXIMUM_BTP_MTU: () => BLE_MAXIMUM_BTP_MTU,
26
+ BLE_MAX_MATTER_PAYLOAD_SIZE: () => BLE_MAX_MATTER_PAYLOAD_SIZE,
27
+ BLE_MINIMUM_ATT_MTU: () => BLE_MINIMUM_ATT_MTU,
28
+ BTP_ACK_TIMEOUT_MS: () => BTP_ACK_TIMEOUT_MS,
29
+ BTP_CONN_IDLE_TIMEOUT: () => BTP_CONN_IDLE_TIMEOUT,
30
+ BTP_CONN_RSP_TIMEOUT_MS: () => BTP_CONN_RSP_TIMEOUT_MS,
31
+ BTP_MAXIMUM_WINDOW_SIZE: () => BTP_MAXIMUM_WINDOW_SIZE,
32
+ BTP_SEND_ACK_TIMEOUT_MS: () => BTP_SEND_ACK_TIMEOUT_MS
33
+ });
34
+ module.exports = __toCommonJS(BleConsts_exports);
35
+ var import_general = require("#general");
36
+ /**
37
+ * @license
38
+ * Copyright 2022-2024 Matter.js Authors
39
+ * SPDX-License-Identifier: Apache-2.0
40
+ */
41
+ const BLE_MATTER_SERVICE_UUID = "fff6";
42
+ const BLE_MATTER_C1_CHARACTERISTIC_UUID = "18EE2EF5-263D-4559-959F-4F9C429F9D11";
43
+ const BLE_MATTER_C2_CHARACTERISTIC_UUID = "18EE2EF5-263D-4559-959F-4F9C429F9D12";
44
+ const BLE_MATTER_C3_CHARACTERISTIC_UUID = "64630238-8772-45F2-B87D-748A83218F04";
45
+ const BLE_MINIMUM_ATT_MTU = 20;
46
+ const BLE_MAXIMUM_BTP_MTU = 244;
47
+ const BTP_MAXIMUM_WINDOW_SIZE = 255;
48
+ const BTP_CONN_RSP_TIMEOUT_MS = 5e3;
49
+ const BTP_ACK_TIMEOUT_MS = 15e3;
50
+ const BTP_SEND_ACK_TIMEOUT_MS = BTP_ACK_TIMEOUT_MS / 3;
51
+ const BTP_CONN_IDLE_TIMEOUT = 3e4;
52
+ const BLE_MAX_MATTER_PAYLOAD_SIZE = import_general.MAX_UDP_MESSAGE_SIZE;
53
+ //# sourceMappingURL=BleConsts.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ble/BleConsts.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAqC;AANrC;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,0BAA0B;AAChC,MAAM,oCAAoC;AAC1C,MAAM,oCAAoC;AAC1C,MAAM,oCAAoC;AAE1C,MAAM,sBAAsB;AAC5B,MAAM,sBAAsB;AAE5B,MAAM,0BAA0B;AAMhC,MAAM,0BAA0B;AAGhC,MAAM,qBAAqB;AAE3B,MAAM,0BAA0B,qBAAqB;AAMrD,MAAM,wBAAwB;AAM9B,MAAM,8BAA8B;",
5
+ "names": []
6
+ }
@@ -0,0 +1,87 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { MatterError } from "#general";
7
+ export declare class BtpMatterError extends MatterError {
8
+ }
9
+ export declare class BtpProtocolError extends BtpMatterError {
10
+ }
11
+ export declare class BtpFlowError extends BtpMatterError {
12
+ }
13
+ export declare const BTP_SUPPORTED_VERSIONS: number[];
14
+ export declare class BtpSessionHandler {
15
+ private readonly role;
16
+ private readonly fragmentSize;
17
+ private readonly clientWindowSize;
18
+ private readonly writeBleCallback;
19
+ private readonly disconnectBleCallback;
20
+ private readonly handleMatterMessagePayload;
21
+ private currentIncomingSegmentedMsgLength;
22
+ private currentIncomingSegmentedPayload;
23
+ private prevIncomingSequenceNumber;
24
+ private prevIncomingAckNumber;
25
+ private readonly ackReceiveTimer;
26
+ private sequenceNumber;
27
+ private prevAckedSequenceNumber;
28
+ private readonly queuedOutgoingMatterMessages;
29
+ private sendInProgress;
30
+ private readonly sendAckTimer;
31
+ private isActive;
32
+ private idleTimeout;
33
+ /** Factory method to create a new BTPSessionHandler from a received handshake request */
34
+ static createFromHandshakeRequest(maxDataSize: number | undefined, handshakeRequestPayload: Uint8Array, writeBleCallback: (data: Uint8Array) => Promise<void>, disconnectBleCallback: () => Promise<void>, handleMatterMessagePayload: (data: Uint8Array) => Promise<void>): Promise<BtpSessionHandler>;
35
+ static createAsCentral(handshakeResponsePayload: Uint8Array, writeBleCallback: (data: Uint8Array) => Promise<void>, disconnectBleCallback: () => Promise<void>, handleMatterMessagePayload: (data: Uint8Array) => Promise<void>): Promise<BtpSessionHandler>;
36
+ /**
37
+ * Creates a new BTP session handler
38
+ *
39
+ * @param role The role of the BTP session handler
40
+ * @param btpVersion The BTP protocol version to use
41
+ * @param fragmentSize The fragment size to use for the messages
42
+ * @param clientWindowSize The client window size to use
43
+ * @param writeBleCallback Callback to write data to the BLE transport
44
+ * @param disconnectBleCallback Callback to disconnect the BLE transport
45
+ * @param handleMatterMessagePayload Callback to handle a Matter message payload
46
+ */
47
+ constructor(role: "central" | "peripheral", btpVersion: number, fragmentSize: number, clientWindowSize: number, writeBleCallback: (data: Uint8Array) => Promise<void>, disconnectBleCallback: () => Promise<void>, handleMatterMessagePayload: (data: Uint8Array) => Promise<void>);
48
+ /**
49
+ * Handle incoming data from the transport layer and hand over completely received matter messages to the
50
+ * ExchangeManager layer
51
+ *
52
+ * @param data ByteArray containing the data
53
+ */
54
+ handleIncomingBleData(data: Uint8Array): Promise<void>;
55
+ /**
56
+ * Send a Matter message to the transport layer, but before that encode it into a BTP packet and potentially split
57
+ * it into multiple segments. This Method is indirectly called by the ExchangeManager layer when a Matter message
58
+ * should be sent.
59
+ *
60
+ * @param data ByteArray containing the Matter message
61
+ */
62
+ sendMatterMessage(data: Uint8Array): Promise<void>;
63
+ private processSendQueue;
64
+ /**
65
+ * Close the BTP session. This method is called when the BLE transport is disconnected and so the BTP session gets closed.
66
+ */
67
+ close(): Promise<void>;
68
+ /**
69
+ * If this timer expires and the peer has a pending acknowledgement, the peer SHALL immediately send that
70
+ * acknowledgement
71
+ */
72
+ private btpSendAckTimeoutTriggered;
73
+ /**
74
+ * If a peer’s acknowledgement-received timer expires, or if a peer receives an invalid acknowledgement,
75
+ * the peer SHALL close the BTP session and report an error to the application.
76
+ */
77
+ private btpAckTimeoutTriggered;
78
+ /**
79
+ * Increments sequence number for the packets and round it off to 0 when it reaches the maximum limit.
80
+ */
81
+ getNextSequenceNumber(): number;
82
+ /**
83
+ * Checks if incoming ackNumber and sent sequence number exceeds the client window size or not.
84
+ */
85
+ private exceedsWindowSize;
86
+ }
87
+ //# sourceMappingURL=BtpSessionHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BtpSessionHandler.d.ts","sourceRoot":"","sources":["../../../src/ble/BtpSessionHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiD,WAAW,EAAQ,MAAM,UAAU,CAAC;AAW5F,qBAAa,cAAe,SAAQ,WAAW;CAAG;AAClD,qBAAa,gBAAiB,SAAQ,cAAc;CAAG;AACvD,qBAAa,YAAa,SAAQ,cAAc;CAAG;AAEnD,eAAO,MAAM,sBAAsB,UAAM,CAAC;AAK1C,qBAAa,iBAAiB;IAgItB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAErB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;IArI/C,OAAO,CAAC,iCAAiC,CAAqB;IAC9D,OAAO,CAAC,+BAA+B,CAAyB;IAChE,OAAO,CAAC,0BAA0B,CAAO;IACzC,OAAO,CAAC,qBAAqB,CAAM;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAE9B;IAEF,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,uBAAuB,CAAM;IACrC,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAA0C;IACvF,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAE3B;IACF,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,WAAW,CAGhB;IAEH,yFAAyF;WAC5E,0BAA0B,CACnC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,uBAAuB,EAAE,UAAU,EACnC,gBAAgB,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,EACrD,qBAAqB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC1C,0BAA0B,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAChE,OAAO,CAAC,iBAAiB,CAAC;WA+DhB,eAAe,CACxB,wBAAwB,EAAE,UAAU,EACpC,gBAAgB,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,EACrD,qBAAqB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC1C,0BAA0B,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC;IAoBnE;;;;;;;;;;OAUG;gBAEkB,IAAI,EAAE,SAAS,GAAG,YAAY,EAC/C,UAAU,EAAE,MAAM,EACD,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,EACrD,qBAAqB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC1C,0BAA0B,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC;IAepF;;;;;OAKG;IACU,qBAAqB,CAAC,IAAI,EAAE,UAAU;IAwHnD;;;;;;OAMG;IACU,iBAAiB,CAAC,IAAI,EAAE,UAAU;YAcjC,gBAAgB;IA4F9B;;OAEG;IACU,KAAK;IAWlB;;;OAGG;YACW,0BAA0B;IA0BxC;;;OAGG;YACW,sBAAsB;IAOpC;;OAEG;IACH,qBAAqB;IAQrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAM5B"}
@@ -0,0 +1,432 @@
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 BtpSessionHandler_exports = {};
20
+ __export(BtpSessionHandler_exports, {
21
+ BTP_SUPPORTED_VERSIONS: () => BTP_SUPPORTED_VERSIONS,
22
+ BtpFlowError: () => BtpFlowError,
23
+ BtpMatterError: () => BtpMatterError,
24
+ BtpProtocolError: () => BtpProtocolError,
25
+ BtpSessionHandler: () => BtpSessionHandler
26
+ });
27
+ module.exports = __toCommonJS(BtpSessionHandler_exports);
28
+ var import_general = require("#general");
29
+ var import_BtpCodec = require("../codec/BtpCodec.js");
30
+ var import_BleConsts = require("./BleConsts.js");
31
+ /**
32
+ * @license
33
+ * Copyright 2022-2024 Matter.js Authors
34
+ * SPDX-License-Identifier: Apache-2.0
35
+ */
36
+ class BtpMatterError extends import_general.MatterError {
37
+ }
38
+ class BtpProtocolError extends BtpMatterError {
39
+ }
40
+ class BtpFlowError extends BtpMatterError {
41
+ }
42
+ const BTP_SUPPORTED_VERSIONS = [4];
43
+ const MAXIMUM_SEQUENCE_NUMBER = 255;
44
+ const logger = import_general.Logger.get("BtpSessionHandler");
45
+ class BtpSessionHandler {
46
+ /**
47
+ * Creates a new BTP session handler
48
+ *
49
+ * @param role The role of the BTP session handler
50
+ * @param btpVersion The BTP protocol version to use
51
+ * @param fragmentSize The fragment size to use for the messages
52
+ * @param clientWindowSize The client window size to use
53
+ * @param writeBleCallback Callback to write data to the BLE transport
54
+ * @param disconnectBleCallback Callback to disconnect the BLE transport
55
+ * @param handleMatterMessagePayload Callback to handle a Matter message payload
56
+ */
57
+ constructor(role, btpVersion, fragmentSize, clientWindowSize, writeBleCallback, disconnectBleCallback, handleMatterMessagePayload) {
58
+ this.role = role;
59
+ this.fragmentSize = fragmentSize;
60
+ this.clientWindowSize = clientWindowSize;
61
+ this.writeBleCallback = writeBleCallback;
62
+ this.disconnectBleCallback = disconnectBleCallback;
63
+ this.handleMatterMessagePayload = handleMatterMessagePayload;
64
+ if (btpVersion !== 4) {
65
+ throw new BtpProtocolError(`Unsupported BTP version ${btpVersion}`);
66
+ }
67
+ if (role === "peripheral") {
68
+ this.ackReceiveTimer.start();
69
+ } else {
70
+ this.sendAckTimer.start();
71
+ this.prevIncomingSequenceNumber = 0;
72
+ this.prevIncomingAckNumber = -1;
73
+ this.sequenceNumber = -1;
74
+ }
75
+ }
76
+ currentIncomingSegmentedMsgLength;
77
+ currentIncomingSegmentedPayload;
78
+ prevIncomingSequenceNumber = 255;
79
+ // Incoming Sequence Number received. Set to 255 to start at 0
80
+ prevIncomingAckNumber = -1;
81
+ // Previous ackNumber received
82
+ ackReceiveTimer = import_general.Time.getTimer(
83
+ "BTP ack timeout",
84
+ import_BleConsts.BTP_ACK_TIMEOUT_MS,
85
+ () => this.btpAckTimeoutTriggered()
86
+ );
87
+ sequenceNumber = 0;
88
+ // Sequence number is set to 0 already for the handshake, next sequence number is 1
89
+ prevAckedSequenceNumber = -1;
90
+ // Previous (outgoing) Acked Sequence Number
91
+ queuedOutgoingMatterMessages = new Array();
92
+ sendInProgress = false;
93
+ sendAckTimer = import_general.Time.getTimer(
94
+ "BTP send timeout",
95
+ import_BleConsts.BTP_SEND_ACK_TIMEOUT_MS,
96
+ () => this.btpSendAckTimeoutTriggered()
97
+ );
98
+ isActive = true;
99
+ idleTimeout = import_general.Time.getTimer("Central Device Idle Timer", import_BleConsts.BTP_CONN_IDLE_TIMEOUT, async () => {
100
+ logger.info("Central Device Connection Idle Timer expired, closing BTP session");
101
+ await this.close();
102
+ });
103
+ /** Factory method to create a new BTPSessionHandler from a received handshake request */
104
+ static async createFromHandshakeRequest(maxDataSize, handshakeRequestPayload, writeBleCallback, disconnectBleCallback, handleMatterMessagePayload) {
105
+ const handshakeRequest = import_BtpCodec.BtpCodec.decodeBtpHandshakeRequest(handshakeRequestPayload);
106
+ const {
107
+ versions,
108
+ attMtu: handshakeMtu,
109
+ // Number excluding 3 header bytes
110
+ clientWindowSize
111
+ } = handshakeRequest;
112
+ logger.debug(`Received BTP handshake request:`, import_general.Diagnostic.dict({ maxDataSize, ...handshakeRequest }));
113
+ const version = BTP_SUPPORTED_VERSIONS.find((version2) => versions.includes(version2));
114
+ if (version === void 0) {
115
+ await disconnectBleCallback();
116
+ throw new BtpProtocolError(`No supported BTP version found in ${versions}`);
117
+ }
118
+ let attMtu = import_BleConsts.BLE_MINIMUM_ATT_MTU;
119
+ if (maxDataSize !== void 0) {
120
+ if (maxDataSize > import_BleConsts.BLE_MINIMUM_ATT_MTU) {
121
+ if (handshakeMtu <= import_BleConsts.BLE_MINIMUM_ATT_MTU) {
122
+ attMtu = Math.min(maxDataSize, import_BleConsts.BLE_MAXIMUM_BTP_MTU);
123
+ } else {
124
+ attMtu = Math.min(handshakeMtu, maxDataSize, import_BleConsts.BLE_MAXIMUM_BTP_MTU);
125
+ }
126
+ }
127
+ }
128
+ const fragmentSize = attMtu;
129
+ const windowSize = Math.min(import_BleConsts.BTP_MAXIMUM_WINDOW_SIZE, clientWindowSize);
130
+ const handshakeResponse = import_BtpCodec.BtpCodec.encodeBtpHandshakeResponse({
131
+ version,
132
+ attMtu,
133
+ windowSize
134
+ });
135
+ logger.debug(
136
+ `Sending BTP handshake response:`,
137
+ import_general.Diagnostic.dict({
138
+ version,
139
+ attMtu,
140
+ windowSize
141
+ })
142
+ );
143
+ const btpSession = new BtpSessionHandler(
144
+ "peripheral",
145
+ version,
146
+ fragmentSize,
147
+ windowSize,
148
+ writeBleCallback,
149
+ disconnectBleCallback,
150
+ handleMatterMessagePayload
151
+ );
152
+ await writeBleCallback(handshakeResponse);
153
+ return btpSession;
154
+ }
155
+ static async createAsCentral(handshakeResponsePayload, writeBleCallback, disconnectBleCallback, handleMatterMessagePayload) {
156
+ const handshakeRequest = import_BtpCodec.BtpCodec.decodeBtpHandshakeResponsePayload(handshakeResponsePayload);
157
+ logger.debug("Handshake request", import_general.Diagnostic.dict(handshakeRequest));
158
+ const { version, attMtu: handshakeMtu, windowSize } = handshakeRequest;
159
+ const fragmentSize = Math.min(handshakeMtu, import_BleConsts.BLE_MAXIMUM_BTP_MTU);
160
+ return new BtpSessionHandler(
161
+ "central",
162
+ version,
163
+ fragmentSize,
164
+ windowSize,
165
+ writeBleCallback,
166
+ disconnectBleCallback,
167
+ handleMatterMessagePayload
168
+ );
169
+ }
170
+ /**
171
+ * Handle incoming data from the transport layer and hand over completely received matter messages to the
172
+ * ExchangeManager layer
173
+ *
174
+ * @param data ByteArray containing the data
175
+ */
176
+ async handleIncomingBleData(data) {
177
+ if (!this.isActive) {
178
+ logger.debug(`BTP session is not active, ignoring incoming BLE data`);
179
+ return;
180
+ }
181
+ try {
182
+ if (data.length > this.fragmentSize) {
183
+ if (data.length > this.fragmentSize + 3) {
184
+ throw new BtpProtocolError(
185
+ `Received data ${data.length} bytes exceeds fragment size of ${this.fragmentSize} bytes`
186
+ );
187
+ } else {
188
+ logger.warn(
189
+ `Received data ${data.length} bytes exceeds fragment size of ${this.fragmentSize} bytes, still accepting`
190
+ );
191
+ }
192
+ }
193
+ const btpPacket = import_BtpCodec.BtpCodec.decodeBtpPacket(data);
194
+ logger.debug(`Received BTP packet: ${import_general.Logger.toJSON(btpPacket)}`);
195
+ const {
196
+ header: {
197
+ hasAckNumber,
198
+ isHandshakeRequest,
199
+ hasManagementOpcode,
200
+ isEndingSegment,
201
+ isBeginningSegment,
202
+ isContinuingSegment
203
+ },
204
+ payload: { ackNumber, sequenceNumber, messageLength, segmentPayload }
205
+ } = btpPacket;
206
+ if (isHandshakeRequest || hasManagementOpcode) {
207
+ throw new BtpProtocolError("BTP packet must not be a handshake request or have a management opcode.");
208
+ }
209
+ if (segmentPayload.length === 0 && !hasAckNumber) {
210
+ throw new BtpProtocolError("BTP packet must have a segment payload or an ack number.");
211
+ }
212
+ if (sequenceNumber !== (this.prevIncomingSequenceNumber + 1) % 256) {
213
+ logger.debug(
214
+ `sequenceNumber : ${sequenceNumber}, prevClientSequenceNumber : ${this.prevIncomingSequenceNumber}`
215
+ );
216
+ throw new BtpProtocolError("Expected and actual BTP packets sequence number does not match");
217
+ }
218
+ this.prevIncomingSequenceNumber = sequenceNumber;
219
+ if (!this.sendAckTimer.isRunning) {
220
+ this.sendAckTimer.start();
221
+ }
222
+ if (hasAckNumber && ackNumber !== void 0) {
223
+ if (ackNumber > this.sequenceNumber || this.exceedsWindowSize(this.prevIncomingAckNumber, ackNumber)) {
224
+ throw new BtpProtocolError(
225
+ `Invalid Ack Number, Ack Number: ${ackNumber}, Sequence Number: ${this.sequenceNumber}, Previous AckNumber: ${this.prevIncomingAckNumber}`
226
+ );
227
+ }
228
+ this.ackReceiveTimer.stop();
229
+ this.prevIncomingAckNumber = ackNumber;
230
+ if (ackNumber !== this.sequenceNumber) {
231
+ this.ackReceiveTimer.start();
232
+ }
233
+ }
234
+ if (isBeginningSegment) {
235
+ if (this.currentIncomingSegmentedPayload !== void 0) {
236
+ throw new BtpProtocolError(
237
+ `BTP message flow error! New beginning packet was received without previous message being completed.`
238
+ );
239
+ }
240
+ this.currentIncomingSegmentedMsgLength = messageLength;
241
+ this.currentIncomingSegmentedPayload = segmentPayload;
242
+ } else if (isContinuingSegment || isEndingSegment) {
243
+ if (this.currentIncomingSegmentedPayload === void 0) {
244
+ throw new BtpProtocolError(`BTP Continuing or ending packet received without beginning packet.`);
245
+ }
246
+ if (segmentPayload.length === 0) {
247
+ throw new BtpProtocolError(`BTP Continuing or ending packet received without payload.`);
248
+ }
249
+ this.currentIncomingSegmentedPayload = import_general.Bytes.concat(
250
+ this.currentIncomingSegmentedPayload,
251
+ segmentPayload
252
+ );
253
+ }
254
+ if (isEndingSegment) {
255
+ if (this.currentIncomingSegmentedMsgLength === void 0 || this.currentIncomingSegmentedPayload === void 0) {
256
+ throw new BtpProtocolError("BTP beginning packet missing but ending packet received.");
257
+ }
258
+ if (this.currentIncomingSegmentedPayload.length !== this.currentIncomingSegmentedMsgLength) {
259
+ throw new BtpProtocolError(
260
+ `BTP packet payload length does not match message length: ${this.currentIncomingSegmentedPayload.length} !== ${this.currentIncomingSegmentedMsgLength}`
261
+ );
262
+ }
263
+ const payloadToProcess = this.currentIncomingSegmentedPayload;
264
+ this.currentIncomingSegmentedMsgLength = void 0;
265
+ this.currentIncomingSegmentedPayload = void 0;
266
+ await this.handleMatterMessagePayload(payloadToProcess);
267
+ }
268
+ } catch (error) {
269
+ logger.error(`Error while handling incoming BTP data: ${error}`);
270
+ await this.close();
271
+ BtpProtocolError.accept(error);
272
+ }
273
+ }
274
+ /**
275
+ * Send a Matter message to the transport layer, but before that encode it into a BTP packet and potentially split
276
+ * it into multiple segments. This Method is indirectly called by the ExchangeManager layer when a Matter message
277
+ * should be sent.
278
+ *
279
+ * @param data ByteArray containing the Matter message
280
+ */
281
+ async sendMatterMessage(data) {
282
+ if (!this.isActive) {
283
+ throw new BtpFlowError("BTP session is not active");
284
+ }
285
+ logger.debug(`Got Matter message to send via BLE transport: ${import_general.Bytes.toHex(data)}`);
286
+ if (data.length === 0) {
287
+ throw new BtpFlowError("BTP packet must not be empty");
288
+ }
289
+ const dataReader = new import_general.DataReader(data, import_general.Endian.Little);
290
+ this.queuedOutgoingMatterMessages.push(dataReader);
291
+ await this.processSendQueue();
292
+ }
293
+ async processSendQueue() {
294
+ if (this.sendInProgress) return;
295
+ if (this.exceedsWindowSize(this.prevIncomingAckNumber, this.sequenceNumber)) return;
296
+ if (this.queuedOutgoingMatterMessages.length === 0) return;
297
+ this.sendInProgress = true;
298
+ while (this.queuedOutgoingMatterMessages.length > 0) {
299
+ const currentProcessedMessage = this.queuedOutgoingMatterMessages[0];
300
+ const remainingMessageLength = currentProcessedMessage.getRemainingBytesCount();
301
+ logger.debug(
302
+ "Sending BTP fragment: ",
303
+ import_general.Diagnostic.dict({
304
+ fullMessageLength: currentProcessedMessage.getLength(),
305
+ remainingLengthInBytes: remainingMessageLength
306
+ })
307
+ );
308
+ const hasAckNumber = this.prevIncomingSequenceNumber !== this.prevAckedSequenceNumber;
309
+ if (hasAckNumber) {
310
+ this.prevAckedSequenceNumber = this.prevIncomingSequenceNumber;
311
+ this.sendAckTimer.stop();
312
+ }
313
+ const isBeginningSegment = remainingMessageLength === currentProcessedMessage.getLength();
314
+ const btpHeaderLength = 2 + (isBeginningSegment ? 2 : 0) + (hasAckNumber ? 1 : 0);
315
+ const isEndingSegment = remainingMessageLength <= this.fragmentSize - btpHeaderLength;
316
+ const packetHeader = {
317
+ isHandshakeRequest: false,
318
+ hasManagementOpcode: false,
319
+ hasAckNumber,
320
+ isBeginningSegment,
321
+ isContinuingSegment: !isBeginningSegment,
322
+ isEndingSegment
323
+ };
324
+ logger.debug(
325
+ `Take up to ${this.fragmentSize - btpHeaderLength} bytes from Rest of message: ${remainingMessageLength}`
326
+ );
327
+ const segmentPayload = currentProcessedMessage.readByteArray(this.fragmentSize - btpHeaderLength);
328
+ const btpPacket = {
329
+ header: packetHeader,
330
+ payload: {
331
+ ackNumber: hasAckNumber ? this.prevIncomingSequenceNumber : void 0,
332
+ sequenceNumber: this.getNextSequenceNumber(),
333
+ messageLength: packetHeader.isBeginningSegment ? remainingMessageLength : void 0,
334
+ // remainingMessageLength if the fill length on beginning packet
335
+ segmentPayload
336
+ }
337
+ };
338
+ logger.debug(`Sending BTP packet: ${import_general.Logger.toJSON(btpPacket)}`);
339
+ const packet = import_BtpCodec.BtpCodec.encodeBtpPacket(btpPacket);
340
+ logger.debug(`Sending BTP packet raw: ${import_general.Bytes.toHex(packet)}`);
341
+ await this.writeBleCallback(packet);
342
+ if (!this.ackReceiveTimer.isRunning) {
343
+ this.ackReceiveTimer.start();
344
+ }
345
+ if (this.role === "central") {
346
+ if (this.idleTimeout.isRunning) {
347
+ this.idleTimeout.stop();
348
+ }
349
+ this.idleTimeout.start();
350
+ }
351
+ if (isEndingSegment) {
352
+ this.queuedOutgoingMatterMessages.shift();
353
+ }
354
+ if (this.exceedsWindowSize(this.prevIncomingAckNumber, this.sequenceNumber)) {
355
+ break;
356
+ }
357
+ }
358
+ this.sendInProgress = false;
359
+ }
360
+ /**
361
+ * Close the BTP session. This method is called when the BLE transport is disconnected and so the BTP session gets closed.
362
+ */
363
+ async close() {
364
+ this.sendAckTimer.stop();
365
+ this.ackReceiveTimer.stop();
366
+ this.idleTimeout.stop();
367
+ if (this.isActive) {
368
+ logger.debug(`Closing BTP session`);
369
+ this.isActive = false;
370
+ await this.disconnectBleCallback();
371
+ }
372
+ }
373
+ /**
374
+ * If this timer expires and the peer has a pending acknowledgement, the peer SHALL immediately send that
375
+ * acknowledgement
376
+ */
377
+ async btpSendAckTimeoutTriggered() {
378
+ if (this.prevIncomingSequenceNumber > this.prevAckedSequenceNumber) {
379
+ logger.debug(`Sending BTP ACK for sequence number ${this.prevIncomingSequenceNumber}`);
380
+ const btpPacket = {
381
+ header: {
382
+ isHandshakeRequest: false,
383
+ hasManagementOpcode: false,
384
+ hasAckNumber: true,
385
+ isBeginningSegment: false,
386
+ isContinuingSegment: false,
387
+ isEndingSegment: false
388
+ },
389
+ payload: {
390
+ ackNumber: this.prevIncomingSequenceNumber,
391
+ sequenceNumber: this.getNextSequenceNumber()
392
+ }
393
+ };
394
+ this.prevAckedSequenceNumber = this.prevIncomingSequenceNumber;
395
+ const packet = import_BtpCodec.BtpCodec.encodeBtpPacket(btpPacket);
396
+ await this.writeBleCallback(packet);
397
+ if (!this.ackReceiveTimer.isRunning) {
398
+ this.ackReceiveTimer.start();
399
+ }
400
+ }
401
+ }
402
+ /**
403
+ * If a peer’s acknowledgement-received timer expires, or if a peer receives an invalid acknowledgement,
404
+ * the peer SHALL close the BTP session and report an error to the application.
405
+ */
406
+ async btpAckTimeoutTriggered() {
407
+ if (this.prevIncomingAckNumber !== this.sequenceNumber) {
408
+ logger.warn("Acknowledgement for the sent sequence number was not received ... disconnect");
409
+ await this.close();
410
+ }
411
+ }
412
+ /**
413
+ * Increments sequence number for the packets and round it off to 0 when it reaches the maximum limit.
414
+ */
415
+ getNextSequenceNumber() {
416
+ this.sequenceNumber++;
417
+ if (this.sequenceNumber > MAXIMUM_SEQUENCE_NUMBER) {
418
+ this.sequenceNumber = 0;
419
+ }
420
+ return this.sequenceNumber;
421
+ }
422
+ /**
423
+ * Checks if incoming ackNumber and sent sequence number exceeds the client window size or not.
424
+ */
425
+ exceedsWindowSize(prevIncomingAckNumber, currentSequenceNumber) {
426
+ if (prevIncomingAckNumber > currentSequenceNumber) {
427
+ prevIncomingAckNumber = prevIncomingAckNumber % MAXIMUM_SEQUENCE_NUMBER - 1;
428
+ }
429
+ return currentSequenceNumber - prevIncomingAckNumber > this.clientWindowSize - 1;
430
+ }
431
+ }
432
+ //# sourceMappingURL=BtpSessionHandler.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ble/BtpSessionHandler.ts"],
4
+ "mappings": "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",
5
+ "names": ["version"]
6
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export * from "./Ble.js";
7
+ export * from "./BleConsts.js";
8
+ export * from "./BtpSessionHandler.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ble/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC"}