@microbit/microbit-connection 0.9.0-apps.alpha.16 → 0.9.0-apps.alpha.18

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 (457) hide show
  1. package/build/cjs/async-util.d.ts +3 -1
  2. package/build/cjs/async-util.js +5 -1
  3. package/build/cjs/async-util.js.map +1 -1
  4. package/build/cjs/bluetooth/ble-error.d.ts +10 -0
  5. package/build/cjs/bluetooth/ble-error.js +47 -0
  6. package/build/cjs/bluetooth/ble-error.js.map +1 -0
  7. package/build/cjs/bluetooth/connection.d.ts +137 -0
  8. package/build/cjs/{bluetooth.js → bluetooth/connection.js} +158 -106
  9. package/build/cjs/bluetooth/connection.js.map +1 -0
  10. package/build/cjs/{bluetooth.test.js → bluetooth/connection.test.js} +9 -9
  11. package/build/cjs/bluetooth/connection.test.js.map +1 -0
  12. package/build/cjs/bluetooth/device-bond-state.js.map +1 -0
  13. package/build/cjs/{bluetooth-device-wrapper.d.ts → bluetooth/device-wrapper.d.ts} +11 -11
  14. package/build/cjs/{bluetooth-device-wrapper.js → bluetooth/device-wrapper.js} +38 -42
  15. package/build/cjs/bluetooth/device-wrapper.js.map +1 -0
  16. package/build/cjs/{flashing → bluetooth/flashing}/flashing-full.d.ts +2 -2
  17. package/build/cjs/{flashing → bluetooth/flashing}/flashing-full.js +6 -5
  18. package/build/cjs/bluetooth/flashing/flashing-full.js.map +1 -0
  19. package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.d.ts +1 -1
  20. package/build/cjs/bluetooth/flashing/flashing-makecode.js.map +1 -0
  21. package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.test.js +3 -3
  22. package/build/cjs/bluetooth/flashing/flashing-makecode.test.js.map +1 -0
  23. package/build/cjs/{flashing → bluetooth/flashing}/flashing-partial.d.ts +2 -2
  24. package/build/cjs/{flashing → bluetooth/flashing}/flashing-partial.js +7 -6
  25. package/build/cjs/bluetooth/flashing/flashing-partial.js.map +1 -0
  26. package/build/cjs/bluetooth/flashing/flashing-v1.js.map +1 -0
  27. package/build/cjs/{flashing → bluetooth/flashing}/nordic-dfu.d.ts +2 -2
  28. package/build/cjs/{flashing → bluetooth/flashing}/nordic-dfu.js +15 -11
  29. package/build/cjs/bluetooth/flashing/nordic-dfu.js.map +1 -0
  30. package/build/cjs/bluetooth/flashing/zip.js.map +1 -0
  31. package/build/cjs/bluetooth/flashing/zip.test.js.map +1 -0
  32. package/build/cjs/bluetooth/index.d.ts +5 -0
  33. package/build/cjs/bluetooth/index.js +9 -0
  34. package/build/cjs/bluetooth/index.js.map +1 -0
  35. package/build/cjs/{bluetooth-profile.js → bluetooth/profile.js} +1 -1
  36. package/build/cjs/bluetooth/profile.js.map +1 -0
  37. package/build/cjs/{accelerometer-service.d.ts → bluetooth/services/accelerometer-service.d.ts} +2 -3
  38. package/build/cjs/{accelerometer-service.js → bluetooth/services/accelerometer-service.js} +17 -12
  39. package/build/cjs/bluetooth/services/accelerometer-service.js.map +1 -0
  40. package/build/{esm → cjs/bluetooth/services}/button-service.d.ts +2 -3
  41. package/build/cjs/{button-service.js → bluetooth/services/button-service.js} +24 -14
  42. package/build/cjs/bluetooth/services/button-service.js.map +1 -0
  43. package/build/{esm → cjs/bluetooth/services}/device-information-service.d.ts +1 -1
  44. package/build/cjs/bluetooth/services/device-information-service.js +29 -0
  45. package/build/cjs/bluetooth/services/device-information-service.js.map +1 -0
  46. package/build/cjs/{dfu-service.js → bluetooth/services/dfu-service.js} +2 -2
  47. package/build/cjs/bluetooth/services/dfu-service.js.map +1 -0
  48. package/build/{esm → cjs/bluetooth/services}/led-service.d.ts +2 -3
  49. package/build/cjs/{led-service.js → bluetooth/services/led-service.js} +10 -7
  50. package/build/cjs/bluetooth/services/led-service.js.map +1 -0
  51. package/build/cjs/{magnetometer-service.d.ts → bluetooth/services/magnetometer-service.d.ts} +2 -3
  52. package/build/cjs/{magnetometer-service.js → bluetooth/services/magnetometer-service.js} +19 -14
  53. package/build/cjs/bluetooth/services/magnetometer-service.js.map +1 -0
  54. package/build/{esm → cjs/bluetooth/services}/partial-flashing-service.d.ts +1 -1
  55. package/build/cjs/{partial-flashing-service.js → bluetooth/services/partial-flashing-service.js} +8 -8
  56. package/build/cjs/bluetooth/services/partial-flashing-service.js.map +1 -0
  57. package/build/cjs/{uart-service.d.ts → bluetooth/services/uart-service.d.ts} +2 -2
  58. package/build/cjs/{uart-service.js → bluetooth/services/uart-service.js} +21 -9
  59. package/build/cjs/bluetooth/services/uart-service.js.map +1 -0
  60. package/build/cjs/board-id.d.ts +1 -1
  61. package/build/cjs/board-id.js.map +1 -1
  62. package/build/cjs/device.d.ts +145 -123
  63. package/build/cjs/device.js +47 -128
  64. package/build/cjs/device.js.map +1 -1
  65. package/build/cjs/events.d.ts +8 -108
  66. package/build/cjs/events.js +27 -88
  67. package/build/cjs/events.js.map +1 -1
  68. package/build/cjs/events.test.js +54 -48
  69. package/build/cjs/events.test.js.map +1 -1
  70. package/build/cjs/hex-util.d.ts +1 -0
  71. package/build/cjs/hex-util.js +15 -0
  72. package/build/cjs/hex-util.js.map +1 -0
  73. package/build/cjs/index.d.ts +7 -17
  74. package/build/cjs/index.js +6 -28
  75. package/build/cjs/index.js.map +1 -1
  76. package/build/cjs/radio-bridge/connection.d.ts +52 -0
  77. package/build/cjs/{usb-radio-bridge.js → radio-bridge/connection.js} +69 -37
  78. package/build/cjs/radio-bridge/connection.js.map +1 -0
  79. package/build/cjs/radio-bridge/index.d.ts +4 -0
  80. package/build/cjs/radio-bridge/index.js +9 -0
  81. package/build/cjs/radio-bridge/index.js.map +1 -0
  82. package/build/cjs/{usb-serial-protocol.js → radio-bridge/serial-protocol.js} +1 -1
  83. package/build/cjs/radio-bridge/serial-protocol.js.map +1 -0
  84. package/build/cjs/service-events.d.ts +43 -14
  85. package/build/cjs/service-events.js +6 -36
  86. package/build/cjs/service-events.js.map +1 -1
  87. package/build/{esm/hex-flash-data-source.d.ts → cjs/universal-hex/flash-data-source.d.ts} +1 -2
  88. package/build/cjs/{hex-flash-data-source.js → universal-hex/flash-data-source.js} +7 -15
  89. package/build/cjs/universal-hex/flash-data-source.js.map +1 -0
  90. package/build/cjs/universal-hex/index.d.ts +4 -0
  91. package/build/cjs/universal-hex/index.js +9 -0
  92. package/build/cjs/universal-hex/index.js.map +1 -0
  93. package/build/cjs/usb/arm-debug.d.ts +137 -0
  94. package/build/cjs/usb/arm-debug.js +414 -0
  95. package/build/cjs/usb/arm-debug.js.map +1 -0
  96. package/build/cjs/usb/arm-debug.test.js +333 -0
  97. package/build/cjs/usb/arm-debug.test.js.map +1 -0
  98. package/build/{esm → cjs/usb}/board-serial-info.d.ts +2 -1
  99. package/build/cjs/{board-serial-info.js → usb/board-serial-info.js} +10 -7
  100. package/build/cjs/usb/board-serial-info.js.map +1 -0
  101. package/build/cjs/{board-serial-info.test.js → usb/board-serial-info.test.js} +2 -4
  102. package/build/cjs/usb/board-serial-info.test.js.map +1 -0
  103. package/build/cjs/usb/cdc-saturation.d.ts +36 -0
  104. package/build/cjs/usb/cdc-saturation.js +151 -0
  105. package/build/cjs/usb/cdc-saturation.js.map +1 -0
  106. package/build/cjs/usb/cmsis-dap.d.ts +113 -0
  107. package/build/cjs/usb/cmsis-dap.js +349 -0
  108. package/build/cjs/usb/cmsis-dap.js.map +1 -0
  109. package/build/cjs/usb/cmsis-dap.test.js +350 -0
  110. package/build/cjs/usb/cmsis-dap.test.js.map +1 -0
  111. package/build/cjs/usb/connection.d.ts +96 -0
  112. package/build/cjs/{usb.js → usb/connection.js} +257 -173
  113. package/build/cjs/usb/connection.js.map +1 -0
  114. package/build/cjs/{usb.test.js → usb/connection.test.js} +52 -42
  115. package/build/cjs/usb/connection.test.js.map +1 -0
  116. package/build/cjs/usb/cortex-m.d.ts +72 -0
  117. package/build/cjs/usb/cortex-m.js +165 -0
  118. package/build/cjs/usb/cortex-m.js.map +1 -0
  119. package/build/cjs/usb/cortex-m.test.js +217 -0
  120. package/build/cjs/usb/cortex-m.test.js.map +1 -0
  121. package/build/cjs/usb/daplink.d.ts +69 -0
  122. package/build/cjs/usb/daplink.js +238 -0
  123. package/build/cjs/usb/daplink.js.map +1 -0
  124. package/build/cjs/usb/daplink.test.js +290 -0
  125. package/build/cjs/usb/daplink.test.js.map +1 -0
  126. package/build/cjs/usb/device-wrapper.d.ts +34 -0
  127. package/build/cjs/usb/device-wrapper.js +102 -0
  128. package/build/cjs/usb/device-wrapper.js.map +1 -0
  129. package/build/cjs/usb/index.d.ts +5 -0
  130. package/build/cjs/usb/index.js +10 -0
  131. package/build/cjs/usb/index.js.map +1 -0
  132. package/build/{esm/usb-partial-flashing-utils.d.ts → cjs/usb/partial-flashing-utils.d.ts} +6 -9
  133. package/build/cjs/{usb-partial-flashing-utils.js → usb/partial-flashing-utils.js} +6 -49
  134. package/build/cjs/usb/partial-flashing-utils.js.map +1 -0
  135. package/build/{esm/usb-partial-flashing.d.ts → cjs/usb/partial-flashing.d.ts} +37 -11
  136. package/build/cjs/{usb-partial-flashing.js → usb/partial-flashing.js} +170 -135
  137. package/build/cjs/usb/partial-flashing.js.map +1 -0
  138. package/build/cjs/usb/promise-queue.js.map +1 -0
  139. package/build/cjs/usb/promise-queue.test.js.map +1 -0
  140. package/build/cjs/usb/serial-events.d.ts +16 -0
  141. package/build/cjs/{led.js → usb/serial-events.js} +1 -1
  142. package/build/cjs/usb/serial-events.js.map +1 -0
  143. package/build/cjs/usb/transport.d.ts +42 -0
  144. package/build/cjs/usb/transport.js +155 -0
  145. package/build/cjs/usb/transport.js.map +1 -0
  146. package/build/esm/async-util.d.ts +3 -1
  147. package/build/esm/async-util.js +5 -1
  148. package/build/esm/async-util.js.map +1 -1
  149. package/build/esm/bluetooth/ble-error.d.ts +10 -0
  150. package/build/esm/bluetooth/ble-error.js +42 -0
  151. package/build/esm/bluetooth/ble-error.js.map +1 -0
  152. package/build/esm/bluetooth/connection.d.ts +137 -0
  153. package/build/esm/{bluetooth.js → bluetooth/connection.js} +152 -100
  154. package/build/esm/bluetooth/connection.js.map +1 -0
  155. package/build/esm/{bluetooth.test.js → bluetooth/connection.test.js} +9 -9
  156. package/build/esm/bluetooth/connection.test.js.map +1 -0
  157. package/build/esm/bluetooth/device-bond-state.js.map +1 -0
  158. package/build/esm/{bluetooth-device-wrapper.d.ts → bluetooth/device-wrapper.d.ts} +11 -11
  159. package/build/esm/{bluetooth-device-wrapper.js → bluetooth/device-wrapper.js} +35 -39
  160. package/build/esm/bluetooth/device-wrapper.js.map +1 -0
  161. package/build/esm/{flashing → bluetooth/flashing}/flashing-full.d.ts +2 -2
  162. package/build/esm/{flashing → bluetooth/flashing}/flashing-full.js +6 -5
  163. package/build/esm/bluetooth/flashing/flashing-full.js.map +1 -0
  164. package/build/esm/{flashing → bluetooth/flashing}/flashing-makecode.d.ts +1 -1
  165. package/build/esm/bluetooth/flashing/flashing-makecode.js.map +1 -0
  166. package/build/esm/{flashing → bluetooth/flashing}/flashing-makecode.test.js +2 -2
  167. package/build/esm/bluetooth/flashing/flashing-makecode.test.js.map +1 -0
  168. package/build/esm/{flashing → bluetooth/flashing}/flashing-partial.d.ts +2 -2
  169. package/build/esm/{flashing → bluetooth/flashing}/flashing-partial.js +6 -5
  170. package/build/esm/bluetooth/flashing/flashing-partial.js.map +1 -0
  171. package/build/esm/bluetooth/flashing/flashing-v1.js.map +1 -0
  172. package/build/esm/{flashing → bluetooth/flashing}/nordic-dfu.d.ts +2 -2
  173. package/build/esm/{flashing → bluetooth/flashing}/nordic-dfu.js +15 -11
  174. package/build/esm/bluetooth/flashing/nordic-dfu.js.map +1 -0
  175. package/build/esm/bluetooth/flashing/zip.js.map +1 -0
  176. package/build/esm/bluetooth/flashing/zip.test.d.ts +1 -0
  177. package/build/esm/bluetooth/flashing/zip.test.js.map +1 -0
  178. package/build/esm/bluetooth/index.d.ts +5 -0
  179. package/build/esm/bluetooth/index.js +5 -0
  180. package/build/esm/bluetooth/index.js.map +1 -0
  181. package/build/esm/{bluetooth-profile.js → bluetooth/profile.js} +1 -1
  182. package/build/{cjs/bluetooth-profile.js.map → esm/bluetooth/profile.js.map} +1 -1
  183. package/build/esm/{accelerometer-service.d.ts → bluetooth/services/accelerometer-service.d.ts} +2 -3
  184. package/build/esm/{accelerometer-service.js → bluetooth/services/accelerometer-service.js} +11 -6
  185. package/build/esm/bluetooth/services/accelerometer-service.js.map +1 -0
  186. package/build/{cjs → esm/bluetooth/services}/button-service.d.ts +2 -3
  187. package/build/esm/{button-service.js → bluetooth/services/button-service.js} +20 -10
  188. package/build/esm/bluetooth/services/button-service.js.map +1 -0
  189. package/build/{cjs → esm/bluetooth/services}/device-information-service.d.ts +1 -1
  190. package/build/esm/bluetooth/services/device-information-service.js +25 -0
  191. package/build/esm/bluetooth/services/device-information-service.js.map +1 -0
  192. package/build/esm/{dfu-service.js → bluetooth/services/dfu-service.js} +1 -1
  193. package/build/esm/bluetooth/services/dfu-service.js.map +1 -0
  194. package/build/{cjs → esm/bluetooth/services}/led-service.d.ts +2 -3
  195. package/build/esm/{led-service.js → bluetooth/services/led-service.js} +4 -1
  196. package/build/esm/bluetooth/services/led-service.js.map +1 -0
  197. package/build/esm/{magnetometer-service.d.ts → bluetooth/services/magnetometer-service.d.ts} +2 -3
  198. package/build/esm/{magnetometer-service.js → bluetooth/services/magnetometer-service.js} +11 -6
  199. package/build/esm/bluetooth/services/magnetometer-service.js.map +1 -0
  200. package/build/{cjs → esm/bluetooth/services}/partial-flashing-service.d.ts +1 -1
  201. package/build/esm/{partial-flashing-service.js → bluetooth/services/partial-flashing-service.js} +4 -4
  202. package/build/esm/bluetooth/services/partial-flashing-service.js.map +1 -0
  203. package/build/esm/{uart-service.d.ts → bluetooth/services/uart-service.d.ts} +2 -2
  204. package/build/esm/{uart-service.js → bluetooth/services/uart-service.js} +18 -6
  205. package/build/esm/bluetooth/services/uart-service.js.map +1 -0
  206. package/build/esm/board-id.d.ts +1 -1
  207. package/build/esm/board-id.js.map +1 -1
  208. package/build/esm/device.d.ts +145 -123
  209. package/build/esm/device.js +45 -122
  210. package/build/esm/device.js.map +1 -1
  211. package/build/esm/events.d.ts +8 -108
  212. package/build/esm/events.js +26 -86
  213. package/build/esm/events.js.map +1 -1
  214. package/build/esm/events.test.js +55 -49
  215. package/build/esm/events.test.js.map +1 -1
  216. package/build/esm/hex-util.d.ts +1 -0
  217. package/build/esm/hex-util.js +11 -0
  218. package/build/esm/hex-util.js.map +1 -0
  219. package/build/esm/index.d.ts +7 -17
  220. package/build/esm/index.js +6 -11
  221. package/build/esm/index.js.map +1 -1
  222. package/build/esm/radio-bridge/connection.d.ts +52 -0
  223. package/build/esm/{usb-radio-bridge.js → radio-bridge/connection.js} +69 -37
  224. package/build/esm/radio-bridge/connection.js.map +1 -0
  225. package/build/esm/radio-bridge/index.d.ts +4 -0
  226. package/build/esm/radio-bridge/index.js +5 -0
  227. package/build/esm/radio-bridge/index.js.map +1 -0
  228. package/build/esm/{usb-serial-protocol.js → radio-bridge/serial-protocol.js} +1 -1
  229. package/build/esm/radio-bridge/serial-protocol.js.map +1 -0
  230. package/build/esm/service-events.d.ts +43 -14
  231. package/build/esm/service-events.js +5 -34
  232. package/build/esm/service-events.js.map +1 -1
  233. package/build/{cjs/hex-flash-data-source.d.ts → esm/universal-hex/flash-data-source.d.ts} +1 -2
  234. package/build/esm/{hex-flash-data-source.js → universal-hex/flash-data-source.js} +6 -13
  235. package/build/esm/universal-hex/flash-data-source.js.map +1 -0
  236. package/build/esm/universal-hex/index.d.ts +4 -0
  237. package/build/esm/universal-hex/index.js +5 -0
  238. package/build/esm/universal-hex/index.js.map +1 -0
  239. package/build/esm/usb/arm-debug.d.ts +137 -0
  240. package/build/esm/usb/arm-debug.js +409 -0
  241. package/build/esm/usb/arm-debug.js.map +1 -0
  242. package/build/esm/usb/arm-debug.test.d.ts +1 -0
  243. package/build/esm/usb/arm-debug.test.js +331 -0
  244. package/build/esm/usb/arm-debug.test.js.map +1 -0
  245. package/build/{cjs → esm/usb}/board-serial-info.d.ts +2 -1
  246. package/build/esm/{board-serial-info.js → usb/board-serial-info.js} +10 -7
  247. package/build/esm/usb/board-serial-info.js.map +1 -0
  248. package/build/esm/usb/board-serial-info.test.d.ts +1 -0
  249. package/build/esm/{board-serial-info.test.js → usb/board-serial-info.test.js} +2 -4
  250. package/build/esm/usb/board-serial-info.test.js.map +1 -0
  251. package/build/esm/usb/cdc-saturation.d.ts +36 -0
  252. package/build/esm/usb/cdc-saturation.js +148 -0
  253. package/build/esm/usb/cdc-saturation.js.map +1 -0
  254. package/build/esm/usb/cmsis-dap.d.ts +113 -0
  255. package/build/esm/usb/cmsis-dap.js +342 -0
  256. package/build/esm/usb/cmsis-dap.js.map +1 -0
  257. package/build/esm/usb/cmsis-dap.test.d.ts +1 -0
  258. package/build/esm/usb/cmsis-dap.test.js +348 -0
  259. package/build/esm/usb/cmsis-dap.test.js.map +1 -0
  260. package/build/esm/usb/connection.d.ts +96 -0
  261. package/build/esm/{usb.js → usb/connection.js} +253 -168
  262. package/build/esm/usb/connection.js.map +1 -0
  263. package/build/esm/usb/connection.test.d.ts +1 -0
  264. package/build/esm/{usb.test.js → usb/connection.test.js} +47 -37
  265. package/build/esm/usb/connection.test.js.map +1 -0
  266. package/build/esm/usb/cortex-m.d.ts +72 -0
  267. package/build/esm/usb/cortex-m.js +161 -0
  268. package/build/esm/usb/cortex-m.js.map +1 -0
  269. package/build/esm/usb/cortex-m.test.d.ts +1 -0
  270. package/build/esm/usb/cortex-m.test.js +215 -0
  271. package/build/esm/usb/cortex-m.test.js.map +1 -0
  272. package/build/esm/usb/daplink.d.ts +69 -0
  273. package/build/esm/usb/daplink.js +231 -0
  274. package/build/esm/usb/daplink.js.map +1 -0
  275. package/build/esm/usb/daplink.test.d.ts +1 -0
  276. package/build/esm/usb/daplink.test.js +288 -0
  277. package/build/esm/usb/daplink.test.js.map +1 -0
  278. package/build/esm/usb/device-wrapper.d.ts +34 -0
  279. package/build/esm/usb/device-wrapper.js +98 -0
  280. package/build/esm/usb/device-wrapper.js.map +1 -0
  281. package/build/esm/usb/index.d.ts +5 -0
  282. package/build/esm/usb/index.js +5 -0
  283. package/build/esm/usb/index.js.map +1 -0
  284. package/build/{cjs/usb-partial-flashing-utils.d.ts → esm/usb/partial-flashing-utils.d.ts} +6 -9
  285. package/build/esm/{usb-partial-flashing-utils.js → usb/partial-flashing-utils.js} +4 -44
  286. package/build/esm/usb/partial-flashing-utils.js.map +1 -0
  287. package/build/{cjs/usb-partial-flashing.d.ts → esm/usb/partial-flashing.d.ts} +37 -11
  288. package/build/esm/{usb-partial-flashing.js → usb/partial-flashing.js} +169 -111
  289. package/build/esm/usb/partial-flashing.js.map +1 -0
  290. package/build/esm/usb/promise-queue.js.map +1 -0
  291. package/build/esm/usb/promise-queue.test.d.ts +1 -0
  292. package/build/esm/usb/promise-queue.test.js.map +1 -0
  293. package/build/esm/usb/serial-events.d.ts +16 -0
  294. package/build/esm/usb/serial-events.js +2 -0
  295. package/build/esm/usb/serial-events.js.map +1 -0
  296. package/build/esm/usb/transport.d.ts +42 -0
  297. package/build/esm/usb/transport.js +151 -0
  298. package/build/esm/usb/transport.js.map +1 -0
  299. package/package.json +43 -2
  300. package/build/cjs/accelerometer-service.js.map +0 -1
  301. package/build/cjs/accelerometer.d.ts +0 -9
  302. package/build/cjs/accelerometer.js +0 -16
  303. package/build/cjs/accelerometer.js.map +0 -1
  304. package/build/cjs/bluetooth-device-wrapper.js.map +0 -1
  305. package/build/cjs/bluetooth.d.ts +0 -114
  306. package/build/cjs/bluetooth.js.map +0 -1
  307. package/build/cjs/bluetooth.test.js.map +0 -1
  308. package/build/cjs/board-serial-info.js.map +0 -1
  309. package/build/cjs/board-serial-info.test.js.map +0 -1
  310. package/build/cjs/button-service.js.map +0 -1
  311. package/build/cjs/buttons.d.ts +0 -10
  312. package/build/cjs/buttons.js +0 -22
  313. package/build/cjs/buttons.js.map +0 -1
  314. package/build/cjs/constants.d.ts +0 -48
  315. package/build/cjs/constants.js +0 -73
  316. package/build/cjs/constants.js.map +0 -1
  317. package/build/cjs/device-bond-state.js.map +0 -1
  318. package/build/cjs/device-information-service.js +0 -34
  319. package/build/cjs/device-information-service.js.map +0 -1
  320. package/build/cjs/dfu-service.js.map +0 -1
  321. package/build/cjs/flashing/flashing-full.js.map +0 -1
  322. package/build/cjs/flashing/flashing-makecode.js.map +0 -1
  323. package/build/cjs/flashing/flashing-makecode.test.js.map +0 -1
  324. package/build/cjs/flashing/flashing-partial.js.map +0 -1
  325. package/build/cjs/flashing/flashing-v1.js.map +0 -1
  326. package/build/cjs/flashing/nordic-dfu.js.map +0 -1
  327. package/build/cjs/flashing/zip.js.map +0 -1
  328. package/build/cjs/flashing/zip.test.js.map +0 -1
  329. package/build/cjs/hex-flash-data-source.js.map +0 -1
  330. package/build/cjs/led-service.js.map +0 -1
  331. package/build/cjs/led.d.ts +0 -6
  332. package/build/cjs/led.js.map +0 -1
  333. package/build/cjs/magnetometer-service.js.map +0 -1
  334. package/build/cjs/magnetometer.d.ts +0 -9
  335. package/build/cjs/magnetometer.js +0 -16
  336. package/build/cjs/magnetometer.js.map +0 -1
  337. package/build/cjs/partial-flashing-service.js.map +0 -1
  338. package/build/cjs/promise-queue.js.map +0 -1
  339. package/build/cjs/promise-queue.test.js.map +0 -1
  340. package/build/cjs/serial-events.d.ts +0 -20
  341. package/build/cjs/serial-events.js +0 -69
  342. package/build/cjs/serial-events.js.map +0 -1
  343. package/build/cjs/uart-service.js.map +0 -1
  344. package/build/cjs/uart.d.ts +0 -4
  345. package/build/cjs/uart.js +0 -16
  346. package/build/cjs/uart.js.map +0 -1
  347. package/build/cjs/usb-device-wrapper.d.ts +0 -47
  348. package/build/cjs/usb-device-wrapper.js +0 -437
  349. package/build/cjs/usb-device-wrapper.js.map +0 -1
  350. package/build/cjs/usb-partial-flashing-utils.js.map +0 -1
  351. package/build/cjs/usb-partial-flashing.js.map +0 -1
  352. package/build/cjs/usb-radio-bridge.d.ts +0 -24
  353. package/build/cjs/usb-radio-bridge.js.map +0 -1
  354. package/build/cjs/usb-serial-protocol.js.map +0 -1
  355. package/build/cjs/usb.d.ts +0 -66
  356. package/build/cjs/usb.js.map +0 -1
  357. package/build/cjs/usb.test.js.map +0 -1
  358. package/build/esm/accelerometer-service.js.map +0 -1
  359. package/build/esm/accelerometer.d.ts +0 -9
  360. package/build/esm/accelerometer.js +0 -12
  361. package/build/esm/accelerometer.js.map +0 -1
  362. package/build/esm/bluetooth-device-wrapper.js.map +0 -1
  363. package/build/esm/bluetooth-profile.js.map +0 -1
  364. package/build/esm/bluetooth.d.ts +0 -114
  365. package/build/esm/bluetooth.js.map +0 -1
  366. package/build/esm/bluetooth.test.js.map +0 -1
  367. package/build/esm/board-serial-info.js.map +0 -1
  368. package/build/esm/board-serial-info.test.js.map +0 -1
  369. package/build/esm/button-service.js.map +0 -1
  370. package/build/esm/buttons.d.ts +0 -10
  371. package/build/esm/buttons.js +0 -18
  372. package/build/esm/buttons.js.map +0 -1
  373. package/build/esm/constants.d.ts +0 -48
  374. package/build/esm/constants.js +0 -70
  375. package/build/esm/constants.js.map +0 -1
  376. package/build/esm/device-bond-state.js.map +0 -1
  377. package/build/esm/device-information-service.js +0 -30
  378. package/build/esm/device-information-service.js.map +0 -1
  379. package/build/esm/dfu-service.js.map +0 -1
  380. package/build/esm/flashing/flashing-full.js.map +0 -1
  381. package/build/esm/flashing/flashing-makecode.js.map +0 -1
  382. package/build/esm/flashing/flashing-makecode.test.js.map +0 -1
  383. package/build/esm/flashing/flashing-partial.js.map +0 -1
  384. package/build/esm/flashing/flashing-v1.js.map +0 -1
  385. package/build/esm/flashing/nordic-dfu.js.map +0 -1
  386. package/build/esm/flashing/zip.js.map +0 -1
  387. package/build/esm/flashing/zip.test.js.map +0 -1
  388. package/build/esm/hex-flash-data-source.js.map +0 -1
  389. package/build/esm/led-service.js.map +0 -1
  390. package/build/esm/led.d.ts +0 -6
  391. package/build/esm/led.js +0 -2
  392. package/build/esm/led.js.map +0 -1
  393. package/build/esm/magnetometer-service.js.map +0 -1
  394. package/build/esm/magnetometer.d.ts +0 -9
  395. package/build/esm/magnetometer.js +0 -12
  396. package/build/esm/magnetometer.js.map +0 -1
  397. package/build/esm/partial-flashing-service.js.map +0 -1
  398. package/build/esm/promise-queue.js.map +0 -1
  399. package/build/esm/promise-queue.test.js.map +0 -1
  400. package/build/esm/serial-events.d.ts +0 -20
  401. package/build/esm/serial-events.js +0 -61
  402. package/build/esm/serial-events.js.map +0 -1
  403. package/build/esm/uart-service.js.map +0 -1
  404. package/build/esm/uart.d.ts +0 -4
  405. package/build/esm/uart.js +0 -12
  406. package/build/esm/uart.js.map +0 -1
  407. package/build/esm/usb-device-wrapper.d.ts +0 -47
  408. package/build/esm/usb-device-wrapper.js +0 -410
  409. package/build/esm/usb-device-wrapper.js.map +0 -1
  410. package/build/esm/usb-partial-flashing-utils.js.map +0 -1
  411. package/build/esm/usb-partial-flashing.js.map +0 -1
  412. package/build/esm/usb-radio-bridge.d.ts +0 -24
  413. package/build/esm/usb-radio-bridge.js.map +0 -1
  414. package/build/esm/usb-serial-protocol.js.map +0 -1
  415. package/build/esm/usb.d.ts +0 -66
  416. package/build/esm/usb.js.map +0 -1
  417. package/build/esm/usb.test.js.map +0 -1
  418. /package/build/cjs/{bluetooth.test.d.ts → bluetooth/connection.test.d.ts} +0 -0
  419. /package/build/cjs/{device-bond-state.d.ts → bluetooth/device-bond-state.d.ts} +0 -0
  420. /package/build/cjs/{device-bond-state.js → bluetooth/device-bond-state.js} +0 -0
  421. /package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.js +0 -0
  422. /package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.test.d.ts +0 -0
  423. /package/build/cjs/{flashing → bluetooth/flashing}/flashing-v1.d.ts +0 -0
  424. /package/build/cjs/{flashing → bluetooth/flashing}/flashing-v1.js +0 -0
  425. /package/build/cjs/{flashing → bluetooth/flashing}/zip.d.ts +0 -0
  426. /package/build/cjs/{flashing → bluetooth/flashing}/zip.js +0 -0
  427. /package/build/cjs/{flashing → bluetooth/flashing}/zip.test.d.ts +0 -0
  428. /package/build/cjs/{flashing → bluetooth/flashing}/zip.test.js +0 -0
  429. /package/build/cjs/{bluetooth-profile.d.ts → bluetooth/profile.d.ts} +0 -0
  430. /package/build/cjs/{dfu-service.d.ts → bluetooth/services/dfu-service.d.ts} +0 -0
  431. /package/build/cjs/{usb-serial-protocol.d.ts → radio-bridge/serial-protocol.d.ts} +0 -0
  432. /package/build/cjs/{board-serial-info.test.d.ts → usb/arm-debug.test.d.ts} +0 -0
  433. /package/build/{esm → cjs/usb}/board-serial-info.test.d.ts +0 -0
  434. /package/build/cjs/{promise-queue.test.d.ts → usb/cmsis-dap.test.d.ts} +0 -0
  435. /package/build/cjs/{usb.test.d.ts → usb/connection.test.d.ts} +0 -0
  436. /package/build/{esm/bluetooth.test.d.ts → cjs/usb/cortex-m.test.d.ts} +0 -0
  437. /package/build/{esm/flashing/flashing-makecode.test.d.ts → cjs/usb/daplink.test.d.ts} +0 -0
  438. /package/build/cjs/{promise-queue.d.ts → usb/promise-queue.d.ts} +0 -0
  439. /package/build/cjs/{promise-queue.js → usb/promise-queue.js} +0 -0
  440. /package/build/{esm → cjs/usb}/promise-queue.test.d.ts +0 -0
  441. /package/build/cjs/{promise-queue.test.js → usb/promise-queue.test.js} +0 -0
  442. /package/build/esm/{flashing/zip.test.d.ts → bluetooth/connection.test.d.ts} +0 -0
  443. /package/build/esm/{device-bond-state.d.ts → bluetooth/device-bond-state.d.ts} +0 -0
  444. /package/build/esm/{device-bond-state.js → bluetooth/device-bond-state.js} +0 -0
  445. /package/build/esm/{flashing → bluetooth/flashing}/flashing-makecode.js +0 -0
  446. /package/build/esm/{usb.test.d.ts → bluetooth/flashing/flashing-makecode.test.d.ts} +0 -0
  447. /package/build/esm/{flashing → bluetooth/flashing}/flashing-v1.d.ts +0 -0
  448. /package/build/esm/{flashing → bluetooth/flashing}/flashing-v1.js +0 -0
  449. /package/build/esm/{flashing → bluetooth/flashing}/zip.d.ts +0 -0
  450. /package/build/esm/{flashing → bluetooth/flashing}/zip.js +0 -0
  451. /package/build/esm/{flashing → bluetooth/flashing}/zip.test.js +0 -0
  452. /package/build/esm/{bluetooth-profile.d.ts → bluetooth/profile.d.ts} +0 -0
  453. /package/build/esm/{dfu-service.d.ts → bluetooth/services/dfu-service.d.ts} +0 -0
  454. /package/build/esm/{usb-serial-protocol.d.ts → radio-bridge/serial-protocol.d.ts} +0 -0
  455. /package/build/esm/{promise-queue.d.ts → usb/promise-queue.d.ts} +0 -0
  456. /package/build/esm/{promise-queue.js → usb/promise-queue.js} +0 -0
  457. /package/build/esm/{promise-queue.test.js → usb/promise-queue.test.js} +0 -0
