@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,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/bdx/BdxMessenger.ts"],
4
- "mappings": "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",
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"}
@@ -3,7 +3,13 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Logger, MatterError } from "#general";
6
+ import { BdxError } from "#bdx/BdxError.js";
7
+ import { FileDesignator } from "#bdx/FileDesignator.js";
8
+ import { PersistedFileDesignator } from "#bdx/PersistedFileDesignator.js";
9
+ import { Environmental, isDeepEqual, Logger, MatterError, Observable } from "#general";
10
+ import { PeerAddress } from "#peer/PeerAddress.js";
11
+ import { ExchangeManager } from "#protocol/ExchangeManager.js";
12
+ import { SecureSession } from "#session/SecureSession.js";
7
13
  import { BDX_PROTOCOL_ID, BdxMessageType, BdxStatusCode } from "#types";
8
14
  import { BdxMessenger } from "./BdxMessenger.js";
9
15
  import { BdxSession } from "./BdxSession.js";
@@ -13,33 +19,87 @@ class BdxProtocol {
13
19
  id = BDX_PROTOCOL_ID;
14
20
  requiresSecureSession = true;
15
21
  #activeBdxSessions = /* @__PURE__ */ new Map();
16
- #storage;
17
- #bdxLimits;
18
- /**
19
- * Create a new BDX protocol handler.
20
- * @param storage StorageContext to read or write files from/to.
21
- * @param options BDX options/limits to use for this session. us this to control how the transfer should behave.
22
- */
23
- constructor(storage, options) {
24
- this.#storage = storage;
25
- this.#bdxLimits = options;
22
+ #peerScopes = /* @__PURE__ */ new Map();
23
+ #sessionStarted = Observable();
24
+ #sessionClosed = Observable();
25
+ static [Environmental.create](env) {
26
+ const instance = new BdxProtocol();
27
+ env.get(ExchangeManager).addProtocolHandler(instance);
28
+ env.set(BdxProtocol, instance);
29
+ return instance;
30
+ }
31
+ get sessionStarted() {
32
+ return this.#sessionStarted;
33
+ }
34
+ get sessionClosed() {
35
+ return this.#sessionClosed;
36
+ }
37
+ #peerScopeKey(peer, scope) {
38
+ if (scope === void 0) {
39
+ throw new MatterError("StorageContext must have a defined scope to be used with enableScope");
40
+ }
41
+ return `${peer.toString()}-${scope}`;
42
+ }
43
+ enablePeerForScope(peer, storage, config) {
44
+ const peerScopeStr = this.#peerScopeKey(peer, storage.scope);
45
+ const peerDetails = this.#peerScopes.get(peerScopeStr);
46
+ if (peerDetails !== void 0) {
47
+ const { storage: existingStorage, config: existingConfig } = peerDetails;
48
+ logger.warn(config, "vs", existingConfig);
49
+ if (existingStorage !== storage || isDeepEqual(config, existingConfig)) {
50
+ return false;
51
+ }
52
+ } else {
53
+ this.#peerScopes.set(peerScopeStr, { peer, storage, config });
54
+ }
55
+ return true;
56
+ }
57
+ async disablePeerForScope(peer, storage, force = false) {
58
+ if (this.#activeBdxSessions.size > 0) {
59
+ for (const { session, scope } of this.#activeBdxSessions.values()) {
60
+ if (storage.scope === scope && PeerAddress.is(peer, session.peerAddress)) {
61
+ if (force) {
62
+ await session.close(new MatterError("BDX protocol scope disabled"));
63
+ break;
64
+ }
65
+ throw new MatterError(
66
+ `Cannot disable BDX for peer "${peer}" (scope: ${scope}) because there are active BDX sessions using it`
67
+ );
68
+ }
69
+ }
70
+ }
71
+ this.#peerScopes.delete(this.#peerScopeKey(peer, storage.scope));
26
72
  }
27
73
  async onNewExchange(exchange, message) {
28
74
  const initMessageType = message.payloadHeader.messageType;
29
- const messenger = new BdxMessenger(exchange);
75
+ SecureSession.assert(exchange.session);
30
76
  switch (initMessageType) {
31
77
  case BdxMessageType.SendInit:
32
78
  case BdxMessageType.ReceiveInit:
33
79
  logger.debug(
34
80
  `Initialize Session for ${BdxMessageType[initMessageType]} message on BDX protocol for exchange ${exchange.id}`
35
81
  );
82
+ await exchange.nextMessage();
36
83
  const { payload } = message;
37
- const bdxSession = BdxSession.fromMessage(this.#storage, messenger, {
84
+ const initMessage = new BdxInitMessageSchema().decode(payload);
85
+ const { fileDesignator: messageFileDesignator } = initMessage;
86
+ const fd = new FileDesignator(messageFileDesignator);
87
+ const [storageScope, fileDesignator] = fd.text.split("/");
88
+ const { storage, config } = this.#peerScopes.get(this.#peerScopeKey(exchange.session.peerAddress, storageScope)) ?? {};
89
+ if (storage === void 0 || fileDesignator === void 0) {
90
+ throw new BdxError(
91
+ `No storage context found for BDX file designator "${fd.text}"`,
92
+ BdxStatusCode.FileDesignatorUnknown
93
+ );
94
+ }
95
+ const messenger = new BdxMessenger(exchange, config?.messageTimeout);
96
+ const bdxSession = BdxSession.fromMessage(messenger, {
38
97
  initMessageType,
39
- initMessage: new BdxInitMessageSchema().decode(payload),
40
- ...this.#bdxLimits
98
+ initMessage,
99
+ fileDesignator: new PersistedFileDesignator(fileDesignator, storage),
100
+ ...config
41
101
  });
42
- await this.#registerSession(messenger, bdxSession);
102
+ await this.#registerSession(messenger, bdxSession, storageScope);
43
103
  try {
44
104
  await bdxSession.processTransfer();
45
105
  } catch (error) {
@@ -50,27 +110,29 @@ class BdxProtocol {
50
110
  logger.warn(
51
111
  `Unexpected BDX message type ${BdxMessageType[initMessageType]} on new exchange ${exchange.id}`
52
112
  );
53
- await messenger.sendError(BdxStatusCode.UnexpectedMessage);
113
+ await new BdxMessenger(exchange).sendError(BdxStatusCode.UnexpectedMessage);
54
114
  }
55
115
  }
56
116
  /** Make sure only one BDX session can be active per exchange and that the exchange is closed with the BDX session. */
57
- async #registerSession(messenger, bdxSession) {
117
+ async #registerSession(messenger, bdxSession, scope) {
58
118
  const exchange = messenger.exchange;
59
119
  if (this.#activeBdxSessions.has(exchange)) {
60
120
  logger.warn(`BDX session for exchange ${exchange.id} already exists, sending error`);
61
121
  await messenger.sendError(BdxStatusCode.UnexpectedMessage);
62
122
  return;
63
123
  }
64
- this.#activeBdxSessions.set(exchange, bdxSession);
124
+ this.#activeBdxSessions.set(exchange, { session: bdxSession, scope });
125
+ this.#sessionStarted.emit(bdxSession, scope);
65
126
  bdxSession.closed.on(async () => {
66
127
  logger.debug(`BDX session for exchange ${exchange.id} closed`);
67
128
  this.#activeBdxSessions.delete(exchange);
68
129
  await exchange.close();
130
+ this.#sessionClosed.emit(bdxSession, scope);
69
131
  });
70
132
  }
71
133
  async close() {
72
134
  logger.debug(`Closing BDX protocol handler with ${this.#activeBdxSessions.size} active sessions`);
73
- for (const session of this.#activeBdxSessions.values()) {
135
+ for (const { session } of this.#activeBdxSessions.values()) {
74
136
  await session.close(new MatterError("BDX protocol handler closed"));
75
137
  }
76
138
  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,SAAS,QAAQ,mBAAmC;AAGpD,SAAS,iBAAiB,gBAAgB,qBAAqB;AAE/D,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAE3B,SAAS,4BAA4B;AAErC,MAAM,SAAS,OAAO,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,aAAa,QAAQ;AAE3C,YAAQ,iBAAiB;AAAA,MACrB,KAAK,eAAe;AAAA,MACpB,KAAK,eAAe;AAChB,eAAO;AAAA,UACH,0BAA0B,eAAe,eAAe,CAAC,yCAAyC,SAAS,EAAE;AAAA,QACjH;AACA,cAAM,EAAE,QAAQ,IAAI;AACpB,cAAM,aAAa,WAAW,YAAY,KAAK,UAAU,WAAW;AAAA,UAChE;AAAA,UACA,aAAa,IAAI,qBAAqB,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,eAAe,eAAe,CAAC,oBAAoB,SAAS,EAAE;AAAA,QACjG;AACA,cAAM,UAAU,UAAU,cAAc,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,cAAc,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,YAAY,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"}
@@ -3,7 +3,8 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { AsyncObservable, Diagnostic, Logger } from "#general";
6
+ import { AsyncObservable, Diagnostic, Logger, Observable } from "#general";
7
+ import { SecureSession } from "#session/SecureSession.js";
7
8
  import { BdxMessageType, BdxStatusCode } from "#types";
8
9
  import { bdxSessionInitiator } from "./bdx-session-initiator.js";
9
10
  import { BdxError } from "./BdxError.js";
@@ -13,7 +14,6 @@ import { DrivingReceivingFlow } from "./flow/DrivingReceivingFlow.js";
13
14
  import { Flow } from "./flow/Flow.js";
14
15
  import { FollowingReceivingFlow } from "./flow/FollowingReceivingFlow.js";
15
16
  import { FollowingSendingFlow } from "./flow/FollowingSendingFlow.js";
16
- import { PersistedFileDesignator } from "./PersistedFileDesignator.js";
17
17
  const logger = Logger.get("BdxSession");
18
18
  class BdxSession {
19
19
  #messenger;
@@ -22,6 +22,8 @@ class BdxSession {
22
22
  #isClosed = false;
23
23
  #config;
24
24
  #transferFlow;
25
+ #progressInfo = Observable();
26
+ #progressFinished = Observable();
25
27
  /** Initializes a BdxSession as a sender, means that we upload data to the peer. */
26
28
  static asSender(messenger, options) {
27
29
  return new BdxSession(messenger, { isSender: true, ...options });
@@ -30,19 +32,21 @@ class BdxSession {
30
32
  static asReceiver(messenger, options) {
31
33
  return new BdxSession(messenger, { isSender: false, ...options });
32
34
  }
33
- /** Initializes a BdxSession from an incoming *Init message. The message determines the direction of the transfer. */
34
- static fromMessage(storage, messenger, options) {
35
- const { initMessageType, initMessage } = options;
35
+ /**
36
+ * Initializes a BdxSession from an incoming *Init message. The message determines the direction of the transfer.
37
+ * The provided storages allow to map the file designator to a storage context depending on the path prefix in the
38
+ * file designator.
39
+ */
40
+ static fromMessage(messenger, options) {
41
+ const { initMessageType } = options;
36
42
  if (initMessageType !== BdxMessageType.SendInit && initMessageType !== BdxMessageType.ReceiveInit) {
37
43
  throw new BdxError(
38
44
  `Invalid message type for BDX session initialization: ${BdxMessageType[initMessageType]} (${initMessageType})`,
39
45
  BdxStatusCode.UnexpectedMessage
40
46
  );
41
47
  }
42
- const { fileDesignator } = initMessage;
43
48
  return new BdxSession(messenger, {
44
49
  isSender: initMessageType === BdxMessageType.ReceiveInit,
45
- fileDesignator: new PersistedFileDesignator(fileDesignator, storage),
46
50
  ...options
47
51
  });
48
52
  }
@@ -50,14 +54,23 @@ class BdxSession {
50
54
  this.#messenger = messenger;
51
55
  this.#config = new BdxSessionConfiguration(options);
52
56
  const exchange = messenger.exchange;
53
- if (!exchange.channel.isReliable) {
54
- throw new BdxError("Bdx Protocol requires a reliable channel for message exchange");
57
+ if (!exchange.session.isSecure) {
58
+ throw new BdxError("Bdx Protocol requires a secure session.");
55
59
  }
56
60
  exchange.closed.on(async () => {
61
+ if (this.#isClosed) {
62
+ return;
63
+ }
57
64
  logger.debug(`Closing BDX session for exchange ${exchange.id}`);
58
65
  await this.close();
59
66
  });
60
67
  }
68
+ get progressInfo() {
69
+ return this.#progressInfo;
70
+ }
71
+ get progressFinished() {
72
+ return this.#progressFinished;
73
+ }
61
74
  /** Method called to start the session. It will end with a successful Transfer or with an error */
62
75
  async processTransfer() {
63
76
  if (this.#started) {
@@ -79,6 +92,12 @@ class BdxSession {
79
92
  this.#started = true;
80
93
  try {
81
94
  this.#transferFlow = this.#initializeFlow(await bdxSessionInitiator(this.#messenger, this.#config));
95
+ this.#transferFlow.progressInfo.on(
96
+ (bytesTransferred, totalBytesLength) => this.#progressInfo.emit(bytesTransferred, totalBytesLength)
97
+ );
98
+ this.#transferFlow.progressFinished.on(
99
+ (totalBytesTransferred) => this.#progressFinished.emit(totalBytesTransferred)
100
+ );
82
101
  await this.#transferFlow.processTransfer();
83
102
  await this.close();
84
103
  } catch (error) {
@@ -86,6 +105,8 @@ class BdxSession {
86
105
  await this.#messenger.sendError(error.code);
87
106
  logger.warn(`BDX session failed with error:`, error);
88
107
  await this.close(error);
108
+ error.bytesTransferred = this.#transferFlow?.transferredBytes ?? 0;
109
+ error.totalBytesLength = this.#transferFlow?.dataLength;
89
110
  throw error;
90
111
  }
91
112
  }
@@ -118,6 +139,10 @@ class BdxSession {
118
139
  get closed() {
119
140
  return this.#closed;
120
141
  }
142
+ get peerAddress() {
143
+ SecureSession.assert(this.#messenger.exchange.session);
144
+ return this.#messenger.exchange.session.peerAddress;
145
+ }
121
146
  async close(error) {
122
147
  if (this.#isClosed) {
123
148
  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"}
@@ -10,9 +10,11 @@ class BdxSessionConfiguration {
10
10
  #initMessage;
11
11
  #transferConfig;
12
12
  #fileDesignator;
13
+ #transferFileDesignator;
13
14
  constructor(options) {
14
- const { isSender, fileDesignator, initMessage } = options;
15
+ const { isSender, fileDesignator, transferFileDesignator, initMessage } = options;
15
16
  this.#fileDesignator = fileDesignator;
17
+ this.#transferFileDesignator = transferFileDesignator ?? fileDesignator;
16
18
  this.#isSender = isSender;
17
19
  this.#initMessage = initMessage;
18
20
  this.#transferConfig = { ...BdxSessionConfiguration.DefaultConfig, ...options };
@@ -52,6 +54,9 @@ class BdxSessionConfiguration {
52
54
  get fileDesignator() {
53
55
  return this.#fileDesignator;
54
56
  }
57
+ get transferFileDesignator() {
58
+ return this.#transferFileDesignator;
59
+ }
55
60
  get transferConfig() {
56
61
  return this.#transferConfig;
57
62
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/bdx/BdxSessionConfiguration.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AAEpC,SAAS,YAAY;AAId,MAAM,wBAAwB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,SAA0C;AAClD,UAAM,EAAE,UAAU,gBAAgB,YAAY,IAAI;AAClD,SAAK,kBAAkB;AACvB,SAAK,YAAY;AACjB,SAAK,eAAe;AACpB,SAAK,kBAAkB,EAAE,GAAG,wBAAwB,eAAe,GAAG,QAAQ;AAG9E,UAAM;AAAA,MACF,uBAAuB,CAAC;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAI,KAAK;AACT,QAAI,qBAAqB,WAAW,GAAG;AACnC,YAAM,IAAI,oBAAoB,iDAAiD;AAAA,IACnF;AACA,QAAI,iBAAiB,UAAa,gBAAgB,GAAG;AACjD,YAAM,IAAI,oBAAoB,uCAAuC;AAAA,IACzE;AACA,QAAI,oBAAoB,UAAa,mBAAmB,GAAG;AACvD,YAAM,IAAI,oBAAoB,0CAA0C;AAAA,IAC5E;AACA,QAAI,6BAA6B;AAC7B,YAAM,IAAI,oBAAoB,wCAAwC;AAAA,IAC1E;AACA,QAAI,CAAC,aAAa,sBAAsB,UAAa,oBAAoB,SAAY;AACjF,YAAM,IAAI,oBAAoB,0EAA0E;AAAA,IAC5G;AAAA,EACJ;AAAA,EAEA,IAAI,WAAoB;AACpB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAmC;AACnC,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAuB;AACvB,WAAO,KAAK,iBAAiB;AAAA,EACjC;AAAA,EAEA,IAAI,iBAA0C;AAC1C,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,iBAAiD;AACjD,WAAO,KAAK;AAAA,EAChB;AACJ;AAAA,CAEO,CAAUA,6BAAV;AAwBI,EAAMA,yBAAA,gBAAgD;AAAA,IACzD,sBAAsB;AAAA,MAClB,KAAK,WAAW;AAAA;AAAA,MAChB,KAAK,WAAW;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA;AAAA,IAC7B,iBAAiB,OAAQ;AAAA;AAAA,EAC7B;AAAA,GA/Ba;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,2BAA2B;AAEpC,SAAS,YAAY;AAId,MAAM,wBAAwB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,SAA0C;AAClD,UAAM,EAAE,UAAU,gBAAgB,wBAAwB,YAAY,IAAI;AAC1E,SAAK,kBAAkB;AACvB,SAAK,0BAA0B,0BAA0B;AACzD,SAAK,YAAY;AACjB,SAAK,eAAe;AACpB,SAAK,kBAAkB,EAAE,GAAG,wBAAwB,eAAe,GAAG,QAAQ;AAG9E,UAAM;AAAA,MACF,uBAAuB,CAAC;AAAA,MACxB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAI,KAAK;AACT,QAAI,qBAAqB,WAAW,GAAG;AACnC,YAAM,IAAI,oBAAoB,iDAAiD;AAAA,IACnF;AACA,QAAI,iBAAiB,UAAa,gBAAgB,GAAG;AACjD,YAAM,IAAI,oBAAoB,uCAAuC;AAAA,IACzE;AACA,QAAI,oBAAoB,UAAa,mBAAmB,GAAG;AACvD,YAAM,IAAI,oBAAoB,0CAA0C;AAAA,IAC5E;AACA,QAAI,6BAA6B;AAC7B,YAAM,IAAI,oBAAoB,wCAAwC;AAAA,IAC1E;AACA,QAAI,CAAC,aAAa,sBAAsB,UAAa,oBAAoB,SAAY;AACjF,YAAM,IAAI,oBAAoB,0EAA0E;AAAA,IAC5G;AAAA,EACJ;AAAA,EAEA,IAAI,WAAoB;AACpB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAmC;AACnC,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAuB;AACvB,WAAO,KAAK,iBAAiB;AAAA,EACjC;AAAA,EAEA,IAAI,iBAA0C;AAC1C,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,yBAAyC;AACzC,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,iBAAiD;AACjD,WAAO,KAAK;AAAA,EAChB;AACJ;AAAA,CAEO,CAAUA,6BAAV;AAwBI,EAAMA,yBAAA,gBAAgD;AAAA,IACzD,sBAAsB;AAAA,MAClB,KAAK,WAAW;AAAA;AAAA,MAChB,KAAK,WAAW;AAAA,IACpB;AAAA,IACA,6BAA6B;AAAA;AAAA,IAC7B,iBAAiB,OAAQ;AAAA;AAAA,EAC7B;AAAA,GA/Ba;",
5
5
  "names": ["BdxSessionConfiguration"]
6
6
  }
@@ -3,7 +3,8 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Bytes } from "#general";
6
+ import { Bytes, Diagnostic } from "#general";
7
+ import { NodeId } from "#types";
7
8
  /**
8
9
  * Class to represent a File designator from Matter.
9
10
  * Specification wise this is a bytes object, but to store in a storage we need a string name.
@@ -11,11 +12,24 @@ import { Bytes } from "#general";
11
12
  */
12
13
  export declare class FileDesignator {
13
14
  #private;
15
+ [Diagnostic.value]: string;
16
+ /**
17
+ * Initialize a FileDesignator from a BDX URI string. Also returns the source node ID of the owner of the file.
18
+ */
19
+ static fromBdxUri(uri: string): {
20
+ fileDesignator: FileDesignator;
21
+ sourceNodeId: NodeId;
22
+ };
14
23
  /** Create a FileDesignator from a string or bytes object. */
15
24
  constructor(fd: string | Bytes);
16
25
  /** Return the bytes representation of the FileDesignator. */
17
26
  get bytes(): Bytes;
18
27
  /** Return the textual/string representation of the FileDesignator. */
19
28
  get text(): string;
29
+ /**
30
+ * Return the FileDesignator as a BDX URI string. The source node ID of the owner of the file is required to
31
+ * generate a valid URI.
32
+ */
33
+ asBdxUri(sourceNode: NodeId): string;
20
34
  }
21
35
  //# sourceMappingURL=FileDesignator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileDesignator.d.ts","sourceRoot":"","sources":["../../../src/bdx/FileDesignator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC;;;;GAIG;AACH,qBAAa,cAAc;;IAGvB,6DAA6D;gBACjD,EAAE,EAAE,MAAM,GAAG,KAAK;IAQ9B,6DAA6D;IAC7D,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED,sEAAsE;IACtE,IAAI,IAAI,IAAI,MAAM,CAgBjB;CACJ"}
1
+ {"version":3,"file":"FileDesignator.d.ts","sourceRoot":"","sources":["../../../src/bdx/FileDesignator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAuB,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;;;GAIG;AACH,qBAAa,cAAc;;IA4DnB,CAAC,UAAU,CAAC,KAAK,CAAC;IAzDtB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;;;;IAW7B,6DAA6D;gBACjD,EAAE,EAAE,MAAM,GAAG,KAAK;IAQ9B,6DAA6D;IAC7D,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED,sEAAsE;IACtE,IAAI,IAAI,IAAI,MAAM,CAkBjB;IAED;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM;CAO9B"}
@@ -3,9 +3,23 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Bytes } from "#general";
6
+ import { Bytes, Diagnostic, ImplementationError } from "#general";
7
+ import { NodeId } from "#types";
7
8
  class FileDesignator {
8
9
  #fd;
10
+ /**
11
+ * Initialize a FileDesignator from a BDX URI string. Also returns the source node ID of the owner of the file.
12
+ */
13
+ static fromBdxUri(uri) {
14
+ const bdxParts = uri.match(/^bdx:\/\/([0-9A-F]{16})\/(\S+)$/);
15
+ if (!bdxParts) {
16
+ throw new ImplementationError(`Invalid OTA URI "${uri}"`);
17
+ }
18
+ return {
19
+ fileDesignator: new FileDesignator(bdxParts[2]),
20
+ sourceNodeId: NodeId(BigInt(`0x${bdxParts[1]}`))
21
+ };
22
+ }
9
23
  /** Create a FileDesignator from a string or bytes object. */
10
24
  constructor(fd) {
11
25
  if (typeof fd === "string") {
@@ -26,8 +40,10 @@ class FileDesignator {
26
40
  byte >= 97 && byte <= 122 || // a-z
27
41
  byte >= 48 && byte <= 57 || // 0..9
28
42
  byte === 46 || // "."
29
- byte === 45
30
- // "-"
43
+ byte === 45 || // "-"
44
+ byte === 95 || // "_"
45
+ byte === 47
46
+ // "/"
31
47
  );
32
48
  if (isValidName) {
33
49
  return fileDesignatorData.reduce((name, byte) => name + String.fromCharCode(byte), "");
@@ -35,6 +51,16 @@ class FileDesignator {
35
51
  return `0x${Bytes.toHex(fileDesignatorData)}`;
36
52
  }
37
53
  }
54
+ /**
55
+ * Return the FileDesignator as a BDX URI string. The source node ID of the owner of the file is required to
56
+ * generate a valid URI.
57
+ */
58
+ asBdxUri(sourceNode) {
59
+ return `bdx://${NodeId.strOf(sourceNode).toUpperCase()}/${this.text}`;
60
+ }
61
+ get [Diagnostic.value]() {
62
+ return this.text;
63
+ }
38
64
  }
39
65
  export {
40
66
  FileDesignator
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/bdx/FileDesignator.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,aAAa;AAOf,MAAM,eAAe;AAAA,EACxB;AAAA;AAAA,EAGA,YAAY,IAAoB;AAC5B,QAAI,OAAO,OAAO,UAAU;AACxB,WAAK,MAAM,MAAM,WAAW,EAAE;AAAA,IAClC,OAAO;AACH,WAAK,MAAM;AAAA,IACf;AAAA,EACJ;AAAA;AAAA,EAGA,IAAI,QAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGA,IAAI,OAAe;AACf,UAAM,qBAAqB,MAAM,GAAG,KAAK,GAAG;AAE5C,UAAM,cAAc,mBAAmB;AAAA,MACnC,UACK,QAAQ,MAAQ,QAAQ;AAAA,MACxB,QAAQ,MAAQ,QAAQ;AAAA,MACxB,QAAQ,MAAQ,QAAQ;AAAA,MACzB,SAAS;AAAA,MACT,SAAS;AAAA;AAAA,IACjB;AACA,QAAI,aAAa;AACb,aAAO,mBAAmB,OAAO,CAAC,MAAM,SAAS,OAAO,OAAO,aAAa,IAAI,GAAG,EAAE;AAAA,IACzF,OAAO;AACH,aAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAAA,IAC/C;AAAA,EACJ;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,YAAY,2BAA2B;AACvD,SAAS,cAAc;AAOhB,MAAM,eAAe;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,WAAW,KAAa;AAC3B,UAAM,WAAW,IAAI,MAAM,iCAAiC;AAC5D,QAAI,CAAC,UAAU;AACX,YAAM,IAAI,oBAAoB,oBAAoB,GAAG,GAAG;AAAA,IAC5D;AACA,WAAO;AAAA,MACH,gBAAgB,IAAI,eAAe,SAAS,CAAC,CAAC;AAAA,MAC9C,cAAc,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC;AAAA,IACnD;AAAA,EACJ;AAAA;AAAA,EAGA,YAAY,IAAoB;AAC5B,QAAI,OAAO,OAAO,UAAU;AACxB,WAAK,MAAM,MAAM,WAAW,EAAE;AAAA,IAClC,OAAO;AACH,WAAK,MAAM;AAAA,IACf;AAAA,EACJ;AAAA;AAAA,EAGA,IAAI,QAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGA,IAAI,OAAe;AACf,UAAM,qBAAqB,MAAM,GAAG,KAAK,GAAG;AAE5C,UAAM,cAAc,mBAAmB;AAAA,MACnC,UACK,QAAQ,MAAQ,QAAQ;AAAA,MACxB,QAAQ,MAAQ,QAAQ;AAAA,MACxB,QAAQ,MAAQ,QAAQ;AAAA,MACzB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA;AAAA,IACjB;AACA,QAAI,aAAa;AACb,aAAO,mBAAmB,OAAO,CAAC,MAAM,SAAS,OAAO,OAAO,aAAa,IAAI,GAAG,EAAE;AAAA,IACzF,OAAO;AACH,aAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAAA,IAC/C;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS,YAAoB;AACzB,WAAO,SAAS,OAAO,MAAM,UAAU,EAAE,YAAY,CAAC,IAAI,KAAK,IAAI;AAAA,EACvE;AAAA,EAEA,KAAK,WAAW,KAAK,IAAY;AAC7B,WAAO,KAAK;AAAA,EAChB;AACJ;",
5
5
  "names": []
6
6
  }