@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
@@ -316,7 +316,7 @@ export declare namespace OperationalCertificate {
316
316
  pseudonym: import("#types").OptionalFieldType<string>;
317
317
  domainComponent: import("#types").OptionalFieldType<string>;
318
318
  } & {
319
- icacId: import("#types").FieldType<number | bigint>;
319
+ icacId: import("#types").OptionalFieldType<number | bigint>;
320
320
  fabricId: import("#types").OptionalFieldType<import("#types").FabricId>;
321
321
  } & {
322
322
  commonNamePs: import("#types").OptionalFieldType<string>;
@@ -134,7 +134,7 @@ var OperationalCertificate;
134
134
  });
135
135
  OperationalCertificate2.TlvIcac = BaseMatterCertificate({
136
136
  subject: {
137
- icacId: TlvField(19, TlvUInt64),
137
+ icacId: TlvOptionalField(19, TlvUInt64),
138
138
  fabricId: TlvOptionalField(21, TlvFabricId)
139
139
  },
140
140
  issuer: AllowedSubjectAndIssuerMatterFields
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/certificate/kinds/definitions/operational.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["OperationalCertificate"]
6
6
  }
@@ -173,8 +173,8 @@ class FailsafeContext {
173
173
  }
174
174
  }
175
175
  await builder.setOperationalCert(nocValue, icacValue);