@@ -0,0 +1,113 @@
1
+ /**
2
+ * (c) 2026, Micro:bit Educational Foundation and contributors
3
+ *
4
+ * Derived from dapjs (https://github.com/ARMmbed/dapjs) which is
5
+ * Copyright (c) Arm Limited 2018
6
+ * Copyright (c) Microsoft Corporation
7
+ *
8
+ * SPDX-License-Identifier: MIT
9
+ *
10
+ * CMSIS-DAP protocol layer. CmsisDapUsb handles the framing and validation of
11
+ * CMSIS-DAP commands over USB. It sits between UsbTransport (raw packet I/O)
12
+ * and ArmDebugSwd (SWD register access). Its responsibilities are:
13
+ *
14
+ * - Serialising all DAP commands through a single queue so concurrent
15
+ * callers (serial polling, flash writes, SWD reads) don't interleave.
16
+ * - Framing DAP_TRANSFER / DAP_TRANSFER_BLOCK requests and parsing their
17
+ * responses, including structured error reporting.
18
+ * - Providing named wrappers for the low-level DAP commands used during
19
+ * SWD initialisation (SWJ_SEQUENCE, SWJ_CLOCK, etc.).
20
+ * - Draining stale USB responses left over from a previous session.
21
+ *
22
+ * Protocol references:
23
+ * - CMSIS-DAP: https://www.keil.com/pack/doc/CMSIS/DAP/html/group__DAP__Commands__gr.html
24
+ * - ARM ADI: https://developer.arm.com/documentation/ihi0031/a/
25
+ */
26
+ import { DeviceError } from "../device.js";
27
+ import { Logging } from "../logging.js";
28
+ import { type Transport } from "./transport.js";
29
+ export declare const DP = 0;
30
+ export declare const AP = 1;
31
+ export declare const READ = 2;
32
+ export declare const WRITE = 0;
33
+ export declare const ABORT_ALL: number;
34
+ export interface DapOperation {
35
+ port: number;
36
+ mode: number;
37
+ register: number;
38
+ value?: number;
39
+ }
40
+ /**
41
+ * Base error for CMSIS-DAP protocol failures.
42
+ * Extends DeviceError so existing catch blocks continue to work.
43
+ */
44
+ export declare class DapError extends DeviceError {
45
+ constructor(message: string);
46
+ }
47
+ /**
48
+ * The response command byte didn't match the request.
49
+ * This can indicate stale responses in the USB buffer from a previous
50
+ * interrupted session, or a protocol-level error.
51
+ */
52
+ export declare class DapResponseMismatchError extends DapError {
53
+ constructor(expected: number, actual: number);
54
+ }
55
+ /**
56
+ * DAP transfer or block transfer failed with a non-OK response.
57
+ */
58
+ export declare class DapTransferError extends DapError {
59
+ readonly response: number;
60
+ readonly completedOps: number;
61
+ readonly totalOps: number;
62
+ constructor(response: number, completedOps: number, totalOps: number, prefix?: string);
63
+ }
64
+ export interface CmsisDap {
65
+ readonly isOpen: boolean;
66
+ readonly blockSize: number;
67
+ /** Send a CMSIS-DAP command and validate the response. */
68
+ send(command: number, data?: Uint8Array): Promise<DataView>;
69
+ clearAbort(): Promise<void>;
70
+ swjSequence(data: Uint8Array): Promise<void>;
71
+ swjClock(frequency: number): Promise<void>;
72
+ connect(): Promise<void>;
73
+ disconnect(): Promise<void>;
74
+ configureTransfer(idleCycles: number, waitRetry: number, matchRetry: number): Promise<void>;
75
+ open(): Promise<void>;
76
+ close(): Promise<void>;
77
+ /**
78
+ * Execute a batch of DAP transfer operations (DAP_TRANSFER command).
79
+ * Returns the values read (one per READ operation in the batch).
80
+ */
81
+ transfer(operations: DapOperation[]): Promise<Uint32Array>;
82
+ /** Read a block of 32-bit values from a single register (DAP_TRANSFER_BLOCK). */
83
+ transferBlockRead(port: number, register: number, count: number): Promise<Uint32Array>;
84
+ /** Write a block of 32-bit values to a single register (DAP_TRANSFER_BLOCK). */
85
+ transferBlockWrite(port: number, register: number, values: Uint32Array): Promise<void>;
86
+ /**
87
+ * Drain stale responses from the USB buffer.
88
+ * Sends probe commands and reads until the response matches,
89
+ * discarding any stale responses from interrupted operations.
90
+ */
91
+ drainStaleResponses(): Promise<void>;
92
+ }
93
+ export declare class CmsisDapUsb implements CmsisDap {
94
+ private transport;
95
+ private logging;
96
+ readonly blockSize: number;
97
+ private sendQueue;
98
+ constructor(transport: Transport, logging: Logging);
99
+ get isOpen(): boolean;
100
+ send(command: number, data?: Uint8Array): Promise<DataView>;
101
+ clearAbort(): Promise<void>;
102
+ swjSequence(data: Uint8Array): Promise<void>;
103
+ swjClock(frequency: number): Promise<void>;
104
+ connect(): Promise<void>;
105
+ disconnect(): Promise<void>;
106
+ configureTransfer(idleCycles: number, waitRetry: number, matchRetry: number): Promise<void>;
107
+ open(): Promise<void>;
108
+ close(): Promise<void>;
109
+ transfer(operations: DapOperation[]): Promise<Uint32Array>;
110
+ transferBlockRead(port: number, register: number, count: number): Promise<Uint32Array>;
111
+ transferBlockWrite(port: number, register: number, values: Uint32Array): Promise<void>;
112
+ drainStaleResponses(): Promise<void>;
113
+ }
@@ -0,0 +1,342 @@
1
+ /**
2
+ * (c) 2026, Micro:bit Educational Foundation and contributors
3
+ *
4
+ * Derived from dapjs (https://github.com/ARMmbed/dapjs) which is
5
+ * Copyright (c) Arm Limited 2018
6
+ * Copyright (c) Microsoft Corporation
7
+ *
8
+ * SPDX-License-Identifier: MIT
9
+ *
10
+ * CMSIS-DAP protocol layer. CmsisDapUsb handles the framing and validation of
11
+ * CMSIS-DAP commands over USB. It sits between UsbTransport (raw packet I/O)
12
+ * and ArmDebugSwd (SWD register access). Its responsibilities are:
13
+ *
14
+ * - Serialising all DAP commands through a single queue so concurrent
15
+ * callers (serial polling, flash writes, SWD reads) don't interleave.
16
+ * - Framing DAP_TRANSFER / DAP_TRANSFER_BLOCK requests and parsing their
17
+ * responses, including structured error reporting.
18
+ * - Providing named wrappers for the low-level DAP commands used during
19
+ * SWD initialisation (SWJ_SEQUENCE, SWJ_CLOCK, etc.).
20
+ * - Draining stale USB responses left over from a previous session.
21
+ *
22
+ * Protocol references:
23
+ * - CMSIS-DAP: https://www.keil.com/pack/doc/CMSIS/DAP/html/group__DAP__Commands__gr.html
24
+ * - ARM ADI: https://developer.arm.com/documentation/ihi0031/a/
25
+ */
26
+ import { DeviceError } from "../device.js";
27
+ import { PromiseQueue } from "./promise-queue.js";
28
+ import { PACKET_SIZE } from "./transport.js";
29
+ // ---------------------------------------------------------------------------
30
+ // Constants
31
+ // ---------------------------------------------------------------------------
32
+ // CMSIS-DAP commands
33
+ const DAP_INFO = 0x00;
34
+ const DAP_CONNECT = 0x02;
35
+ const DAP_DISCONNECT = 0x03;
36
+ const DAP_TRANSFER_CONFIGURE = 0x04;
37
+ const DAP_TRANSFER = 0x05;
38
+ const DAP_TRANSFER_BLOCK = 0x06;
39
+ const DAP_WRITE_ABORT = 0x08;
40
+ const DAP_SWJ_CLOCK = 0x11;
41
+ const DAP_SWJ_SEQUENCE = 0x12;
42
+ // DAP_CONNECT response
43
+ const DAP_CONNECT_FAILED = 0;
44
+ // DAP response statuses for commands that return OK/ERROR in byte 1
45
+ const DAP_OK = 0x00;
46
+ // Commands whose byte-1 response should be checked for OK
47
+ const STATUS_CHECK_COMMANDS = new Set([
48
+ DAP_DISCONNECT,
49
+ DAP_WRITE_ABORT,
50
+ DAP_SWJ_CLOCK,
51
+ DAP_SWJ_SEQUENCE,
52
+ DAP_TRANSFER_CONFIGURE,
53
+ ]);
54
+ // DAP_TRANSFER response codes (bitfield)
55
+ const TRANSFER_OK = 0x01;
56
+ const TRANSFER_WAIT = 0x02;
57
+ const TRANSFER_FAULT = 0x04;
58
+ const TRANSFER_ERROR = 0x08;
59
+ const TRANSFER_MISMATCH = 0x10;
60
+ // DAP ports
61
+ export const DP = 0x00; // Debug Port
62
+ export const AP = 0x01; // Access Port
63
+ // DAP transfer modes
64
+ export const READ = 0x02;
65
+ export const WRITE = 0x00;
66
+ // Abort register bits
67
+ const ABORT_STKCMPCLR = 1 << 1;
68
+ const ABORT_STKERRCLR = 1 << 2;
69
+ const ABORT_WDERRCLR = 1 << 3;
70
+ const ABORT_ORUNERRCLR = 1 << 4;
71
+ export const ABORT_ALL = ABORT_WDERRCLR | ABORT_STKERRCLR | ABORT_STKCMPCLR | ABORT_ORUNERRCLR;
72
+ // Packet sizes
73
+ const BLOCK_HEADER_SIZE = 4;
74
+ const TRANSFER_HEADER_SIZE = 2;
75
+ const TRANSFER_OPERATION_SIZE = 5;
76
+ // ---------------------------------------------------------------------------
77
+ // Error classes
78
+ // ---------------------------------------------------------------------------
79
+ /**
80
+ * Base error for CMSIS-DAP protocol failures.
81
+ * Extends DeviceError so existing catch blocks continue to work.
82
+ */
83
+ export class DapError extends DeviceError {
84
+ constructor(message) {
85
+ super({ code: "connection-error", message });
86
+ }
87
+ }
88
+ /**
89
+ * The response command byte didn't match the request.
90
+ * This can indicate stale responses in the USB buffer from a previous
91
+ * interrupted session, or a protocol-level error.
92
+ */
93
+ export class DapResponseMismatchError extends DapError {
94
+ constructor(expected, actual) {
95
+ super(`Bad response for ${expected} -> ${actual}`);
96
+ }
97
+ }
98
+ /**
99
+ * DAP transfer or block transfer failed with a non-OK response.
100
+ */
101
+ export class DapTransferError extends DapError {
102
+ constructor(response, completedOps, totalOps, prefix = "") {
103
+ super(`${prefix}${transferResponseMessage(response)} at operation ${completedOps}/${totalOps}`);
104
+ Object.defineProperty(this, "response", {
105
+ enumerable: true,
106
+ configurable: true,
107
+ writable: true,
108
+ value: response
109
+ });
110
+ Object.defineProperty(this, "completedOps", {
111
+ enumerable: true,
112
+ configurable: true,
113
+ writable: true,
114
+ value: completedOps
115
+ });
116
+ Object.defineProperty(this, "totalOps", {
117
+ enumerable: true,
118
+ configurable: true,
119
+ writable: true,
120
+ value: totalOps
121
+ });
122
+ }
123
+ }
124
+ export class CmsisDapUsb {
125
+ constructor(transport, logging) {
126
+ Object.defineProperty(this, "transport", {
127
+ enumerable: true,
128
+ configurable: true,
129
+ writable: true,
130
+ value: transport
131
+ });
132
+ Object.defineProperty(this, "logging", {
133
+ enumerable: true,
134
+ configurable: true,
135
+ writable: true,
136
+ value: logging
137
+ });
138
+ Object.defineProperty(this, "blockSize", {
139
+ enumerable: true,
140
+ configurable: true,
141
+ writable: true,
142
+ value: void 0
143
+ });
144
+ Object.defineProperty(this, "sendQueue", {
145
+ enumerable: true,
146
+ configurable: true,
147
+ writable: true,
148
+ value: new PromiseQueue()
149
+ });
150
+ this.blockSize = PACKET_SIZE - BLOCK_HEADER_SIZE - 1;
151
+ }
152
+ get isOpen() {
153
+ return this.transport.isOpen;
154
+ }
155
+ async send(command, data) {
156
+ let array;
157
+ if (data) {
158
+ array = new Uint8Array(data.length + 1);
159
+ array[0] = command;
160
+ array.set(data, 1);
161
+ }
162
+ else {
163
+ array = new Uint8Array([command]);
164
+ }
165
+ return this.sendQueue.add(async () => {
166
+ await this.transport.write(array);
167
+ const response = await this.transport.read();
168
+ if (response.getUint8(0) !== command) {
169
+ throw new DapResponseMismatchError(command, response.getUint8(0));
170
+ }
171
+ if (STATUS_CHECK_COMMANDS.has(command)) {
172
+ if (response.getUint8(1) !== DAP_OK) {
173
+ throw new DapError(`Bad status for ${command} -> ${response.getUint8(1)}`);
174
+ }
175
+ }
176
+ return response;
177
+ });
178
+ }
179
+ async clearAbort() {
180
+ const data = new Uint8Array(5);
181
+ new DataView(data.buffer).setUint32(1, ABORT_ALL, true);
182
+ await this.send(DAP_WRITE_ABORT, data);
183
+ }
184
+ async swjSequence(data) {
185
+ const bitLength = data.byteLength * 8;
186
+ const payload = new Uint8Array(data.length + 1);
187
+ payload[0] = bitLength;
188
+ payload.set(data, 1);
189
+ await this.send(DAP_SWJ_SEQUENCE, payload);
190
+ }
191
+ async swjClock(frequency) {
192
+ await this.send(DAP_SWJ_CLOCK, new Uint8Array(new Uint32Array([frequency]).buffer));
193
+ }
194
+ async connect() {
195
+ const result = await this.send(DAP_CONNECT, new Uint8Array([0]));
196
+ if (result.getUint8(1) === DAP_CONNECT_FAILED) {
197
+ throw new DapError("Mode not enabled.");
198
+ }
199
+ }
200
+ async disconnect() {
201
+ await this.send(DAP_DISCONNECT);
202
+ }
203
+ async configureTransfer(idleCycles, waitRetry, matchRetry) {
204
+ const data = new Uint8Array(5);
205
+ const view = new DataView(data.buffer);
206
+ view.setUint8(0, idleCycles);
207
+ view.setUint16(1, waitRetry, true);
208
+ view.setUint16(3, matchRetry, true);
209
+ await this.send(DAP_TRANSFER_CONFIGURE, data);
210
+ }
211
+ async open() {
212
+ await this.transport.open();
213
+ }
214
+ async close() {
215
+ await this.transport.close();
216
+ }
217
+ async transfer(operations) {
218
+ if (operations.length === 0) {
219
+ return new Uint32Array(0);
220
+ }
221
+ const data = new Uint8Array(TRANSFER_HEADER_SIZE + operations.length * TRANSFER_OPERATION_SIZE);
222
+ const view = new DataView(data.buffer);
223
+ view.setUint8(0, 0); // DAP index (ignored for SWD)
224
+ view.setUint8(1, operations.length);
225
+ operations.forEach((op, index) => {
226
+ const offset = TRANSFER_HEADER_SIZE + index * TRANSFER_OPERATION_SIZE;
227
+ view.setUint8(offset, op.port | op.mode | op.register);
228
+ view.setUint32(offset + 1, op.value ?? 0, true);
229
+ });
230
+ try {
231
+ const result = await this.send(DAP_TRANSFER, data);
232
+ const completedCount = result.getUint8(1);
233
+ const response = result.getUint8(2);
234
+ if (response !== TRANSFER_OK) {
235
+ throw new DapTransferError(response, completedCount, operations.length);
236
+ }
237
+ if (completedCount !== operations.length) {
238
+ throw new DapError(`Transfer count mismatch: expected ${operations.length}, got ${completedCount}`);
239
+ }
240
+ const readCount = operations.filter((op) => op.mode === READ).length;
241
+ return new Uint32Array(result.buffer.slice(3, 3 + readCount * 4));
242
+ }
243
+ catch (error) {
244
+ await this.clearAbort();
245
+ throw error;
246
+ }
247
+ }
248
+ async transferBlockRead(port, register, count) {
249
+ const maxWords = Math.floor(this.blockSize / 4);
250
+ if (count > maxWords) {
251
+ throw new DapError(`Transfer block read count ${count} exceeds max ${maxWords}`);
252
+ }
253
+ const data = new Uint8Array(BLOCK_HEADER_SIZE);
254
+ const view = new DataView(data.buffer);
255
+ view.setUint8(0, 0);
256
+ view.setUint16(1, count, true);
257
+ view.setUint8(3, port | READ | register);
258
+ try {
259
+ const result = await this.send(DAP_TRANSFER_BLOCK, data);
260
+ const completedCount = result.getUint16(1, true);
261
+ const response = result.getUint8(3);
262
+ if (response !== TRANSFER_OK) {
263
+ throw new DapTransferError(response, completedCount, count, "Block read: ");
264
+ }
265
+ if (completedCount !== count) {
266
+ throw new DapError(`Block read count mismatch: expected ${count}, got ${completedCount}`);
267
+ }
268
+ return new Uint32Array(result.buffer.slice(4, 4 + count * 4));
269
+ }
270
+ catch (error) {
271
+ await this.clearAbort();
272
+ throw error;
273
+ }
274
+ }
275
+ async transferBlockWrite(port, register, values) {
276
+ const maxWords = Math.floor(this.blockSize / 4);
277
+ if (values.length > maxWords) {
278
+ throw new DapError(`Transfer block write count ${values.length} exceeds max ${maxWords}`);
279
+ }
280
+ const data = new Uint8Array(BLOCK_HEADER_SIZE + values.byteLength);
281
+ const view = new DataView(data.buffer);
282
+ view.setUint8(0, 0);
283
+ view.setUint16(1, values.length, true);
284
+ view.setUint8(3, port | WRITE | register);
285
+ values.forEach((value, index) => {
286
+ const offset = BLOCK_HEADER_SIZE + index * 4;
287
+ view.setUint32(offset, value, true);
288
+ });
289
+ try {
290
+ const result = await this.send(DAP_TRANSFER_BLOCK, data);
291
+ const completedCount = result.getUint16(1, true);
292
+ const response = result.getUint8(3);
293
+ if (response !== TRANSFER_OK) {
294
+ throw new DapTransferError(response, completedCount, values.length, "Block write: ");
295
+ }
296
+ if (completedCount !== values.length) {
297
+ throw new DapError(`Block write count mismatch: expected ${values.length}, got ${completedCount}`);
298
+ }
299
+ }
300
+ catch (error) {
301
+ await this.clearAbort();
302
+ throw error;
303
+ }
304
+ }
305
+ async drainStaleResponses() {
306
+ return this.sendQueue.add(async () => {
307
+ const maxAttempts = 10;
308
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
309
+ const packet = new Uint8Array([DAP_INFO, 0x01]);
310
+ await this.transport.write(packet);
311
+ const response = await this.transport.read();
312
+ const responseBytes = new Uint8Array(response.buffer);
313
+ if (responseBytes[0] === DAP_INFO) {
314
+ for (let i = 0; i < attempt; i++) {
315
+ await this.transport.read();
316
+ }
317
+ this.logging.log(`USB buffer drain: synchronized after ${attempt} stale response(s)`);
318
+ return;
319
+ }
320
+ this.logging.log(`USB buffer drain: discarded stale response 0x${responseBytes[0].toString(16)}`);
321
+ }
322
+ this.logging.log("USB buffer drain: warning - could not fully synchronize after max attempts");
323
+ });
324
+ }
325
+ }
326
+ // ---------------------------------------------------------------------------
327
+ // Utility
328
+ // ---------------------------------------------------------------------------
329
+ function transferResponseMessage(response) {
330
+ if (response === 0)
331
+ return "Transfer failed (no ACK — target not responding)";
332
+ if (response & TRANSFER_WAIT)
333
+ return "Transfer WAIT (target busy, retries exhausted)";
334
+ if (response & TRANSFER_FAULT)
335
+ return "Transfer FAULT (access error)";
336
+ if (response & TRANSFER_ERROR)
337
+ return "Transfer protocol error";
338
+ if (response & TRANSFER_MISMATCH)
339
+ return "Transfer value mismatch";
340
+ return `Transfer failed (response=0x${response.toString(16)})`;
341
+ }
342
+ //# sourceMappingURL=cmsis-dap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmsis-dap.js","sourceRoot":"","sources":["../../../src/usb/cmsis-dap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};