@matter/protocol 0.16.0-alpha.0-20250916-d577beb1d → 0.16.0-alpha.0-20250921-b7a3dda23

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 (254) hide show
  1. package/dist/cjs/bdx/BdxClient.d.ts +31 -0
  2. package/dist/cjs/bdx/BdxClient.d.ts.map +1 -0
  3. package/dist/cjs/bdx/BdxClient.js +57 -0
  4. package/dist/cjs/bdx/BdxClient.js.map +6 -0
  5. package/dist/cjs/bdx/BdxError.d.ts +21 -0
  6. package/dist/cjs/bdx/BdxError.d.ts.map +1 -0
  7. package/dist/cjs/bdx/BdxError.js +54 -0
  8. package/dist/cjs/bdx/BdxError.js.map +6 -0
  9. package/dist/cjs/bdx/BdxMessenger.d.ts +77 -0
  10. package/dist/cjs/bdx/BdxMessenger.d.ts.map +1 -0
  11. package/dist/cjs/bdx/BdxMessenger.js +245 -0
  12. package/dist/cjs/bdx/BdxMessenger.js.map +6 -0
  13. package/dist/cjs/bdx/BdxProtocol.d.ts +25 -0
  14. package/dist/cjs/bdx/BdxProtocol.d.ts.map +1 -0
  15. package/dist/cjs/bdx/BdxProtocol.js +102 -0
  16. package/dist/cjs/bdx/BdxProtocol.js.map +6 -0
  17. package/dist/cjs/bdx/BdxSession.d.ts +36 -0
  18. package/dist/cjs/bdx/BdxSession.d.ts.map +1 -0
  19. package/dist/cjs/bdx/BdxSession.js +153 -0
  20. package/dist/cjs/bdx/BdxSession.js.map +6 -0
  21. package/dist/cjs/bdx/BdxSessionConfiguration.d.ts +61 -0
  22. package/dist/cjs/bdx/BdxSessionConfiguration.d.ts.map +1 -0
  23. package/dist/cjs/bdx/BdxSessionConfiguration.js +95 -0
  24. package/dist/cjs/bdx/BdxSessionConfiguration.js.map +6 -0
  25. package/dist/cjs/bdx/FileDesignator.d.ts +21 -0
  26. package/dist/cjs/bdx/FileDesignator.d.ts.map +1 -0
  27. package/dist/cjs/bdx/FileDesignator.js +62 -0
  28. package/dist/cjs/bdx/FileDesignator.js.map +6 -0
  29. package/dist/cjs/bdx/PersistedFileDesignator.d.ts +16 -0
  30. package/dist/cjs/bdx/PersistedFileDesignator.d.ts.map +1 -0
  31. package/dist/cjs/bdx/PersistedFileDesignator.js +57 -0
  32. package/dist/cjs/bdx/PersistedFileDesignator.js.map +6 -0
  33. package/dist/cjs/bdx/bdx-session-initiator.d.ts +14 -0
  34. package/dist/cjs/bdx/bdx-session-initiator.d.ts.map +1 -0
  35. package/dist/cjs/bdx/bdx-session-initiator.js +218 -0
  36. package/dist/cjs/bdx/bdx-session-initiator.js.map +6 -0
  37. package/dist/cjs/bdx/flow/DrivenSendingFlow.d.ts +15 -0
  38. package/dist/cjs/bdx/flow/DrivenSendingFlow.d.ts.map +1 -0
  39. package/dist/cjs/bdx/flow/DrivenSendingFlow.js +49 -0
  40. package/dist/cjs/bdx/flow/DrivenSendingFlow.js.map +6 -0
  41. package/dist/cjs/bdx/flow/DrivingReceivingFlow.d.ts +15 -0
  42. package/dist/cjs/bdx/flow/DrivingReceivingFlow.d.ts.map +1 -0
  43. package/dist/cjs/bdx/flow/DrivingReceivingFlow.js +47 -0
  44. package/dist/cjs/bdx/flow/DrivingReceivingFlow.js.map +6 -0
  45. package/dist/cjs/bdx/flow/Flow.d.ts +48 -0
  46. package/dist/cjs/bdx/flow/Flow.d.ts.map +1 -0
  47. package/dist/cjs/bdx/flow/Flow.js +112 -0
  48. package/dist/cjs/bdx/flow/Flow.js.map +6 -0
  49. package/dist/cjs/bdx/flow/FollowingReceivingFlow.d.ts +16 -0
  50. package/dist/cjs/bdx/flow/FollowingReceivingFlow.d.ts.map +1 -0
  51. package/dist/cjs/bdx/flow/FollowingReceivingFlow.js +60 -0
  52. package/dist/cjs/bdx/flow/FollowingReceivingFlow.js.map +6 -0
  53. package/dist/cjs/bdx/flow/FollowingSendingFlow.d.ts +15 -0
  54. package/dist/cjs/bdx/flow/FollowingSendingFlow.d.ts.map +1 -0
  55. package/dist/cjs/bdx/flow/FollowingSendingFlow.js +49 -0
  56. package/dist/cjs/bdx/flow/FollowingSendingFlow.js.map +6 -0
  57. package/dist/cjs/bdx/flow/InboundFlow.d.ts +26 -0
  58. package/dist/cjs/bdx/flow/InboundFlow.d.ts.map +1 -0
  59. package/dist/cjs/bdx/flow/InboundFlow.js +101 -0
  60. package/dist/cjs/bdx/flow/InboundFlow.js.map +6 -0
  61. package/dist/cjs/bdx/flow/OutboundFlow.d.ts +31 -0
  62. package/dist/cjs/bdx/flow/OutboundFlow.d.ts.map +1 -0
  63. package/dist/cjs/bdx/flow/OutboundFlow.js +124 -0
  64. package/dist/cjs/bdx/flow/OutboundFlow.js.map +6 -0
  65. package/dist/cjs/bdx/index.d.ts +16 -0
  66. package/dist/cjs/bdx/index.d.ts.map +1 -0
  67. package/dist/cjs/bdx/index.js +33 -0
  68. package/dist/cjs/bdx/index.js.map +6 -0
  69. package/dist/cjs/bdx/schema/BdxAcceptMessagesSchema.d.ts +50 -0
  70. package/dist/cjs/bdx/schema/BdxAcceptMessagesSchema.d.ts.map +1 -0
  71. package/dist/cjs/bdx/schema/BdxAcceptMessagesSchema.js +125 -0
  72. package/dist/cjs/bdx/schema/BdxAcceptMessagesSchema.js.map +6 -0
  73. package/dist/cjs/bdx/schema/BdxBlockMessagesSchema.d.ts +53 -0
  74. package/dist/cjs/bdx/schema/BdxBlockMessagesSchema.d.ts.map +1 -0
  75. package/dist/cjs/bdx/schema/BdxBlockMessagesSchema.js +92 -0
  76. package/dist/cjs/bdx/schema/BdxBlockMessagesSchema.js.map +6 -0
  77. package/dist/cjs/bdx/schema/BdxInitMessagesSchema.d.ts +117 -0
  78. package/dist/cjs/bdx/schema/BdxInitMessagesSchema.d.ts.map +1 -0
  79. package/dist/cjs/bdx/schema/BdxInitMessagesSchema.js +153 -0
  80. package/dist/cjs/bdx/schema/BdxInitMessagesSchema.js.map +6 -0
  81. package/dist/cjs/bdx/schema/BdxMessage.d.ts +23 -0
  82. package/dist/cjs/bdx/schema/BdxMessage.d.ts.map +1 -0
  83. package/dist/cjs/bdx/schema/BdxMessage.js +75 -0
  84. package/dist/cjs/bdx/schema/BdxMessage.js.map +6 -0
  85. package/dist/cjs/bdx/schema/BdxStatusMessageSchema.d.ts +12 -0
  86. package/dist/cjs/bdx/schema/BdxStatusMessageSchema.d.ts.map +1 -0
  87. package/dist/cjs/bdx/schema/BdxStatusMessageSchema.js +35 -0
  88. package/dist/cjs/bdx/schema/BdxStatusMessageSchema.js.map +6 -0
  89. package/dist/cjs/bdx/schema/index.d.ts +11 -0
  90. package/dist/cjs/bdx/schema/index.d.ts.map +1 -0
  91. package/dist/cjs/bdx/schema/index.js +28 -0
  92. package/dist/cjs/bdx/schema/index.js.map +6 -0
  93. package/dist/cjs/index.d.ts +1 -0
  94. package/dist/cjs/index.d.ts.map +1 -1
  95. package/dist/cjs/index.js +1 -0
  96. package/dist/cjs/index.js.map +1 -1
  97. package/dist/cjs/interaction/InteractionClient.d.ts +4 -4
  98. package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -1
  99. package/dist/cjs/interaction/InteractionClient.js +27 -39
  100. package/dist/cjs/interaction/InteractionClient.js.map +1 -1
  101. package/dist/cjs/mdns/MdnsClient.js +2 -2
  102. package/dist/cjs/mdns/MdnsClient.js.map +1 -1
  103. package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
  104. package/dist/cjs/protocol/ExchangeManager.js +4 -2
  105. package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
  106. package/dist/cjs/protocol/MessageExchange.d.ts +2 -0
  107. package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
  108. package/dist/cjs/protocol/MessageExchange.js +14 -8
  109. package/dist/cjs/protocol/MessageExchange.js.map +2 -2
  110. package/dist/cjs/protocol/ProtocolStatusMessage.d.ts +1 -1
  111. package/dist/cjs/protocol/ProtocolStatusMessage.d.ts.map +1 -1
  112. package/dist/cjs/protocol/ProtocolStatusMessage.js.map +1 -1
  113. package/dist/esm/bdx/BdxClient.d.ts +31 -0
  114. package/dist/esm/bdx/BdxClient.d.ts.map +1 -0
  115. package/dist/esm/bdx/BdxClient.js +37 -0
  116. package/dist/esm/bdx/BdxClient.js.map +6 -0
  117. package/dist/esm/bdx/BdxError.d.ts +21 -0
  118. package/dist/esm/bdx/BdxError.d.ts.map +1 -0
  119. package/dist/esm/bdx/BdxError.js +34 -0
  120. package/dist/esm/bdx/BdxError.js.map +6 -0
  121. package/dist/esm/bdx/BdxMessenger.d.ts +77 -0
  122. package/dist/esm/bdx/BdxMessenger.d.ts.map +1 -0
  123. package/dist/esm/bdx/BdxMessenger.js +233 -0
  124. package/dist/esm/bdx/BdxMessenger.js.map +6 -0
  125. package/dist/esm/bdx/BdxProtocol.d.ts +25 -0
  126. package/dist/esm/bdx/BdxProtocol.d.ts.map +1 -0
  127. package/dist/esm/bdx/BdxProtocol.js +82 -0
  128. package/dist/esm/bdx/BdxProtocol.js.map +6 -0
  129. package/dist/esm/bdx/BdxSession.d.ts +36 -0
  130. package/dist/esm/bdx/BdxSession.d.ts.map +1 -0
  131. package/dist/esm/bdx/BdxSession.js +133 -0
  132. package/dist/esm/bdx/BdxSession.js.map +6 -0
  133. package/dist/esm/bdx/BdxSessionConfiguration.d.ts +61 -0
  134. package/dist/esm/bdx/BdxSessionConfiguration.d.ts.map +1 -0
  135. package/dist/esm/bdx/BdxSessionConfiguration.js +75 -0
  136. package/dist/esm/bdx/BdxSessionConfiguration.js.map +6 -0
  137. package/dist/esm/bdx/FileDesignator.d.ts +21 -0
  138. package/dist/esm/bdx/FileDesignator.d.ts.map +1 -0
  139. package/dist/esm/bdx/FileDesignator.js +42 -0
  140. package/dist/esm/bdx/FileDesignator.js.map +6 -0
  141. package/dist/esm/bdx/PersistedFileDesignator.d.ts +16 -0
  142. package/dist/esm/bdx/PersistedFileDesignator.d.ts.map +1 -0
  143. package/dist/esm/bdx/PersistedFileDesignator.js +37 -0
  144. package/dist/esm/bdx/PersistedFileDesignator.js.map +6 -0
  145. package/dist/esm/bdx/bdx-session-initiator.d.ts +14 -0
  146. package/dist/esm/bdx/bdx-session-initiator.d.ts.map +1 -0
  147. package/dist/esm/bdx/bdx-session-initiator.js +198 -0
  148. package/dist/esm/bdx/bdx-session-initiator.js.map +6 -0
  149. package/dist/esm/bdx/flow/DrivenSendingFlow.d.ts +15 -0
  150. package/dist/esm/bdx/flow/DrivenSendingFlow.d.ts.map +1 -0
  151. package/dist/esm/bdx/flow/DrivenSendingFlow.js +29 -0
  152. package/dist/esm/bdx/flow/DrivenSendingFlow.js.map +6 -0
  153. package/dist/esm/bdx/flow/DrivingReceivingFlow.d.ts +15 -0
  154. package/dist/esm/bdx/flow/DrivingReceivingFlow.d.ts.map +1 -0
  155. package/dist/esm/bdx/flow/DrivingReceivingFlow.js +27 -0
  156. package/dist/esm/bdx/flow/DrivingReceivingFlow.js.map +6 -0
  157. package/dist/esm/bdx/flow/Flow.d.ts +48 -0
  158. package/dist/esm/bdx/flow/Flow.d.ts.map +1 -0
  159. package/dist/esm/bdx/flow/Flow.js +92 -0
  160. package/dist/esm/bdx/flow/Flow.js.map +6 -0
  161. package/dist/esm/bdx/flow/FollowingReceivingFlow.d.ts +16 -0
  162. package/dist/esm/bdx/flow/FollowingReceivingFlow.d.ts.map +1 -0
  163. package/dist/esm/bdx/flow/FollowingReceivingFlow.js +40 -0
  164. package/dist/esm/bdx/flow/FollowingReceivingFlow.js.map +6 -0
  165. package/dist/esm/bdx/flow/FollowingSendingFlow.d.ts +15 -0
  166. package/dist/esm/bdx/flow/FollowingSendingFlow.d.ts.map +1 -0
  167. package/dist/esm/bdx/flow/FollowingSendingFlow.js +29 -0
  168. package/dist/esm/bdx/flow/FollowingSendingFlow.js.map +6 -0
  169. package/dist/esm/bdx/flow/InboundFlow.d.ts +26 -0
  170. package/dist/esm/bdx/flow/InboundFlow.d.ts.map +1 -0
  171. package/dist/esm/bdx/flow/InboundFlow.js +81 -0
  172. package/dist/esm/bdx/flow/InboundFlow.js.map +6 -0
  173. package/dist/esm/bdx/flow/OutboundFlow.d.ts +31 -0
  174. package/dist/esm/bdx/flow/OutboundFlow.d.ts.map +1 -0
  175. package/dist/esm/bdx/flow/OutboundFlow.js +104 -0
  176. package/dist/esm/bdx/flow/OutboundFlow.js.map +6 -0
  177. package/dist/esm/bdx/index.d.ts +16 -0
  178. package/dist/esm/bdx/index.d.ts.map +1 -0
  179. package/dist/esm/bdx/index.js +16 -0
  180. package/dist/esm/bdx/index.js.map +6 -0
  181. package/dist/esm/bdx/schema/BdxAcceptMessagesSchema.d.ts +50 -0
  182. package/dist/esm/bdx/schema/BdxAcceptMessagesSchema.d.ts.map +1 -0
  183. package/dist/esm/bdx/schema/BdxAcceptMessagesSchema.js +109 -0
  184. package/dist/esm/bdx/schema/BdxAcceptMessagesSchema.js.map +6 -0
  185. package/dist/esm/bdx/schema/BdxBlockMessagesSchema.d.ts +53 -0
  186. package/dist/esm/bdx/schema/BdxBlockMessagesSchema.d.ts.map +1 -0
  187. package/dist/esm/bdx/schema/BdxBlockMessagesSchema.js +72 -0
  188. package/dist/esm/bdx/schema/BdxBlockMessagesSchema.js.map +6 -0
  189. package/dist/esm/bdx/schema/BdxInitMessagesSchema.d.ts +117 -0
  190. package/dist/esm/bdx/schema/BdxInitMessagesSchema.d.ts.map +1 -0
  191. package/dist/esm/bdx/schema/BdxInitMessagesSchema.js +133 -0
  192. package/dist/esm/bdx/schema/BdxInitMessagesSchema.js.map +6 -0
  193. package/dist/esm/bdx/schema/BdxMessage.d.ts +23 -0
  194. package/dist/esm/bdx/schema/BdxMessage.d.ts.map +1 -0
  195. package/dist/esm/bdx/schema/BdxMessage.js +62 -0
  196. package/dist/esm/bdx/schema/BdxMessage.js.map +6 -0
  197. package/dist/esm/bdx/schema/BdxStatusMessageSchema.d.ts +12 -0
  198. package/dist/esm/bdx/schema/BdxStatusMessageSchema.d.ts.map +1 -0
  199. package/dist/esm/bdx/schema/BdxStatusMessageSchema.js +15 -0
  200. package/dist/esm/bdx/schema/BdxStatusMessageSchema.js.map +6 -0
  201. package/dist/esm/bdx/schema/index.d.ts +11 -0
  202. package/dist/esm/bdx/schema/index.d.ts.map +1 -0
  203. package/dist/esm/bdx/schema/index.js +11 -0
  204. package/dist/esm/bdx/schema/index.js.map +6 -0
  205. package/dist/esm/index.d.ts +1 -0
  206. package/dist/esm/index.d.ts.map +1 -1
  207. package/dist/esm/index.js +1 -0
  208. package/dist/esm/index.js.map +1 -1
  209. package/dist/esm/interaction/InteractionClient.d.ts +4 -4
  210. package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
  211. package/dist/esm/interaction/InteractionClient.js +27 -39
  212. package/dist/esm/interaction/InteractionClient.js.map +1 -1
  213. package/dist/esm/mdns/MdnsClient.js +2 -2
  214. package/dist/esm/mdns/MdnsClient.js.map +1 -1
  215. package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
  216. package/dist/esm/protocol/ExchangeManager.js +4 -2
  217. package/dist/esm/protocol/ExchangeManager.js.map +1 -1
  218. package/dist/esm/protocol/MessageExchange.d.ts +2 -0
  219. package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
  220. package/dist/esm/protocol/MessageExchange.js +14 -8
  221. package/dist/esm/protocol/MessageExchange.js.map +2 -2
  222. package/dist/esm/protocol/ProtocolStatusMessage.d.ts +1 -1
  223. package/dist/esm/protocol/ProtocolStatusMessage.d.ts.map +1 -1
  224. package/dist/esm/protocol/ProtocolStatusMessage.js.map +1 -1
  225. package/package.json +6 -6
  226. package/src/bdx/BdxClient.ts +47 -0
  227. package/src/bdx/BdxError.ts +39 -0
  228. package/src/bdx/BdxMessenger.ts +291 -0
  229. package/src/bdx/BdxProtocol.ts +93 -0
  230. package/src/bdx/BdxSession.ts +174 -0
  231. package/src/bdx/BdxSessionConfiguration.ts +134 -0
  232. package/src/bdx/FileDesignator.ts +49 -0
  233. package/src/bdx/PersistedFileDesignator.ts +40 -0
  234. package/src/bdx/bdx-session-initiator.ts +246 -0
  235. package/src/bdx/flow/DrivenSendingFlow.ts +40 -0
  236. package/src/bdx/flow/DrivingReceivingFlow.ts +39 -0
  237. package/src/bdx/flow/Flow.ts +124 -0
  238. package/src/bdx/flow/FollowingReceivingFlow.ts +53 -0
  239. package/src/bdx/flow/FollowingSendingFlow.ts +38 -0
  240. package/src/bdx/flow/InboundFlow.ts +104 -0
  241. package/src/bdx/flow/OutboundFlow.ts +124 -0
  242. package/src/bdx/index.ts +16 -0
  243. package/src/bdx/schema/BdxAcceptMessagesSchema.ts +159 -0
  244. package/src/bdx/schema/BdxBlockMessagesSchema.ts +99 -0
  245. package/src/bdx/schema/BdxInitMessagesSchema.ts +213 -0
  246. package/src/bdx/schema/BdxMessage.ts +70 -0
  247. package/src/bdx/schema/BdxStatusMessageSchema.ts +14 -0
  248. package/src/bdx/schema/index.ts +11 -0
  249. package/src/index.ts +1 -0
  250. package/src/interaction/InteractionClient.ts +34 -48
  251. package/src/mdns/MdnsClient.ts +2 -2
  252. package/src/protocol/ExchangeManager.ts +2 -0
  253. package/src/protocol/MessageExchange.ts +17 -6
  254. package/src/protocol/ProtocolStatusMessage.ts +1 -1
