@matter/protocol 0.16.0-alpha.0-20251217-038f88085 → 0.16.0-alpha.0-20251221-21acf226d

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 (472) hide show
  1. package/dist/cjs/action/client/ClientBdx.d.ts +17 -0
  2. package/dist/cjs/action/client/ClientBdx.d.ts.map +1 -0
  3. package/dist/cjs/action/client/ClientBdx.js +22 -0
  4. package/dist/cjs/action/client/ClientBdx.js.map +6 -0
  5. package/dist/cjs/action/client/ClientInteraction.d.ts +10 -1
  6. package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
  7. package/dist/cjs/action/client/ClientInteraction.js +25 -2
  8. package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
  9. package/dist/cjs/action/client/QueuedClientInteraction.d.ts +11 -3
  10. package/dist/cjs/action/client/QueuedClientInteraction.d.ts.map +1 -1
  11. package/dist/cjs/action/client/QueuedClientInteraction.js +6 -2
  12. package/dist/cjs/action/client/QueuedClientInteraction.js.map +1 -1
  13. package/dist/cjs/action/client/index.d.ts +1 -0
  14. package/dist/cjs/action/client/index.d.ts.map +1 -1
  15. package/dist/cjs/action/client/index.js +1 -0
  16. package/dist/cjs/action/client/index.js.map +1 -1
  17. package/dist/cjs/action/request/Read.d.ts.map +1 -1
  18. package/dist/cjs/action/request/Read.js +2 -2
  19. package/dist/cjs/action/request/Read.js.map +1 -1
  20. package/dist/cjs/action/request/Write.js +4 -3
  21. package/dist/cjs/action/request/Write.js.map +1 -1
  22. package/dist/cjs/advertisement/ble/BleAdvertisement.d.ts +1 -1
  23. package/dist/cjs/advertisement/ble/BleAdvertisement.d.ts.map +1 -1
  24. package/dist/cjs/advertisement/ble/BleAdvertisement.js +2 -2
  25. package/dist/cjs/advertisement/ble/BleAdvertisement.js.map +1 -1
  26. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts +1 -1
  27. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.js +1 -1
  28. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +1 -1
  29. package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.d.ts.map +1 -1
  30. package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.js +3 -5
  31. package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.js.map +1 -1
  32. package/dist/cjs/bdx/BdxClient.d.ts +2 -0
  33. package/dist/cjs/bdx/BdxClient.d.ts.map +1 -1
  34. package/dist/cjs/bdx/BdxClient.js +6 -0
  35. package/dist/cjs/bdx/BdxClient.js.map +1 -1
  36. package/dist/cjs/bdx/BdxError.d.ts +2 -0
  37. package/dist/cjs/bdx/BdxError.d.ts.map +1 -1
  38. package/dist/cjs/bdx/BdxError.js +2 -0
  39. package/dist/cjs/bdx/BdxError.js.map +1 -1
  40. package/dist/cjs/bdx/BdxMessenger.d.ts +5 -1
  41. package/dist/cjs/bdx/BdxMessenger.d.ts.map +1 -1
  42. package/dist/cjs/bdx/BdxMessenger.js +12 -4
  43. package/dist/cjs/bdx/BdxMessenger.js.map +1 -1
  44. package/dist/cjs/bdx/BdxProtocol.d.ts +14 -7
  45. package/dist/cjs/bdx/BdxProtocol.d.ts.map +1 -1
  46. package/dist/cjs/bdx/BdxProtocol.js +81 -19
  47. package/dist/cjs/bdx/BdxProtocol.js.map +1 -1
  48. package/dist/cjs/bdx/BdxSession.d.ts +10 -3
  49. package/dist/cjs/bdx/BdxSession.d.ts.map +1 -1
  50. package/dist/cjs/bdx/BdxSession.js +33 -8
  51. package/dist/cjs/bdx/BdxSession.js.map +1 -1
  52. package/dist/cjs/bdx/BdxSessionConfiguration.d.ts +16 -1
  53. package/dist/cjs/bdx/BdxSessionConfiguration.d.ts.map +1 -1
  54. package/dist/cjs/bdx/BdxSessionConfiguration.js +6 -1
  55. package/dist/cjs/bdx/BdxSessionConfiguration.js.map +1 -1
  56. package/dist/cjs/bdx/FileDesignator.d.ts +15 -1
  57. package/dist/cjs/bdx/FileDesignator.d.ts.map +1 -1
  58. package/dist/cjs/bdx/FileDesignator.js +28 -2
  59. package/dist/cjs/bdx/FileDesignator.js.map +1 -1
  60. package/dist/cjs/bdx/PersistedFileDesignator.d.ts +10 -2
  61. package/dist/cjs/bdx/PersistedFileDesignator.d.ts.map +1 -1
  62. package/dist/cjs/bdx/PersistedFileDesignator.js +23 -5
  63. package/dist/cjs/bdx/PersistedFileDesignator.js.map +1 -1
  64. package/dist/cjs/bdx/ScopedStorage.d.ts +18 -0
  65. package/dist/cjs/bdx/ScopedStorage.d.ts.map +1 -0
  66. package/dist/cjs/bdx/ScopedStorage.js +36 -0
  67. package/dist/cjs/bdx/ScopedStorage.js.map +6 -0
  68. package/dist/cjs/bdx/bdx-session-initiator.d.ts.map +1 -1
  69. package/dist/cjs/bdx/bdx-session-initiator.js +10 -2
  70. package/dist/cjs/bdx/bdx-session-initiator.js.map +1 -1
  71. package/dist/cjs/bdx/flow/DrivenSendingFlow.d.ts.map +1 -1
  72. package/dist/cjs/bdx/flow/DrivenSendingFlow.js +2 -0
  73. package/dist/cjs/bdx/flow/DrivenSendingFlow.js.map +1 -1
  74. package/dist/cjs/bdx/flow/DrivingReceivingFlow.d.ts.map +1 -1
  75. package/dist/cjs/bdx/flow/DrivingReceivingFlow.js +1 -0
  76. package/dist/cjs/bdx/flow/DrivingReceivingFlow.js.map +1 -1
  77. package/dist/cjs/bdx/flow/Flow.d.ts +7 -0
  78. package/dist/cjs/bdx/flow/Flow.d.ts.map +1 -1
  79. package/dist/cjs/bdx/flow/Flow.js +22 -1
  80. package/dist/cjs/bdx/flow/Flow.js.map +1 -1
  81. package/dist/cjs/bdx/flow/FollowingReceivingFlow.d.ts.map +1 -1
  82. package/dist/cjs/bdx/flow/FollowingReceivingFlow.js +3 -0
  83. package/dist/cjs/bdx/flow/FollowingReceivingFlow.js.map +1 -1
  84. package/dist/cjs/bdx/flow/FollowingSendingFlow.d.ts.map +1 -1
  85. package/dist/cjs/bdx/flow/FollowingSendingFlow.js +1 -0
  86. package/dist/cjs/bdx/flow/FollowingSendingFlow.js.map +1 -1
  87. package/dist/cjs/bdx/flow/OutboundFlow.d.ts.map +1 -1
  88. package/dist/cjs/bdx/flow/OutboundFlow.js +1 -0
  89. package/dist/cjs/bdx/flow/OutboundFlow.js.map +1 -1
  90. package/dist/cjs/bdx/index.d.ts +1 -0
  91. package/dist/cjs/bdx/index.d.ts.map +1 -1
  92. package/dist/cjs/bdx/index.js +1 -0
  93. package/dist/cjs/bdx/index.js.map +1 -1
  94. package/dist/cjs/certificate/kinds/Icac.d.ts.map +1 -1
  95. package/dist/cjs/certificate/kinds/Icac.js +1 -7
  96. package/dist/cjs/certificate/kinds/Icac.js.map +1 -1
  97. package/dist/cjs/certificate/kinds/Rcac.d.ts +1 -0
  98. package/dist/cjs/certificate/kinds/Rcac.d.ts.map +1 -1
  99. package/dist/cjs/certificate/kinds/Rcac.js +3 -0
  100. package/dist/cjs/certificate/kinds/Rcac.js.map +1 -1
  101. package/dist/cjs/certificate/kinds/definitions/operational.d.ts +1 -1
  102. package/dist/cjs/certificate/kinds/definitions/operational.js +1 -1
  103. package/dist/cjs/certificate/kinds/definitions/operational.js.map +1 -1
  104. package/dist/cjs/common/FailsafeContext.js +2 -2
  105. package/dist/cjs/common/FailsafeContext.js.map +1 -1
  106. package/dist/cjs/dcl/DclClient.d.ts.map +1 -1
  107. package/dist/cjs/dcl/DclClient.js +1 -2
  108. package/dist/cjs/dcl/DclClient.js.map +1 -1
  109. package/dist/cjs/dcl/DclOtaUpdateService.d.ts +30 -31
  110. package/dist/cjs/dcl/DclOtaUpdateService.d.ts.map +1 -1
  111. package/dist/cjs/dcl/DclOtaUpdateService.js +191 -92
  112. package/dist/cjs/dcl/DclOtaUpdateService.js.map +2 -2
  113. package/dist/cjs/dcl/index.d.ts +0 -3
  114. package/dist/cjs/dcl/index.d.ts.map +1 -1
  115. package/dist/cjs/dcl/index.js +0 -3
  116. package/dist/cjs/dcl/index.js.map +1 -1
  117. package/dist/cjs/fabric/Fabric.d.ts +53 -9
  118. package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
  119. package/dist/cjs/fabric/Fabric.js +59 -32
  120. package/dist/cjs/fabric/Fabric.js.map +1 -1
  121. package/dist/cjs/fabric/FabricAuthority.js +1 -1
  122. package/dist/cjs/fabric/FabricAuthority.js.map +1 -1
  123. package/dist/cjs/fabric/FabricManager.d.ts +14 -5
  124. package/dist/cjs/fabric/FabricManager.d.ts.map +1 -1
  125. package/dist/cjs/fabric/FabricManager.js +63 -42
  126. package/dist/cjs/fabric/FabricManager.js.map +1 -1
  127. package/dist/cjs/groups/FabricGroups.d.ts.map +1 -1
  128. package/dist/cjs/groups/FabricGroups.js +4 -8
  129. package/dist/cjs/groups/FabricGroups.js.map +1 -1
  130. package/dist/cjs/index.d.ts +1 -0
  131. package/dist/cjs/index.d.ts.map +1 -1
  132. package/dist/cjs/index.js +1 -0
  133. package/dist/cjs/index.js.map +1 -1
  134. package/dist/cjs/interaction/InteractionMessenger.d.ts +1 -106
  135. package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
  136. package/dist/cjs/interaction/InteractionMessenger.js +2 -143
  137. package/dist/cjs/interaction/InteractionMessenger.js.map +2 -2
  138. package/dist/cjs/interaction/index.d.ts +0 -1
  139. package/dist/cjs/interaction/index.d.ts.map +1 -1
  140. package/dist/cjs/interaction/index.js +0 -1
  141. package/dist/cjs/interaction/index.js.map +1 -1
  142. package/dist/cjs/mdns/MdnsClient.d.ts +4 -4
  143. package/dist/cjs/mdns/MdnsClient.d.ts.map +1 -1
  144. package/dist/cjs/mdns/MdnsClient.js +12 -15
  145. package/dist/cjs/mdns/MdnsClient.js.map +1 -1
  146. package/dist/cjs/mdns/MdnsConsts.d.ts +3 -3
  147. package/dist/cjs/mdns/MdnsConsts.d.ts.map +1 -1
  148. package/dist/cjs/mdns/MdnsConsts.js +3 -2
  149. package/dist/cjs/mdns/MdnsConsts.js.map +1 -1
  150. package/dist/{esm/dcl → cjs/ota}/OtaImageHeader.d.ts.map +1 -1
  151. package/dist/cjs/{dcl → ota}/OtaImageHeader.js.map +1 -1
  152. package/dist/cjs/{dcl → ota}/OtaImageReader.d.ts.map +1 -1
  153. package/dist/cjs/{dcl → ota}/OtaImageReader.js +0 -2
  154. package/dist/cjs/ota/OtaImageReader.js.map +6 -0
  155. package/dist/{esm/dcl → cjs/ota}/OtaImageWriter.d.ts +1 -1
  156. package/dist/cjs/{dcl → ota}/OtaImageWriter.d.ts.map +1 -1
  157. package/dist/cjs/{dcl → ota}/OtaImageWriter.js.map +1 -1
  158. package/dist/cjs/ota/index.d.ts +9 -0
  159. package/dist/cjs/ota/index.d.ts.map +1 -0
  160. package/dist/cjs/ota/index.js +26 -0
  161. package/dist/cjs/ota/index.js.map +6 -0
  162. package/dist/cjs/peer/ControllerCommissioner.d.ts.map +1 -1
  163. package/dist/cjs/peer/ControllerCommissioner.js +5 -0
  164. package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
  165. package/dist/cjs/peer/ControllerCommissioningFlow.d.ts +11 -3
  166. package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  167. package/dist/cjs/peer/ControllerCommissioningFlow.js +119 -40
  168. package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
  169. package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
  170. package/dist/cjs/peer/PeerSet.js +17 -10
  171. package/dist/cjs/peer/PeerSet.js.map +1 -1
  172. package/dist/cjs/protocol/DeviceAdvertiser.js +3 -3
  173. package/dist/cjs/protocol/DeviceAdvertiser.js.map +1 -1
  174. package/dist/cjs/protocol/ExchangeProvider.d.ts +2 -2
  175. package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
  176. package/dist/cjs/protocol/ExchangeProvider.js +2 -2
  177. package/dist/cjs/protocol/ExchangeProvider.js.map +1 -1
  178. package/dist/cjs/protocol/MessageExchange.js +3 -3
  179. package/dist/cjs/protocol/MessageExchange.js.map +1 -1
  180. package/dist/cjs/protocol/ProtocolMocks.d.ts +2 -2
  181. package/dist/cjs/protocol/ProtocolMocks.d.ts.map +1 -1
  182. package/dist/cjs/protocol/ProtocolMocks.js +1 -1
  183. package/dist/cjs/protocol/ProtocolMocks.js.map +1 -1
  184. package/dist/cjs/session/NodeSession.d.ts.map +1 -1
  185. package/dist/cjs/session/NodeSession.js +2 -2
  186. package/dist/cjs/session/NodeSession.js.map +1 -1
  187. package/dist/cjs/session/Session.d.ts.map +1 -1
  188. package/dist/cjs/session/Session.js +1 -0
  189. package/dist/cjs/session/Session.js.map +1 -1
  190. package/dist/cjs/session/SessionManager.js +2 -2
  191. package/dist/cjs/session/SessionManager.js.map +1 -1
  192. package/dist/cjs/session/SessionParameters.d.ts.map +1 -1
  193. package/dist/cjs/session/SessionParameters.js +7 -1
  194. package/dist/cjs/session/SessionParameters.js.map +1 -1
  195. package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -1
  196. package/dist/cjs/session/pase/PaseServer.js +1 -0
  197. package/dist/cjs/session/pase/PaseServer.js.map +1 -1
  198. package/dist/esm/action/client/ClientBdx.d.ts +17 -0
  199. package/dist/esm/action/client/ClientBdx.d.ts.map +1 -0
  200. package/dist/esm/action/client/ClientBdx.js +6 -0
  201. package/dist/esm/action/client/ClientBdx.js.map +6 -0
  202. package/dist/esm/action/client/ClientInteraction.d.ts +10 -1
  203. package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
  204. package/dist/esm/action/client/ClientInteraction.js +24 -1
  205. package/dist/esm/action/client/ClientInteraction.js.map +1 -1
  206. package/dist/esm/action/client/QueuedClientInteraction.d.ts +11 -3
  207. package/dist/esm/action/client/QueuedClientInteraction.d.ts.map +1 -1
  208. package/dist/esm/action/client/QueuedClientInteraction.js +5 -1
  209. package/dist/esm/action/client/QueuedClientInteraction.js.map +1 -1
  210. package/dist/esm/action/client/index.d.ts +1 -0
  211. package/dist/esm/action/client/index.d.ts.map +1 -1
  212. package/dist/esm/action/client/index.js +1 -0
  213. package/dist/esm/action/client/index.js.map +1 -1
  214. package/dist/esm/action/request/Read.d.ts.map +1 -1
  215. package/dist/esm/action/request/Read.js +2 -2
  216. package/dist/esm/action/request/Read.js.map +1 -1
  217. package/dist/esm/action/request/Write.js +4 -3
  218. package/dist/esm/action/request/Write.js.map +1 -1
  219. package/dist/esm/advertisement/ble/BleAdvertisement.d.ts +1 -1
  220. package/dist/esm/advertisement/ble/BleAdvertisement.d.ts.map +1 -1
  221. package/dist/esm/advertisement/ble/BleAdvertisement.js +2 -2
  222. package/dist/esm/advertisement/ble/BleAdvertisement.js.map +1 -1
  223. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts +1 -1
  224. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js +1 -1
  225. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +1 -1
  226. package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.d.ts.map +1 -1
  227. package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.js +4 -6
  228. package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.js.map +1 -1
  229. package/dist/esm/bdx/BdxClient.d.ts +2 -0
  230. package/dist/esm/bdx/BdxClient.d.ts.map +1 -1
  231. package/dist/esm/bdx/BdxClient.js +6 -0
  232. package/dist/esm/bdx/BdxClient.js.map +1 -1
  233. package/dist/esm/bdx/BdxError.d.ts +2 -0
  234. package/dist/esm/bdx/BdxError.d.ts.map +1 -1
  235. package/dist/esm/bdx/BdxError.js +2 -0
  236. package/dist/esm/bdx/BdxError.js.map +1 -1
  237. package/dist/esm/bdx/BdxMessenger.d.ts +5 -1
  238. package/dist/esm/bdx/BdxMessenger.d.ts.map +1 -1
  239. package/dist/esm/bdx/BdxMessenger.js +14 -5
  240. package/dist/esm/bdx/BdxMessenger.js.map +1 -1
  241. package/dist/esm/bdx/BdxProtocol.d.ts +14 -7
  242. package/dist/esm/bdx/BdxProtocol.d.ts.map +1 -1
  243. package/dist/esm/bdx/BdxProtocol.js +82 -20
  244. package/dist/esm/bdx/BdxProtocol.js.map +1 -1
  245. package/dist/esm/bdx/BdxSession.d.ts +10 -3
  246. package/dist/esm/bdx/BdxSession.d.ts.map +1 -1
  247. package/dist/esm/bdx/BdxSession.js +34 -9
  248. package/dist/esm/bdx/BdxSession.js.map +1 -1
  249. package/dist/esm/bdx/BdxSessionConfiguration.d.ts +16 -1
  250. package/dist/esm/bdx/BdxSessionConfiguration.d.ts.map +1 -1
  251. package/dist/esm/bdx/BdxSessionConfiguration.js +6 -1
  252. package/dist/esm/bdx/BdxSessionConfiguration.js.map +1 -1
  253. package/dist/esm/bdx/FileDesignator.d.ts +15 -1
  254. package/dist/esm/bdx/FileDesignator.d.ts.map +1 -1
  255. package/dist/esm/bdx/FileDesignator.js +29 -3
  256. package/dist/esm/bdx/FileDesignator.js.map +1 -1
  257. package/dist/esm/bdx/PersistedFileDesignator.d.ts +10 -2
  258. package/dist/esm/bdx/PersistedFileDesignator.d.ts.map +1 -1
  259. package/dist/esm/bdx/PersistedFileDesignator.js +24 -6
  260. package/dist/esm/bdx/PersistedFileDesignator.js.map +1 -1
  261. package/dist/esm/bdx/ScopedStorage.d.ts +18 -0
  262. package/dist/esm/bdx/ScopedStorage.d.ts.map +1 -0
  263. package/dist/esm/bdx/ScopedStorage.js +16 -0
  264. package/dist/esm/bdx/ScopedStorage.js.map +6 -0
  265. package/dist/esm/bdx/bdx-session-initiator.d.ts.map +1 -1
  266. package/dist/esm/bdx/bdx-session-initiator.js +10 -2
  267. package/dist/esm/bdx/bdx-session-initiator.js.map +1 -1
  268. package/dist/esm/bdx/flow/DrivenSendingFlow.d.ts.map +1 -1
  269. package/dist/esm/bdx/flow/DrivenSendingFlow.js +2 -0
  270. package/dist/esm/bdx/flow/DrivenSendingFlow.js.map +1 -1
  271. package/dist/esm/bdx/flow/DrivingReceivingFlow.d.ts.map +1 -1
  272. package/dist/esm/bdx/flow/DrivingReceivingFlow.js +1 -0
  273. package/dist/esm/bdx/flow/DrivingReceivingFlow.js.map +1 -1
  274. package/dist/esm/bdx/flow/Flow.d.ts +7 -0
  275. package/dist/esm/bdx/flow/Flow.d.ts.map +1 -1
  276. package/dist/esm/bdx/flow/Flow.js +23 -2
  277. package/dist/esm/bdx/flow/Flow.js.map +1 -1
  278. package/dist/esm/bdx/flow/FollowingReceivingFlow.d.ts.map +1 -1
  279. package/dist/esm/bdx/flow/FollowingReceivingFlow.js +3 -0
  280. package/dist/esm/bdx/flow/FollowingReceivingFlow.js.map +1 -1
  281. package/dist/esm/bdx/flow/FollowingSendingFlow.d.ts.map +1 -1
  282. package/dist/esm/bdx/flow/FollowingSendingFlow.js +1 -0
  283. package/dist/esm/bdx/flow/FollowingSendingFlow.js.map +1 -1
  284. package/dist/esm/bdx/flow/OutboundFlow.d.ts.map +1 -1
  285. package/dist/esm/bdx/flow/OutboundFlow.js +1 -0
  286. package/dist/esm/bdx/flow/OutboundFlow.js.map +1 -1
  287. package/dist/esm/bdx/index.d.ts +1 -0
  288. package/dist/esm/bdx/index.d.ts.map +1 -1
  289. package/dist/esm/bdx/index.js +1 -0
  290. package/dist/esm/bdx/index.js.map +1 -1
  291. package/dist/esm/certificate/kinds/Icac.d.ts.map +1 -1
  292. package/dist/esm/certificate/kinds/Icac.js +1 -7
  293. package/dist/esm/certificate/kinds/Icac.js.map +1 -1
  294. package/dist/esm/certificate/kinds/Rcac.d.ts +1 -0
  295. package/dist/esm/certificate/kinds/Rcac.d.ts.map +1 -1
  296. package/dist/esm/certificate/kinds/Rcac.js +3 -0
  297. package/dist/esm/certificate/kinds/Rcac.js.map +1 -1
  298. package/dist/esm/certificate/kinds/definitions/operational.d.ts +1 -1
  299. package/dist/esm/certificate/kinds/definitions/operational.js +1 -1
  300. package/dist/esm/certificate/kinds/definitions/operational.js.map +1 -1
  301. package/dist/esm/common/FailsafeContext.js +2 -2
  302. package/dist/esm/common/FailsafeContext.js.map +1 -1
  303. package/dist/esm/dcl/DclClient.d.ts.map +1 -1
  304. package/dist/esm/dcl/DclClient.js +1 -2
  305. package/dist/esm/dcl/DclClient.js.map +1 -1
  306. package/dist/esm/dcl/DclOtaUpdateService.d.ts +30 -31
  307. package/dist/esm/dcl/DclOtaUpdateService.d.ts.map +1 -1
  308. package/dist/esm/dcl/DclOtaUpdateService.js +191 -93
  309. package/dist/esm/dcl/DclOtaUpdateService.js.map +2 -2
  310. package/dist/esm/dcl/index.d.ts +0 -3
  311. package/dist/esm/dcl/index.d.ts.map +1 -1
  312. package/dist/esm/dcl/index.js +0 -3
  313. package/dist/esm/dcl/index.js.map +1 -1
  314. package/dist/esm/fabric/Fabric.d.ts +53 -9
  315. package/dist/esm/fabric/Fabric.d.ts.map +1 -1
  316. package/dist/esm/fabric/Fabric.js +67 -33
  317. package/dist/esm/fabric/Fabric.js.map +1 -1
  318. package/dist/esm/fabric/FabricAuthority.js +1 -1
  319. package/dist/esm/fabric/FabricAuthority.js.map +1 -1
  320. package/dist/esm/fabric/FabricManager.d.ts +14 -5
  321. package/dist/esm/fabric/FabricManager.d.ts.map +1 -1
  322. package/dist/esm/fabric/FabricManager.js +66 -43
  323. package/dist/esm/fabric/FabricManager.js.map +1 -1
  324. package/dist/esm/groups/FabricGroups.d.ts.map +1 -1
  325. package/dist/esm/groups/FabricGroups.js +5 -9
  326. package/dist/esm/groups/FabricGroups.js.map +1 -1
  327. package/dist/esm/index.d.ts +1 -0
  328. package/dist/esm/index.d.ts.map +1 -1
  329. package/dist/esm/index.js +1 -0
  330. package/dist/esm/index.js.map +1 -1
  331. package/dist/esm/interaction/InteractionMessenger.d.ts +1 -106
  332. package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
  333. package/dist/esm/interaction/InteractionMessenger.js +2 -144
  334. package/dist/esm/interaction/InteractionMessenger.js.map +2 -2
  335. package/dist/esm/interaction/index.d.ts +0 -1
  336. package/dist/esm/interaction/index.d.ts.map +1 -1
  337. package/dist/esm/interaction/index.js +0 -1
  338. package/dist/esm/interaction/index.js.map +1 -1
  339. package/dist/esm/mdns/MdnsClient.d.ts +4 -4
  340. package/dist/esm/mdns/MdnsClient.d.ts.map +1 -1
  341. package/dist/esm/mdns/MdnsClient.js +13 -17
  342. package/dist/esm/mdns/MdnsClient.js.map +1 -1
  343. package/dist/esm/mdns/MdnsConsts.d.ts +3 -3
  344. package/dist/esm/mdns/MdnsConsts.d.ts.map +1 -1
  345. package/dist/esm/mdns/MdnsConsts.js +3 -2
  346. package/dist/esm/mdns/MdnsConsts.js.map +1 -1
  347. package/dist/{cjs/dcl → esm/ota}/OtaImageHeader.d.ts.map +1 -1
  348. package/dist/esm/{dcl → ota}/OtaImageHeader.js.map +1 -1
  349. package/dist/esm/{dcl → ota}/OtaImageReader.d.ts.map +1 -1
  350. package/dist/esm/{dcl → ota}/OtaImageReader.js +0 -3
  351. package/dist/esm/ota/OtaImageReader.js.map +6 -0
  352. package/dist/{cjs/dcl → esm/ota}/OtaImageWriter.d.ts +1 -1
  353. package/dist/esm/{dcl → ota}/OtaImageWriter.d.ts.map +1 -1
  354. package/dist/esm/{dcl → ota}/OtaImageWriter.js.map +1 -1
  355. package/dist/esm/ota/index.d.ts +9 -0
  356. package/dist/esm/ota/index.d.ts.map +1 -0
  357. package/dist/esm/ota/index.js +9 -0
  358. package/dist/esm/ota/index.js.map +6 -0
  359. package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -1
  360. package/dist/esm/peer/ControllerCommissioner.js +5 -0
  361. package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
  362. package/dist/esm/peer/ControllerCommissioningFlow.d.ts +11 -3
  363. package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  364. package/dist/esm/peer/ControllerCommissioningFlow.js +119 -41
  365. package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
  366. package/dist/esm/peer/PeerSet.d.ts.map +1 -1
  367. package/dist/esm/peer/PeerSet.js +17 -10
  368. package/dist/esm/peer/PeerSet.js.map +1 -1
  369. package/dist/esm/protocol/DeviceAdvertiser.js +3 -3
  370. package/dist/esm/protocol/DeviceAdvertiser.js.map +1 -1
  371. package/dist/esm/protocol/ExchangeProvider.d.ts +2 -2
  372. package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
  373. package/dist/esm/protocol/ExchangeProvider.js +2 -2
  374. package/dist/esm/protocol/ExchangeProvider.js.map +1 -1
  375. package/dist/esm/protocol/MessageExchange.js +3 -3
  376. package/dist/esm/protocol/MessageExchange.js.map +1 -1
  377. package/dist/esm/protocol/ProtocolMocks.d.ts +2 -2
  378. package/dist/esm/protocol/ProtocolMocks.d.ts.map +1 -1
  379. package/dist/esm/protocol/ProtocolMocks.js +11 -2
  380. package/dist/esm/protocol/ProtocolMocks.js.map +1 -1
  381. package/dist/esm/session/NodeSession.d.ts.map +1 -1
  382. package/dist/esm/session/NodeSession.js +3 -3
  383. package/dist/esm/session/NodeSession.js.map +1 -1
  384. package/dist/esm/session/Session.d.ts.map +1 -1
  385. package/dist/esm/session/Session.js +1 -0
  386. package/dist/esm/session/Session.js.map +1 -1
  387. package/dist/esm/session/SessionManager.js +2 -2
  388. package/dist/esm/session/SessionManager.js.map +1 -1
  389. package/dist/esm/session/SessionParameters.d.ts.map +1 -1
  390. package/dist/esm/session/SessionParameters.js +7 -1
  391. package/dist/esm/session/SessionParameters.js.map +1 -1
  392. package/dist/esm/session/pase/PaseServer.d.ts.map +1 -1
  393. package/dist/esm/session/pase/PaseServer.js +1 -0
  394. package/dist/esm/session/pase/PaseServer.js.map +1 -1
  395. package/package.json +6 -6
  396. package/src/action/client/ClientBdx.ts +19 -0
  397. package/src/action/client/ClientInteraction.ts +34 -4
  398. package/src/action/client/QueuedClientInteraction.ts +16 -12
  399. package/src/action/client/index.ts +1 -0
  400. package/src/action/request/Read.ts +8 -2
  401. package/src/action/request/Write.ts +3 -3
  402. package/src/advertisement/ble/BleAdvertisement.ts +4 -4
  403. package/src/advertisement/mdns/CommissionableMdnsAdvertisement.ts +1 -1
  404. package/src/advertisement/mdns/OperationalMdnsAdvertisement.ts +4 -6
  405. package/src/bdx/BdxClient.ts +8 -0
  406. package/src/bdx/BdxError.ts +2 -0
  407. package/src/bdx/BdxMessenger.ts +16 -5
  408. package/src/bdx/BdxProtocol.ts +104 -22
  409. package/src/bdx/BdxSession.ts +38 -16
  410. package/src/bdx/BdxSessionConfiguration.ts +24 -2
  411. package/src/bdx/FileDesignator.ts +31 -2
  412. package/src/bdx/PersistedFileDesignator.ts +35 -8
  413. package/src/bdx/ScopedStorage.ts +25 -0
  414. package/src/bdx/bdx-session-initiator.ts +11 -2
  415. package/src/bdx/flow/DrivenSendingFlow.ts +3 -0
  416. package/src/bdx/flow/DrivingReceivingFlow.ts +1 -0
  417. package/src/bdx/flow/Flow.ts +29 -2
  418. package/src/bdx/flow/FollowingReceivingFlow.ts +3 -0
  419. package/src/bdx/flow/FollowingSendingFlow.ts +2 -0
  420. package/src/bdx/flow/OutboundFlow.ts +1 -0
  421. package/src/bdx/index.ts +1 -0
  422. package/src/certificate/kinds/Icac.ts +4 -1
  423. package/src/certificate/kinds/Rcac.ts +4 -0
  424. package/src/certificate/kinds/definitions/operational.ts +1 -1
  425. package/src/common/FailsafeContext.ts +2 -2
  426. package/src/dcl/DclClient.ts +1 -2
  427. package/src/dcl/DclOtaUpdateService.ts +266 -125
  428. package/src/dcl/index.ts +0 -3
  429. package/src/fabric/Fabric.ts +118 -39
  430. package/src/fabric/FabricAuthority.ts +1 -1
  431. package/src/fabric/FabricManager.ts +76 -49
  432. package/src/groups/FabricGroups.ts +5 -9
  433. package/src/index.ts +1 -0
  434. package/src/interaction/InteractionMessenger.ts +2 -186
  435. package/src/interaction/index.ts +0 -1
  436. package/src/mdns/MdnsClient.ts +14 -19
  437. package/src/mdns/MdnsConsts.ts +5 -4
  438. package/src/{dcl → ota}/OtaImageReader.ts +1 -5
  439. package/src/{dcl → ota}/OtaImageWriter.ts +1 -1
  440. package/src/ota/index.ts +9 -0
  441. package/src/peer/ControllerCommissioner.ts +7 -0
  442. package/src/peer/ControllerCommissioningFlow.ts +161 -54
  443. package/src/peer/PeerSet.ts +25 -12
  444. package/src/protocol/DeviceAdvertiser.ts +5 -5
  445. package/src/protocol/ExchangeProvider.ts +3 -3
  446. package/src/protocol/MessageExchange.ts +3 -3
  447. package/src/protocol/ProtocolMocks.ts +13 -4
  448. package/src/session/NodeSession.ts +3 -3
  449. package/src/session/Session.ts +1 -0
  450. package/src/session/SessionManager.ts +2 -2
  451. package/src/session/SessionParameters.ts +10 -2
  452. package/src/session/pase/PaseServer.ts +2 -1
  453. package/dist/cjs/dcl/OtaImageReader.js.map +0 -6
  454. package/dist/cjs/interaction/SubscriptionClient.d.ts +0 -39
  455. package/dist/cjs/interaction/SubscriptionClient.d.ts.map +0 -1
  456. package/dist/cjs/interaction/SubscriptionClient.js +0 -93
  457. package/dist/cjs/interaction/SubscriptionClient.js.map +0 -6
  458. package/dist/esm/dcl/OtaImageReader.js.map +0 -6
  459. package/dist/esm/interaction/SubscriptionClient.d.ts +0 -39
  460. package/dist/esm/interaction/SubscriptionClient.d.ts.map +0 -1
  461. package/dist/esm/interaction/SubscriptionClient.js +0 -73
  462. package/dist/esm/interaction/SubscriptionClient.js.map +0 -6
  463. package/src/interaction/SubscriptionClient.ts +0 -104
  464. /package/dist/cjs/{dcl → ota}/OtaImageHeader.d.ts +0 -0
  465. /package/dist/cjs/{dcl → ota}/OtaImageHeader.js +0 -0
  466. /package/dist/cjs/{dcl → ota}/OtaImageReader.d.ts +0 -0
  467. /package/dist/cjs/{dcl → ota}/OtaImageWriter.js +0 -0
  468. /package/dist/esm/{dcl → ota}/OtaImageHeader.d.ts +0 -0
  469. /package/dist/esm/{dcl → ota}/OtaImageHeader.js +0 -0
  470. /package/dist/esm/{dcl → ota}/OtaImageReader.d.ts +0 -0
  471. /package/dist/esm/{dcl → ota}/OtaImageWriter.js +0 -0
  472. /package/src/{dcl → ota}/OtaImageHeader.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"BdxError.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE1D,4CAA4C;AAC5C,qBAAa,QAAS,SAAQ,WAAW;;gBAGzB,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,aAAqC;IAKxE,IAAI,IAAI,IAAI,aAAa,CAExB;IAED,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO;CAG3B;AAED,mFAAmF;AACnF,qBAAa,sBAAuB,SAAQ,WAAW;aAG/B,iBAAiB,EAAE,iBAAiB;aACpC,kBAAkB,EAAE,aAAa;gBAFjD,OAAO,EAAE,MAAM,EACC,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,aAAa;CAMxD"}