176
- const fabricAlreadyExisting = this.#fabrics.find((fabric) => builder.matchesToFabric(fabric));
177
- if (fabricAlreadyExisting) {
176
+ const newGlobalId = await builder.globalId;
177
+ if (this.#fabrics.has(newGlobalId)) {
178
178
  throw new MatterFabricConflictError(
179
179
  `Fabric with Id ${builder.fabricId} and Node Id ${builder.nodeId} already exists.`
180
180
  );
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/common/FailsafeContext.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAGP,SAAS,sBAAsB,QAAQ,uBAAiC;AACxE,SAAiB,qBAAqB;AAGtC,SAAS,eAAe,iCAAiC;AAEzD,MAAM,SAAS,OAAO,IAAI,iBAAiB;AAEpC,MAAM,6CAA6C,gBAAgB;AAAC;AAWpE,MAAe,gBAAgB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EAEf,gBAAgB,gBAA0B;AAAA,EAE1C,YAAY,SAAkC;AAC1C,UAAM,EAAE,UAAU,SAAS,cAAc,SAAS,sBAAsB,IAAI;AAE5E,SAAK,YAAY;AACjB,SAAK,WAAW;AAChB,SAAK,oBAAoB,QAAQ;AAEjC,SAAK,gBAAgB,aAAa,MAAM,YAAY;AAChD,WAAK,iBAAiB,MAAM,cAAc,OAAO,KAAK,SAAS,MAAM;AAErE,YAAM,QAAQ,QAAQ;AAEtB,YAAM,KAAK,mBAAmB;AAI9B,WAAK,YAAY,IAAI;AAAA,QACjB,KAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA,KAAK,iBAAiB,KAAK,IAAI;AAAA,MACnC;AACA,aAAO,MAAM,0BAA0B,SAAS,OAAO,YAAY,CAAC,EAAE;AAItE,cAAQ,aAAa,GAAG,MAAM;AAC1B,YAAI,CAAC,KAAK,WAAW,WAAW;AAC5B,iBAAO,KAAK,iBAAiB;AAAA,QACjC;AAAA,MACJ,CAAC;AAAA,IACL,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,OAAO,QAA4B,cAAwB,iBAAmC;AAChG,UAAM,KAAK;AACX,UAAM,KAAK,WAAW,MAAM,QAAQ,cAAc,eAAe;AACjE,QAAI,eAAe,GAAG;AAClB,aAAO,MAAM,6BAA6B,SAAS,OAAO,YAAY,CAAC,EAAE;AAAA,IAC7E;AAAA,EACJ;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,mBAAmB;AACnB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK,SAAS,aAAa;AAAA,EACtC;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,MAAM,qBAAqB;AAEvB,QAAI,KAAK,cAAc,QAAW;AAC9B,YAAM,IAAI,gBAAgB,qCAAqC;AAAA,IACnE;AACA,SAAK,UAAU,SAAS;AAExB,QAAI,KAAK,gBAAgB,QAAW;AAChC,YAAM,KAAK,SAAS,eAAe;AAAA,IACvC;AAEA,SAAK,YAAY;AAGjB,UAAM,KAAK,aAAa,KAAK;AAK7B,UAAM,KAAK,iBAAiB;AAE5B,UAAM,KAAK,MAAM;AAAA,EACrB;AAAA,EAEA,qBAAqB;AACjB,QAAI,KAAK,cAAc,OAAW,OAAM,IAAI,gBAAgB,qCAAqC;AACjG,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,qBAAqB;AACjB,WAAO,KAAK,SAAS,oBAAoB;AAAA,EAC7C;AAAA,EAEA,MAAM,cAAc,QAAgB;AAChC,UAAM,KAAK,SAAS,cAAc,MAAM;AACxC,UAAM,KAAK,UAAU,iCAAiC,MAAM;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,gCAAgC,gBAAyB,WAAmB;AACxE,QAAI,KAAK,SAAS,cAAc,KAAK,SAAS,OAAO,GAAG;AACpD,YAAM,IAAI,gBAAgB,0BAA0B;AAAA,IACxD;AAEA,UAAM,SAAS,KAAK,SAAS,gCAAgC;AAC7D,SAAK,gBAAgB;AACrB,SAAK,gBAAgB;AACrB,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,iBAAiB,iBAAmC;AACtD,UAAM,UAAU,KAAK,UAAU,eAAe;AAC9C,QAAI,SAAS;AACT,YAAM,QAAQ,mBAAmB,eAAe;AAAA,IACpD;AAAA,EACJ;AAAA,EAEA,MAAM,MAAM,iBAAmC;AAC3C,UAAM,KAAK,cAAc,MAAM,YAAY;AACvC,UAAI,KAAK,WAAW;AAChB,cAAM,KAAK,UAAU,MAAM;AAC3B,aAAK,YAAY;AACjB,cAAM,KAAK,SAAS,eAAe;AAAA,MACvC;AAAA,IACJ,CAAC;AAAA,EACL;AAAA;AAAA,EAGA,MAAM,YAAY,UAAiB;AAC/B,UAAM,KAAK,SAAS,YAAY,QAAQ;AACxC,SAAK,eAAe;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,mBAAmB,UAAiB,WAA8B;AACpE,QAAI,KAAK,qBAAqB,QAAW;AACrC,YAAM,IAAI,gBAAgB,8EAA8E;AAAA,IAC5G;AACA,SAAK,SAAS,8BAA8B,KAAK,gBAAgB;AACjE,UAAM,KAAK,SAAS,mBAAmB,UAAU,SAAS;AAC1D,WAAO,MAAM,KAAK,SAAS,MAAM,KAAK,iBAAiB,WAAW;AAAA,EACtE;AAAA;AAAA,EAGA,MAAM,YAAY,SAMf;AACC,UAAM,UAAU,KAAK;AAErB,UAAM,EAAE,UAAU,WAAW,eAAe,UAAU,iBAAiB,IAAI;AAG3E,QAAI,CAAC,OAAO,oBAAoB,gBAAgB,KAAK,CAAC,OAAO,uBAAuB,gBAAgB,GAAG;AACnG,UAAI;AACA,YAAI,qBAAqB,WAAW,OAAO,8BAA8B,gBAAgB,CAAC,MAAM,GAAG;AAC/F,gBAAM,IAAI,qCAAqC;AAAA,QACnD;AAAA,MACJ,SAAS,OAAO;AAEZ,YAAI,iBAAiB,mBAAmB,iBAAiB,qBAAqB;AAC1E,gBAAM,IAAI,qCAAqC;AAAA,QACnD,OAAO;AACH,gBAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,QAAQ,mBAAmB,UAAU,SAAS;AACpD,UAAM,wBAAwB,KAAK,SAAS,KAAK,YAAU,QAAQ,gBAAgB,MAAM,CAAC;AAE1F,QAAI,uBAAuB;AACvB,YAAM,IAAI;AAAA,QACN,kBAAkB,QAAQ,QAAQ,gBAAgB,QAAQ,MAAM;AAAA,MACpE;AAAA,IACJ;AAEA,SAAK,oBAAoB,MAAM,QAC1B,gBAAgB,aAAa,EAC7B,yBAAyB,QAAQ,EACjC,cAAc,gBAAgB,EAC9B,MAAM,KAAK,SAAS,oBAAoB,CAAC;AAC9C,SAAK,SAAS,UAAU,KAAK,iBAAiB;AAE9C,QAAI,KAAK,WAAW;AAChB,WAAK,UAAU,mBAAmB,KAAK;AAAA,IAC3C;AAEA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,iBAAiB,iBAAmC;AACtD,WAAO,KAAK,kDAAkD;AAE9D,UAAM,KAAK,MAAM,eAAe;AAAA,EACpC;AAAA,EAEA,MAAgB,SAAS,iBAAmC;AACxD,QAAI,KAAK,gBAAgB,UAAa,CAAC,KAAK,eAAe;AACvD,aAAO,MAAM,yBAAyB,KAAK,WAAW,EAAE;AACxD,YAAM,KAAK,mBAAmB,OAAO,eAAe;AAAA,IACxD;AAIA,UAAM,KAAK,iBAAiB,eAAe;AAK3C,QAAI,SAA6B;AACjC,QAAI,KAAK,gBAAgB,QAAW;AAChC,YAAM,cAAc,KAAK;AACzB,UAAI,KAAK,SAAS,IAAI,WAAW,GAAG;AAChC,iBAAS,KAAK,SAAS,IAAI,WAAW;AACtC,mBAAW,WAAW,KAAK,UAAU,uBAAuB,WAAW,GAAG;AACtE,gBAAM,QAAQ,mBAAmB,eAAe;AAAA,QACpD;AAAA,MACJ;AAAA,IACJ;AAIA,UAAM,KAAK,oBAAoB;AAK/B,QAAI,KAAK,iBAAiB,KAAK,qBAAqB,QAAW;AAE3D,YAAM,KAAK,cAAc,KAAK,gBAAgB;AAAA,IAClD;AAIA,QAAI,CAAC,KAAK,iBAAiB,WAAW,QAAW;AAC7C,YAAM,KAAK,mBAAmB,OAAO;AAAA,IACzC;AAGA,UAAM,KAAK,kBAAkB;AAAA,EAKjC;AAAA,EAOA,MAAM,cAAc,QAAgB;AAChC,UAAM,KAAK,cAAc,MAAM;AAAA,EACnC;AAAA,EAIA,IAAI,WAAW;AACX,QAAI,KAAK,mBAAmB,QAAW;AACnC,YAAM,IAAI,6BAA6B,mBAAmB,yCAAyC;AAAA,IACvG;AACA,WAAO,KAAK;AAAA,EAChB;AACJ;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DclClient.d.ts","sourceRoot":"","sources":["../../../src/dcl/DclClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACH,mBAAmB,EAMnB,qCAAqC,EACrC,aAAa,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAU,WAAW,EAAW,MAAM,UAAU,CAAC;AAUlE,4CAA4C;AAC5C,qBAAa,cAAe,SAAQ,WAAW;CAAG;AAElD,qDAAqD;AACrD,qBAAa,sBAAuB,SAAQ,cAAc;gBAC1C,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,YAAY;CAG/E;AAED,4EAA4E;AAC5E,qBAAa,SAAS;;IAGN,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,GAAE,OAAc;IAkEjD,wBAAwB,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAUpD,6BAA6B,CAAC,OAAO,EAAE,qCAAqC,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAiBzG,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAexE,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAehF,wCAAwC,CAC1C,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAmB/B;;OAEG;IACG,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;CAGpD;AAED,yBAAiB,SAAS,CAAC;IACvB,UAAiB,OAAO;QACpB,+CAA+C;QAC/C,OAAO,CAAC,EAAE,QAAQ,CAAC;KACtB;CACJ"}
1
+ {"version":3,"file":"DclClient.d.ts","sourceRoot":"","sources":["../../../src/dcl/DclClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACH,mBAAmB,EAMnB,qCAAqC,EACrC,aAAa,EAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAU,WAAW,EAAW,MAAM,UAAU,CAAC;AAUlE,4CAA4C;AAC5C,qBAAa,cAAe,SAAQ,WAAW;CAAG;AAElD,qDAAqD;AACrD,qBAAa,sBAAuB,SAAQ,cAAc;gBAC1C,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,YAAY;CAG/E;AAED,4EAA4E;AAC5E,qBAAa,SAAS;;IAGN,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,GAAE,OAAc;IAiEjD,wBAAwB,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAUpD,6BAA6B,CAAC,OAAO,EAAE,qCAAqC,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAiBzG,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAexE,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAehF,wCAAwC,CAC1C,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAmB/B;;OAEG;IACG,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;CAGpD;AAED,yBAAiB,SAAS,CAAC;IACvB,UAAiB,OAAO;QACpB,+CAA+C;QAC/C,OAAO,CAAC,EAAE,QAAQ,CAAC;KACtB;CACJ"}
@@ -53,12 +53,11 @@ class DclClient {
53
53
  return await response.json();
54
54
  } catch (error) {
55
55
  MatterDclResponseError.reject(error);
56
- MatterError.accept(error);
57
56
  throw new MatterDclResponseError(
58
57
  path,
59
58
  {
60
59
  code: 500,
61
- message: error.message,
60
+ message: error.message ?? error,
62
61
  details: []
63
62
  },
64
63
  { cause: error }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dcl/DclClient.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAeA,SAAmB,QAAQ,aAAa,eAAe;AAEvD,MAAM,SAAS,IAAI,OAAO,WAAW;AAGrC,MAAM,qBAAqB;AAC3B,MAAM,eAAe;AAErB,MAAM,sBAAsB,QAAQ,CAAC;AAG9B,MAAM,uBAAuB,YAAY;AAAC;AAG1C,MAAM,+BAA+B,eAAe;AAAA,EACvD,YAAY,MAAc,OAA4B,SAAwB;AAC1E,UAAM,kBAAkB,IAAI,cAAc,MAAM,IAAI,MAAM,MAAM,OAAO,IAAI,OAAO;AAAA,EACtF;AACJ;AAGO,MAAM,UAAU;AAAA,EAGnB,YAA6B,aAAsB,MAAM;AAA5B;AACzB,SAAK,WAAW,KAAK,aAAa,qBAAqB;AAAA,EAC3D;AAAA,EAJA;AAAA,EAMA,MAAM,oBACF,MACA,gBACA,SACgB;AAChB,UAAM,WAAoB,CAAC;AAC3B,QAAI;AAEJ,OAAG;AAEC,YAAM,cACF,YAAY,SACN,GAAG,IAAI,GAAG,KAAK,SAAS,GAAG,IAAI,MAAM,GAAG,kBAAkB,mBAAmB,OAAO,CAAC,KACrF;AAEV,YAAM,WAAW,MAAM,KAAK,WAAgB,aAAa,OAAO;AAEhE,YAAM,QAAQ,SAAS,cAAc;AACrC,UAAI,SAAS,MAAM,QAAQ,KAAK,GAAG;AAC/B,iBAAS,KAAK,GAAG,KAAK;AAAA,MAC1B;AAGA,gBAAU,UAAU,YAAY;AAAA,IACpC,SAAS;AAET,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,WAAsB,MAAc,SAAiD;AACvF,UAAM,MAAM,IAAI,IAAI,MAAM,KAAK,QAAQ,EAAE,SAAS;AAClD,WAAO,MAAM,qBAAqB,GAAG;AACrC,QAAI;AACA,YAAM,YAAY,SAAS,WAAW;AACtC,YAAM,WAAW,MAAM,MAAM,KAAK;AAAA,QAC9B,QAAQ;AAAA,QACR,SAAS;AAAA,UACL,gBAAgB;AAAA,QACpB;AAAA,QACA,QAAQ,YAAY,QAAQ,SAAS;AAAA,MACzC,CAAC;AAED,UAAI,CAAC,SAAS,IAAI;AACd,cAAM,IAAI,uBAAuB,MAAM,MAAM,SAAS,KAAK,CAAC;AAAA,MAChE;AAEA,aAAO,MAAM,SAAS,KAAK;AAAA,IAC/B,SAAS,OAAO;AACZ,6BAAuB,OAAO,KAAK;AACnC,kBAAY,OAAO,KAAK;AACxB,YAAM,IAAI;AAAA,QACN;AAAA,QACA;AAAA,UACI,MAAM;AAAA,UACN,SAAS,MAAM;AAAA,UACf,SAAS,CAAC;AAAA,QACd;AAAA,QACA,EAAE,OAAO,MAAM;AAAA,MACnB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,yBAAyB,SAA6B;AACxD,UAAM,WAAW,MAAM,KAAK,WAA2C,8BAA8B,OAAO;AAC5G,QAAI,UAAU,0BAA0B,kBAAkB,GAAG;AACzD,YAAM,IAAI;AAAA,QACN,oDAAoD,SAAS,yBAAyB,aAAa;AAAA,MACvG;AAAA,IACJ;AACA,WAAO,SAAS,yBAAyB;AAAA,EAC7C;AAAA,EAEA,MAAM,8BAA8B,SAAgD,SAA6B;AAC7G,UAAM,OAAO,yBAAyB,mBAAmB,QAAQ,OAAO,CAAC,IAAI,mBAAmB,QAAQ,YAAY,CAAC;AACrH,UAAM,WAAW,MAAM,KAAK,WAAsC,MAAM,OAAO;AAC/E,QACI,CAAC,YACD,CAAC,SAAS,wBACV,SAAS,qBAAqB,YAAY,QAAQ,WAClD,SAAS,qBAAqB,iBAAiB,QAAQ,gBACvD,SAAS,qBAAqB,kBAAkB,GAClD;AACE,YAAM,IAAI;AAAA,QACN,2CAA2C,QAAQ,OAAO,mBAAmB,QAAQ,YAAY;AAAA,MACrG;AAAA,IACJ;AACA,WAAO,SAAS,qBAAqB;AAAA,EACzC;AAAA,EAEA,MAAM,mBAAmB,KAAa,KAAa,SAA6B;AAC5E,UAAM,OAAO,qBAAqB,mBAAmB,GAAG,CAAC,IAAI,mBAAmB,GAAG,CAAC;AACpF,UAAM,WAAW,MAAM,KAAK,WAA6C,MAAM,OAAO;AACtF,QACI,CAAC,YACD,CAAC,SAAS,SACV,SAAS,MAAM,QAAQ,OACvB,SAAS,MAAM,QAAQ,OACvB,SAAS,MAAM,kBAAkB,GACnC;AACE,YAAM,IAAI,eAAe,4BAA4B,GAAG,UAAU,GAAG,EAAE;AAAA,IAC3E;AACA,WAAO,SAAS;AAAA,EACpB;AAAA,EAEA,MAAM,2BAA2B,KAAa,KAAa,SAA6B;AACpF,UAAM,OAAO,uBAAuB,mBAAmB,GAAG,CAAC,IAAI,mBAAmB,GAAG,CAAC;AACtF,UAAM,WAAW,MAAM,KAAK,WAA+C,MAAM,OAAO;AACxF,QACI,CAAC,YACD,CAAC,SAAS,iBACV,SAAS,cAAc,QAAQ,OAC/B,SAAS,cAAc,QAAQ,OAC/B,SAAS,cAAc,kBAAkB,GAC3C;AACE,YAAM,IAAI,eAAe,qCAAqC,GAAG,UAAU,GAAG,EAAE;AAAA,IACpF;AACA,WAAO,SAAS,cAAc;AAAA,EAClC;AAAA,EAEA,MAAM,yCACF,KACA,KACA,iBACA,SACF;AACE,UAAM,OAAO,uBAAuB,mBAAmB,GAAG,CAAC,IAAI,mBAAmB,GAAG,CAAC,IAAI,mBAAmB,eAAe,CAAC;AAC7H,UAAM,WAAW,MAAM,KAAK,WAA6D,MAAM,OAAO;AACtG,QACI,CAAC,YACD,CAAC,SAAS,gBACV,SAAS,aAAa,QAAQ,OAC9B,SAAS,aAAa,QAAQ,OAC9B,SAAS,aAAa,oBAAoB,mBAC1C,SAAS,aAAa,kBAAkB,GAC1C;AACE,YAAM,IAAI;AAAA,QACN,oCAAoC,GAAG,UAAU,GAAG,uBAAuB,eAAe;AAAA,MAC9F;AAAA,IACJ;AACA,WAAO,SAAS;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,gBAAgB,SAA6B;AAC/C,WAAO,KAAK,oBAAmC,2BAA2B,cAAc,OAAO;AAAA,EACnG;AACJ;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { PersistedFileDesignator } from "#bdx/PersistedFileDesignator.js";
7
+ import { ScopedStorage } from "#bdx/ScopedStorage.js";
7
8
  import { Construction, Environment, Environmental, MatterError } from "#general";
8
9
  import { DeviceSoftwareVersionModelDclSchema } from "#types";
9
10
  /** Error thrown when OTA update check or download fails */
@@ -28,19 +29,20 @@ export declare class DclOtaUpdateService {
28
29
  get construction(): Construction<DclOtaUpdateService>;
29
30
  constructor(environment: Environment);
30
31
  static [Environmental.create](env: Environment): DclOtaUpdateService;
32
+ get storage(): ScopedStorage;
31
33
  /**
32
34
  * Check DCL for available software updates for a device, defined by it's vendor ID, product ID and current
33
35
  * software version. If a target software version is provided, only that version is checked for applicability and
34
36
  * ignoring other newer versions.
35
- *
36
- * @param vendorId - Vendor ID of the device
37
- * @param productId - Product ID of the device
38
- * @param currentSoftwareVersion - Current software version of the device
39
- * @param isProduction - Whether to check production DCL (true) or test DCL (false)
40
- * @param targetSoftwareVersion - Optional specific version to check. If not provided, checks for any newer version.
41
- * @returns Update information if an update is available, undefined otherwise
42
37
  */
43
- checkForUpdate(vendorId: number, productId: number, currentSoftwareVersion: number, isProduction?: boolean, targetSoftwareVersion?: number): Promise<DeviceSoftwareVersionModelDclSchema | undefined>;
38
+ checkForUpdate(options: {
39
+ vendorId: number;
40
+ productId: number;
41
+ currentSoftwareVersion: number;
42
+ includeStoredUpdates?: boolean;
43
+ isProduction?: boolean;
44
+ targetSoftwareVersion?: number;
45
+ }): Promise<DeviceSoftwareVersionModelDclSchema | undefined>;
44
46
  /**
45
47
  * Store an OTA update image from a ReadableStream into persistent storage.
46
48
  */
@@ -110,16 +112,6 @@ export declare class DclOtaUpdateService {
110
112
  * @param fileUrl - HTTPS URL to the OTA image file
111
113
  * @param options - Optional parameters for DCL-specific fields not in OTA header
112
114
  * @returns OtaUpdateInfo with file URL and header data
113
- *
114
- * @example
115
- * ```typescript
116
- * const service = new DclOtaUpdateService(environment);
117
- * const updateInfo = await service.createUpdateInfoFromFile(
118
- * "https://example.com/ota-image.bin",
119
- * { cdVersionNumber: 1 }
120
- * );
121
- * const fileDesignator = await service.downloadUpdate(updateInfo, true);
122
- * ```
123
115
  */
124
116
  createUpdateInfoFromFile(fileUrl: string, options?: {
125
117
  /** Certificate Declaration version number. Defaults to 1. */
@@ -152,19 +144,7 @@ export declare class DclOtaUpdateService {
152
144
  * @param options.isProduction - Filter by production (true) or test (false) mode
153
145
  * @returns Array of downloaded update information
154
146
  */
155
- find(options?: {
156
- vendorId?: number;
157
- productId?: number;
158
- isProduction?: boolean;
159
- }): Promise<{
160
- filename: string;
161
- vendorId: number;
162
- productId: number;
163
- softwareVersion: number;
164
- softwareVersionString: string;
165
- mode: "prod" | "test";
166
- size: number;
167
- }[]>;
147
+ find(options?: DclOtaUpdateService.FindOptions): Promise<DclOtaUpdateService.OtaUpdateListEntry[]>;
168
148
  /** Get a PersistedFileDesignator for a stored OTA update file by filename. */
169
149
  fileDesignatorForUpdate(filename: string): Promise<PersistedFileDesignator>;
170
150
  /**
@@ -187,4 +167,23 @@ export declare class DclOtaUpdateService {
187
167
  isProduction?: boolean;
188
168
  }): Promise<number>;
189
169
  }
170
+ export declare namespace DclOtaUpdateService {
171
+ type OtaUpdateListEntry = {
172
+ filename: string;
173
+ vendorId: number;
174
+ productId: number;
175
+ softwareVersion: number;
176
+ softwareVersionString: string;
177
+ minApplicableSoftwareVersion?: number;
178
+ maxApplicableSoftwareVersion?: number;
179
+ mode: "prod" | "test";
180
+ size: number;
181
+ };
182
+ interface FindOptions {
183
+ vendorId?: number;
184
+ productId?: number;
185
+ isProduction?: boolean;
186
+ currentVersion?: number;
187
+ }
188
+ }
190
189
  //# sourceMappingURL=DclOtaUpdateService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DclOtaUpdateService.d.ts","sourceRoot":"","sources":["../../../src/dcl/DclOtaUpdateService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAEH,YAAY,EAGZ,WAAW,EACX,aAAa,EAKb,WAAW,EAId,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,mCAAmC,EAAY,MAAM,QAAQ,CAAC;AAMvE,2DAA2D;AAC3D,qBAAa,cAAe,SAAQ,WAAW;gBAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAGtD;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,mCAAmC,CAAC;AAMhE;;;;;;;GAOG;AACH,qBAAa,mBAAmB;;IAK5B,IAAI,YAAY,sCAEf;gBAEW,WAAW,EAAE,WAAW;IAUpC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAI9C;;;;;;;;;;;OAWG;IACG,cAAc,CAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,sBAAsB,EAAE,MAAM,EAC9B,YAAY,UAAO,EACnB,qBAAqB,CAAC,EAAE,MAAM;IAwGlC;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,UAAO;IAyC9F;;;;;;;;;OASG;IACG,cAAc,CAChB,UAAU,EAAE,aAAa,EACzB,YAAY,UAAO,EACnB,KAAK,UAAQ,EACb,OAAO,8BAAuB;IAgKlC;;;;;;;;;;;;;;;;;;OAkBG;IACG,oBAAoB,CACtB,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACN,6DAA6D;QAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,uDAAuD;QACvD,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,yCAAyC;QACzC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB;;;WAGG;QACH,4BAA4B,CAAC,EAAE,MAAM,CAAC;QACtC;;;WAGG;QACH,4BAA4B,CAAC,EAAE,MAAM,CAAC;KACzC;IAyCL;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,wBAAwB,CAC1B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACN,6DAA6D;QAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,uDAAuD;QACvD,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,yCAAyC;QACzC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB;;;WAGG;QACH,4BAA4B,CAAC,EAAE,MAAM,CAAC;QACtC;;;WAGG;QACH,4BAA4B,CAAC,EAAE,MAAM,CAAC;KACzC;IAyBL;;;;;;;;;;;;OAYG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE;kBAYpE,MAAM;kBACN,MAAM;mBACL,MAAM;yBACA,MAAM;+BACA,MAAM;cACvB,MAAM,GAAG,MAAM;cACf,MAAM;;IA2DpB,8EAA8E;IACxE,uBAAuB,CAAC,QAAQ,EAAE,MAAM;IAkB9C;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE;CAkD7G"}
1
+ {"version":3,"file":"DclOtaUpdateService.d.ts","sourceRoot":"","sources":["../../../src/dcl/DclOtaUpdateService.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { PersistedFileDesignator } from "#bdx/PersistedFileDesignator.js";
7
+ import { ScopedStorage } from "#bdx/ScopedStorage.js";
7
8
  import {
8
- Bytes,
9
9
  Construction,
10
10
  Crypto,
11
11
  Diagnostic,
@@ -18,8 +18,8 @@ import {
18
18
  StorageService
19
19
  } from "#general";
20
20
  import { VendorId } from "#types";
21
+ import { OtaImageReader } from "../ota/OtaImageReader.js";
21
22
  import { DclClient, MatterDclError } from "./DclClient.js";
22
- import { OtaImageReader } from "./OtaImageReader.js";
23
23
  const logger = Logger.get("DclOtaUpdateService");
24
24
  class OtaUpdateError extends MatterError {
25
25
  constructor(message, options) {
@@ -27,7 +27,7 @@ class OtaUpdateError extends MatterError {
27
27
  }
28
28
  }
29
29
  const OTA_DOWNLOAD_TIMEOUT = Minutes(5);
30
- const OTA_FILENAME_REGEX = /^([0-9a-f]+)-([0-9a-f]+)-(prod|test)$/i;
30
+ const OTA_FILENAME_REGEX = /^[0-9a-f]+[./][0-9a-f]+[./](?:prod|test)$/i;
31
31
  class DclOtaUpdateService {
32
32
  #construction;
33
33
  #crypto;
@@ -39,25 +39,55 @@ class DclOtaUpdateService {
39
39
  environment.set(DclOtaUpdateService, this);
40
40
  this.#crypto = environment.get(Crypto);
41
41
  this.#construction = Construction(this, async () => {
42
- this.#storage = (await environment.get(StorageService).open("ota")).createContext("bin");
42
+ this.#storage = new ScopedStorage(
43
+ (await environment.get(StorageService).open("ota")).createContext("bin"),
44
+ "ota"
45
+ );
43
46
  });
44
47
  }
45
48
  static [Environmental.create](env) {
46
49
  return new DclOtaUpdateService(env);
47
50
  }
51
+ get storage() {
52
+ this.construction.assert();
53
+ return this.#storage;
54
+ }
48
55
  /**
49
56
  * Check DCL for available software updates for a device, defined by it's vendor ID, product ID and current
50
57
  * software version. If a target software version is provided, only that version is checked for applicability and
51
58
  * ignoring other newer versions.
52
- *
53
- * @param vendorId - Vendor ID of the device
54
- * @param productId - Product ID of the device
55
- * @param currentSoftwareVersion - Current software version of the device
56
- * @param isProduction - Whether to check production DCL (true) or test DCL (false)
57
- * @param targetSoftwareVersion - Optional specific version to check. If not provided, checks for any newer version.
58
- * @returns Update information if an update is available, undefined otherwise
59
59
  */
60
- async checkForUpdate(vendorId, productId, currentSoftwareVersion, isProduction = true, targetSoftwareVersion) {
60
+ async checkForUpdate(options) {
61
+ const {
62
+ vendorId,
63
+ productId,
64
+ currentSoftwareVersion,
65
+ includeStoredUpdates = false,
66
+ isProduction = true,
67
+ targetSoftwareVersion
68
+ } = options;
69
+ let localUpdateFound = void 0;
70
+ if (includeStoredUpdates) {
71
+ const localUpdates = await this.find({
72
+ vendorId,
73
+ productId,
74
+ isProduction,
75
+ currentVersion: currentSoftwareVersion
76
+ });
77
+ if (localUpdates.length) {
78
+ localUpdateFound = {
79
+ ...localUpdates[0],
80
+ vid: VendorId(vendorId),
81
+ pid: productId,
82
+ cdVersionNumber: 0,
83
+ softwareVersionValid: true,
84
+ schemaVersion: 1,
85
+ minApplicableSoftwareVersion: localUpdates[0].minApplicableSoftwareVersion ?? 0,
86
+ maxApplicableSoftwareVersion: localUpdates[0].maxApplicableSoftwareVersion ?? localUpdates[0].softwareVersion - 1
87
+ };
88
+ logger.debug(`Found local update`, Diagnostic.dict(localUpdateFound));
89
+ }
90
+ }
61
91
  const dclClient = new DclClient(isProduction);
62
92
  const diagnosticInfo = {
63
93
  vid: vendorId,
@@ -67,6 +97,16 @@ class DclOtaUpdateService {
67
97
  };
68
98
  try {
69
99
  if (targetSoftwareVersion !== void 0) {
100
+ if (localUpdateFound !== void 0 && localUpdateFound.softwareVersion === targetSoftwareVersion) {
101
+ logger.debug(
102
+ `Update already available locally for specific version`,
103
+ Diagnostic.dict({
104
+ ...diagnosticInfo,
105
+ target: targetSoftwareVersion
106
+ })
107
+ );
108
+ return localUpdateFound;
109
+ }
70
110
  logger.debug(
71
111
  `Checking update in DCL for specific version`,
72
112
  Diagnostic.dict({
@@ -86,20 +126,33 @@ class DclOtaUpdateService {
86
126
  const newerVersions = softwareVersions.filter((version) => version > currentSoftwareVersion).sort((a, b) => b - a);
87
127
  if (newerVersions.length === 0) {
88
128
  logger.debug(`No newer versions available in DCL`, Diagnostic.dict(diagnosticInfo));
129
+ if (localUpdateFound !== void 0) {
130
+ logger.info(`Other update already available locally`, Diagnostic.dict(diagnosticInfo));
131
+ return localUpdateFound;
132
+ }
89
133
  return;
90
134
  }
91
135
  logger.debug(`Found ${newerVersions.length} newer version(s) in DCL`, Diagnostic.dict(diagnosticInfo));
92
136
  for (const version of newerVersions) {
93
- const updateInfo = await this.#checkSpecificVersion(
94
- dclClient,
95
- vendorId,
96
- productId,
97
- version,
98
- currentSoftwareVersion
99
- );
100
- if (updateInfo !== void 0) {
101
- logger.info(`Update available in DCL`, Diagnostic.dict({ new: version, ...diagnosticInfo }));
102
- return updateInfo;
137
+ try {
138
+ const updateInfo = await this.#checkSpecificVersion(
139
+ dclClient,
140
+ vendorId,
141
+ productId,
142
+ version,
143
+ currentSoftwareVersion
144
+ );
145
+ if (updateInfo !== void 0) {
146
+ logger.info(`Update available in DCL`, Diagnostic.dict({ new: version, ...diagnosticInfo }));
147
+ if (localUpdateFound !== void 0 && localUpdateFound.softwareVersion > updateInfo.softwareVersion) {
148
+ logger.info(`Newer update already available locally`, Diagnostic.dict(diagnosticInfo));
149
+ return localUpdateFound;
150
+ }
151
+ return updateInfo;
152
+ }
153
+ } catch (error) {
154
+ MatterDclError.accept(error);
155
+ logger.info(`Failed to check for update for VID: ${vendorId}, PID: ${productId}: ${error.message}`);
103
156
  }
104
157
  }
105
158
  logger.info(`No applicable updates found in DCL`, Diagnostic.dict(diagnosticInfo));
@@ -107,6 +160,10 @@ class DclOtaUpdateService {
107
160
  MatterDclError.accept(error);
108
161
  logger.info(`Failed to check for updates for VID: ${vendorId}, PID: ${productId}: ${error.message}`);
109
162
  }
163
+ if (localUpdateFound !== void 0) {
164
+ logger.info(`Other update already available locally`, Diagnostic.dict(diagnosticInfo));
165
+ return localUpdateFound;
166
+ }
110
167
  }
111
168
  async #verifyUpdate(updateInfo, fileDesignator) {
112
169
  const { otaFileSize, softwareVersion, vid, pid } = updateInfo;
@@ -131,7 +188,7 @@ class DclOtaUpdateService {
131
188
  }
132
189
  }
133
190
  #fileName(vid, pid, isProduction) {
134
- return `${vid.toString(16)}-${pid.toString(16)}-${isProduction ? "prod" : "test"}`;
191
+ return `${vid.toString(16)}.${pid.toString(16)}.${isProduction ? "prod" : "test"}`;
135
192
  }
136
193
  /**
137
194
  * Store an OTA update image from a ReadableStream into persistent storage.
@@ -186,9 +243,6 @@ class DclOtaUpdateService {
186
243
  v: `${softwareVersion} (${softwareVersionString})`,
187
244
  prod: isProduction
188
245
  };
189
- if (!otaUrl?.trim()) {
190
- throw new OtaUpdateError("No OTA URL provided in update info");
191
- }
192
246
  const filename = this.#fileName(vid, pid, isProduction);
193
247
  const fileDesignator = new PersistedFileDesignator(filename, storage);
194
248
  if (await fileDesignator.exists()) {
@@ -203,6 +257,9 @@ class DclOtaUpdateService {
203
257
  }
204
258
  await fileDesignator.delete();
205
259
  }
260
+ if (!otaUrl?.trim()) {
261
+ throw new OtaUpdateError("No OTA URL provided in update info");
262
+ }
206
263
  let url;
207
264
  try {
208
265
  url = new URL(otaUrl);
@@ -317,9 +374,6 @@ class DclOtaUpdateService {
317
374
  cdVersionNumber: options?.cdVersionNumber ?? 1,
318
375
  softwareVersionValid: options?.softwareVersionValid ?? true,
319
376
  otaUrl,
320
- otaFileSize: header.payloadSize,
321
- otaChecksum: Bytes.toBase64(header.imageDigest),
322
- otaChecksumType: header.imageDigestType,
323
377
  // Use header values if present, otherwise use provided options or defaults
324
378
  minApplicableSoftwareVersion: header.minApplicableSoftwareVersion ?? options?.minApplicableSoftwareVersion ?? 0,
325
379
  maxApplicableSoftwareVersion: header.maxApplicableSoftwareVersion ?? options?.maxApplicableSoftwareVersion ?? header.softwareVersion - 1,
@@ -353,16 +407,6 @@ class DclOtaUpdateService {
353
407
  * @param fileUrl - HTTPS URL to the OTA image file
354
408
  * @param options - Optional parameters for DCL-specific fields not in OTA header
355
409
  * @returns OtaUpdateInfo with file URL and header data
356
- *
357
- * @example
358
- * ```typescript
359
- * const service = new DclOtaUpdateService(environment);
360
- * const updateInfo = await service.createUpdateInfoFromFile(
361
- * "https://example.com/ota-image.bin",
362
- * { cdVersionNumber: 1 }
363
- * );
364
- * const fileDesignator = await service.downloadUpdate(updateInfo, true);
365
- * ```
366
410
  */
367
411
  async createUpdateInfoFromFile(fileUrl, options) {
368
412
  const fileProtocol = fileUrl.split(":")[0].toLowerCase();
@@ -393,51 +437,11 @@ class DclOtaUpdateService {
393
437
  * @param options.isProduction - Filter by production (true) or test (false) mode
394
438
  * @returns Array of downloaded update information
395
439
  */
396
- async find(options) {
440
+ async find(options = {}) {
397
441
  if (this.#storage === void 0) {
398
442
  await this.construction;
399
443
  }
400
- const storage = this.#storage;
401
- const keys = await storage.keys();
402
- logger.debug(`Scanning stored OTA files, found ${keys.length} total files`);
403
- const results = new Array();
404
- for (const key of keys) {
405
- const match = key.match(OTA_FILENAME_REGEX);
406
- logger.debug(`Checking stored OTA file: ${key}: match=${match !== null}`);
407
- if (!match) {
408
- continue;
409
- }
410
- const [, vidHex, pidHex, mode] = match;
411
- const vendorId = parseInt(vidHex, 16);
412
- const productId = parseInt(pidHex, 16);
413
- const isProduction = mode === "prod";
414
- if (options?.vendorId !== void 0 && vendorId !== options.vendorId) {
415
- continue;
416
- }
417
- if (options?.productId !== void 0 && productId !== options.productId) {
418
- continue;
419
- }
420
- if (options?.isProduction !== void 0 && isProduction !== options.isProduction) {
421
- continue;
422
- }
423
- try {
424
- const fileDesignator = new PersistedFileDesignator(key, storage);
425
- const blob = await fileDesignator.openBlob();
426
- const reader = blob.stream().getReader();
427
- const header = await OtaImageReader.header(reader);
428
- results.push({
429
- filename: key,
430
- vendorId,
431
- productId,
432
- softwareVersion: header.softwareVersion,
433
- softwareVersionString: header.softwareVersionString,
434
- mode,
435
- size: blob.size
436
- });
437
- } catch (error) {
438
- logger.warn(`Failed to read OTA file ${key}:`, error);
439
- }
440
- }
444
+ const results = await this.#findEntries(this.#storage.context, options);
441
445
  results.sort((a, b) => {
442
446
  if (a.mode !== b.mode) return a.mode === "prod" ? -1 : 1;
443
447
  if (a.vendorId !== b.vendorId) return a.vendorId - b.vendorId;
@@ -446,6 +450,98 @@ class DclOtaUpdateService {
446
450
  });
447
451
  return results;
448
452
  }
453
+ async #findEntries(context, options) {
454
+ const { vendorId } = options;
455
+ if (vendorId !== void 0) {
456
+ const vendorEntries = await this.#findVendorEntries(context.createContext(vendorId.toString(16)), options);
457
+ return vendorEntries.map((entry) => ({
458
+ ...entry,
459
+ vendorId,
460
+ filename: this.#fileName(vendorId, entry.productId, entry.mode === "prod")
461
+ }));
462
+ }
463
+ const result = new Array();
464
+ for (const vendorIdHex of await context.contexts()) {
465
+ const vendorId2 = parseInt(vendorIdHex, 16);
466
+ const vendorEntries = await this.#findVendorEntries(context.createContext(vendorIdHex), options);
467
+ result.push(
468
+ ...vendorEntries.map((entry) => ({
469
+ ...entry,
470
+ vendorId: vendorId2,
471
+ filename: this.#fileName(vendorId2, entry.productId, entry.mode === "prod")
472
+ }))
473
+ );
474
+ }
475
+ return result;
476
+ }
477
+ async #findVendorEntries(vendorContext, options) {
478
+ const { productId } = options;
479
+ if (productId !== void 0) {
480
+ const productEntries = await this.#findVendorProductEntries(
481
+ vendorContext.createContext(productId.toString(16)),
482
+ options
483
+ );
484
+ return productEntries.map((entry) => ({ ...entry, productId }));
485
+ }
486
+ const result = new Array();
487
+ for (const productIdHex of await vendorContext.contexts()) {
488
+ const productId2 = parseInt(productIdHex, 16);
489
+ const productEntries = await this.#findVendorProductEntries(
490
+ vendorContext.createContext(productIdHex),
491
+ options
492
+ );
493
+ result.push(...productEntries.map((entry) => ({ ...entry, productId: productId2 })));
494
+ }
495
+ return result;
496
+ }
497
+ async #findVendorProductEntries(productContext, options) {
498
+ const { isProduction } = options;
499
+ const result = new Array();
500
+ if (isProduction !== false && await productContext.has("prod")) {
501
+ const prodResult = await this.#checkEntry(new PersistedFileDesignator("prod", productContext), options);
502
+ if (prodResult !== void 0) {
503
+ result.push({
504
+ ...prodResult,
505
+ mode: "prod"
506
+ });
507
+ }
508
+ }
509
+ if (isProduction !== true && await productContext.has("test")) {
510
+ const testResult = await this.#checkEntry(new PersistedFileDesignator("test", productContext), options);
511
+ if (testResult !== void 0) {
512
+ result.push({
513
+ ...testResult,
514
+ mode: "test"
515
+ });
516
+ }
517
+ }
518
+ return result;
519
+ }
520
+ async #checkEntry(fileDesignator, options) {
521
+ try {
522
+ const blob = await fileDesignator.openBlob();
523
+ const reader = blob.stream().getReader();
524
+ const header = await OtaImageReader.header(reader);
525
+ const { currentVersion } = options;
526
+ if (currentVersion !== void 0) {
527
+ if (header.minApplicableSoftwareVersion !== void 0 && currentVersion < header.minApplicableSoftwareVersion) {
528
+ return;
529
+ }
530
+ if (header.maxApplicableSoftwareVersion !== void 0 && currentVersion > header.maxApplicableSoftwareVersion) {
531
+ return;
532
+ }
533
+ }
534
+ return {
535
+ softwareVersion: header.softwareVersion,
536
+ softwareVersionString: header.softwareVersionString,
537
+ minApplicableSoftwareVersion: header.minApplicableSoftwareVersion,
538
+ maxApplicableSoftwareVersion: header.maxApplicableSoftwareVersion,
539
+ size: blob.size
540
+ };
541
+ } catch (error) {
542
+ logger.warn(`Failed to read OTA file ${fileDesignator.text}:`, error);
543
+ }
544
+ }
449
545
  /** Get a PersistedFileDesignator for a stored OTA update file by filename. */
450
546
  async fileDesignatorForUpdate(filename) {
451
547
  if (!OTA_FILENAME_REGEX.test(filename)) {
@@ -454,8 +550,7 @@ class DclOtaUpdateService {
454
550
  if (this.#storage === void 0) {
455
551
  await this.construction;
456
552
  }
457
- const storage = this.#storage;
458
- const fileDesignator = new PersistedFileDesignator(filename, storage);
553
+ const fileDesignator = new PersistedFileDesignator(filename, this.#storage);
459
554
  if (!await fileDesignator.exists()) {
460
555
  throw new OtaUpdateError(`OTA file not found: ${filename}`);
461
556
  }
@@ -479,12 +574,12 @@ class DclOtaUpdateService {
479
574
  await this.construction;
480
575
  }
481
576
  const storage = this.#storage;
482
- const { vendorId, productId, isProduction = true } = options;
577
+ const { vendorId, productId, isProduction } = options;
483
578
  let { filename } = options;
484
- if (!filename && vendorId !== void 0 && productId !== void 0) {
579
+ if (filename == void 0 && vendorId !== void 0 && productId !== void 0 && isProduction !== void 0) {
485
580
  filename = this.#fileName(vendorId, productId, isProduction);
486
581
  }
487
- if (filename) {
582
+ if (filename !== void 0) {
488
583
  try {
489
584
  const fileDesignator = await this.fileDesignatorForUpdate(filename);
490
585
  await fileDesignator.delete();
@@ -499,15 +594,18 @@ class DclOtaUpdateService {
499
594
  throw new OtaUpdateError("Either filename or vendorId must be provided to delete files");
500
595
  }
501
596
  const vendorHex = vendorId.toString(16);
502
- const mode = isProduction ? "prod" : "test";
503
- const pattern = new RegExp(`^${vendorHex}-[0-9a-f]+-${mode}$`, "i");
504
- const keys = await storage.keys();
597
+ const vendorStorage = storage.context.createContext(vendorHex);
505
598
  let deletedCount = 0;
506
- for (const key of keys) {
507
- if (pattern.test(key)) {
508
- const fileDesignator = new PersistedFileDesignator(key, storage);
599
+ for (const key of await vendorStorage.contexts()) {
600
+ const prodStorage = vendorStorage.createContext(key);
601
+ if (isProduction !== false && await prodStorage.has("prod")) {
602
+ const fileDesignator = new PersistedFileDesignator("prod", prodStorage);
603
+ await fileDesignator.delete();
604
+ deletedCount++;
605
+ }
606
+ if (isProduction !== true && await prodStorage.has("test")) {
607
+ const fileDesignator = new PersistedFileDesignator("test", prodStorage);
509
608
  await fileDesignator.delete();
510
- logger.info(`Deleted OTA file: ${key}`);
511
609
  deletedCount++;
512
610
  }
513
611
  }