@@ -0,0 +1,109 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { DataReader, DataWriter, Endian } from "#general";
7
+ import { BdxStatusCode, Schema } from "#types";
8
+ import { BdxError } from "../BdxError.js";
9
+ import {
10
+ BDX_VERSION,
11
+ BdxRangeControlSchema,
12
+ BdxTransferControlSchema
13
+ } from "./BdxInitMessagesSchema.js";
14
+ class BdxSendAcceptMessageSchema extends Schema {
15
+ encodeInternal(message) {
16
+ this.validate(message);
17
+ const { transferControl, maxBlockSize, metaData } = message;
18
+ const writer = new DataWriter(Endian.Little);
19
+ writer.writeUInt8(BdxTransferControlSchema.encode(transferControl));
20
+ writer.writeUInt16(maxBlockSize);
21
+ if (metaData && metaData.byteLength > 0) {
22
+ writer.writeByteArray(metaData);
23
+ }
24
+ return writer.toByteArray();
25
+ }
26
+ decodeInternal(bytes) {
27
+ const reader = new DataReader(bytes, Endian.Little);
28
+ const transferControl = BdxTransferControlSchema.decode(reader.readUInt8());
29
+ const maxBlockSize = reader.readUInt16();
30
+ const metaData = reader.remainingBytesCount > 0 ? reader.remainingBytes : void 0;
31
+ const result = {
32
+ transferControl,
33
+ maxBlockSize,
34
+ metaData
35
+ };
36
+ this.validate(result);
37
+ return result;
38
+ }
39
+ validate({ transferControl, maxBlockSize }) {
40
+ if (transferControl.version !== BDX_VERSION) {
41
+ throw new BdxError(
42
+ `Unsupported BDX version: ${transferControl.version}`,
43
+ BdxStatusCode.VersionNotSupported
44
+ );
45
+ }
46
+ if (!transferControl.senderDrive && !transferControl.receiverDrive && !transferControl.asynchronousTransfer) {
47
+ throw new BdxError(
48
+ "BDX transfer control need to specify at least one of sender drive, receiver drive or asynchronousTransfer",
49
+ BdxStatusCode.BadMessageContent
50
+ );
51
+ }
52
+ if (maxBlockSize < 1 || maxBlockSize > 65535) {
53
+ throw new BdxError("Max Block Size must be between 1 and 65535bytes", BdxStatusCode.BadMessageContent);
54
+ }
55
+ }
56
+ }
57
+ const BdxSendAcceptMessage = new BdxSendAcceptMessageSchema();
58
+ class BdxReceiveAcceptMessageSchema extends BdxSendAcceptMessageSchema {
59
+ encodeInternal(message) {
60
+ this.validate(message);
61
+ const { transferControl, maxBlockSize, metaData, length } = message;
62
+ const rangeControl = {
63
+ definiteLength: length !== void 0 && length !== 0,
64
+ wideRange: typeof length === "bigint"
65
+ };
66
+ const writer = new DataWriter(Endian.Little);
67
+ writer.writeUInt8(BdxTransferControlSchema.encode(transferControl));
68
+ writer.writeUInt8(BdxRangeControlSchema.encode(rangeControl));
69
+ writer.writeUInt16(maxBlockSize);
70
+ if (length !== void 0 && length !== 0) {
71
+ if (rangeControl.wideRange) {
72
+ writer.writeUInt64(length);
73
+ } else {
74
+ writer.writeUInt32(length);
75
+ }
76
+ }
77
+ if (metaData && metaData.byteLength > 0) {
78
+ writer.writeByteArray(metaData);
79
+ }
80
+ return writer.toByteArray();
81
+ }
82
+ decodeInternal(bytes) {
83
+ const reader = new DataReader(bytes, Endian.Little);
84
+ const transferControl = BdxTransferControlSchema.decode(reader.readUInt8());
85
+ const rangeControl = BdxRangeControlSchema.decode(reader.readUInt8());
86
+ const maxBlockSize = reader.readUInt16();
87
+ let length = rangeControl.definiteLength ? rangeControl.wideRange ? reader.readUInt64() : reader.readUInt32() : void 0;
88
+ if (length === 0) {
89
+ length = void 0;
90
+ }
91
+ const metaData = reader.remainingBytesCount > 0 ? reader.remainingBytes : void 0;
92
+ const result = {
93
+ transferControl,
94
+ maxBlockSize,
95
+ metaData,
96
+ length
97
+ };
98
+ this.validate(result);
99
+ return result;
100
+ }
101
+ }
102
+ const BdxReceiveAcceptMessage = new BdxReceiveAcceptMessageSchema();
103
+ export {
104
+ BdxReceiveAcceptMessage,
105
+ BdxReceiveAcceptMessageSchema,
106
+ BdxSendAcceptMessage,
107
+ BdxSendAcceptMessageSchema
108
+ };
109
+ //# sourceMappingURL=BdxAcceptMessagesSchema.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/bdx/schema/BdxAcceptMessagesSchema.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAgB,YAAY,YAAY,cAAc;AACtD,SAAS,eAAe,cAAwC;AAChE,SAAS,gBAAgB;AACzB;AAAA,EACI;AAAA,EACA;AAAA,EAEA;AAAA,OACG;AAmCA,MAAM,mCAA4D,OAAU;AAAA,EAC/E,eAAe,SAAY;AACvB,SAAK,SAAS,OAAO;AACrB,UAAM,EAAE,iBAAiB,cAAc,SAAS,IAAI;AAEpD,UAAM,SAAS,IAAI,WAAW,OAAO,MAAM;AAC3C,WAAO,WAAW,yBAAyB,OAAO,eAAe,CAAC;AAClE,WAAO,YAAY,YAAY;AAE/B,QAAI,YAAY,SAAS,aAAa,GAAG;AACrC,aAAO,eAAe,QAAQ;AAAA,IAClC;AAEA,WAAO,OAAO,YAAY;AAAA,EAC9B;AAAA,EAEA,eAAe,OAAiB;AAC5B,UAAM,SAAS,IAAI,WAAW,OAAO,OAAO,MAAM;AAClD,UAAM,kBAAkB,yBAAyB,OAAO,OAAO,UAAU,CAAC;AAC1E,UAAM,eAAe,OAAO,WAAW;AAEvC,UAAM,WAAW,OAAO,sBAAsB,IAAI,OAAO,iBAAiB;AAE1E,UAAM,SAAS;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AACA,SAAK,SAAS,MAAM;AACpB,WAAO;AAAA,EACX;AAAA,EAES,SAAS,EAAE,iBAAiB,aAAa,GAAM;AACpD,QAAI,gBAAgB,YAAY,aAAa;AACzC,YAAM,IAAI;AAAA,QACN,4BAA4B,gBAAgB,OAAO;AAAA,QACnD,cAAc;AAAA,MAClB;AAAA,IACJ;AACA,QAAI,CAAC,gBAAgB,eAAe,CAAC,gBAAgB,iBAAiB,CAAC,gBAAgB,sBAAsB;AACzG,YAAM,IAAI;AAAA,QACN;AAAA,QACA,cAAc;AAAA,MAClB;AAAA,IACJ;AACA,QAAI,eAAe,KAAK,eAAe,OAAQ;AAC3C,YAAM,IAAI,SAAS,mDAAmD,cAAc,iBAAiB;AAAA,IACzG;AAAA,EACJ;AACJ;AACO,MAAM,uBAAuB,IAAI,2BAA2B;AAG5D,MAAM,sCAAsC,2BAA6C;AAAA,EACnF,eAAe,SAA2B;AAC/C,SAAK,SAAS,OAAO;AACrB,UAAM,EAAE,iBAAiB,cAAc,UAAU,OAAO,IAAI;AAE5D,UAAM,eAAe;AAAA,MACjB,gBAAgB,WAAW,UAAa,WAAW;AAAA,MACnD,WAAW,OAAO,WAAW;AAAA,IACjC;AAEA,UAAM,SAAS,IAAI,WAAW,OAAO,MAAM;AAC3C,WAAO,WAAW,yBAAyB,OAAO,eAAe,CAAC;AAClE,WAAO,WAAW,sBAAsB,OAAO,YAAY,CAAC;AAC5D,WAAO,YAAY,YAAY;AAE/B,QAAI,WAAW,UAAa,WAAW,GAAG;AACtC,UAAI,aAAa,WAAW;AACxB,eAAO,YAAY,MAAM;AAAA,MAC7B,OAAO;AACH,eAAO,YAAY,MAAM;AAAA,MAC7B;AAAA,IACJ;AAEA,QAAI,YAAY,SAAS,aAAa,GAAG;AACrC,aAAO,eAAe,QAAQ;AAAA,IAClC;AAEA,WAAO,OAAO,YAAY;AAAA,EAC9B;AAAA,EAES,eAAe,OAAgC;AACpD,UAAM,SAAS,IAAI,WAAW,OAAO,OAAO,MAAM;AAClD,UAAM,kBAAkB,yBAAyB,OAAO,OAAO,UAAU,CAAC;AAC1E,UAAM,eAAe,sBAAsB,OAAO,OAAO,UAAU,CAAC;AACpE,UAAM,eAAe,OAAO,WAAW;AAEvC,QAAI,SAAS,aAAa,iBACpB,aAAa,YACT,OAAO,WAAW,IAClB,OAAO,WAAW,IACtB;AACN,QAAI,WAAW,GAAG;AACd,eAAS;AAAA,IACb;AACA,UAAM,WAAW,OAAO,sBAAsB,IAAI,OAAO,iBAAiB;AAE1E,UAAM,SAAS;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AACA,SAAK,SAAS,MAAM;AACpB,WAAO;AAAA,EACX;AACJ;AACO,MAAM,0BAA0B,IAAI,8BAA8B;",
5
+ "names": []
6
+ }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Bytes } from "#general";
7
+ import { Schema } from "#types";
8
+ interface BdxCounterOnly {
9
+ blockCounter: number;
10
+ }
11
+ /** @see {@link MatterSpecification.v141.Core}, section 11.22.6.2 */
12
+ export interface BdxBlockQuery extends BdxCounterOnly {
13
+ }
14
+ /** @see {@link MatterSpecification.v141.Core}, section 11.22.6.6 */
15
+ export interface BdxBlockAck extends BdxCounterOnly {
16
+ }
17
+ /** @see {@link MatterSpecification.v141.Core}, section 11.22.6.7 */
18
+ export interface BdxBlockAckEof extends BdxCounterOnly {
19
+ }
20
+ /** @see {@link MatterSpecification.v141.Core}, section 11.22.6.3 */
21
+ export interface BdxBlockQueryWithSkip extends BdxCounterOnly {
22
+ bytesToSkip: number | bigint;
23
+ }
24
+ /** @see {@link MatterSpecification.v141.Core}, section 11.22.6.4 */
25
+ export interface BdxBlock extends BdxCounterOnly {
26
+ data: Bytes;
27
+ }
28
+ /** @see {@link MatterSpecification.v141.Core}, section 11.22.6.5 */
29
+ export interface BdxBlockEof extends BdxBlock {
30
+ }
31
+ /** Schema for BDX messages that only contain a block counter: BlockQuery, BlockAck, BlockAckEof. */
32
+ export declare class BdxCounterOnlyMessageSchema extends Schema<BdxCounterOnly> {
33
+ encodeInternal(message: BdxCounterOnly): Uint8Array<ArrayBufferLike>;
34
+ decodeInternal(bytes: Bytes): BdxCounterOnly;
35
+ }
36
+ export declare const BdxBlockQueryMessage: BdxCounterOnlyMessageSchema;
37
+ export declare const BdxBlockAckMessage: BdxCounterOnlyMessageSchema;
38
+ export declare const BdxBlockAckEofMessage: BdxCounterOnlyMessageSchema;
39
+ /** Schema for BDX BlockQueryWithSkip message. */
40
+ export declare class BdxBlockQueryWithSkipMessageSchema extends Schema<BdxBlockQueryWithSkip> {
41
+ encodeInternal(message: BdxBlockQueryWithSkip): Uint8Array<ArrayBufferLike>;
42
+ decodeInternal(bytes: Bytes): BdxBlockQueryWithSkip;
43
+ }
44
+ export declare const BdxBlockQueryWithSkipMessage: BdxBlockQueryWithSkipMessageSchema;
45
+ /** Schema for BDX Block and BlockEof message that contain Block data. */
46
+ export declare class BdxBlockMessageSchema extends Schema<BdxBlock> {
47
+ encodeInternal(message: BdxBlock): Uint8Array<ArrayBufferLike>;
48
+ decodeInternal(bytes: Bytes): BdxBlock;
49
+ }
50
+ export declare const BdxBlockMessage: BdxBlockMessageSchema;
51
+ export declare const BdxBlockEofMessage: BdxBlockMessageSchema;
52
+ export {};
53
+ //# sourceMappingURL=BdxBlockMessagesSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BdxBlockMessagesSchema.d.ts","sourceRoot":"","sources":["../../../../src/bdx/schema/BdxBlockMessagesSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAkC,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,UAAU,cAAc;IACpB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,oEAAoE;AACpE,MAAM,WAAW,aAAc,SAAQ,cAAc;CAAG;AAExD,oEAAoE;AACpE,MAAM,WAAW,WAAY,SAAQ,cAAc;CAAG;AAEtD,oEAAoE;AACpE,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAG;AAEzD,oEAAoE;AACpE,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IACzD,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAED,oEAAoE;AACpE,MAAM,WAAW,QAAS,SAAQ,cAAc;IAC5C,IAAI,EAAE,KAAK,CAAC;CACf;AAED,oEAAoE;AACpE,MAAM,WAAW,WAAY,SAAQ,QAAQ;CAAG;AAEhD,oGAAoG;AACpG,qBAAa,2BAA4B,SAAQ,MAAM,CAAC,cAAc,CAAC;IACnE,cAAc,CAAC,OAAO,EAAE,cAAc;IAQtC,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc;CAM/C;AAED,eAAO,MAAM,oBAAoB,6BAAwB,CAAC;AAC1D,eAAO,MAAM,kBAAkB,6BAAwB,CAAC;AACxD,eAAO,MAAM,qBAAqB,6BAAwB,CAAC;AAE3D,iDAAiD;AACjD,qBAAa,kCAAmC,SAAQ,MAAM,CAAC,qBAAqB,CAAC;IACjF,cAAc,CAAC,OAAO,EAAE,qBAAqB;IAS7C,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,qBAAqB;CAOtD;AACD,eAAO,MAAM,4BAA4B,oCAA2C,CAAC;AAErF,yEAAyE;AACzE,qBAAa,qBAAsB,SAAQ,MAAM,CAAC,QAAQ,CAAC;IACvD,cAAc,CAAC,OAAO,EAAE,QAAQ;IAShC,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ;CAOzC;AACD,eAAO,MAAM,eAAe,uBAA8B,CAAC;AAC3D,eAAO,MAAM,kBAAkB,uBAAkB,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { DataReader, DataWriter, Endian } from "#general";
7
+ import { Schema } from "#types";
8
+ class BdxCounterOnlyMessageSchema extends Schema {
9
+ encodeInternal(message) {
10
+ const { blockCounter } = message;
11
+ const writer = new DataWriter(Endian.Little);
12
+ writer.writeUInt32(blockCounter);
13
+ return writer.toByteArray();
14
+ }
15
+ decodeInternal(bytes) {
16
+ const reader = new DataReader(bytes, Endian.Little);
17
+ return {
18
+ blockCounter: reader.readUInt32()
19
+ };
20
+ }
21
+ }
22
+ const BdxCounterOnlyMessage = new BdxCounterOnlyMessageSchema();
23
+ const BdxBlockQueryMessage = BdxCounterOnlyMessage;
24
+ const BdxBlockAckMessage = BdxCounterOnlyMessage;
25
+ const BdxBlockAckEofMessage = BdxCounterOnlyMessage;
26
+ class BdxBlockQueryWithSkipMessageSchema extends Schema {
27
+ encodeInternal(message) {
28
+ const { blockCounter, bytesToSkip } = message;
29
+ const writer = new DataWriter(Endian.Little);
30
+ writer.writeUInt32(blockCounter);
31
+ writer.writeUInt64(bytesToSkip);
32
+ return writer.toByteArray();
33
+ }
34
+ decodeInternal(bytes) {
35
+ const reader = new DataReader(bytes, Endian.Little);
36
+ return {
37
+ blockCounter: reader.readUInt32(),
38
+ bytesToSkip: reader.readUInt64()
39
+ };
40
+ }
41
+ }
42
+ const BdxBlockQueryWithSkipMessage = new BdxBlockQueryWithSkipMessageSchema();
43
+ class BdxBlockMessageSchema extends Schema {
44
+ encodeInternal(message) {
45
+ const { blockCounter, data } = message;
46
+ const writer = new DataWriter(Endian.Little);
47
+ writer.writeUInt32(blockCounter);
48
+ writer.writeByteArray(data);
49
+ return writer.toByteArray();
50
+ }
51
+ decodeInternal(bytes) {
52
+ const reader = new DataReader(bytes, Endian.Little);
53
+ return {
54
+ blockCounter: reader.readUInt32(),
55
+ data: reader.remainingBytes
56
+ };
57
+ }
58
+ }
59
+ const BdxBlockMessage = new BdxBlockMessageSchema();
60
+ const BdxBlockEofMessage = BdxBlockMessage;
61
+ export {
62
+ BdxBlockAckEofMessage,
63
+ BdxBlockAckMessage,
64
+ BdxBlockEofMessage,
65
+ BdxBlockMessage,
66
+ BdxBlockMessageSchema,
67
+ BdxBlockQueryMessage,
68
+ BdxBlockQueryWithSkipMessage,
69
+ BdxBlockQueryWithSkipMessageSchema,
70
+ BdxCounterOnlyMessageSchema
71
+ };
72
+ //# sourceMappingURL=BdxBlockMessagesSchema.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/bdx/schema/BdxBlockMessagesSchema.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAgB,YAAY,YAAY,cAAc;AACtD,SAAS,cAAc;AA6BhB,MAAM,oCAAoC,OAAuB;AAAA,EACpE,eAAe,SAAyB;AACpC,UAAM,EAAE,aAAa,IAAI;AAEzB,UAAM,SAAS,IAAI,WAAW,OAAO,MAAM;AAC3C,WAAO,YAAY,YAAY;AAC/B,WAAO,OAAO,YAAY;AAAA,EAC9B;AAAA,EAEA,eAAe,OAA8B;AACzC,UAAM,SAAS,IAAI,WAAW,OAAO,OAAO,MAAM;AAClD,WAAO;AAAA,MACH,cAAc,OAAO,WAAW;AAAA,IACpC;AAAA,EACJ;AACJ;AACA,MAAM,wBAAwB,IAAI,4BAA4B;AACvD,MAAM,uBAAuB;AAC7B,MAAM,qBAAqB;AAC3B,MAAM,wBAAwB;AAG9B,MAAM,2CAA2C,OAA8B;AAAA,EAClF,eAAe,SAAgC;AAC3C,UAAM,EAAE,cAAc,YAAY,IAAI;AAEtC,UAAM,SAAS,IAAI,WAAW,OAAO,MAAM;AAC3C,WAAO,YAAY,YAAY;AAC/B,WAAO,YAAY,WAAW;AAC9B,WAAO,OAAO,YAAY;AAAA,EAC9B;AAAA,EAEA,eAAe,OAAqC;AAChD,UAAM,SAAS,IAAI,WAAW,OAAO,OAAO,MAAM;AAClD,WAAO;AAAA,MACH,cAAc,OAAO,WAAW;AAAA,MAChC,aAAa,OAAO,WAAW;AAAA,IACnC;AAAA,EACJ;AACJ;AACO,MAAM,+BAA+B,IAAI,mCAAmC;AAG5E,MAAM,8BAA8B,OAAiB;AAAA,EACxD,eAAe,SAAmB;AAC9B,UAAM,EAAE,cAAc,KAAK,IAAI;AAE/B,UAAM,SAAS,IAAI,WAAW,OAAO,MAAM;AAC3C,WAAO,YAAY,YAAY;AAC/B,WAAO,eAAe,IAAI;AAC1B,WAAO,OAAO,YAAY;AAAA,EAC9B;AAAA,EAEA,eAAe,OAAwB;AACnC,UAAM,SAAS,IAAI,WAAW,OAAO,OAAO,MAAM;AAClD,WAAO;AAAA,MACH,cAAc,OAAO,WAAW;AAAA,MAChC,MAAM,OAAO;AAAA,IACjB;AAAA,EACJ;AACJ;AACO,MAAM,kBAAkB,IAAI,sBAAsB;AAClD,MAAM,qBAAqB;",
5
+ "names": []
6
+ }
@@ -0,0 +1,117 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Bytes } from "#general";
7
+ import { BitField, BitFlag, Schema, TypeFromPartialBitSchema } from "#types";
8
+ export declare const BDX_VERSION = 0;
9
+ /**
10
+ * BDX Transfer protocol bitmap definition
11
+ * Bit 7 is reserved for future use
12
+ *
13
+ * @see {@link MatterSpecification.v141.Core}, section 11.22.5.1
14
+ */
15
+ export declare const BdxTransferControlBitmap: {
16
+ /** Protocol Version, Only allowed version is 0.0 for now */
17
+ version: BitField;
18
+ /** Indicates if Sender drive is supported by Initiator */
19
+ senderDrive: BitFlag;
20
+ /** Indicates if Receiver drive is supported by Initiator */
21
+ receiverDrive: BitFlag;
22
+ /**
23
+ * Indicates if Asynchronous Transfer is supported by Initiator
24
+ * Synchronous mode is always implicitly supported.
25
+ */
26
+ asynchronousTransfer: BitFlag;
27
+ };
28
+ export declare const BdxTransferControlSchema: import("#types").BitmapSchemaInternal<{
29
+ /** Protocol Version, Only allowed version is 0.0 for now */
30
+ version: BitField;
31
+ /** Indicates if Sender drive is supported by Initiator */
32
+ senderDrive: BitFlag;
33
+ /** Indicates if Receiver drive is supported by Initiator */
34
+ receiverDrive: BitFlag;
35
+ /**
36
+ * Indicates if Asynchronous Transfer is supported by Initiator
37
+ * Synchronous mode is always implicitly supported.
38
+ */
39
+ asynchronousTransfer: BitFlag;
40
+ }>;
41
+ /**
42
+ * BDX Range control bitmap definition
43
+ * Bits 2-3 and 5-7 is reserved for future use
44
+ *
45
+ * @see {@link MatterSpecification.v141.Core}, section 11.22.5.1
46
+ */
47
+ export declare const BdxRangeControlBitmap: {
48
+ /** Indicates if the transfer has a definite length */
49
+ definiteLength: BitFlag;
50
+ /** Indicates if the transfer has a start offset */
51
+ startOffset: BitFlag;
52
+ /**
53
+ * Indicates if wide (64-bit) range enabled for values
54
+ * Offset (STARTFOFS) and length (DEFLEN) are 4 octets (32-bit) little-endian unsigned quantities.
55
+ */
56
+ wideRange: BitFlag;
57
+ };
58
+ export declare const BdxRangeControlSchema: import("#types").BitmapSchemaInternal<{
59
+ /** Indicates if the transfer has a definite length */
60
+ definiteLength: BitFlag;
61
+ /** Indicates if the transfer has a start offset */
62
+ startOffset: BitFlag;
63
+ /**
64
+ * Indicates if wide (64-bit) range enabled for values
65
+ * Offset (STARTFOFS) and length (DEFLEN) are 4 octets (32-bit) little-endian unsigned quantities.
66
+ */
67
+ wideRange: BitFlag;
68
+ }>;
69
+ /** @see {@link MatterSpecification.v141.Core}, section 11.22.5.1 */
70
+ export type BdxInit = {
71
+ /**
72
+ * Transfer protocol details
73
+ * PTC
74
+ * 1 octet
75
+ */
76
+ transferProtocol: TypeFromPartialBitSchema<typeof BdxTransferControlBitmap>;
77
+ /**
78
+ * Range Control details - Removed because it is used by encoding/decoding implicitly
79
+ * RTC, 1 octet
80
+ */
81
+ /**
82
+ * Specifies the maximum data size (in bytes) of the block that the Initiator supports, exclusive of block header
83
+ * fields, such as a block counter.
84
+ * PMBS, 2 octets
85
+ */
86
+ maxBlockSize: number;
87
+ /**
88
+ * Optional 32-bit/64-bit length that specifies the offset in bytes from start of the file from which the Sender
89
+ * would start the transfer.
90
+ * STARTOFS, 4/8 octets
91
+ */
92
+ startOffset?: number | bigint;
93
+ /**
94
+ * Specifies a predetermined definite length for the transfer
95
+ * DEFLEN, 4/8 octets
96
+ */
97
+ maxLength?: number | bigint;
98
+ /**
99
+ * Identifier chosen by the Initiator to identify the payload to be transferred.
100
+ * FD, 2 octets + Variable length
101
+ */
102
+ fileDesignator: Bytes;
103
+ /**
104
+ * Allows the Initiator to send additional application-specific information about the file to be transferred
105
+ * MD, Variable length, TLV
106
+ */
107
+ metaData?: Bytes;
108
+ };
109
+ /** Schema for BDX SendInit and ReceiveInit messages. */
110
+ export declare class BdxInitMessageSchema extends Schema<BdxInit> {
111
+ encodeInternal(message: BdxInit): Uint8Array<ArrayBufferLike>;
112
+ decodeInternal(bytes: Bytes): BdxInit;
113
+ validate({ transferProtocol, maxBlockSize, fileDesignator }: BdxInit): void;
114
+ }
115
+ export declare const BdxSendInitMessage: BdxInitMessageSchema;
116
+ export declare const BdxReceiveInitMessage: BdxInitMessageSchema;
117
+ //# sourceMappingURL=BdxInitMessagesSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BdxInitMessagesSchema.d.ts","sourceRoot":"","sources":["../../../../src/bdx/schema/BdxInitMessagesSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAkC,MAAM,UAAU,CAAC;AACjE,OAAO,EAAiB,QAAQ,EAAE,OAAO,EAAgB,MAAM,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAG1G,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;IACjC,4DAA4D;;IAG5D,0DAA0D;;IAG1D,4DAA4D;;IAG5D;;;OAGG;;CAEN,CAAC;AACF,eAAO,MAAM,wBAAwB;IAfjC,4DAA4D;;IAG5D,0DAA0D;;IAG1D,4DAA4D;;IAG5D;;;OAGG;;EAGuE,CAAC;AAE/E;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;IAC9B,sDAAsD;;IAGtD,mDAAmD;;IAGnD;;;OAGG;;CAEN,CAAC;AACF,eAAO,MAAM,qBAAqB;IAZ9B,sDAAsD;;IAGtD,mDAAmD;;IAGnD;;;OAGG;;EAGiE,CAAC;AAEzE,oEAAoE;AACpE,MAAM,MAAM,OAAO,GAAG;IAClB;;;;OAIG;IACH,gBAAgB,EAAE,wBAAwB,CAAC,OAAO,wBAAwB,CAAC,CAAC;IAE5E;;;OAGG;IAGH;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE9B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B;;;OAGG;IACH,cAAc,EAAE,KAAK,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC;CACpB,CAAC;AAEF,wDAAwD;AACxD,qBAAa,oBAAqB,SAAQ,MAAM,CAAC,OAAO,CAAC;IACrD,cAAc,CAAC,OAAO,EAAE,OAAO;IAwC/B,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAqC5B,QAAQ,CAAC,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,OAAO;CA0BhF;AACD,eAAO,MAAM,kBAAkB,sBAA6B,CAAC;AAC7D,eAAO,MAAM,qBAAqB,sBAAqB,CAAC"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { DataReader, DataWriter, Endian } from "#general";
7
+ import { BdxStatusCode, BitField, BitFlag, BitmapSchema, Schema } from "#types";
8
+ import { BdxError } from "../BdxError.js";
9
+ const BDX_VERSION = 0;
10
+ const BdxTransferControlBitmap = {
11
+ /** Protocol Version, Only allowed version is 0.0 for now */
12
+ version: BitField(0, 4),
13
+ /** Indicates if Sender drive is supported by Initiator */
14
+ senderDrive: BitFlag(4),
15
+ /** Indicates if Receiver drive is supported by Initiator */
16
+ receiverDrive: BitFlag(5),
17
+ /**
18
+ * Indicates if Asynchronous Transfer is supported by Initiator
19
+ * Synchronous mode is always implicitly supported.
20
+ */
21
+ asynchronousTransfer: BitFlag(6)
22
+ };
23
+ const BdxTransferControlSchema = BitmapSchema(BdxTransferControlBitmap);
24
+ const BdxRangeControlBitmap = {
25
+ /** Indicates if the transfer has a definite length */
26
+ definiteLength: BitFlag(0),
27
+ /** Indicates if the transfer has a start offset */
28
+ startOffset: BitFlag(1),
29
+ /**
30
+ * Indicates if wide (64-bit) range enabled for values
31
+ * Offset (STARTFOFS) and length (DEFLEN) are 4 octets (32-bit) little-endian unsigned quantities.
32
+ */
33
+ wideRange: BitFlag(4)
34
+ };
35
+ const BdxRangeControlSchema = BitmapSchema(BdxRangeControlBitmap);
36
+ class BdxInitMessageSchema extends Schema {
37
+ encodeInternal(message) {
38
+ this.validate(message);
39
+ const { transferProtocol, maxBlockSize, startOffset, maxLength, fileDesignator, metaData } = message;
40
+ const rangeControl = {
41
+ startOffset: startOffset !== void 0,
42
+ definiteLength: maxLength !== void 0 && maxLength !== 0,
43
+ wideRange: typeof startOffset === "bigint" || typeof maxLength === "bigint"
44
+ };
45
+ const writer = new DataWriter(Endian.Little);
46
+ writer.writeUInt8(BdxTransferControlSchema.encode(transferProtocol));
47
+ writer.writeUInt8(BdxRangeControlSchema.encode(rangeControl));
48
+ writer.writeUInt16(maxBlockSize);
49
+ if (startOffset !== void 0) {
50
+ if (rangeControl.wideRange) {
51
+ writer.writeUInt64(startOffset);
52
+ } else {
53
+ writer.writeUInt32(startOffset);
54
+ }
55
+ }
56
+ if (maxLength !== void 0 && maxLength !== 0) {
57
+ if (rangeControl.wideRange) {
58
+ writer.writeUInt64(maxLength);
59
+ } else {
60
+ writer.writeUInt32(maxLength);
61
+ }
62
+ }
63
+ writer.writeUInt16(fileDesignator.byteLength);
64
+ writer.writeByteArray(fileDesignator);
65
+ if (metaData && metaData.byteLength > 0) {
66
+ writer.writeByteArray(metaData);
67
+ }
68
+ return writer.toByteArray();
69
+ }
70
+ decodeInternal(bytes) {
71
+ const reader = new DataReader(bytes, Endian.Little);
72
+ const transferProtocol = BdxTransferControlSchema.decode(reader.readUInt8());
73
+ const rangeControl = BdxRangeControlSchema.decode(reader.readUInt8());
74
+ const maxBlockSize = reader.readUInt16();
75
+ const startOffset = rangeControl.startOffset ? rangeControl.wideRange ? reader.readUInt64() : reader.readUInt32() : void 0;
76
+ let maxLength = rangeControl.definiteLength ? rangeControl.wideRange ? reader.readUInt64() : reader.readUInt32() : void 0;
77
+ if (maxLength === 0) {
78
+ maxLength = void 0;
79
+ }
80
+ const fileDesignatorLength = reader.readUInt16();
81
+ const fileDesignator = reader.readByteArray(fileDesignatorLength);
82
+ const metaData = reader.remainingBytesCount > 0 ? reader.remainingBytes : void 0;
83
+ const result = {
84
+ transferProtocol,
85
+ maxBlockSize,
86
+ startOffset,
87
+ maxLength,
88
+ fileDesignator,
89
+ metaData
90
+ };
91
+ this.validate(result);
92
+ return result;
93
+ }
94
+ validate({ transferProtocol, maxBlockSize, fileDesignator }) {
95
+ if (transferProtocol.version !== BDX_VERSION) {
96
+ throw new BdxError(
97
+ `Unsupported BDX version: ${transferProtocol.version}`,
98
+ BdxStatusCode.VersionNotSupported
99
+ );
100
+ }
101
+ if (!transferProtocol.senderDrive && !transferProtocol.receiverDrive) {
102
+ throw new BdxError(
103
+ "BDX transfer protocol needs to allow either sender or receiver drive",
104
+ BdxStatusCode.BadMessageContent
105
+ );
106
+ }
107
+ if (fileDesignator.byteLength === 0) {
108
+ throw new BdxError("File Designator cannot be empty", BdxStatusCode.BadMessageContent);
109
+ }
110
+ if (fileDesignator.byteLength > 65535) {
111
+ throw new BdxError(
112
+ "File Designator length exceeds maximum allowed size of 65535bytes",
113
+ BdxStatusCode.BadMessageContent
114
+ );
115
+ }
116
+ if (maxBlockSize < 1 || maxBlockSize > 65535) {
117
+ throw new BdxError("Max Block Size must be between 1 and 65535bytes", BdxStatusCode.BadMessageContent);
118
+ }
119
+ }
120
+ }
121
+ const BdxSendInitMessage = new BdxInitMessageSchema();
122
+ const BdxReceiveInitMessage = BdxSendInitMessage;
123
+ export {
124
+ BDX_VERSION,
125
+ BdxInitMessageSchema,
126
+ BdxRangeControlBitmap,
127
+ BdxRangeControlSchema,
128
+ BdxReceiveInitMessage,
129
+ BdxSendInitMessage,
130
+ BdxTransferControlBitmap,
131
+ BdxTransferControlSchema
132
+ };
133
+ //# sourceMappingURL=BdxInitMessagesSchema.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/bdx/schema/BdxInitMessagesSchema.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Bytes } from "#general";
7
+ import { BdxMessageType, Schema, SchemaType } from "#types";
8
+ export interface BdxMessage<T extends BdxMessageType> {
9
+ kind: T;
10
+ message: SchemaType<BdxMessage.Kinds[T]>;
11
+ }
12
+ /** Convenient wrapper around BDX message encoding/decoding and type guards. */
13
+ export declare namespace BdxMessage {
14
+ function encode<T extends BdxMessageType>({ kind, message }: BdxMessage<T>): AllowSharedBufferSource;
15
+ function decode<T extends BdxMessageType>(kind: T, payload: Bytes): BdxMessage<T>;
16
+ function is<T extends BdxMessageType>(message: BdxMessage<any>, kind: T): message is BdxMessage<T>;
17
+ function assert<T extends BdxMessageType>(message: BdxMessage<any>, kind: T): asserts message is BdxMessage<T>;
18
+ const Kinds: {
19
+ [key: number]: Schema<any>;
20
+ };
21
+ type Kinds = typeof Kinds;
22
+ }
23
+ //# sourceMappingURL=BdxMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BdxMessage.d.ts","sourceRoot":"","sources":["../../../../src/bdx/schema/BdxMessage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAiB,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAY5D,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,cAAc;IAChD,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5C;AAED,+EAA+E;AAC/E,yBAAiB,UAAU,CAAC;IACxB,SAAgB,MAAM,CAAC,CAAC,SAAS,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,2BAKhF;IAED,SAAgB,MAAM,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAKvF;IAED,SAAgB,EAAE,CAAC,CAAC,SAAS,cAAc,EAAE,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAExG;IAED,SAAgB,MAAM,CAAC,CAAC,SAAS,cAAc,EAC3C,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,EACxB,IAAI,EAAE,CAAC,GACR,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAMlC;IAEM,MAAM,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;KAWtC,CAAC;IAEX,KAAY,KAAK,GAAG,OAAO,KAAK,CAAC;CACpC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { InternalError } from "#general";
7
+ import { BdxMessageType } from "#types";
8
+ import { BdxReceiveAcceptMessage, BdxSendAcceptMessage } from "./BdxAcceptMessagesSchema.js";
9
+ import {
10
+ BdxBlockAckEofMessage,
11
+ BdxBlockAckMessage,
12
+ BdxBlockEofMessage,
13
+ BdxBlockMessage,
14
+ BdxBlockQueryMessage,
15
+ BdxBlockQueryWithSkipMessage
16
+ } from "./BdxBlockMessagesSchema.js";
17
+ import { BdxReceiveInitMessage, BdxSendInitMessage } from "./BdxInitMessagesSchema.js";
18
+ var BdxMessage;
19
+ ((BdxMessage2) => {
20
+ function encode({ kind, message }) {
21
+ if (!(kind in BdxMessage2.Kinds)) {
22
+ throw new InternalError(`Can not encode unknown BDX message type: ${kind}`);
23
+ }
24
+ return BdxMessage2.Kinds[kind].encode(message);
25
+ }
26
+ BdxMessage2.encode = encode;
27
+ function decode(kind, payload) {
28
+ if (!(kind in BdxMessage2.Kinds)) {
29
+ throw new InternalError(`Can not decode unknown BDX message type: ${kind}`);
30
+ }
31
+ return { kind, message: BdxMessage2.Kinds[kind].decode(payload) };
32
+ }
33
+ BdxMessage2.decode = decode;
34
+ function is(message, kind) {
35
+ return message.kind === kind;
36
+ }
37
+ BdxMessage2.is = is;
38
+ function assert(message, kind) {
39
+ if (message.kind !== kind) {
40
+ throw new InternalError(
41
+ `Expected BDX message of type ${BdxMessageType[kind]}, but got ${BdxMessageType[message.kind]}(${message.kind})`
42
+ );
43
+ }
44
+ }
45
+ BdxMessage2.assert = assert;
46
+ BdxMessage2.Kinds = {
47
+ [BdxMessageType.SendInit]: BdxSendInitMessage,
48
+ [BdxMessageType.ReceiveInit]: BdxReceiveInitMessage,
49
+ [BdxMessageType.SendAccept]: BdxSendAcceptMessage,
50
+ [BdxMessageType.ReceiveAccept]: BdxReceiveAcceptMessage,
51
+ [BdxMessageType.BlockQuery]: BdxBlockQueryMessage,
52
+ [BdxMessageType.BlockQueryWithSkip]: BdxBlockQueryWithSkipMessage,
53
+ [BdxMessageType.Block]: BdxBlockMessage,
54
+ [BdxMessageType.BlockEof]: BdxBlockEofMessage,
55
+ [BdxMessageType.BlockAck]: BdxBlockAckMessage,
56
+ [BdxMessageType.BlockAckEof]: BdxBlockAckEofMessage
57
+ };
58
+ })(BdxMessage || (BdxMessage = {}));
59
+ export {
60
+ BdxMessage
61
+ };
62
+ //# sourceMappingURL=BdxMessage.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/bdx/schema/BdxMessage.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAgB,qBAAqB;AACrC,SAAS,sBAA0C;AACnD,SAAS,yBAAyB,4BAA4B;AAC9D;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,uBAAuB,0BAA0B;AAQnD,IAAU;AAAA,CAAV,CAAUA,gBAAV;AACI,WAAS,OAAiC,EAAE,MAAM,QAAQ,GAAkB;AAC/E,QAAI,EAAE,QAAQA,YAAA,QAAQ;AAClB,YAAM,IAAI,cAAc,4CAA4C,IAAI,EAAE;AAAA,IAC9E;AACA,WAAOA,YAAA,MAAM,IAAI,EAAE,OAAO,OAAO;AAAA,EACrC;AALO,EAAAA,YAAS;AAOT,WAAS,OAAiC,MAAS,SAA+B;AACrF,QAAI,EAAE,QAAQA,YAAA,QAAQ;AAClB,YAAM,IAAI,cAAc,4CAA4C,IAAI,EAAE;AAAA,IAC9E;AACA,WAAO,EAAE,MAAM,SAASA,YAAA,MAAM,IAAI,EAAE,OAAO,OAAO,EAAE;AAAA,EACxD;AALO,EAAAA,YAAS;AAOT,WAAS,GAA6B,SAA0B,MAAmC;AACtG,WAAO,QAAQ,SAAS;AAAA,EAC5B;AAFO,EAAAA,YAAS;AAIT,WAAS,OACZ,SACA,MACgC;AAChC,QAAI,QAAQ,SAAS,MAAM;AACvB,YAAM,IAAI;AAAA,QACN,gCAAgC,eAAe,IAAI,CAAC,aAAa,eAAe,QAAQ,IAAI,CAAC,IAAI,QAAQ,IAAI;AAAA,MACjH;AAAA,IACJ;AAAA,EACJ;AATO,EAAAA,YAAS;AAWT,EAAMA,YAAA,QAAwC;AAAA,IACjD,CAAC,eAAe,QAAQ,GAAG;AAAA,IAC3B,CAAC,eAAe,WAAW,GAAG;AAAA,IAC9B,CAAC,eAAe,UAAU,GAAG;AAAA,IAC7B,CAAC,eAAe,aAAa,GAAG;AAAA,IAChC,CAAC,eAAe,UAAU,GAAG;AAAA,IAC7B,CAAC,eAAe,kBAAkB,GAAG;AAAA,IACrC,CAAC,eAAe,KAAK,GAAG;AAAA,IACxB,CAAC,eAAe,QAAQ,GAAG;AAAA,IAC3B,CAAC,eAAe,QAAQ,GAAG;AAAA,IAC3B,CAAC,eAAe,WAAW,GAAG;AAAA,EAClC;AAAA,GAzCa;",
5
+ "names": ["BdxMessage"]
6
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { ProtocolStatusMessage, ProtocolStatusMessageSchema } from "#protocol/ProtocolStatusMessage.js";
7
+ import { BdxStatusCode } from "#types";
8
+ export type BdxStatus = Omit<ProtocolStatusMessage<BdxStatusCode>, "protocolData">;
9
+ export declare class BdxStatusMessageSchema extends ProtocolStatusMessageSchema<BdxStatus> {
10
+ }
11
+ export declare const BdxStatusMessage: BdxStatusMessageSchema;
12
+ //# sourceMappingURL=BdxStatusMessageSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BdxStatusMessageSchema.d.ts","sourceRoot":"","sources":["../../../../src/bdx/schema/BdxStatusMessageSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACxG,OAAO,EAAmB,aAAa,EAAE,MAAM,QAAQ,CAAC;AAExD,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC,CAAC;AAEnF,qBAAa,sBAAuB,SAAQ,2BAA2B,CAAC,SAAS,CAAC;CAAG;AAErF,eAAO,MAAM,gBAAgB,wBAAqD,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { ProtocolStatusMessageSchema } from "#protocol/ProtocolStatusMessage.js";
7
+ import { BDX_PROTOCOL_ID } from "#types";
8
+ class BdxStatusMessageSchema extends ProtocolStatusMessageSchema {
9
+ }
10
+ const BdxStatusMessage = new BdxStatusMessageSchema(BDX_PROTOCOL_ID, false);
11
+ export {
12
+ BdxStatusMessage,
13
+ BdxStatusMessageSchema
14
+ };
15
+ //# sourceMappingURL=BdxStatusMessageSchema.js.map