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

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 (441) hide show
  1. package/build/{esm/bluetooth.d.ts → cjs/bluetooth/connection.d.ts} +30 -26
  2. package/build/cjs/{bluetooth.js → bluetooth/connection.js} +147 -104
  3. package/build/cjs/bluetooth/connection.js.map +1 -0
  4. package/build/cjs/{bluetooth.test.js → bluetooth/connection.test.js} +9 -9
  5. package/build/cjs/bluetooth/connection.test.js.map +1 -0
  6. package/build/cjs/bluetooth/device-bond-state.js.map +1 -0
  7. package/build/cjs/{bluetooth-device-wrapper.d.ts → bluetooth/device-wrapper.d.ts} +11 -11
  8. package/build/cjs/{bluetooth-device-wrapper.js → bluetooth/device-wrapper.js} +35 -35
  9. package/build/cjs/bluetooth/device-wrapper.js.map +1 -0
  10. package/build/cjs/{flashing → bluetooth/flashing}/flashing-full.d.ts +2 -2
  11. package/build/cjs/{flashing → bluetooth/flashing}/flashing-full.js +4 -4
  12. package/build/cjs/bluetooth/flashing/flashing-full.js.map +1 -0
  13. package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.d.ts +1 -1
  14. package/build/cjs/bluetooth/flashing/flashing-makecode.js.map +1 -0
  15. package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.test.js +3 -3
  16. package/build/cjs/bluetooth/flashing/flashing-makecode.test.js.map +1 -0
  17. package/build/cjs/{flashing → bluetooth/flashing}/flashing-partial.d.ts +2 -2
  18. package/build/cjs/{flashing → bluetooth/flashing}/flashing-partial.js +5 -5
  19. package/build/cjs/bluetooth/flashing/flashing-partial.js.map +1 -0
  20. package/build/cjs/bluetooth/flashing/flashing-v1.js.map +1 -0
  21. package/build/cjs/{flashing → bluetooth/flashing}/nordic-dfu.d.ts +2 -2
  22. package/build/cjs/{flashing → bluetooth/flashing}/nordic-dfu.js +11 -8
  23. package/build/cjs/bluetooth/flashing/nordic-dfu.js.map +1 -0
  24. package/build/cjs/bluetooth/flashing/zip.js.map +1 -0
  25. package/build/cjs/bluetooth/flashing/zip.test.js.map +1 -0
  26. package/build/cjs/bluetooth/index.d.ts +5 -0
  27. package/build/cjs/bluetooth/index.js +9 -0
  28. package/build/cjs/bluetooth/index.js.map +1 -0
  29. package/build/cjs/{bluetooth-profile.js → bluetooth/profile.js} +1 -1
  30. package/build/cjs/bluetooth/profile.js.map +1 -0
  31. package/build/cjs/{accelerometer-service.d.ts → bluetooth/services/accelerometer-service.d.ts} +2 -3
  32. package/build/cjs/{accelerometer-service.js → bluetooth/services/accelerometer-service.js} +16 -12
  33. package/build/cjs/bluetooth/services/accelerometer-service.js.map +1 -0
  34. package/build/{esm → cjs/bluetooth/services}/button-service.d.ts +2 -3
  35. package/build/cjs/{button-service.js → bluetooth/services/button-service.js} +15 -14
  36. package/build/cjs/bluetooth/services/button-service.js.map +1 -0
  37. package/build/{esm → cjs/bluetooth/services}/device-information-service.d.ts +1 -1
  38. package/build/cjs/{device-information-service.js → bluetooth/services/device-information-service.js} +2 -2
  39. package/build/cjs/bluetooth/services/device-information-service.js.map +1 -0
  40. package/build/cjs/{dfu-service.js → bluetooth/services/dfu-service.js} +2 -2
  41. package/build/cjs/bluetooth/services/dfu-service.js.map +1 -0
  42. package/build/{esm → cjs/bluetooth/services}/led-service.d.ts +2 -3
  43. package/build/cjs/{led-service.js → bluetooth/services/led-service.js} +7 -7
  44. package/build/cjs/bluetooth/services/led-service.js.map +1 -0
  45. package/build/cjs/{magnetometer-service.d.ts → bluetooth/services/magnetometer-service.d.ts} +2 -3
  46. package/build/cjs/{magnetometer-service.js → bluetooth/services/magnetometer-service.js} +18 -14
  47. package/build/cjs/bluetooth/services/magnetometer-service.js.map +1 -0
  48. package/build/{esm → cjs/bluetooth/services}/partial-flashing-service.d.ts +1 -1
  49. package/build/cjs/{partial-flashing-service.js → bluetooth/services/partial-flashing-service.js} +8 -8
  50. package/build/cjs/bluetooth/services/partial-flashing-service.js.map +1 -0
  51. package/build/cjs/{uart-service.d.ts → bluetooth/services/uart-service.d.ts} +2 -2
  52. package/build/cjs/{uart-service.js → bluetooth/services/uart-service.js} +12 -9
  53. package/build/cjs/bluetooth/services/uart-service.js.map +1 -0
  54. package/build/cjs/board-id.d.ts +1 -1
  55. package/build/cjs/board-id.js.map +1 -1
  56. package/build/cjs/device.d.ts +82 -75
  57. package/build/cjs/device.js +40 -126
  58. package/build/cjs/device.js.map +1 -1
  59. package/build/cjs/events.d.ts +9 -108
  60. package/build/cjs/events.js +27 -88
  61. package/build/cjs/events.js.map +1 -1
  62. package/build/cjs/events.test.js +54 -48
  63. package/build/cjs/events.test.js.map +1 -1
  64. package/build/cjs/hex-util.d.ts +1 -0
  65. package/build/cjs/hex-util.js +15 -0
  66. package/build/cjs/hex-util.js.map +1 -0
  67. package/build/cjs/index.d.ts +7 -16
  68. package/build/cjs/index.js +6 -26
  69. package/build/cjs/index.js.map +1 -1
  70. package/build/cjs/radio-bridge/connection.d.ts +39 -0
  71. package/build/cjs/{usb-radio-bridge.js → radio-bridge/connection.js} +39 -25
  72. package/build/cjs/radio-bridge/connection.js.map +1 -0
  73. package/build/cjs/radio-bridge/index.d.ts +4 -0
  74. package/build/cjs/radio-bridge/index.js +9 -0
  75. package/build/cjs/radio-bridge/index.js.map +1 -0
  76. package/build/cjs/{usb-serial-protocol.js → radio-bridge/serial-protocol.js} +1 -1
  77. package/build/cjs/radio-bridge/serial-protocol.js.map +1 -0
  78. package/build/cjs/service-events.d.ts +42 -14
  79. package/build/cjs/service-events.js +6 -36
  80. package/build/cjs/service-events.js.map +1 -1
  81. package/build/{esm/hex-flash-data-source.d.ts → cjs/universal-hex/flash-data-source.d.ts} +1 -2
  82. package/build/cjs/{hex-flash-data-source.js → universal-hex/flash-data-source.js} +7 -15
  83. package/build/cjs/universal-hex/flash-data-source.js.map +1 -0
  84. package/build/cjs/universal-hex/index.d.ts +4 -0
  85. package/build/cjs/universal-hex/index.js +9 -0
  86. package/build/cjs/universal-hex/index.js.map +1 -0
  87. package/build/cjs/usb/arm-debug.d.ts +137 -0
  88. package/build/cjs/usb/arm-debug.js +414 -0
  89. package/build/cjs/usb/arm-debug.js.map +1 -0
  90. package/build/cjs/usb/arm-debug.test.js +333 -0
  91. package/build/cjs/usb/arm-debug.test.js.map +1 -0
  92. package/build/{esm → cjs/usb}/board-serial-info.d.ts +2 -1
  93. package/build/cjs/{board-serial-info.js → usb/board-serial-info.js} +10 -7
  94. package/build/cjs/usb/board-serial-info.js.map +1 -0
  95. package/build/cjs/{board-serial-info.test.js → usb/board-serial-info.test.js} +2 -4
  96. package/build/cjs/usb/board-serial-info.test.js.map +1 -0
  97. package/build/cjs/usb/cdc-saturation.d.ts +36 -0
  98. package/build/cjs/usb/cdc-saturation.js +151 -0
  99. package/build/cjs/usb/cdc-saturation.js.map +1 -0
  100. package/build/cjs/usb/cmsis-dap.d.ts +113 -0
  101. package/build/cjs/usb/cmsis-dap.js +349 -0
  102. package/build/cjs/usb/cmsis-dap.js.map +1 -0
  103. package/build/cjs/usb/cmsis-dap.test.js +350 -0
  104. package/build/cjs/usb/cmsis-dap.test.js.map +1 -0
  105. package/build/cjs/usb/connection.d.ts +81 -0
  106. package/build/cjs/{usb.js → usb/connection.js} +243 -166
  107. package/build/cjs/usb/connection.js.map +1 -0
  108. package/build/cjs/{usb.test.js → usb/connection.test.js} +52 -42
  109. package/build/cjs/usb/connection.test.js.map +1 -0
  110. package/build/cjs/usb/cortex-m.d.ts +72 -0
  111. package/build/cjs/usb/cortex-m.js +165 -0
  112. package/build/cjs/usb/cortex-m.js.map +1 -0
  113. package/build/cjs/usb/cortex-m.test.js +217 -0
  114. package/build/cjs/usb/cortex-m.test.js.map +1 -0
  115. package/build/cjs/usb/daplink.d.ts +69 -0
  116. package/build/cjs/usb/daplink.js +238 -0
  117. package/build/cjs/usb/daplink.js.map +1 -0
  118. package/build/cjs/usb/daplink.test.js +290 -0
  119. package/build/cjs/usb/daplink.test.js.map +1 -0
  120. package/build/cjs/usb/device-wrapper.d.ts +34 -0
  121. package/build/cjs/usb/device-wrapper.js +102 -0
  122. package/build/cjs/usb/device-wrapper.js.map +1 -0
  123. package/build/cjs/usb/index.d.ts +5 -0
  124. package/build/cjs/usb/index.js +10 -0
  125. package/build/cjs/usb/index.js.map +1 -0
  126. package/build/{esm/usb-partial-flashing-utils.d.ts → cjs/usb/partial-flashing-utils.d.ts} +6 -9
  127. package/build/cjs/{usb-partial-flashing-utils.js → usb/partial-flashing-utils.js} +6 -49
  128. package/build/cjs/usb/partial-flashing-utils.js.map +1 -0
  129. package/build/{esm/usb-partial-flashing.d.ts → cjs/usb/partial-flashing.d.ts} +15 -7
  130. package/build/cjs/{usb-partial-flashing.js → usb/partial-flashing.js} +64 -119
  131. package/build/cjs/usb/partial-flashing.js.map +1 -0
  132. package/build/cjs/usb/promise-queue.js.map +1 -0
  133. package/build/cjs/usb/promise-queue.test.js.map +1 -0
  134. package/build/cjs/usb/serial-events.d.ts +21 -0
  135. package/build/cjs/{led.js → usb/serial-events.js} +1 -1
  136. package/build/cjs/usb/serial-events.js.map +1 -0
  137. package/build/cjs/usb/transport.d.ts +42 -0
  138. package/build/cjs/usb/transport.js +155 -0
  139. package/build/cjs/usb/transport.js.map +1 -0
  140. package/build/{cjs/bluetooth.d.ts → esm/bluetooth/connection.d.ts} +30 -26
  141. package/build/esm/{bluetooth.js → bluetooth/connection.js} +141 -98
  142. package/build/esm/bluetooth/connection.js.map +1 -0
  143. package/build/esm/{bluetooth.test.js → bluetooth/connection.test.js} +9 -9
  144. package/build/esm/bluetooth/connection.test.js.map +1 -0
  145. package/build/esm/bluetooth/device-bond-state.js.map +1 -0
  146. package/build/esm/{bluetooth-device-wrapper.d.ts → bluetooth/device-wrapper.d.ts} +11 -11
  147. package/build/esm/{bluetooth-device-wrapper.js → bluetooth/device-wrapper.js} +32 -32
  148. package/build/esm/bluetooth/device-wrapper.js.map +1 -0
  149. package/build/esm/{flashing → bluetooth/flashing}/flashing-full.d.ts +2 -2
  150. package/build/esm/{flashing → bluetooth/flashing}/flashing-full.js +4 -4
  151. package/build/esm/bluetooth/flashing/flashing-full.js.map +1 -0
  152. package/build/esm/{flashing → bluetooth/flashing}/flashing-makecode.d.ts +1 -1
  153. package/build/esm/bluetooth/flashing/flashing-makecode.js.map +1 -0
  154. package/build/esm/{flashing → bluetooth/flashing}/flashing-makecode.test.js +2 -2
  155. package/build/esm/bluetooth/flashing/flashing-makecode.test.js.map +1 -0
  156. package/build/esm/{flashing → bluetooth/flashing}/flashing-partial.d.ts +2 -2
  157. package/build/esm/{flashing → bluetooth/flashing}/flashing-partial.js +4 -4
  158. package/build/esm/bluetooth/flashing/flashing-partial.js.map +1 -0
  159. package/build/esm/bluetooth/flashing/flashing-v1.js.map +1 -0
  160. package/build/esm/{flashing → bluetooth/flashing}/nordic-dfu.d.ts +2 -2
  161. package/build/esm/{flashing → bluetooth/flashing}/nordic-dfu.js +11 -8
  162. package/build/esm/bluetooth/flashing/nordic-dfu.js.map +1 -0
  163. package/build/esm/bluetooth/flashing/zip.js.map +1 -0
  164. package/build/esm/bluetooth/flashing/zip.test.d.ts +1 -0
  165. package/build/esm/bluetooth/flashing/zip.test.js.map +1 -0
  166. package/build/esm/bluetooth/index.d.ts +5 -0
  167. package/build/esm/bluetooth/index.js +5 -0
  168. package/build/esm/bluetooth/index.js.map +1 -0
  169. package/build/esm/{bluetooth-profile.js → bluetooth/profile.js} +1 -1
  170. package/build/{cjs/bluetooth-profile.js.map → esm/bluetooth/profile.js.map} +1 -1
  171. package/build/esm/{accelerometer-service.d.ts → bluetooth/services/accelerometer-service.d.ts} +2 -3
  172. package/build/esm/{accelerometer-service.js → bluetooth/services/accelerometer-service.js} +10 -6
  173. package/build/esm/bluetooth/services/accelerometer-service.js.map +1 -0
  174. package/build/{cjs → esm/bluetooth/services}/button-service.d.ts +2 -3
  175. package/build/esm/{button-service.js → bluetooth/services/button-service.js} +10 -9
  176. package/build/esm/bluetooth/services/button-service.js.map +1 -0
  177. package/build/{cjs → esm/bluetooth/services}/device-information-service.d.ts +1 -1
  178. package/build/esm/{device-information-service.js → bluetooth/services/device-information-service.js} +1 -1
  179. package/build/esm/bluetooth/services/device-information-service.js.map +1 -0
  180. package/build/esm/{dfu-service.js → bluetooth/services/dfu-service.js} +1 -1
  181. package/build/esm/bluetooth/services/dfu-service.js.map +1 -0
  182. package/build/{cjs → esm/bluetooth/services}/led-service.d.ts +2 -3
  183. package/build/esm/{led-service.js → bluetooth/services/led-service.js} +1 -1
  184. package/build/esm/bluetooth/services/led-service.js.map +1 -0
  185. package/build/esm/{magnetometer-service.d.ts → bluetooth/services/magnetometer-service.d.ts} +2 -3
  186. package/build/esm/{magnetometer-service.js → bluetooth/services/magnetometer-service.js} +10 -6
  187. package/build/esm/bluetooth/services/magnetometer-service.js.map +1 -0
  188. package/build/{cjs → esm/bluetooth/services}/partial-flashing-service.d.ts +1 -1
  189. package/build/esm/{partial-flashing-service.js → bluetooth/services/partial-flashing-service.js} +4 -4
  190. package/build/esm/bluetooth/services/partial-flashing-service.js.map +1 -0
  191. package/build/esm/{uart-service.d.ts → bluetooth/services/uart-service.d.ts} +2 -2
  192. package/build/esm/{uart-service.js → bluetooth/services/uart-service.js} +8 -5
  193. package/build/esm/bluetooth/services/uart-service.js.map +1 -0
  194. package/build/esm/board-id.d.ts +1 -1
  195. package/build/esm/board-id.js.map +1 -1
  196. package/build/esm/device.d.ts +82 -75
  197. package/build/esm/device.js +38 -120
  198. package/build/esm/device.js.map +1 -1
  199. package/build/esm/events.d.ts +9 -108
  200. package/build/esm/events.js +26 -86
  201. package/build/esm/events.js.map +1 -1
  202. package/build/esm/events.test.js +55 -49
  203. package/build/esm/events.test.js.map +1 -1
  204. package/build/esm/hex-util.d.ts +1 -0
  205. package/build/esm/hex-util.js +11 -0
  206. package/build/esm/hex-util.js.map +1 -0
  207. package/build/esm/index.d.ts +7 -16
  208. package/build/esm/index.js +6 -10
  209. package/build/esm/index.js.map +1 -1
  210. package/build/esm/radio-bridge/connection.d.ts +39 -0
  211. package/build/esm/{usb-radio-bridge.js → radio-bridge/connection.js} +39 -25
  212. package/build/esm/radio-bridge/connection.js.map +1 -0
  213. package/build/esm/radio-bridge/index.d.ts +4 -0
  214. package/build/esm/radio-bridge/index.js +5 -0
  215. package/build/esm/radio-bridge/index.js.map +1 -0
  216. package/build/esm/{usb-serial-protocol.js → radio-bridge/serial-protocol.js} +1 -1
  217. package/build/esm/radio-bridge/serial-protocol.js.map +1 -0
  218. package/build/esm/service-events.d.ts +42 -14
  219. package/build/esm/service-events.js +5 -34
  220. package/build/esm/service-events.js.map +1 -1
  221. package/build/{cjs/hex-flash-data-source.d.ts → esm/universal-hex/flash-data-source.d.ts} +1 -2
  222. package/build/esm/{hex-flash-data-source.js → universal-hex/flash-data-source.js} +6 -13
  223. package/build/esm/universal-hex/flash-data-source.js.map +1 -0
  224. package/build/esm/universal-hex/index.d.ts +4 -0
  225. package/build/esm/universal-hex/index.js +5 -0
  226. package/build/esm/universal-hex/index.js.map +1 -0
  227. package/build/esm/usb/arm-debug.d.ts +137 -0
  228. package/build/esm/usb/arm-debug.js +409 -0
  229. package/build/esm/usb/arm-debug.js.map +1 -0
  230. package/build/esm/usb/arm-debug.test.d.ts +1 -0
  231. package/build/esm/usb/arm-debug.test.js +331 -0
  232. package/build/esm/usb/arm-debug.test.js.map +1 -0
  233. package/build/{cjs → esm/usb}/board-serial-info.d.ts +2 -1
  234. package/build/esm/{board-serial-info.js → usb/board-serial-info.js} +10 -7
  235. package/build/esm/usb/board-serial-info.js.map +1 -0
  236. package/build/esm/usb/board-serial-info.test.d.ts +1 -0
  237. package/build/esm/{board-serial-info.test.js → usb/board-serial-info.test.js} +2 -4
  238. package/build/esm/usb/board-serial-info.test.js.map +1 -0
  239. package/build/esm/usb/cdc-saturation.d.ts +36 -0
  240. package/build/esm/usb/cdc-saturation.js +148 -0
  241. package/build/esm/usb/cdc-saturation.js.map +1 -0
  242. package/build/esm/usb/cmsis-dap.d.ts +113 -0
  243. package/build/esm/usb/cmsis-dap.js +342 -0
  244. package/build/esm/usb/cmsis-dap.js.map +1 -0
  245. package/build/esm/usb/cmsis-dap.test.d.ts +1 -0
  246. package/build/esm/usb/cmsis-dap.test.js +348 -0
  247. package/build/esm/usb/cmsis-dap.test.js.map +1 -0
  248. package/build/esm/usb/connection.d.ts +81 -0
  249. package/build/esm/{usb.js → usb/connection.js} +239 -161
  250. package/build/esm/usb/connection.js.map +1 -0
  251. package/build/esm/usb/connection.test.d.ts +1 -0
  252. package/build/esm/{usb.test.js → usb/connection.test.js} +47 -37
  253. package/build/esm/usb/connection.test.js.map +1 -0
  254. package/build/esm/usb/cortex-m.d.ts +72 -0
  255. package/build/esm/usb/cortex-m.js +161 -0
  256. package/build/esm/usb/cortex-m.js.map +1 -0
  257. package/build/esm/usb/cortex-m.test.d.ts +1 -0
  258. package/build/esm/usb/cortex-m.test.js +215 -0
  259. package/build/esm/usb/cortex-m.test.js.map +1 -0
  260. package/build/esm/usb/daplink.d.ts +69 -0
  261. package/build/esm/usb/daplink.js +231 -0
  262. package/build/esm/usb/daplink.js.map +1 -0
  263. package/build/esm/usb/daplink.test.d.ts +1 -0
  264. package/build/esm/usb/daplink.test.js +288 -0
  265. package/build/esm/usb/daplink.test.js.map +1 -0
  266. package/build/esm/usb/device-wrapper.d.ts +34 -0
  267. package/build/esm/usb/device-wrapper.js +98 -0
  268. package/build/esm/usb/device-wrapper.js.map +1 -0
  269. package/build/esm/usb/index.d.ts +5 -0
  270. package/build/esm/usb/index.js +5 -0
  271. package/build/esm/usb/index.js.map +1 -0
  272. package/build/{cjs/usb-partial-flashing-utils.d.ts → esm/usb/partial-flashing-utils.d.ts} +6 -9
  273. package/build/esm/{usb-partial-flashing-utils.js → usb/partial-flashing-utils.js} +4 -44
  274. package/build/esm/usb/partial-flashing-utils.js.map +1 -0
  275. package/build/{cjs/usb-partial-flashing.d.ts → esm/usb/partial-flashing.d.ts} +15 -7
  276. package/build/esm/{usb-partial-flashing.js → usb/partial-flashing.js} +62 -94
  277. package/build/esm/usb/partial-flashing.js.map +1 -0
  278. package/build/esm/usb/promise-queue.js.map +1 -0
  279. package/build/esm/usb/promise-queue.test.d.ts +1 -0
  280. package/build/esm/usb/promise-queue.test.js.map +1 -0
  281. package/build/esm/usb/serial-events.d.ts +21 -0
  282. package/build/esm/usb/serial-events.js +2 -0
  283. package/build/esm/usb/serial-events.js.map +1 -0
  284. package/build/esm/usb/transport.d.ts +42 -0
  285. package/build/esm/usb/transport.js +151 -0
  286. package/build/esm/usb/transport.js.map +1 -0
  287. package/package.json +43 -2
  288. package/build/cjs/accelerometer-service.js.map +0 -1
  289. package/build/cjs/accelerometer.d.ts +0 -9
  290. package/build/cjs/accelerometer.js +0 -16
  291. package/build/cjs/accelerometer.js.map +0 -1
  292. package/build/cjs/bluetooth-device-wrapper.js.map +0 -1
  293. package/build/cjs/bluetooth.js.map +0 -1
  294. package/build/cjs/bluetooth.test.js.map +0 -1
  295. package/build/cjs/board-serial-info.js.map +0 -1
  296. package/build/cjs/board-serial-info.test.js.map +0 -1
  297. package/build/cjs/button-service.js.map +0 -1
  298. package/build/cjs/buttons.d.ts +0 -10
  299. package/build/cjs/buttons.js +0 -22
  300. package/build/cjs/buttons.js.map +0 -1
  301. package/build/cjs/constants.d.ts +0 -48
  302. package/build/cjs/constants.js +0 -73
  303. package/build/cjs/constants.js.map +0 -1
  304. package/build/cjs/device-bond-state.js.map +0 -1
  305. package/build/cjs/device-information-service.js.map +0 -1
  306. package/build/cjs/dfu-service.js.map +0 -1
  307. package/build/cjs/flashing/flashing-full.js.map +0 -1
  308. package/build/cjs/flashing/flashing-makecode.js.map +0 -1
  309. package/build/cjs/flashing/flashing-makecode.test.js.map +0 -1
  310. package/build/cjs/flashing/flashing-partial.js.map +0 -1
  311. package/build/cjs/flashing/flashing-v1.js.map +0 -1
  312. package/build/cjs/flashing/nordic-dfu.js.map +0 -1
  313. package/build/cjs/flashing/zip.js.map +0 -1
  314. package/build/cjs/flashing/zip.test.js.map +0 -1
  315. package/build/cjs/hex-flash-data-source.js.map +0 -1
  316. package/build/cjs/led-service.js.map +0 -1
  317. package/build/cjs/led.d.ts +0 -6
  318. package/build/cjs/led.js.map +0 -1
  319. package/build/cjs/magnetometer-service.js.map +0 -1
  320. package/build/cjs/magnetometer.d.ts +0 -9
  321. package/build/cjs/magnetometer.js +0 -16
  322. package/build/cjs/magnetometer.js.map +0 -1
  323. package/build/cjs/partial-flashing-service.js.map +0 -1
  324. package/build/cjs/promise-queue.js.map +0 -1
  325. package/build/cjs/promise-queue.test.js.map +0 -1
  326. package/build/cjs/serial-events.d.ts +0 -20
  327. package/build/cjs/serial-events.js +0 -69
  328. package/build/cjs/serial-events.js.map +0 -1
  329. package/build/cjs/uart-service.js.map +0 -1
  330. package/build/cjs/uart.d.ts +0 -4
  331. package/build/cjs/uart.js +0 -16
  332. package/build/cjs/uart.js.map +0 -1
  333. package/build/cjs/usb-device-wrapper.d.ts +0 -47
  334. package/build/cjs/usb-device-wrapper.js +0 -437
  335. package/build/cjs/usb-device-wrapper.js.map +0 -1
  336. package/build/cjs/usb-partial-flashing-utils.js.map +0 -1
  337. package/build/cjs/usb-partial-flashing.js.map +0 -1
  338. package/build/cjs/usb-radio-bridge.d.ts +0 -24
  339. package/build/cjs/usb-radio-bridge.js.map +0 -1
  340. package/build/cjs/usb-serial-protocol.js.map +0 -1
  341. package/build/cjs/usb.d.ts +0 -66
  342. package/build/cjs/usb.js.map +0 -1
  343. package/build/cjs/usb.test.js.map +0 -1
  344. package/build/esm/accelerometer-service.js.map +0 -1
  345. package/build/esm/accelerometer.d.ts +0 -9
  346. package/build/esm/accelerometer.js +0 -12
  347. package/build/esm/accelerometer.js.map +0 -1
  348. package/build/esm/bluetooth-device-wrapper.js.map +0 -1
  349. package/build/esm/bluetooth-profile.js.map +0 -1
  350. package/build/esm/bluetooth.js.map +0 -1
  351. package/build/esm/bluetooth.test.js.map +0 -1
  352. package/build/esm/board-serial-info.js.map +0 -1
  353. package/build/esm/board-serial-info.test.js.map +0 -1
  354. package/build/esm/button-service.js.map +0 -1
  355. package/build/esm/buttons.d.ts +0 -10
  356. package/build/esm/buttons.js +0 -18
  357. package/build/esm/buttons.js.map +0 -1
  358. package/build/esm/constants.d.ts +0 -48
  359. package/build/esm/constants.js +0 -70
  360. package/build/esm/constants.js.map +0 -1
  361. package/build/esm/device-bond-state.js.map +0 -1
  362. package/build/esm/device-information-service.js.map +0 -1
  363. package/build/esm/dfu-service.js.map +0 -1
  364. package/build/esm/flashing/flashing-full.js.map +0 -1
  365. package/build/esm/flashing/flashing-makecode.js.map +0 -1
  366. package/build/esm/flashing/flashing-makecode.test.js.map +0 -1
  367. package/build/esm/flashing/flashing-partial.js.map +0 -1
  368. package/build/esm/flashing/flashing-v1.js.map +0 -1
  369. package/build/esm/flashing/nordic-dfu.js.map +0 -1
  370. package/build/esm/flashing/zip.js.map +0 -1
  371. package/build/esm/flashing/zip.test.js.map +0 -1
  372. package/build/esm/hex-flash-data-source.js.map +0 -1
  373. package/build/esm/led-service.js.map +0 -1
  374. package/build/esm/led.d.ts +0 -6
  375. package/build/esm/led.js +0 -2
  376. package/build/esm/led.js.map +0 -1
  377. package/build/esm/magnetometer-service.js.map +0 -1
  378. package/build/esm/magnetometer.d.ts +0 -9
  379. package/build/esm/magnetometer.js +0 -12
  380. package/build/esm/magnetometer.js.map +0 -1
  381. package/build/esm/partial-flashing-service.js.map +0 -1
  382. package/build/esm/promise-queue.js.map +0 -1
  383. package/build/esm/promise-queue.test.js.map +0 -1
  384. package/build/esm/serial-events.d.ts +0 -20
  385. package/build/esm/serial-events.js +0 -61
  386. package/build/esm/serial-events.js.map +0 -1
  387. package/build/esm/uart-service.js.map +0 -1
  388. package/build/esm/uart.d.ts +0 -4
  389. package/build/esm/uart.js +0 -12
  390. package/build/esm/uart.js.map +0 -1
  391. package/build/esm/usb-device-wrapper.d.ts +0 -47
  392. package/build/esm/usb-device-wrapper.js +0 -410
  393. package/build/esm/usb-device-wrapper.js.map +0 -1
  394. package/build/esm/usb-partial-flashing-utils.js.map +0 -1
  395. package/build/esm/usb-partial-flashing.js.map +0 -1
  396. package/build/esm/usb-radio-bridge.d.ts +0 -24
  397. package/build/esm/usb-radio-bridge.js.map +0 -1
  398. package/build/esm/usb-serial-protocol.js.map +0 -1
  399. package/build/esm/usb.d.ts +0 -66
  400. package/build/esm/usb.js.map +0 -1
  401. package/build/esm/usb.test.js.map +0 -1
  402. /package/build/cjs/{bluetooth.test.d.ts → bluetooth/connection.test.d.ts} +0 -0
  403. /package/build/cjs/{device-bond-state.d.ts → bluetooth/device-bond-state.d.ts} +0 -0
  404. /package/build/cjs/{device-bond-state.js → bluetooth/device-bond-state.js} +0 -0
  405. /package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.js +0 -0
  406. /package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.test.d.ts +0 -0
  407. /package/build/cjs/{flashing → bluetooth/flashing}/flashing-v1.d.ts +0 -0
  408. /package/build/cjs/{flashing → bluetooth/flashing}/flashing-v1.js +0 -0
  409. /package/build/cjs/{flashing → bluetooth/flashing}/zip.d.ts +0 -0
  410. /package/build/cjs/{flashing → bluetooth/flashing}/zip.js +0 -0
  411. /package/build/cjs/{flashing → bluetooth/flashing}/zip.test.d.ts +0 -0
  412. /package/build/cjs/{flashing → bluetooth/flashing}/zip.test.js +0 -0
  413. /package/build/cjs/{bluetooth-profile.d.ts → bluetooth/profile.d.ts} +0 -0
  414. /package/build/cjs/{dfu-service.d.ts → bluetooth/services/dfu-service.d.ts} +0 -0
  415. /package/build/cjs/{usb-serial-protocol.d.ts → radio-bridge/serial-protocol.d.ts} +0 -0
  416. /package/build/cjs/{board-serial-info.test.d.ts → usb/arm-debug.test.d.ts} +0 -0
  417. /package/build/{esm → cjs/usb}/board-serial-info.test.d.ts +0 -0
  418. /package/build/cjs/{promise-queue.test.d.ts → usb/cmsis-dap.test.d.ts} +0 -0
  419. /package/build/cjs/{usb.test.d.ts → usb/connection.test.d.ts} +0 -0
  420. /package/build/{esm/bluetooth.test.d.ts → cjs/usb/cortex-m.test.d.ts} +0 -0
  421. /package/build/{esm/flashing/flashing-makecode.test.d.ts → cjs/usb/daplink.test.d.ts} +0 -0
  422. /package/build/cjs/{promise-queue.d.ts → usb/promise-queue.d.ts} +0 -0
  423. /package/build/cjs/{promise-queue.js → usb/promise-queue.js} +0 -0
  424. /package/build/{esm → cjs/usb}/promise-queue.test.d.ts +0 -0
  425. /package/build/cjs/{promise-queue.test.js → usb/promise-queue.test.js} +0 -0
  426. /package/build/esm/{flashing/zip.test.d.ts → bluetooth/connection.test.d.ts} +0 -0
  427. /package/build/esm/{device-bond-state.d.ts → bluetooth/device-bond-state.d.ts} +0 -0
  428. /package/build/esm/{device-bond-state.js → bluetooth/device-bond-state.js} +0 -0
  429. /package/build/esm/{flashing → bluetooth/flashing}/flashing-makecode.js +0 -0
  430. /package/build/esm/{usb.test.d.ts → bluetooth/flashing/flashing-makecode.test.d.ts} +0 -0
  431. /package/build/esm/{flashing → bluetooth/flashing}/flashing-v1.d.ts +0 -0
  432. /package/build/esm/{flashing → bluetooth/flashing}/flashing-v1.js +0 -0
  433. /package/build/esm/{flashing → bluetooth/flashing}/zip.d.ts +0 -0
  434. /package/build/esm/{flashing → bluetooth/flashing}/zip.js +0 -0
  435. /package/build/esm/{flashing → bluetooth/flashing}/zip.test.js +0 -0
  436. /package/build/esm/{bluetooth-profile.d.ts → bluetooth/profile.d.ts} +0 -0
  437. /package/build/esm/{dfu-service.d.ts → bluetooth/services/dfu-service.d.ts} +0 -0
  438. /package/build/esm/{usb-serial-protocol.d.ts → radio-bridge/serial-protocol.d.ts} +0 -0
  439. /package/build/esm/{promise-queue.d.ts → usb/promise-queue.d.ts} +0 -0
  440. /package/build/esm/{promise-queue.js → usb/promise-queue.js} +0 -0
  441. /package/build/esm/{promise-queue.test.js → usb/promise-queue.test.js} +0 -0