1
+ {"version":3,"file":"BdxError.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE1D,4CAA4C;AAC5C,qBAAa,QAAS,SAAQ,WAAW;;IAErC,gBAAgB,SAAK;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;gBAEd,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,aAAqC;IAKxE,IAAI,IAAI,IAAI,aAAa,CAExB;IAED,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO;CAG3B;AAED,mFAAmF;AACnF,qBAAa,sBAAuB,SAAQ,WAAW;aAG/B,iBAAiB,EAAE,iBAAiB;aACpC,kBAAkB,EAAE,aAAa;gBAFjD,OAAO,EAAE,MAAM,EACC,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,aAAa;CAMxD"}
@@ -31,6 +31,8 @@ var import_types = require("#types");
31
31
  */
32
32
  class BdxError extends import_general.MatterError {
33
33
  #code;
34
+ bytesTransferred = 0;
35
+ totalBytesLength;
34
36
  constructor(message, code = import_types.BdxStatusCode.Unknown) {
35
37
  super(`BDX error ${import_types.BdxStatusCode[code]}(${code}): ${message}`);
36
38
  this.#code = code;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/bdx/BdxError.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA4B;AAC5B,mBAAiD;AAPjD;AAAA;AAAA;AAAA;AAAA;AAUO,MAAM,iBAAiB,2BAAY;AAAA,EACtC;AAAA,EAEA,YAAY,SAAiB,OAAsB,2BAAc,SAAS;AACtE,UAAM,aAAa,2BAAc,IAAI,CAAC,IAAI,IAAI,MAAM,OAAO,EAAE;AAC7D,SAAK,QAAQ;AAAA,EACjB;AAAA,EAEA,IAAI,OAAsB;AACtB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,OAAO,GAAG,OAAgB;AACtB,WAAO,iBAAiB;AAAA,EAC5B;AACJ;AAGO,MAAM,+BAA+B,2BAAY;AAAA,EAC7C,YACH,SACgB,mBACA,oBAClB;AACE;AAAA,MACI,IAAI,+BAAkB,iBAAiB,CAAC,KAAK,iBAAiB,OAAO,2BAAc,kBAAkB,CAAC,KAAK,kBAAkB,MAAM,OAAO;AAAA,IAC9I;AALgB;AACA;AAAA,EAKpB;AACJ;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA4B;AAC5B,mBAAiD;AAPjD;AAAA;AAAA;AAAA;AAAA;AAUO,MAAM,iBAAiB,2BAAY;AAAA,EACtC;AAAA,EACA,mBAAmB;AAAA,EACnB;AAAA,EAEA,YAAY,SAAiB,OAAsB,2BAAc,SAAS;AACtE,UAAM,aAAa,2BAAc,IAAI,CAAC,IAAI,IAAI,MAAM,OAAO,EAAE;AAC7D,SAAK,QAAQ;AAAA,EACjB;AAAA,EAEA,IAAI,OAAsB;AACtB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,OAAO,GAAG,OAAgB;AACtB,WAAO,iBAAiB;AAAA,EAC5B;AACJ;AAGO,MAAM,+BAA+B,2BAAY;AAAA,EAC7C,YACH,SACgB,mBACA,oBAClB;AACE;AAAA,MACI,IAAI,+BAAkB,iBAAiB,CAAC,KAAK,iBAAiB,OAAO,2BAAc,kBAAkB,CAAC,KAAK,kBAAkB,MAAM,OAAO;AAAA,IAC9I;AALgB;AACA;AAAA,EAKpB;AACJ;",
5
5
  "names": []
6
6
  }
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { Message } from "#codec/MessageCodec.js";
7
7
  import { Duration } from "#general";
8
+ import { ExchangeProvider } from "#protocol/index.js";
8
9
  import { MessageExchange } from "#protocol/MessageExchange.js";
9
10
  import { BdxMessageType, BdxStatusCode } from "#types";
10
11
  import { BdxReceiveAccept, BdxSendAccept } from "./schema/BdxAcceptMessagesSchema.js";
@@ -15,13 +16,15 @@ export declare const BDX_TRANSFER_IDLE_TIMEOUT: Duration;
15
16
  /** Messenger class that contains all Bdx Messages */
16
17
  export declare class BdxMessenger {
17
18
  #private;
19
+ /** Creates a new BdxMessenger instance by initiating a new MessageExchange from the given ExchangeProvider. */
20
+ static create(exchangeProvider: ExchangeProvider, messageTimeout?: Duration): Promise<BdxMessenger>;
18
21
  /**
19
22
  * Creates a new BdxMessenger instance.
20
23
  * @param exchange Exchange to use for the messaging
21
24
  * @param messageTimeout Communication Timeout for the Bdx Messages, defaults to 5 minutes as defined for Matter OTA transfers
22
25
  */
23
26
  constructor(exchange: MessageExchange, messageTimeout?: Duration);
24
- get channel(): import("../index.js").MessageChannel;
27
+ get channel(): import("#protocol/index.js").MessageChannel;
25
28
  get exchange(): MessageExchange;
26
29
  get maxPayloadSize(): number;
27
30
  /**
@@ -67,6 +70,7 @@ export declare class BdxMessenger {
67
70
  sendError(code: BdxStatusCode): Promise<void>;
68
71
  protected throwIfErrorStatusReport(message: Message, logHint?: string): void;
69
72
  close(): Promise<void>;
73
+ [Symbol.asyncDispose](): Promise<void>;
70
74
  /**
71
75
  * Ensure that the value is a safe JavaScript "number" type and that it is not too large. Matter spec allows also
72
76
  * 64bit values, but they make little sense for now, so make sure we handle them as too large. MAX_SAFE_INTEGER is
@@ -1 +1 @@
1
- {"version":3,"file":"BdxMessenger.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxMessenger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAGH,QAAQ,EAMX,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAwC,MAAM,QAAQ,CAAC;AAE7F,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EACH,QAAQ,EACR,WAAW,EACX,cAAc,EACd,WAAW,EACX,aAAa,EACb,qBAAqB,EACxB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKpD,eAAO,MAAM,yBAAyB,UAAa,CAAC;AAEpD,qDAAqD;AACrD,qBAAa,YAAY;;IAIrB;;;;OAIG;gBACS,QAAQ,EAAE,eAAe,EAAE,cAAc,WAA4B;IAQjF,IAAI,OAAO,yCAEV;IAED,IAAI,QAAQ,oBAEX;IAED,IAAI,cAAc,WAEjB;IAED;;;;OAIG;IACG,WAAW,CACb,oBAAoB,EAAE,cAAc,EAAE,EACtC,OAAO,WAAuB,EAC9B,mBAAmB,CAAC,EAAE,MAAM,GAC7B,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAuBrB,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC;IAStC,8GAA8G;IACxG,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAQ5D,gHAAgH;IAC1G,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQlE,kDAAkD;IAC5C,cAAc,CAAC,OAAO,EAAE,aAAa;IAI3C,qDAAqD;IAC/C,iBAAiB,CAAC,OAAO,EAAE,gBAAgB;IAIjD,6CAA6C;IACvC,SAAS,CAAC,OAAO,EAAE,QAAQ;IAIjC,kDAAkD;IAC5C,cAAc,CAAC,OAAO,EAAE,aAAa;IAI3C,0DAA0D;IACpD,sBAAsB,CAAC,OAAO,EAAE,qBAAqB;IAI3D,gDAAgD;IAC1C,YAAY,CAAC,OAAO,EAAE,WAAW;IAIvC,gDAAgD;IAC1C,YAAY,CAAC,OAAO,EAAE,WAAW;IAIvC,kDAAkD;IAC5C,eAAe,CAAC,OAAO,EAAE,cAAc;IAI7C,mHAAmH;IAC7G,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAStF;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;IA0B1G,0EAA0E;IACpE,eAAe,IAAI,OAAO,CAAC,cAAc,CAAC;IAMhD,uEAAuE;IACjE,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC;IAM1C,6EAA6E;IAC7E,SAAS,CAAC,IAAI,EAAE,aAAa;IAsB7B,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM;IAwBrE,KAAK;IAIL;;;;OAIG;IACH,MAAM,CAAC,YAAY,CACf,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAClC,OAAO,SAAK,EACZ,YAAY,gBAAwB,GACrC,MAAM;CASZ"}
1
+ {"version":3,"file":"BdxMessenger.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxMessenger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAGH,QAAQ,EAMX,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAmB,cAAc,EAAE,aAAa,EAAwC,MAAM,QAAQ,CAAC;AAE9G,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EACH,QAAQ,EACR,WAAW,EACX,cAAc,EACd,WAAW,EACX,aAAa,EACb,qBAAqB,EACxB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKpD,eAAO,MAAM,yBAAyB,UAAa,CAAC;AAEpD,qDAAqD;AACrD,qBAAa,YAAY;;IAIrB,+GAA+G;WAClG,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,WAA4B;IAKlG;;;;OAIG;gBACS,QAAQ,EAAE,eAAe,EAAE,cAAc,WAA4B;IAQjF,IAAI,OAAO,gDAEV;IAED,IAAI,QAAQ,oBAEX;IAED,IAAI,cAAc,WAEjB;IAED;;;;OAIG;IACG,WAAW,CACb,oBAAoB,EAAE,cAAc,EAAE,EACtC,OAAO,WAAuB,EAC9B,mBAAmB,CAAC,EAAE,MAAM,GAC7B,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAuBrB,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC;IAStC,8GAA8G;IACxG,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAQ5D,gHAAgH;IAC1G,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQlE,kDAAkD;IAC5C,cAAc,CAAC,OAAO,EAAE,aAAa;IAI3C,qDAAqD;IAC/C,iBAAiB,CAAC,OAAO,EAAE,gBAAgB;IAIjD,6CAA6C;IACvC,SAAS,CAAC,OAAO,EAAE,QAAQ;IAIjC,kDAAkD;IAC5C,cAAc,CAAC,OAAO,EAAE,aAAa;IAI3C,0DAA0D;IACpD,sBAAsB,CAAC,OAAO,EAAE,qBAAqB;IAI3D,gDAAgD;IAC1C,YAAY,CAAC,OAAO,EAAE,WAAW;IAIvC,gDAAgD;IAC1C,YAAY,CAAC,OAAO,EAAE,WAAW;IAIvC,kDAAkD;IAC5C,eAAe,CAAC,OAAO,EAAE,cAAc;IAI7C,mHAAmH;IAC7G,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAStF;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;IA0B1G,0EAA0E;IACpE,eAAe,IAAI,OAAO,CAAC,cAAc,CAAC;IAMhD,uEAAuE;IACjE,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC;IAM1C,6EAA6E;IAC7E,SAAS,CAAC,IAAI,EAAE,aAAa;IAsB7B,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM;IAwBrE,KAAK;IAIL,CAAC,MAAM,CAAC,YAAY,CAAC;IAIrB;;;;OAIG;IACH,MAAM,CAAC,YAAY,CACf,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAClC,OAAO,SAAK,EACZ,YAAY,gBAAwB,GACrC,MAAM;CASZ"}
@@ -37,14 +37,19 @@ const BDX_TRANSFER_IDLE_TIMEOUT = (0, import_general.Minutes)(5);
37
37
  class BdxMessenger {
38
38
  #exchange;
39
39
  #messageTimeout;
40
+ /** Creates a new BdxMessenger instance by initiating a new MessageExchange from the given ExchangeProvider. */
41
+ static async create(exchangeProvider, messageTimeout = BDX_TRANSFER_IDLE_TIMEOUT) {
42
+ const exchange = await exchangeProvider.initiateExchange(import_types.BDX_PROTOCOL_ID);
43
+ return new this(exchange, messageTimeout);
44
+ }
40
45
  /**
41
46
  * Creates a new BdxMessenger instance.
42
47
  * @param exchange Exchange to use for the messaging
43
48
  * @param messageTimeout Communication Timeout for the Bdx Messages, defaults to 5 minutes as defined for Matter OTA transfers
44
49
  */
45
50
  constructor(exchange, messageTimeout = BDX_TRANSFER_IDLE_TIMEOUT) {
46
- if (!exchange.channel.isReliable) {
47
- throw new import_general.ImplementationError("Bdx Protocol requires a reliable channel for message exchange");
51
+ if (!exchange.session.isSecure) {
52
+ throw new import_general.ImplementationError("Bdx Protocol requires a secure session");
48
53
  }
49
54
  this.#messageTimeout = messageTimeout;
50
55
  this.#exchange = exchange;
@@ -65,12 +70,12 @@ class BdxMessenger {
65
70
  */
66
71
  async nextMessage(expectedMessageTypes, timeout = this.#messageTimeout, expectedMessageInfo) {
67
72
  logger.debug(
68
- `Waiting for Bdx ${expectedMessageTypes.map((t) => import_types.BdxMessageType[t]).join("/")} message with timeout ${timeout}ms`
73
+ `Waiting for Bdx ${expectedMessageTypes.map((t) => import_types.BdxMessageType[t]).join("/")} message with timeout ${import_general.Duration.format(timeout)}`
69
74
  );
70
75
  const message = await this.exchange.nextMessage({ timeout });
71
76
  const messageType = message.payloadHeader.messageType;
72
77
  if (expectedMessageInfo === void 0) {
73
- expectedMessageInfo = expectedMessageTypes.map((t) => `${t} (${import_types.BdxMessageType[t]})`).join(",");
78
+ expectedMessageInfo = expectedMessageTypes.map((t) => `${import_types.BdxMessageType[t]}#${t}`).join(",");
74
79
  }
75
80
  this.throwIfErrorStatusReport(message, expectedMessageInfo);
76
81
  if (!expectedMessageTypes.includes(messageType))
@@ -227,6 +232,9 @@ class BdxMessenger {
227
232
  close() {
228
233
  return this.#exchange.close();
229
234
  }
235
+ [Symbol.asyncDispose]() {
236
+ return this.close();
237
+ }
230
238
  /**
231
239
  * Ensure that the value is a safe JavaScript "number" type and that it is not too large. Matter spec allows also
232
240
  * 64bit values, but they make little sense for now, so make sure we handle them as too large. MAX_SAFE_INTEGER is
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/bdx/BdxMessenger.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,qBASO;AAEP,mBAAoF;AACpF,sBAAiD;AAWjD,wBAA2B;AAC3B,oCAAiC;AA/BjC;AAAA;AAAA;AAAA;AAAA;AAiCA,MAAM,SAAS,sBAAO,IAAI,cAAc;AAEjC,MAAM,gCAA4B,wBAAQ,CAAC;AAG3C,MAAM,aAAa;AAAA,EACtB;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,YAAY,UAA2B,iBAAiB,2BAA2B;AAC/E,QAAI,CAAC,SAAS,QAAQ,YAAY;AAC9B,YAAM,IAAI,mCAAoB,+DAA+D;AAAA,IACjG;AACA,SAAK,kBAAkB;AACvB,SAAK,YAAY;AAAA,EACrB;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK,UAAU;AAAA,EAC1B;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,UAAU;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,YACF,sBACA,UAAU,KAAK,iBACf,qBACwB;AACxB,WAAO;AAAA,MACH,mBAAmB,qBAAqB,IAAI,OAAK,4BAAe,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,yBAAyB,OAAO;AAAA,IACjH;AAEA,UAAM,UAAU,MAAM,KAAK,SAAS,YAAY,EAAE,QAAQ,CAAC;AAC3D,UAAM,cAAc,QAAQ,cAAc;AAC1C,QAAI,wBAAwB,QAAW;AACnC,4BAAsB,qBAAqB,IAAI,OAAK,GAAG,CAAC,KAAK,4BAAe,CAAC,CAAC,GAAG,EAAE,KAAK,GAAG;AAAA,IAC/F;AACA,SAAK,yBAAyB,SAAS,mBAAmB;AAC1D,QAAI,CAAC,qBAAqB,SAAS,WAAW;AAC1C,YAAM,IAAI;AAAA,QACN,qCAAqC,4BAAe,WAAW,KAAK,SAAS,IAAI,WAAW,eAAe,mBAAmB;AAAA,MAClI;AAEJ,WAAO;AAAA,MACH,gBAAgB,4BAAe,WAAW,CAAC,GAAG,QAAQ,QAAQ,aAAa,IAAI,SAAS,QAAQ,QAAQ,UAAU,UAAU,EAAE;AAAA,MAC9H,0BAAW,KAAK,OAAO;AAAA,IAC3B;AACA,WAAO,6BAAW,OAAO,aAAa,QAAQ,OAAO;AAAA,EACzD;AAAA,EAEA,MAAM,KAAK,YAA6B;AACpC,UAAM,EAAE,MAAM,aAAa,QAAQ,IAAI;AACvC,WAAO;AAAA,MACH,eAAe,4BAAe,WAAW,CAAC,GAAG,UAAU,WAAW,qBAAM,QAAQ,QAAQ,IAAI,IAAI,SAAS,QAAQ,KAAK,UAAU,UAAU,EAAE;AAAA,MAC5I;AAAA,IACJ;AACA,UAAM,KAAK,SAAS,KAAK,aAAa,6BAAW,OAAO,UAAU,CAAC;AAAA,EACvE;AAAA;AAAA,EAGA,MAAM,aAAa,SAA0C;AACzD,UAAM,KAAK,KAAK,EAAE,MAAM,4BAAe,UAAU,QAAQ,CAAC;AAE1D,UAAM,WAAW,MAAM,KAAK,YAAY,CAAC,4BAAe,UAAU,CAAC;AACnE,iCAAW,OAAO,UAAU,4BAAe,UAAU;AACrD,WAAO,SAAS;AAAA,EACpB;AAAA;AAAA,EAGA,MAAM,gBAAgB,SAA6C;AAC/D,UAAM,KAAK,KAAK,EAAE,MAAM,4BAAe,aAAa,QAAQ,CAAC;AAE7D,UAAM,WAAW,MAAM,KAAK,YAAY,CAAC,4BAAe,aAAa,CAAC;AACtE,iCAAW,OAAO,UAAU,4BAAe,aAAa;AACxD,WAAO,SAAS;AAAA,EACpB;AAAA;AAAA,EAGA,MAAM,eAAe,SAAwB;AACzC,UAAM,KAAK,KAAK,EAAE,MAAM,4BAAe,YAAY,QAAQ,CAAC;AAAA,EAChE;AAAA;AAAA,EAGA,MAAM,kBAAkB,SAA2B;AAC/C,UAAM,KAAK,KAAK,EAAE,MAAM,4BAAe,eAAe,QAAQ,CAAC;AAAA,EACnE;AAAA;AAAA,EAGA,MAAM,UAAU,SAAmB;AAC/B,UAAM,KAAK,KAAK,EAAE,MAAM,4BAAe,OAAO,QAAQ,CAAC;AAAA,EAC3D;AAAA;AAAA,EAGA,MAAM,eAAe,SAAwB;AACzC,UAAM,KAAK,KAAK,EAAE,MAAM,4BAAe,YAAY,QAAQ,CAAC;AAAA,EAChE;AAAA;AAAA,EAGA,MAAM,uBAAuB,SAAgC;AACzD,UAAM,KAAK,KAAK,EAAE,MAAM,4BAAe,oBAAoB,QAAQ,CAAC;AAAA,EACxE;AAAA;AAAA,EAGA,MAAM,aAAa,SAAsB;AACrC,UAAM,KAAK,KAAK,EAAE,MAAM,4BAAe,UAAU,QAAQ,CAAC;AAAA,EAC9D;AAAA;AAAA,EAGA,MAAM,aAAa,SAAsB;AACrC,UAAM,KAAK,KAAK,EAAE,MAAM,4BAAe,UAAU,QAAQ,CAAC;AAAA,EAC9D;AAAA;AAAA,EAGA,MAAM,gBAAgB,SAAyB;AAC3C,UAAM,KAAK,KAAK,EAAE,MAAM,4BAAe,aAAa,QAAQ,CAAC;AAAA,EACjE;AAAA;AAAA,EAGA,MAAM,YAAiF;AACnF,UAAM,QAAQ,MAAM,KAAK,YAAY,CAAC,4BAAe,OAAO,4BAAe,QAAQ,CAAC;AACpF,QAAI,6BAAW,GAAG,OAAO,4BAAe,KAAK,KAAK,MAAM,QAAQ,KAAK,eAAe,GAAG;AAEnF,YAAM,IAAI,yBAAS,wCAAwC,2BAAc,iBAAiB;AAAA,IAC9F;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,iBAAqG;AACvG,QAAI,WAAW,MAAM,KAAK,YAAY;AAAA,MAClC,4BAAe;AAAA,MACf,4BAAe;AAAA,MACf,4BAAe;AAAA,IACnB,CAAC;AACD,QAAI,8BAAkD;AACtD,QAAI,6BAAW,GAAG,UAAU,4BAAe,QAAQ,GAAG;AAClD,qCAA+B,SAAS,QAAQ,eAAe,KAAK;AACpE,iBAAW,MAAM,KAAK,YAAY,CAAC,4BAAe,YAAY,4BAAe,kBAAkB,CAAC;AAAA,IACpG;AAGA,QACI,gCAAgC,UAChC,SAAS,QAAQ,iBAAiB,6BACpC;AACE,YAAM,IAAI;AAAA,QACN,sDAAsD,SAAS,QAAQ,YAAY,eAAe,2BAA2B;AAAA,QAC7H,2BAAc;AAAA,MAClB;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA,EAGA,MAAM,kBAA2C;AAC7C,UAAM,WAAW,MAAM,KAAK,YAAY,CAAC,4BAAe,WAAW,CAAC;AACpE,iCAAW,OAAO,UAAU,4BAAe,WAAW;AACtD,WAAO,SAAS;AAAA,EACpB;AAAA;AAAA,EAGA,MAAM,eAAqC;AACvC,UAAM,WAAW,MAAM,KAAK,YAAY,CAAC,4BAAe,QAAQ,CAAC;AACjE,iCAAW,OAAO,UAAU,4BAAe,QAAQ;AACnD,WAAO,SAAS;AAAA,EACpB;AAAA;AAAA,EAGA,UAAU,MAAqB;AAC3B,WAAO,KAAK,kBAAkB,+BAAkB,SAAS,IAAI;AAAA,EACjE;AAAA;AAAA,EAGA,MAAM,kBAAkB,eAAkC,gBAA+B,aAAuB;AAC5G,UAAM,KAAK,UAAU;AAAA,MACjB,+BAAkB;AAAA,MAClB,+CAAiB,OAAO;AAAA,QACpB;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,MACD;AAAA,QACI;AAAA,QACA,YAAY;AAAA,UACR,eAAe,+BAAkB,aAAa,KAAK,0BAAW,IAAI,aAAa;AAAA,UAC/E,gBAAgB,2BAAc,cAAc,KAAK,0BAAW,IAAI,cAAc;AAAA,QAClF;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEU,yBAAyB,SAAkB,SAAkB;AACnE,UAAM;AAAA,MACF,eAAe,EAAE,YAAY;AAAA,MAC7B;AAAA,IACJ,IAAI;AACJ,QAAI,gBAAgB,+BAAkB,aAAc;AAEpD,UAAM,EAAE,eAAe,YAAY,eAAe,IAAI,+CAAiB,OAAO,OAAO;AACrF,QAAI,kBAAkB,+BAAkB,SAAS;AAC7C,YAAM,IAAI;AAAA,QACN,8CAA8C,UAAU,GAAG,UAAU,KAAK,OAAO,MAAM,EAAE;AAAA,QACzF;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AACA,QAAI,mBAAmB,2BAAc,SAAS;AAC1C,YAAM,IAAI;AAAA,QACN,sEAAsE,UAAU,KAAK,OAAO,MAAM,EAAE;AAAA,QACpG;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,QAAQ;AACJ,WAAO,KAAK,UAAU,MAAM;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,aACH,OACA,UAAU,IACV,eAAe,2BAAc,SACvB;AACN,QAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU;AACxD,YAAM,IAAI,6BAAc,GAAG,OAAO,IAAI,KAAK,kBAAkB;AAAA,IACjE;AACA,QAAI,QAAQ,OAAO,kBAAkB;AACjC,YAAM,IAAI,yBAAS,GAAG,OAAO,IAAI,KAAK,uCAAuC,YAAY;AAAA,IAC7F;AACA,WAAO,OAAO,KAAK;AAAA,EACvB;AACJ;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -3,23 +3,30 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { StorageContext } from "#general";
6
+ import { ScopedStorage } from "#bdx/ScopedStorage.js";
7
+ import { Duration, Environment, Environmental, Observable } from "#general";
8
+ import { PeerAddress } from "#peer/PeerAddress.js";
7
9
  import { MessageExchange } from "#protocol/MessageExchange.js";
8
10
  import { ProtocolHandler } from "#protocol/ProtocolHandler.js";
9
11
  import { Message } from "../codec/MessageCodec.js";
12
+ import { BdxSession } from "./BdxSession.js";
10
13
  import { BdxSessionConfiguration } from "./BdxSessionConfiguration.js";
11
14
  /** BDX protocol handler. */
12
15
  export declare class BdxProtocol implements ProtocolHandler {
13
16
  #private;
14
17
  readonly id = 2;
15
18
  readonly requiresSecureSession = true;
16
- /**
17
- * Create a new BDX protocol handler.
18
- * @param storage StorageContext to read or write files from/to.
19
- * @param options BDX options/limits to use for this session. us this to control how the transfer should behave.
20
- */
21
- constructor(storage: StorageContext, options?: BdxSessionConfiguration.Config);
19
+ static [Environmental.create](env: Environment): BdxProtocol;
20
+ get sessionStarted(): Observable<[session: BdxSession, scope: string], void>;
21
+ get sessionClosed(): Observable<[session: BdxSession, scope: string], void>;
22
+ enablePeerForScope(peer: PeerAddress, storage: ScopedStorage, config?: BdxProtocol.Config): boolean;
23
+ disablePeerForScope(peer: PeerAddress, storage: ScopedStorage, force?: boolean): Promise<void>;
22
24
  onNewExchange(exchange: MessageExchange, message: Message): Promise<void>;
23
25
  close(): Promise<void>;
24
26
  }
27
+ export declare namespace BdxProtocol {
28
+ interface Config extends BdxSessionConfiguration.Config {
29
+ messageTimeout?: Duration;
30
+ }
31
+ }
25
32
  //# sourceMappingURL=BdxProtocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BdxProtocol.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxProtocol.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAuB,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAGnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAKvE,4BAA4B;AAC5B,qBAAa,WAAY,YAAW,eAAe;;IAC/C,QAAQ,CAAC,EAAE,KAAmB;IAC9B,QAAQ,CAAC,qBAAqB,QAAQ;IAKtC;;;;OAIG;gBACS,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,uBAAuB,CAAC,MAAM;IAKvE,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO;IAiDzD,KAAK;CAOd"}
1
+ {"version":3,"file":"BdxProtocol.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxProtocol.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAoC,UAAU,EAAE,MAAM,UAAU,CAAC;AAC9G,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAKvE,4BAA4B;AAC5B,qBAAa,WAAY,YAAW,eAAe;;IAC/C,QAAQ,CAAC,EAAE,KAAmB;IAC9B,QAAQ,CAAC,qBAAqB,QAAQ;IAMtC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAO9C,IAAI,cAAc,2DAEjB;IAED,IAAI,aAAa,2DAEhB;IASD,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM;IAenF,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,UAAQ;IAiB5E,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO;IAyEzD,KAAK;CAOd;AAED,yBAAiB,WAAW,CAAC;IACzB,UAAiB,MAAO,SAAQ,uBAAuB,CAAC,MAAM;QAC1D,cAAc,CAAC,EAAE,QAAQ,CAAC;KAC7B;CACJ"}
@@ -21,7 +21,13 @@ __export(BdxProtocol_exports, {
21
21
  BdxProtocol: () => BdxProtocol
22
22
  });
23
23
  module.exports = __toCommonJS(BdxProtocol_exports);
24
+ var import_BdxError = require("#bdx/BdxError.js");
25
+ var import_FileDesignator = require("#bdx/FileDesignator.js");
26
+ var import_PersistedFileDesignator = require("#bdx/PersistedFileDesignator.js");
24
27
  var import_general = require("#general");
28
+ var import_PeerAddress = require("#peer/PeerAddress.js");
29
+ var import_ExchangeManager = require("#protocol/ExchangeManager.js");
30
+ var import_SecureSession = require("#session/SecureSession.js");
25
31
  var import_types = require("#types");
26
32
  var import_BdxMessenger = require("./BdxMessenger.js");
27
33
  var import_BdxSession = require("./BdxSession.js");
@@ -36,33 +42,87 @@ class BdxProtocol {
36
42
  id = import_types.BDX_PROTOCOL_ID;
37
43
  requiresSecureSession = true;
38
44
  #activeBdxSessions = /* @__PURE__ */ new Map();
39
- #storage;
40
- #bdxLimits;
41
- /**
42
- * Create a new BDX protocol handler.
43
- * @param storage StorageContext to read or write files from/to.
44
- * @param options BDX options/limits to use for this session. us this to control how the transfer should behave.
45
- */
46
- constructor(storage, options) {
47
- this.#storage = storage;
48
- this.#bdxLimits = options;
45
+ #peerScopes = /* @__PURE__ */ new Map();
46
+ #sessionStarted = (0, import_general.Observable)();
47
+ #sessionClosed = (0, import_general.Observable)();
48
+ static [import_general.Environmental.create](env) {
49
+ const instance = new BdxProtocol();
50
+ env.get(import_ExchangeManager.ExchangeManager).addProtocolHandler(instance);
51
+ env.set(BdxProtocol, instance);
52
+ return instance;
53
+ }
54
+ get sessionStarted() {
55
+ return this.#sessionStarted;
56
+ }
57
+ get sessionClosed() {
58
+ return this.#sessionClosed;
59
+ }
60
+ #peerScopeKey(peer, scope) {
61
+ if (scope === void 0) {
62
+ throw new import_general.MatterError("StorageContext must have a defined scope to be used with enableScope");
63
+ }
64
+ return `${peer.toString()}-${scope}`;
65
+ }
66
+ enablePeerForScope(peer, storage, config) {
67
+ const peerScopeStr = this.#peerScopeKey(peer, storage.scope);
68
+ const peerDetails = this.#peerScopes.get(peerScopeStr);
69
+ if (peerDetails !== void 0) {
70
+ const { storage: existingStorage, config: existingConfig } = peerDetails;
71
+ logger.warn(config, "vs", existingConfig);
72
+ if (existingStorage !== storage || (0, import_general.isDeepEqual)(config, existingConfig)) {
73
+ return false;
74
+ }
75
+ } else {
76
+ this.#peerScopes.set(peerScopeStr, { peer, storage, config });
77
+ }
78
+ return true;
79
+ }
80
+ async disablePeerForScope(peer, storage, force = false) {
81
+ if (this.#activeBdxSessions.size > 0) {
82
+ for (const { session, scope } of this.#activeBdxSessions.values()) {
83
+ if (storage.scope === scope && import_PeerAddress.PeerAddress.is(peer, session.peerAddress)) {
84
+ if (force) {
85
+ await session.close(new import_general.MatterError("BDX protocol scope disabled"));
86
+ break;
87
+ }
88
+ throw new import_general.MatterError(
89
+ `Cannot disable BDX for peer "${peer}" (scope: ${scope}) because there are active BDX sessions using it`
90
+ );
91
+ }
92
+ }
93
+ }
94
+ this.#peerScopes.delete(this.#peerScopeKey(peer, storage.scope));
49
95
  }
50
96
  async onNewExchange(exchange, message) {
51
97
  const initMessageType = message.payloadHeader.messageType;
52
- const messenger = new import_BdxMessenger.BdxMessenger(exchange);
98
+ import_SecureSession.SecureSession.assert(exchange.session);
53
99
  switch (initMessageType) {
54
100
  case import_types.BdxMessageType.SendInit:
55
101
  case import_types.BdxMessageType.ReceiveInit:
56
102
  logger.debug(
57
103
  `Initialize Session for ${import_types.BdxMessageType[initMessageType]} message on BDX protocol for exchange ${exchange.id}`
58
104
  );
105
+ await exchange.nextMessage();
59
106
  const { payload } = message;
60
- const bdxSession = import_BdxSession.BdxSession.fromMessage(this.#storage, messenger, {
107
+ const initMessage = new import_BdxInitMessagesSchema.BdxInitMessageSchema().decode(payload);
108
+ const { fileDesignator: messageFileDesignator } = initMessage;
109
+ const fd = new import_FileDesignator.FileDesignator(messageFileDesignator);
110
+ const [storageScope, fileDesignator] = fd.text.split("/");
111
+ const { storage, config } = this.#peerScopes.get(this.#peerScopeKey(exchange.session.peerAddress, storageScope)) ?? {};
112
+ if (storage === void 0 || fileDesignator === void 0) {
113
+ throw new import_BdxError.BdxError(
114
+ `No storage context found for BDX file designator "${fd.text}"`,
115
+ import_types.BdxStatusCode.FileDesignatorUnknown
116
+ );
117
+ }
118
+ const messenger = new import_BdxMessenger.BdxMessenger(exchange, config?.messageTimeout);
119
+ const bdxSession = import_BdxSession.BdxSession.fromMessage(messenger, {
61
120
  initMessageType,
62
- initMessage: new import_BdxInitMessagesSchema.BdxInitMessageSchema().decode(payload),
63
- ...this.#bdxLimits
121
+ initMessage,
122
+ fileDesignator: new import_PersistedFileDesignator.PersistedFileDesignator(fileDesignator, storage),
123
+ ...config
64
124
  });
65
- await this.#registerSession(messenger, bdxSession);
125
+ await this.#registerSession(messenger, bdxSession, storageScope);
66
126
  try {
67
127
  await bdxSession.processTransfer();
68
128
  } catch (error) {
@@ -73,27 +133,29 @@ class BdxProtocol {
73
133
  logger.warn(
74
134
  `Unexpected BDX message type ${import_types.BdxMessageType[initMessageType]} on new exchange ${exchange.id}`
75
135
  );
76
- await messenger.sendError(import_types.BdxStatusCode.UnexpectedMessage);
136
+ await new import_BdxMessenger.BdxMessenger(exchange).sendError(import_types.BdxStatusCode.UnexpectedMessage);
77
137
  }
78
138
  }
79
139
  /** Make sure only one BDX session can be active per exchange and that the exchange is closed with the BDX session. */
80
- async #registerSession(messenger, bdxSession) {
140
+ async #registerSession(messenger, bdxSession, scope) {
81
141
  const exchange = messenger.exchange;
82
142
  if (this.#activeBdxSessions.has(exchange)) {
83
143
  logger.warn(`BDX session for exchange ${exchange.id} already exists, sending error`);
84
144
  await messenger.sendError(import_types.BdxStatusCode.UnexpectedMessage);
85
145
  return;
86
146
  }
87
- this.#activeBdxSessions.set(exchange, bdxSession);
147
+ this.#activeBdxSessions.set(exchange, { session: bdxSession, scope });
148
+ this.#sessionStarted.emit(bdxSession, scope);
88
149
  bdxSession.closed.on(async () => {
89
150
  logger.debug(`BDX session for exchange ${exchange.id} closed`);
90
151
  this.#activeBdxSessions.delete(exchange);
91
152
  await exchange.close();
153
+ this.#sessionClosed.emit(bdxSession, scope);
92
154
  });
93
155
  }
94
156
  async close() {
95
157
  logger.debug(`Closing BDX protocol handler with ${this.#activeBdxSessions.size} active sessions`);
96
- for (const session of this.#activeBdxSessions.values()) {
158
+ for (const { session } of this.#activeBdxSessions.values()) {
97
159
  await session.close(new import_general.MatterError("BDX protocol handler closed"));
98
160
  }
99
161
  this.#activeBdxSessions.clear();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/bdx/BdxProtocol.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAoD;AAGpD,mBAA+D;AAE/D,0BAA6B;AAC7B,wBAA2B;AAE3B,mCAAqC;AAdrC;AAAA;AAAA;AAAA;AAAA;AAgBA,MAAM,SAAS,sBAAO,IAAI,aAAa;AAGhC,MAAM,YAAuC;AAAA,EACvC,KAAK;AAAA,EACL,wBAAwB;AAAA,EACxB,qBAAqB,oBAAI,IAAiC;AAAA,EACnE;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,YAAY,SAAyB,SAA0C;AAC3E,SAAK,WAAW;AAChB,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,MAAM,cAAc,UAA2B,SAAkB;AAC7D,UAAM,kBAAkB,QAAQ,cAAc;AAC9C,UAAM,YAAY,IAAI,iCAAa,QAAQ;AAE3C,YAAQ,iBAAiB;AAAA,MACrB,KAAK,4BAAe;AAAA,MACpB,KAAK,4BAAe;AAChB,eAAO;AAAA,UACH,0BAA0B,4BAAe,eAAe,CAAC,yCAAyC,SAAS,EAAE;AAAA,QACjH;AACA,cAAM,EAAE,QAAQ,IAAI;AACpB,cAAM,aAAa,6BAAW,YAAY,KAAK,UAAU,WAAW;AAAA,UAChE;AAAA,UACA,aAAa,IAAI,kDAAqB,EAAE,OAAO,OAAO;AAAA,UACtD,GAAG,KAAK;AAAA,QACZ,CAAC;AACD,cAAM,KAAK,iBAAiB,WAAW,UAAU;AAEjD,YAAI;AACA,gBAAM,WAAW,gBAAgB;AAAA,QACrC,SAAS,OAAO;AACZ,iBAAO,MAAM,kCAAkC,KAAK;AAAA,QACxD;AAEA;AAAA,MACJ;AACI,eAAO;AAAA,UACH,+BAA+B,4BAAe,eAAe,CAAC,oBAAoB,SAAS,EAAE;AAAA,QACjG;AACA,cAAM,UAAU,UAAU,2BAAc,iBAAiB;AAAA,IACjE;AAAA,EACJ;AAAA;AAAA,EAGA,MAAM,iBAAiB,WAAyB,YAAwB;AACpE,UAAM,WAAW,UAAU;AAC3B,QAAI,KAAK,mBAAmB,IAAI,QAAQ,GAAG;AACvC,aAAO,KAAK,4BAA4B,SAAS,EAAE,gCAAgC;AACnF,YAAM,UAAU,UAAU,2BAAc,iBAAiB;AACzD;AAAA,IACJ;AACA,SAAK,mBAAmB,IAAI,UAAU,UAAU;AAChD,eAAW,OAAO,GAAG,YAAY;AAC7B,aAAO,MAAM,4BAA4B,SAAS,EAAE,SAAS;AAC7D,WAAK,mBAAmB,OAAO,QAAQ;AACvC,YAAM,SAAS,MAAM;AAAA,IACzB,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,QAAQ;AACV,WAAO,MAAM,qCAAqC,KAAK,mBAAmB,IAAI,kBAAkB;AAChG,eAAW,WAAW,KAAK,mBAAmB,OAAO,GAAG;AACpD,YAAM,QAAQ,MAAM,IAAI,2BAAY,6BAA6B,CAAC;AAAA,IACtE;AACA,SAAK,mBAAmB,MAAM;AAAA,EAClC;AACJ;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -3,7 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { AsyncObservable, StorageContext } from "#general";
6
+ import { AsyncObservable, Observable } from "#general";
7
7
  import { BdxMessenger } from "./BdxMessenger.js";
8
8
  import { BdxSessionConfiguration } from "./BdxSessionConfiguration.js";
9
9
  /**
@@ -24,12 +24,19 @@ export declare class BdxSession {
24
24
  static asSender(messenger: BdxMessenger, options: BdxSessionConfiguration.SenderInitiatorOptions): BdxSession;
25
25
  /** Initializes a BdxSession as a receiver, means that we download data from the peer. */
26
26
  static asReceiver(messenger: BdxMessenger, options: BdxSessionConfiguration.InitiatorOptions): BdxSession;
27
- /** Initializes a BdxSession from an incoming *Init message. The message determines the direction of the transfer. */
28
- static fromMessage(storage: StorageContext, messenger: BdxMessenger, options: BdxSessionConfiguration.ReceiverOptions): BdxSession;
27
+ /**
28
+ * Initializes a BdxSession from an incoming *Init message. The message determines the direction of the transfer.
29
+ * The provided storages allow to map the file designator to a storage context depending on the path prefix in the
30
+ * file designator.
31
+ */
32
+ static fromMessage(messenger: BdxMessenger, options: BdxSessionConfiguration.ReceiverOptions): BdxSession;
29
33
  private constructor();
34
+ get progressInfo(): Observable<[bytesTransferred: number, totalBytesLength: number | undefined], void>;
35
+ get progressFinished(): Observable<[totalBytesTransferred: number], void>;
30
36
  /** Method called to start the session. It will end with a successful Transfer or with an error */
31
37
  processTransfer(): Promise<void>;
32
38
  get closed(): AsyncObservable<any[], void>;
39
+ get peerAddress(): import("../index.js").PeerAddress;
33
40
  close(error?: unknown): Promise<void>;
34
41
  }
35
42
  export declare namespace BdxSession { }
@@ -1 +1 @@
1
- {"version":3,"file":"BdxSession.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxSession.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAoC,cAAc,EAAE,MAAM,UAAU,CAAC;AAI7F,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAUvE;;;;;;;;;;;GAWG;AACH,qBAAa,UAAU;;IAUnB,mFAAmF;IACnF,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB,CAAC,sBAAsB,GAAG,UAAU;IAI7G,yFAAyF;IACzF,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB,CAAC,gBAAgB,GAAG,UAAU;IAIzG,qHAAqH;IACrH,MAAM,CAAC,WAAW,CACd,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,uBAAuB,CAAC,eAAe,GACjD,UAAU;IAkBb,OAAO;IAeP,kGAAkG;IAC5F,eAAe;IAmErB,IAAI,MAAM,iCAET;IAEK,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO;CAQ9B;AAED,yBAAiB,UAAU,CAAC,GAAE"}
1
+ {"version":3,"file":"BdxSession.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxSession.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAoC,UAAU,EAAE,MAAM,UAAU,CAAC;AAKzF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AASvE;;;;;;;;;;;GAWG;AACH,qBAAa,UAAU;;IAUnB,mFAAmF;IACnF,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB,CAAC,sBAAsB,GAAG,UAAU;IAI7G,yFAAyF;IACzF,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB,CAAC,gBAAgB,GAAG,UAAU;IAIzG;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB,CAAC,eAAe,GAAG,UAAU;IAezG,OAAO;IAkBP,IAAI,YAAY,uFAEf;IAED,IAAI,gBAAgB,sDAEnB;IAED,kGAAkG;IAC5F,eAAe;IA4ErB,IAAI,MAAM,iCAET;IAED,IAAI,WAAW,sCAGd;IAEK,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO;CAQ9B;AAED,yBAAiB,UAAU,CAAC,GAAE"}
@@ -22,6 +22,7 @@ __export(BdxSession_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(BdxSession_exports);
24
24
  var import_general = require("#general");
25
+ var import_SecureSession = require("#session/SecureSession.js");
25
26
  var import_types = require("#types");
26
27
  var import_bdx_session_initiator = require("./bdx-session-initiator.js");
27
28
  var import_BdxError = require("./BdxError.js");
@@ -31,7 +32,6 @@ var import_DrivingReceivingFlow = require("./flow/DrivingReceivingFlow.js");
31
32
  var import_Flow = require("./flow/Flow.js");
32
33
  var import_FollowingReceivingFlow = require("./flow/FollowingReceivingFlow.js");
33
34
  var import_FollowingSendingFlow = require("./flow/FollowingSendingFlow.js");
34
- var import_PersistedFileDesignator = require("./PersistedFileDesignator.js");
35
35
  /**
36
36
  * @license
37
37
  * Copyright 2022-2025 Matter.js Authors
@@ -45,6 +45,8 @@ class BdxSession {
45
45
  #isClosed = false;
46
46
  #config;
47
47
  #transferFlow;
48
+ #progressInfo = (0, import_general.Observable)();
49
+ #progressFinished = (0, import_general.Observable)();
48
50
  /** Initializes a BdxSession as a sender, means that we upload data to the peer. */
49
51
  static asSender(messenger, options) {
50
52
  return new BdxSession(messenger, { isSender: true, ...options });
@@ -53,19 +55,21 @@ class BdxSession {
53
55
  static asReceiver(messenger, options) {
54
56
  return new BdxSession(messenger, { isSender: false, ...options });
55
57
  }
56
- /** Initializes a BdxSession from an incoming *Init message. The message determines the direction of the transfer. */
57
- static fromMessage(storage, messenger, options) {
58
- const { initMessageType, initMessage } = options;
58
+ /**
59
+ * Initializes a BdxSession from an incoming *Init message. The message determines the direction of the transfer.
60
+ * The provided storages allow to map the file designator to a storage context depending on the path prefix in the
61
+ * file designator.
62
+ */
63
+ static fromMessage(messenger, options) {
64
+ const { initMessageType } = options;
59
65
  if (initMessageType !== import_types.BdxMessageType.SendInit && initMessageType !== import_types.BdxMessageType.ReceiveInit) {
60
66
  throw new import_BdxError.BdxError(
61
67
  `Invalid message type for BDX session initialization: ${import_types.BdxMessageType[initMessageType]} (${initMessageType})`,
62
68
  import_types.BdxStatusCode.UnexpectedMessage
63
69
  );
64
70
  }
65
- const { fileDesignator } = initMessage;
66
71
  return new BdxSession(messenger, {
67
72
  isSender: initMessageType === import_types.BdxMessageType.ReceiveInit,
68
- fileDesignator: new import_PersistedFileDesignator.PersistedFileDesignator(fileDesignator, storage),
69
73
  ...options
70
74
  });
71
75
  }
@@ -73,14 +77,23 @@ class BdxSession {
73
77
  this.#messenger = messenger;
74
78
  this.#config = new import_BdxSessionConfiguration.BdxSessionConfiguration(options);
75
79
  const exchange = messenger.exchange;
76
- if (!exchange.channel.isReliable) {
77
- throw new import_BdxError.BdxError("Bdx Protocol requires a reliable channel for message exchange");
80
+ if (!exchange.session.isSecure) {
81
+ throw new import_BdxError.BdxError("Bdx Protocol requires a secure session.");
78
82
  }
79
83
  exchange.closed.on(async () => {
84
+ if (this.#isClosed) {
85
+ return;
86
+ }
80
87
  logger.debug(`Closing BDX session for exchange ${exchange.id}`);
81
88
  await this.close();
82
89
  });
83
90
  }
91
+ get progressInfo() {
92
+ return this.#progressInfo;
93
+ }
94
+ get progressFinished() {
95
+ return this.#progressFinished;
96
+ }
84
97
  /** Method called to start the session. It will end with a successful Transfer or with an error */
85
98
  async processTransfer() {
86
99
  if (this.#started) {
@@ -102,6 +115,12 @@ class BdxSession {
102
115
  this.#started = true;
103
116
  try {
104
117
  this.#transferFlow = this.#initializeFlow(await (0, import_bdx_session_initiator.bdxSessionInitiator)(this.#messenger, this.#config));
118
+ this.#transferFlow.progressInfo.on(
119
+ (bytesTransferred, totalBytesLength) => this.#progressInfo.emit(bytesTransferred, totalBytesLength)
120
+ );
121
+ this.#transferFlow.progressFinished.on(
122
+ (totalBytesTransferred) => this.#progressFinished.emit(totalBytesTransferred)
123
+ );
105
124
  await this.#transferFlow.processTransfer();
106
125
  await this.close();
107
126
  } catch (error) {
@@ -109,6 +128,8 @@ class BdxSession {
109
128
  await this.#messenger.sendError(error.code);
110
129
  logger.warn(`BDX session failed with error:`, error);
111
130
  await this.close(error);
131
+ error.bytesTransferred = this.#transferFlow?.transferredBytes ?? 0;
132
+ error.totalBytesLength = this.#transferFlow?.dataLength;
112
133
  throw error;
113
134
  }
114
135
  }
@@ -141,6 +162,10 @@ class BdxSession {
141
162
  get closed() {
142
163
  return this.#closed;
143
164
  }
165
+ get peerAddress() {
166
+ import_SecureSession.SecureSession.assert(this.#messenger.exchange.session);
167
+ return this.#messenger.exchange.session.peerAddress;
168
+ }
144
169
  async close(error) {
145
170
  if (this.#isClosed) {
146
171
  return;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/bdx/BdxSession.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { FileDesignator } from "#bdx/FileDesignator.js";
6
7
  import { BdxMessageType } from "#types";
7
8
  import { Flow } from "./flow/Flow.js";
8
9
  import { PersistedFileDesignator } from "./PersistedFileDesignator.js";
@@ -14,6 +15,7 @@ export declare class BdxSessionConfiguration {
14
15
  get initMessage(): BdxInit | undefined;
15
16
  get isInitiator(): boolean;
16
17
  get fileDesignator(): PersistedFileDesignator;
18
+ get transferFileDesignator(): FileDesignator;
17
19
  get transferConfig(): BdxSessionConfiguration.Config;
18
20
  }
19
21
  export declare namespace BdxSessionConfiguration {
@@ -38,6 +40,10 @@ export declare namespace BdxSessionConfiguration {
38
40
  interface InitiatorOptions extends BdxSessionConfiguration.Config {
39
41
  /** FileDesignator to use for the session. The value is usually pre-determined with the peer. */
40
42
  fileDesignator: PersistedFileDesignator;
43
+ /**
44
+ * Optional file designator to use for the transfer. This can be used to separate the file designator used
45
+ * in BDX messages from the persisted file. */
46
+ transferFileDesignator?: FileDesignator;
41
47
  }
42
48
  interface SenderInitiatorOptions extends InitiatorOptions {
43
49
  /** The start offset of the data to send. When using this, you need to know what you are doing. */
@@ -48,12 +54,21 @@ export declare namespace BdxSessionConfiguration {
48
54
  interface ReceiverOptions extends BdxSessionConfiguration.Config {
49
55
  initMessageType: BdxMessageType;
50
56
  initMessage: BdxInit;
57
+ fileDesignator: PersistedFileDesignator;
51
58
  }
52
59
  interface Options extends BdxSessionConfiguration.Config {
53
60
  /** True if the session is initiated as a sender, false for receiver */
54
61
  isSender: boolean;
55
- /** File designator to use for the session */
62
+ /**
63
+ * File designator to use for the session and read from or write to. It points to the persisted blob storage.
64
+ */
56
65
  fileDesignator: PersistedFileDesignator;
66
+ /**
67
+ * Optional Transfer FileDesignator to use for the transfer, if different from the fileDesignator. This is
68
+ * mainly useful when receiving data where the fileDesignator used in the BDX messages is defined by the file
69
+ * sender and when the persisted file is stored under a different designator.
70
+ */
71
+ transferFileDesignator?: FileDesignator;
57
72
  /** The initial message received to start the session */
58
73
  initMessage?: BdxInit;
59
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BdxSessionConfiguration.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxSessionConfiguration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAE5D,qBAAa,uBAAuB;;gBAMpB,OAAO,EAAE,uBAAuB,CAAC,OAAO;IAiCpD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,WAAW,IAAI,OAAO,GAAG,SAAS,CAErC;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,cAAc,IAAI,uBAAuB,CAE5C;IAED,IAAI,cAAc,IAAI,uBAAuB,CAAC,MAAM,CAEnD;CACJ;AAED,yBAAiB,uBAAuB,CAAC;IACrC,UAAiB,MAAM;QACnB;;;WAGG;QACH,oBAAoB,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAEzC,4EAA4E;QAC5E,2BAA2B,CAAC,EAAE,KAAK,CAAC;QAEpC,sHAAsH;QACtH,YAAY,CAAC,EAAE,MAAM,CAAC;QAEtB,sEAAsE;QACtE,eAAe,CAAC,EAAE,MAAM,CAAC;QAEzB,kGAAkG;QAClG,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAE3B,oGAAoG;QACpG,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B;IAEM,MAAM,aAAa,EAAE,uBAAuB,CAAC,MAOnD,CAAC;IAEF,UAAiB,gBAAiB,SAAQ,uBAAuB,CAAC,MAAM;QACpE,gGAAgG;QAChG,cAAc,EAAE,uBAAuB,CAAC;KAC3C;IAED,UAAiB,sBAAuB,SAAQ,gBAAgB;QAC5D,kGAAkG;QAClG,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAE3B,oGAAoG;QACpG,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B;IAED,UAAiB,eAAgB,SAAQ,uBAAuB,CAAC,MAAM;QACnE,eAAe,EAAE,cAAc,CAAC;QAChC,WAAW,EAAE,OAAO,CAAC;KACxB;IAED,UAAiB,OAAQ,SAAQ,uBAAuB,CAAC,MAAM;QAC3D,uEAAuE;QACvE,QAAQ,EAAE,OAAO,CAAC;QAElB,6CAA6C;QAC7C,cAAc,EAAE,uBAAuB,CAAC;QAExC,wDAAwD;QACxD,WAAW,CAAC,EAAE,OAAO,CAAC;KACzB;CACJ"}
1
+ {"version":3,"file":"BdxSessionConfiguration.d.ts","sourceRoot":"","sources":["../../../src/bdx/BdxSessionConfiguration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAE5D,qBAAa,uBAAuB;;gBAOpB,OAAO,EAAE,uBAAuB,CAAC,OAAO;IAkCpD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,WAAW,IAAI,OAAO,GAAG,SAAS,CAErC;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,cAAc,IAAI,uBAAuB,CAE5C;IAED,IAAI,sBAAsB,IAAI,cAAc,CAE3C;IAED,IAAI,cAAc,IAAI,uBAAuB,CAAC,MAAM,CAEnD;CACJ;AAED,yBAAiB,uBAAuB,CAAC;IACrC,UAAiB,MAAM;QACnB;;;WAGG;QACH,oBAAoB,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAEzC,4EAA4E;QAC5E,2BAA2B,CAAC,EAAE,KAAK,CAAC;QAEpC,sHAAsH;QACtH,YAAY,CAAC,EAAE,MAAM,CAAC;QAEtB,sEAAsE;QACtE,eAAe,CAAC,EAAE,MAAM,CAAC;QAEzB,kGAAkG;QAClG,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAE3B,oGAAoG;QACpG,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B;IAEM,MAAM,aAAa,EAAE,uBAAuB,CAAC,MAOnD,CAAC;IAEF,UAAiB,gBAAiB,SAAQ,uBAAuB,CAAC,MAAM;QACpE,gGAAgG;QAChG,cAAc,EAAE,uBAAuB,CAAC;QAExC;;sDAE8C;QAC9C,sBAAsB,CAAC,EAAE,cAAc,CAAC;KAC3C;IAED,UAAiB,sBAAuB,SAAQ,gBAAgB;QAC5D,kGAAkG;QAClG,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAE3B,oGAAoG;QACpG,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B;IAED,UAAiB,eAAgB,SAAQ,uBAAuB,CAAC,MAAM;QACnE,eAAe,EAAE,cAAc,CAAC;QAChC,WAAW,EAAE,OAAO,CAAC;QACrB,cAAc,EAAE,uBAAuB,CAAC;KAC3C;IAED,UAAiB,OAAQ,SAAQ,uBAAuB,CAAC,MAAM;QAC3D,uEAAuE;QACvE,QAAQ,EAAE,OAAO,CAAC;QAElB;;WAEG;QACH,cAAc,EAAE,uBAAuB,CAAC;QAExC;;;;WAIG;QACH,sBAAsB,CAAC,EAAE,cAAc,CAAC;QAExC,wDAAwD;QACxD,WAAW,CAAC,EAAE,OAAO,CAAC;KACzB;CACJ"}
@@ -33,9 +33,11 @@ class BdxSessionConfiguration {
33
33
  #initMessage;
34
34
  #transferConfig;
35
35
  #fileDesignator;
36
+ #transferFileDesignator;
36
37
  constructor(options) {
37
- const { isSender, fileDesignator, initMessage } = options;
38
+ const { isSender, fileDesignator, transferFileDesignator, initMessage } = options;
38
39
  this.#fileDesignator = fileDesignator;
40
+ this.#transferFileDesignator = transferFileDesignator ?? fileDesignator;
39
41
  this.#isSender = isSender;
40
42
  this.#initMessage = initMessage;
41
43
  this.#transferConfig = { ...BdxSessionConfiguration.DefaultConfig, ...options };
@@ -75,6 +77,9 @@ class BdxSessionConfiguration {
75
77
  get fileDesignator() {
76
78
  return this.#fileDesignator;
77
79
  }
80
+ get transferFileDesignator() {
81
+ return this.#transferFileDesignator;
82
+ }
78
83
  get transferConfig() {
79
84
  return this.#transferConfig;
80
85
  }