@@ -29,12 +29,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
29
29
  };
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  exports.createRadioBridgeConnection = void 0;
32
- const accelerometer_js_1 = require("./accelerometer.js");
33
- const buttons_js_1 = require("./buttons.js");
34
- const device_js_1 = require("./device.js");
35
- const events_js_1 = require("./events.js");
36
- const logging_js_1 = require("./logging.js");
37
- const protocol = __importStar(require("./usb-serial-protocol.js"));
32
+ const device_js_1 = require("../device.js");
33
+ const events_js_1 = require("../events.js");
34
+ const logging_js_1 = require("../logging.js");
35
+ const service_events_js_1 = require("../service-events.js");
36
+ const protocol = __importStar(require("./serial-protocol.js"));
38
37
  const connectTimeoutDuration = 10_000;
39
38
  class BridgeError extends Error {
40
39
  }
@@ -42,6 +41,8 @@ class RemoteError extends Error {
42
41
  }
43
42
  /**
44
43
  * A radio bridge connection factory.
44
+ *
45
+ * @experimental See {@link MicrobitRadioBridgeConnection} for limitations.
45
46
  */
46
47
  const createRadioBridgeConnection = (delegate, options) => new MicrobitRadioBridgeConnectionImpl(delegate, options);
47
48
  exports.createRadioBridgeConnection = createRadioBridgeConnection;
@@ -101,12 +102,12 @@ class MicrobitRadioBridgeConnectionImpl extends events_js_1.TypedEventTarget {
101
102
  writable: true,
102
103
  value: (e) => {
103
104
  const currentStatus = this.status;
104
- if (e.status !== device_js_1.ConnectionStatus.CONNECTED) {
105
+ if (e.status !== device_js_1.ConnectionStatus.Connected) {
105
106
  this.setStatus(e.status);
106
107
  // Don't dispose the serial session when PAUSED - USB is temporarily
107
108
  // unavailable due to tab visibility, but we'll reconnect when visible.
108
109
  // Attempting dispose would fail anyway since USB is disconnected.
109
- if (e.status === device_js_1.ConnectionStatus.PAUSED) {
110
+ if (e.status === device_js_1.ConnectionStatus.Paused) {
110
111
  // Clear timestamp so stale values don't trigger reconnection when resuming.
111
112
  this.serialSession?.clearLastReceivedTimestamp();
112
113
  }
@@ -116,11 +117,11 @@ class MicrobitRadioBridgeConnectionImpl extends events_js_1.TypedEventTarget {
116
117
  }
117
118
  }
118
119
  else {
119
- this.status = device_js_1.ConnectionStatus.DISCONNECTED;
120
+ this.status = device_js_1.ConnectionStatus.Disconnected;
120
121
  // Reconnect the serial session if we were previously paused.
121
122
  // PAUSED means the USB connection was temporarily suspended due to tab
122
123
  // visibility, and now the tab is visible again so we should reconnect.
123
- const shouldReconnect = currentStatus === device_js_1.ConnectionStatus.PAUSED;
124
+ const shouldReconnect = currentStatus === device_js_1.ConnectionStatus.Paused;
124
125
  if (shouldReconnect && this.serialSessionOpen) {
125
126
  this.serialSession?.connect();
126
127
  }
@@ -169,22 +170,22 @@ class MicrobitRadioBridgeConnectionImpl extends events_js_1.TypedEventTarget {
169
170
  });
170
171
  await this.delegate.connect();
171
172
  try {
172
- this.serialSession = new RadioBridgeSerialSession(this.logging, this.remoteDeviceId, this.delegate, this.dispatchTypedEvent.bind(this), {
173
+ this.serialSession = new RadioBridgeSerialSession(this.logging, this.remoteDeviceId, this.delegate, this.dispatchEvent.bind(this), {
173
174
  onConnecting: () => {
174
- this.setStatus(device_js_1.ConnectionStatus.CONNECTING);
175
+ this.setStatus(device_js_1.ConnectionStatus.Connecting);
175
176
  this.serialSessionOpen = true;
176
177
  },
177
178
  onFailPreDispose: () => {
178
179
  this.serialSessionOpen = false;
179
180
  },
180
181
  onFailPostDispose: () => {
181
- if (this.status !== device_js_1.ConnectionStatus.DISCONNECTED) {
182
- this.setStatus(device_js_1.ConnectionStatus.DISCONNECTED);
182
+ if (this.status !== device_js_1.ConnectionStatus.Disconnected) {
183
+ this.setStatus(device_js_1.ConnectionStatus.Disconnected);
183
184
  }
184
185
  },
185
186
  onSuccess: () => {
186
- if (this.status !== device_js_1.ConnectionStatus.CONNECTED) {
187
- this.setStatus(device_js_1.ConnectionStatus.CONNECTED);
187
+ if (this.status !== device_js_1.ConnectionStatus.Connected) {
188
+ this.setStatus(device_js_1.ConnectionStatus.Connected);
188
189
  }
189
190
  this.serialSessionOpen = true;
190
191
  },
@@ -222,11 +223,14 @@ class MicrobitRadioBridgeConnectionImpl extends events_js_1.TypedEventTarget {
222
223
  const previousStatus = this.status;
223
224
  this.status = newStatus;
224
225
  this.log("Radio connection status " + newStatus);
225
- this.dispatchTypedEvent("status", new device_js_1.ConnectionStatusEvent(newStatus, previousStatus));
226
+ this.dispatchEvent("status", {
227
+ status: newStatus,
228
+ previousStatus,
229
+ });
226
230
  }
227
231
  statusFromDelegate() {
228
- return this.delegate.status == device_js_1.ConnectionStatus.CONNECTED
229
- ? device_js_1.ConnectionStatus.DISCONNECTED
232
+ return this.delegate.status == device_js_1.ConnectionStatus.Connected
233
+ ? device_js_1.ConnectionStatus.Disconnected
230
234
  : this.delegate.status;
231
235
  }
232
236
  }
@@ -237,7 +241,12 @@ class RadioBridgeSerialSession {
237
241
  processButton(button, type, sensorData) {
238
242
  if (sensorData[button] !== this.previousButtonState[button]) {
239
243
  this.previousButtonState[button] = sensorData[button];
240
- this.dispatchTypedEvent(type, new buttons_js_1.ButtonEvent(type, sensorData[button] ? buttons_js_1.ButtonState.ShortPress : buttons_js_1.ButtonState.NotPressed));
244
+ this.dispatchTypedEvent(type, {
245
+ button: type === "buttonachanged" ? "A" : "B",
246
+ state: sensorData[button]
247
+ ? service_events_js_1.ButtonState.ShortPress
248
+ : service_events_js_1.ButtonState.NotPressed,
249
+ });
241
250
  }
242
251
  }
243
252
  constructor(logging, remoteDeviceId, delegate, dispatchTypedEvent, callbacks) {
@@ -324,11 +333,11 @@ class RadioBridgeSerialSession {
324
333
  const sensorData = protocol.processPeriodicMessage(msg);
325
334
  if (sensorData) {
326
335
  this.onPeriodicMessageReceived?.();
327
- this.dispatchTypedEvent("accelerometerdatachanged", new accelerometer_js_1.AccelerometerDataEvent({
336
+ this.dispatchTypedEvent("accelerometerdatachanged", {
328
337
  x: sensorData.accelerometerX,
329
338
  y: sensorData.accelerometerY,
330
339
  z: sensorData.accelerometerZ,
331
- }));
340
+ });
332
341
  this.processButton("buttonA", "buttonachanged", sensorData);
333
342
  this.processButton("buttonB", "buttonbchanged", sensorData);
334
343
  }
@@ -407,7 +416,12 @@ class RadioBridgeSerialSession {
407
416
  if (disconnect) {
408
417
  await this.delegate.disconnect();
409
418
  }
410
- await this.delegate.softwareReset();
419
+ try {
420
+ await this.delegate.softwareReset();
421
+ }
422
+ catch {
423
+ // May already be disconnected.
424
+ }
411
425
  }
412
426
  async sendCmdWaitResponse(cmd) {
413
427
  const responsePromise = new Promise((resolve, reject) => {
@@ -426,7 +440,7 @@ class RadioBridgeSerialSession {
426
440
  this.connectionCheckIntervalId = setInterval(async () => {
427
441
  // Don't check connection while USB is paused/disconnected.
428
442
  // The check will resume when USB reconnects.
429
- if (this.delegate.status !== device_js_1.ConnectionStatus.CONNECTED) {
443
+ if (this.delegate.status !== device_js_1.ConnectionStatus.Connected) {
430
444
  return;
431
445
  }
432
446
  if (this.lastReceivedMessageTimestamp &&
@@ -491,4 +505,4 @@ class RadioBridgeSerialSession {
491
505
  }
492
506
  }
493
507
  }
494
- //# sourceMappingURL=usb-radio-bridge.js.map
508
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/radio-bridge/connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @module @microbit/microbit-connection/radio-bridge
3
+ */
4
+ export { createRadioBridgeConnection, type MicrobitRadioBridgeConnection, type MicrobitRadioBridgeConnectionOptions, } from "./connection.js";
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRadioBridgeConnection = void 0;
4
+ /**
5
+ * @module @microbit/microbit-connection/radio-bridge
6
+ */
7
+ var connection_js_1 = require("./connection.js");
8
+ Object.defineProperty(exports, "createRadioBridgeConnection", { enumerable: true, get: function () { return connection_js_1.createRadioBridgeConnection; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/radio-bridge/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,iDAIyB;AAHvB,4HAAA,2BAA2B,OAAA"}
@@ -180,4 +180,4 @@ const generateRandomRadioFrequency = () => {
180
180
  return Math.floor(Math.random() * 84);
181
181
  };
182
182
  exports.generateRandomRadioFrequency = generateRandomRadioFrequency;
183
- //# sourceMappingURL=usb-serial-protocol.js.map
183
+ //# sourceMappingURL=serial-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serial-protocol.js","sourceRoot":"","sources":["../../../src/radio-bridge/serial-protocol.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,45 @@
1
- import { AccelerometerDataEvent } from "./accelerometer.js";
2
- import { ButtonEvent } from "./buttons.js";
3
1
  import { DeviceConnectionEventMap } from "./device.js";
4
- import { MagnetometerDataEvent } from "./magnetometer.js";
5
- import { UARTDataEvent } from "./uart.js";
6
- export declare class ServiceConnectionEventMap {
7
- "accelerometerdatachanged": AccelerometerDataEvent;
8
- "buttonachanged": ButtonEvent;
9
- "buttonbchanged": ButtonEvent;
10
- "magnetometerdatachanged": MagnetometerDataEvent;
11
- "uartdata": UARTDataEvent;
2
+ export interface AccelerometerData {
3
+ x: number;
4
+ y: number;
5
+ z: number;
12
6
  }
13
- export type CharacteristicDataTarget = EventTarget & {
14
- value: DataView;
7
+ export declare const ButtonState: {
8
+ readonly NotPressed: 0;
9
+ readonly ShortPress: 1;
10
+ readonly LongPress: 2;
15
11
  };
16
- export type TypedServiceEvent = keyof (ServiceConnectionEventMap & DeviceConnectionEventMap);
17
- export type TypedServiceEventDispatcher = (_type: TypedServiceEvent, event: (ServiceConnectionEventMap & DeviceConnectionEventMap)[TypedServiceEvent]) => boolean;
12
+ export type ButtonState = (typeof ButtonState)[keyof typeof ButtonState];
13
+ export type ButtonEventType = "buttonachanged" | "buttonbchanged";
14
+ export interface ButtonData {
15
+ button: "A" | "B";
16
+ state: ButtonState;
17
+ }
18
+ type FixedArray<T, L extends number> = T[] & {
19
+ length: L;
20
+ };
21
+ type LedRow = FixedArray<boolean, 5>;
22
+ export type LedMatrix = FixedArray<LedRow, 5>;
23
+ export interface MagnetometerData {
24
+ x: number;
25
+ y: number;
26
+ z: number;
27
+ }
28
+ export interface UartData {
29
+ value: Uint8Array;
30
+ }
31
+ /**
32
+ * Events from BLE GATT service notifications (accelerometer, buttons,
33
+ * magnetometer, UART). Used by Bluetooth and radio bridge connections.
34
+ */
35
+ export interface ServiceConnectionEventMap {
36
+ accelerometerdatachanged: AccelerometerData;
37
+ buttonachanged: ButtonData;
38
+ buttonbchanged: ButtonData;
39
+ magnetometerdatachanged: MagnetometerData;
40
+ uartdata: UartData;
41
+ }
42
+ type AllEventMap = ServiceConnectionEventMap & DeviceConnectionEventMap;
43
+ export type TypedServiceEvent = keyof AllEventMap;
44
+ export type TypedServiceEventDispatcher = <K extends TypedServiceEvent>(type: K, ...[data]: AllEventMap[K] extends void ? [] : [data: AllEventMap[K]]) => void;
45
+ export {};
@@ -1,39 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ServiceConnectionEventMap = void 0;
4
- class ServiceConnectionEventMap {
5
- constructor() {
6
- Object.defineProperty(this, "accelerometerdatachanged", {
7
- enumerable: true,
8
- configurable: true,
9
- writable: true,
10
- value: void 0
11
- });
12
- Object.defineProperty(this, "buttonachanged", {
13
- enumerable: true,
14
- configurable: true,
15
- writable: true,
16
- value: void 0
17
- });
18
- Object.defineProperty(this, "buttonbchanged", {
19
- enumerable: true,
20
- configurable: true,
21
- writable: true,
22
- value: void 0
23
- });
24
- Object.defineProperty(this, "magnetometerdatachanged", {
25
- enumerable: true,
26
- configurable: true,
27
- writable: true,
28
- value: void 0
29
- });
30
- Object.defineProperty(this, "uartdata", {
31
- enumerable: true,
32
- configurable: true,
33
- writable: true,
34
- value: void 0
35
- });
36
- }
37
- }
38
- exports.ServiceConnectionEventMap = ServiceConnectionEventMap;
3
+ exports.ButtonState = void 0;
4
+ exports.ButtonState = {
5
+ NotPressed: 0,
6
+ ShortPress: 1,
7
+ LongPress: 2,
8
+ };
39
9
  //# sourceMappingURL=service-events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-events.js","sourceRoot":"","sources":["../../src/service-events.ts"],"names":[],"mappings":";;;AAMA,MAAa,yBAAyB;IAAtC;QACE,4BAAA,0BAA0B;;;;;WAAyB;QACnD,4BAAA,gBAAgB;;;;;WAAc;QAC9B,4BAAA,gBAAgB;;;;;WAAc;QAC9B,4BAAA,yBAAyB;;;;;WAAwB;QACjD,4BAAA,UAAU;;;;;WAAgB;IAC5B,CAAC;CAAA;AAND,8DAMC"}
1
+ {"version":3,"file":"service-events.js","sourceRoot":"","sources":["../../src/service-events.ts"],"names":[],"mappings":";;;AAQa,QAAA,WAAW,GAAG;IACzB,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,SAAS,EAAE,CAAC;CACJ,CAAC"}
@@ -1,5 +1,4 @@
1
- import { FlashDataSource } from "./device.js";
2
- export declare const truncateHexAfterEof: (hex: string) => string;
1
+ import { FlashDataSource } from "../device.js";
3
2
  /**
4
3
  * A flash data source that converts universal hex files as needed.
5
4
  *
@@ -1,20 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createUniversalHexFlashDataSource = exports.truncateHexAfterEof = void 0;
4
- const board_id_js_1 = require("./board-id.js");
5
- const device_js_1 = require("./device.js");
3
+ exports.createUniversalHexFlashDataSource = void 0;
4
+ // This module is deliberately kept separate so that
5
+ // @microbit/microbit-universal-hex can be tree-shaken by bundlers
6
+ // when consumers don't use createUniversalHexFlashDataSource.
7
+ const board_id_js_1 = require("../board-id.js");
8
+ const device_js_1 = require("../device.js");
6
9
  const microbit_universal_hex_1 = require("@microbit/microbit-universal-hex");
7
- // MakeCode hex files may contain embedded source in custom record types
8
- // (type 0x0E) after the EOF record, and older files may have trailing blank
9
- // lines. The nrf-intel-hex parser rejects any data after EOF, so we truncate.
10
- const truncateHexAfterEof = (hex) => {
11
- // The EOF record is :00000001FF (case-insensitive per the Intel HEX spec).
12
- const eofIdx = hex.search(/:00000001FF/i);
13
- if (eofIdx < 0)
14
- return hex;
15
- return hex.slice(0, eofIdx + ":00000001FF".length) + "\n";
16
- };
17
- exports.truncateHexAfterEof = truncateHexAfterEof;
18
10
  /**
19
11
  * A flash data source that converts universal hex files as needed.
20
12
  *
@@ -34,4 +26,4 @@ const createUniversalHexFlashDataSource = (universalHex) => {
34
26
  };
35
27
  };
36
28
  exports.createUniversalHexFlashDataSource = createUniversalHexFlashDataSource;
37
- //# sourceMappingURL=hex-flash-data-source.js.map
29
+ //# sourceMappingURL=flash-data-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flash-data-source.js","sourceRoot":"","sources":["../../../src/universal-hex/flash-data-source.ts"],"names":[],"mappings":";;;AAAA,oDAAoD;AACpD,kEAAkE;AAClE,8DAA8D;AAC9D,gDAAyC;AACzC,4CAIsB;AACtB,6EAG0C;AAE1C;;;;GAIG;AACI,MAAM,iCAAiC,GAAG,CAC/C,YAAoB,EACH,EAAE;IACnB,OAAO,CAAC,YAA0B,EAAE,EAAE;QACpC,IAAI,IAAA,uCAAc,EAAC,YAAY,CAAC,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,IAAA,6CAAoB,EAAC,YAAY,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CACzB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,qBAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CACxD,CAAC;YACF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,0BAAc,CAAC,kBAAkB,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,iCAAiC,qCAgB5C"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @module @microbit/microbit-connection/universal-hex
3
+ */
4
+ export { createUniversalHexFlashDataSource } from "./flash-data-source.js";
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createUniversalHexFlashDataSource = void 0;
4
+ /**
5
+ * @module @microbit/microbit-connection/universal-hex
6
+ */
7
+ var flash_data_source_js_1 = require("./flash-data-source.js");
8
+ Object.defineProperty(exports, "createUniversalHexFlashDataSource", { enumerable: true, get: function () { return flash_data_source_js_1.createUniversalHexFlashDataSource; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/universal-hex/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,+DAA2E;AAAlE,yIAAA,iCAAiC,OAAA"}
@@ -0,0 +1,137 @@
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
+ * ARM Debug Interface (ADI) layer for SWD access to a Cortex-M target,
11
+ * derived from dapjs (https://github.com/ARMmbed/dapjs). This file and
12
+ * its siblings (transport.ts, cmsis-dap.ts, cortex-m.ts, daplink.ts)
13
+ * are a minimal reimplementation covering only the features needed for
14
+ * micro:bit.
15
+ *
16
+ * ArmDebugSwd manages the SWD connection lifecycle and provides
17
+ * register-level access to the Debug Port (DP) and Access Port (AP).
18
+ * It sits between CmsisDapUsb (command framing) and higher-level consumers
19
+ * like CortexM (processor control) and DAPLink (flash/serial).
20
+ *
21
+ * Key responsibilities:
22
+ * - SWD initialisation sequence (JTAG-to-SWD switch, power-up, ID read)
23
+ * - Automatic drain-and-retry on stale USB responses after page reload
24
+ * - DP_SELECT and AP_CSW register caching to reduce redundant writes
25
+ * - Memory read/write via AP_TAR + AP_DRW, handling page boundaries
26
+ * and block-transfer size limits
27
+ *
28
+ * Protocol references:
29
+ * - ARM ADI: https://developer.arm.com/documentation/ihi0031/a/
30
+ * - DAPLink: https://github.com/ARMmbed/DAPLink
31
+ *
32
+ * The dapjs license is included below:
33
+ *
34
+ * DAPjs
35
+ * Copyright (c) Arm Limited 2018
36
+ * Copyright (c) Microsoft Corporation
37
+ *
38
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
39
+ * of this software and associated documentation files (the "Software"), to deal
40
+ * in the Software without restriction, including without limitation the rights
41
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
42
+ * copies of the Software, and to permit persons to whom the Software is
43
+ * furnished to do so, subject to the following conditions:
44
+ *
45
+ * The above copyright notice and this permission notice shall be included in
46
+ * all copies or substantial portions of the Software.
47
+ *
48
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
49
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
50
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
51
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
52
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
53
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
54
+ * IN THE SOFTWARE.
55
+ */
56
+ import { Logging } from "../logging.js";
57
+ import { type CmsisDap, DapOperation } from "./cmsis-dap.js";
58
+ export declare function waitFor(fn: () => Promise<boolean>, timeout?: number): Promise<void>;
59
+ export interface ArmDebug {
60
+ readonly dap: CmsisDap;
61
+ readonly isOpen: boolean;
62
+ /** Read a 32-bit word from a memory-mapped address. */
63
+ readMem32(address: number): Promise<number>;
64
+ /** Write a 32-bit word to a memory-mapped address. */
65
+ writeMem32(address: number, value: number): Promise<void>;
66
+ /** Build DAP operations for reading a 32-bit word (for use with transferSequence). */
67
+ readMem32Ops(address: number): DapOperation[];
68
+ /** Build DAP operations for writing a 32-bit word (for use with transferSequence). */
69
+ writeMem32Ops(address: number, value: number): DapOperation[];
70
+ /**
71
+ * Read a block of 32-bit words from memory.
72
+ * Handles TAR auto-increment page boundaries and block size limits.
73
+ */
74
+ readBlock(address: number, count: number): Promise<Uint32Array>;
75
+ /**
76
+ * Write a block of 32-bit words to memory.
77
+ * Handles TAR auto-increment page boundaries and block size limits.
78
+ */
79
+ writeBlock(address: number, values: Uint32Array): Promise<void>;
80
+ /**
81
+ * Execute a sequence of operation groups as individual transfers.
82
+ * Each group is sent as a separate DAP_TRANSFER to guarantee that
83
+ * all operations within a group execute atomically on the wire.
84
+ */
85
+ transferSequence(groups: DapOperation[][]): Promise<Uint32Array>;
86
+ /**
87
+ * Reset cached protocol state without closing the transport.
88
+ * Call after operations that reset the target (e.g. DAPLink flash reset).
89
+ */
90
+ resetState(): void;
91
+ /**
92
+ * Connect to the target with automatic drain-and-retry on stale responses.
93
+ */
94
+ connect(maxRetries?: number): Promise<void>;
95
+ disconnect(): Promise<void>;
96
+ /**
97
+ * Reset cached state and reconnect without closing the transport.
98
+ * Use after operations like DAPLink flash that leave the protocol state
99
+ * stale but don't require full re-enumeration.
100
+ */
101
+ reinit(): Promise<void>;
102
+ }
103
+ export declare class ArmDebugSwd implements ArmDebug {
104
+ readonly dap: CmsisDap;
105
+ private logging;
106
+ private swdConnected;
107
+ private selectedAddress?;
108
+ private cswValue?;
109
+ constructor(dap: CmsisDap, logging: Logging);
110
+ get isOpen(): boolean;
111
+ /**
112
+ * Initialize SWD: connect to the target, set up the debug port,
113
+ * and power up the debug and system domains.
114
+ */
115
+ private connectOnce;
116
+ connect(maxRetries?: number): Promise<void>;
117
+ resetState(): void;
118
+ disconnect(): Promise<void>;
119
+ reinit(): Promise<void>;
120
+ private readDPOps;
121
+ private writeDPOps;
122
+ private readAPOps;
123
+ private writeAPOps;
124
+ readMem32Ops(address: number): DapOperation[];
125
+ writeMem32Ops(address: number, value: number): DapOperation[];
126
+ /**
127
+ * Execute a batch of DAP transfer operations, deduplicating writes
128
+ * to DP_SELECT and AP_CSW that match cached state.
129
+ */
130
+ private transfer;
131
+ transferSequence(groups: DapOperation[][]): Promise<Uint32Array>;
132
+ private readDP;
133
+ readMem32(address: number): Promise<number>;
134
+ writeMem32(address: number, value: number): Promise<void>;
135
+ readBlock(address: number, count: number): Promise<Uint32Array>;
136
+ writeBlock(address: number, values: Uint32Array): Promise<void>;
137
+ }