@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
@@ -1,110 +1,10 @@
1
- /**
2
- * Copyright (c) 2022 Jonas "DerZade" Schade
3
- *
4
- * SPDX-License-Identifier: MIT
5
- *
6
- * https://github.com/DerZade/typescript-event-target/blob/master/src/TypedEventTarget.ts
7
- */
8
- /**
9
- * A function that can be passed to the `listener` parameter of {@link TypedEventTarget.addEventListener} and {@link TypedEventTarget.removeEventListener}.
10
- *
11
- * @template M A map of event types to their respective event classes.
12
- * @template T The type of event to listen for (has to be keyof `M`).
13
- */
14
- export type TypedEventListener<M, T extends keyof M> = (evt: M[T]) => void | Promise<void>;
15
- /**
16
- * An object that can be passed to the `listener` parameter of {@link TypedEventTarget.addEventListener} and {@link TypedEventTarget.removeEventListener}.
17
- *
18
- * @template M A map of event types to their respective event classes.
19
- * @template T The type of event to listen for (has to be keyof `M`).
20
- */
21
- export interface TypedEventListenerObject<M, T extends keyof M> {
22
- handleEvent: (evt: M[T]) => void | Promise<void>;
23
- }
24
- /**
25
- * Type of parameter `listener` in {@link TypedEventTarget.addEventListener} and {@link TypedEventTarget.removeEventListener}.
26
- *
27
- * The object that receives a notification (an object that implements the Event interface) when an event of the specified type occurs.
28
- *
29
- * Can be either an object with a handleEvent() method, or a JavaScript function.
30
- *
31
- * @template M A map of event types to their respective event classes.
32
- * @template T The type of event to listen for (has to be keyof `M`).
33
- */
34
- export type TypedEventListenerOrEventListenerObject<M, T extends keyof M> = TypedEventListener<M, T> | TypedEventListenerObject<M, T>;
35
- export type ValueIsEvent<T> = {
36
- [key in keyof T]: Event;
37
- };
38
- /**
39
- * Typescript friendly version of {@link EventTarget}
40
- *
41
- * @template M A map of event types to their respective event classes.
42
- *
43
- * @example
44
- * ```typescript
45
- * interface MyEventMap {
46
- * hello: Event;
47
- * time: CustomEvent<number>;
48
- * }
49
- *
50
- * const eventTarget = new TypedEventTarget<MyEventMap>();
51
- *
52
- * eventTarget.addEventListener('time', (event) => {
53
- * // event is of type CustomEvent<number>
54
- * });
55
- * ```
56
- */
57
- export interface TypedEventTarget<M extends ValueIsEvent<M>> {
58
- /** Appends an event listener for events whose type attribute value is type.
59
- * The callback argument sets the callback that will be invoked when the event
60
- * is dispatched.
61
- *
62
- * The options argument sets listener-specific options. For compatibility this
63
- * can be a boolean, in which case the method behaves exactly as if the value
64
- * was specified as options's capture.
65
- *
66
- * When set to true, options's capture prevents callback from being invoked
67
- * when the event's eventPhase attribute value is BUBBLING_PHASE. When false
68
- * (or not present), callback will not be invoked when event's eventPhase
69
- * attribute value is CAPTURING_PHASE. Either way, callback will be invoked if
70
- * event's eventPhase attribute value is AT_TARGET.
71
- *
72
- * When set to true, options's passive indicates that the callback will not
73
- * cancel the event by invoking preventDefault(). This is used to enable
74
- * performance optimizations described in § 2.8 Observing event listeners.
75
- *
76
- * When set to true, options's once indicates that the callback will only be
77
- * invoked once after which the event listener will be removed.
78
- *
79
- * The event listener is appended to target's event listener list and is not
80
- * appended if it has the same type, callback, and capture. */
81
- addEventListener: <T extends keyof M & string>(type: T, listener: TypedEventListenerOrEventListenerObject<M, T> | null, options?: boolean | AddEventListenerOptions) => void;
82
- /** Removes the event listener in target's event listener list with the same
83
- * type, callback, and options. */
84
- removeEventListener: <T extends keyof M & string>(type: T, callback: TypedEventListenerOrEventListenerObject<M, T> | null, options?: EventListenerOptions | boolean) => void;
85
- /**
86
- * Dispatches a synthetic event event to target and returns true if either
87
- * event's cancelable attribute value is false or its preventDefault() method
88
- * was not invoked, and false otherwise.
89
- * @deprecated To ensure type safety use `dispatchTypedEvent` instead.
90
- */
91
- dispatchEvent: (event: Event) => boolean;
92
- }
93
- export declare class TrackingEventTarget extends EventTarget {
94
- private activeEventTracking;
95
- addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean): void;
96
- removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;
97
- dispatchEvent(event: Event): boolean;
98
- private filterRegistrations;
99
- protected eventActivated(type: string): void;
100
- protected eventDeactivated(type: string): void;
1
+ export type Listener<T> = (data: T) => void;
2
+ export declare class TypedEventTarget<M> {
3
+ private listeners;
4
+ addEventListener<K extends keyof M & string>(type: K, listener: Listener<M[K]>): void;
5
+ removeEventListener<K extends keyof M & string>(type: K, listener: Listener<M[K]>): void;
6
+ protected dispatchEvent<K extends keyof M & string>(type: K, ...[data]: M[K] extends void ? [] : [data: M[K]]): void;
7
+ protected eventActivated(_type: string): void;
8
+ protected eventDeactivated(_type: string): void;
101
9
  protected getActiveEvents(): string[];
102
10
  }
103
- export declare class TypedEventTarget<M extends ValueIsEvent<M>> extends TrackingEventTarget {
104
- /**
105
- * Dispatches a synthetic event event to target and returns true if either
106
- * event's cancelable attribute value is false or its preventDefault() method
107
- * was not invoked, and false otherwise.
108
- */
109
- dispatchTypedEvent<T extends keyof M>(_type: T, event: M[T]): boolean;
110
- }
@@ -1,109 +1,48 @@
1
1
  "use strict";
2
- /**
3
- * Copyright (c) 2022 Jonas "DerZade" Schade
4
- *
5
- * SPDX-License-Identifier: MIT
6
- *
7
- * https://github.com/DerZade/typescript-event-target/blob/master/src/TypedEventTarget.ts
8
- */
9
2
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.TypedEventTarget = exports.TrackingEventTarget = void 0;
11
- // We've added this in to keep track of what events are active.
12
- // Having done this it's questionable whether it's worth the reimplementation
13
- // just to use an EventTarget API.
14
- class TrackingEventTarget extends EventTarget {
3
+ exports.TypedEventTarget = void 0;
4
+ class TypedEventTarget {
15
5
  constructor() {
16
- super(...arguments);
17
- Object.defineProperty(this, "activeEventTracking", {
6
+ Object.defineProperty(this, "listeners", {
18
7
  enumerable: true,
19
8
  configurable: true,
20
9
  writable: true,
21
10
  value: new Map()
22
11
  });
23
12
  }
24
- addEventListener(type, callback, options) {
25
- if (callback !== null) {
26
- const registrations = this.activeEventTracking.get(type) ?? [];
27
- const wasEmpty = registrations.length === 0;
28
- const registration = new Registration(callback, options ?? false);
29
- if (!registrations.find((r) => r.eq(registration))) {
30
- registrations.push(registration);
31
- this.activeEventTracking.set(type, registrations);
32
- if (wasEmpty) {
33
- this.eventActivated(type);
34
- }
35
- }
13
+ addEventListener(type, listener) {
14
+ let set = this.listeners.get(type);
15
+ const wasEmpty = !set || set.size === 0;
16
+ if (!set) {
17
+ set = new Set();
18
+ this.listeners.set(type, set);
36
19
  }
37
- super.addEventListener(type, callback, options);
38
- }
39
- removeEventListener(type, callback, options) {
40
- if (callback !== null) {
41
- const registration = new Registration(callback, options ?? false);
42
- this.filterRegistrations(type, (r) => !r.eq(registration));
20
+ if (!set.has(listener)) {
21
+ set.add(listener);
22
+ if (wasEmpty)
23
+ this.eventActivated(type);
43
24
  }
44
- super.removeEventListener(type, callback, options);
45
- }
46
- dispatchEvent(event) {
47
- const result = super.dispatchEvent(event);
48
- this.filterRegistrations(event.type, (r) => !r.isOnce());
49
- return result;
50
25
  }
51
- filterRegistrations(type, predicate) {
52
- let registrations = this.activeEventTracking.get(type) ?? [];
53
- registrations = registrations.filter(predicate);
54
- if (registrations.length === 0) {
55
- this.activeEventTracking.delete(type);
26
+ removeEventListener(type, listener) {
27
+ const set = this.listeners.get(type);
28
+ if (set?.delete(listener) && set.size === 0) {
29
+ this.listeners.delete(type);
56
30
  this.eventDeactivated(type);
57
31
  }
58
- else {
59
- this.activeEventTracking.set(type, registrations);
32
+ }
33
+ dispatchEvent(type, ...[data]) {
34
+ const set = this.listeners.get(type);
35
+ if (set) {
36
+ for (const listener of set) {
37
+ listener(data);
38
+ }
60
39
  }
61
40
  }
62
- eventActivated(type) { }
63
- eventDeactivated(type) { }
41
+ eventActivated(_type) { }
42
+ eventDeactivated(_type) { }
64
43
  getActiveEvents() {
65
- return [...this.activeEventTracking.keys()];
66
- }
67
- }
68
- exports.TrackingEventTarget = TrackingEventTarget;
69
- // eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
70
- class TypedEventTarget extends TrackingEventTarget {
71
- /**
72
- * Dispatches a synthetic event event to target and returns true if either
73
- * event's cancelable attribute value is false or its preventDefault() method
74
- * was not invoked, and false otherwise.
75
- */
76
- dispatchTypedEvent(_type, event) {
77
- return super.dispatchEvent(event);
44
+ return [...this.listeners.keys()];
78
45
  }
79
46
  }
80
47
  exports.TypedEventTarget = TypedEventTarget;
81
- class Registration {
82
- constructor(callback, options) {
83
- Object.defineProperty(this, "callback", {
84
- enumerable: true,
85
- configurable: true,
86
- writable: true,
87
- value: callback
88
- });
89
- Object.defineProperty(this, "options", {
90
- enumerable: true,
91
- configurable: true,
92
- writable: true,
93
- value: options
94
- });
95
- }
96
- isOnce() {
97
- return typeof this.options === "object" && this.options.once === true;
98
- }
99
- eq(other) {
100
- return (other.callback === this.callback &&
101
- eqUseCapture(this.options, other.options));
102
- }
103
- }
104
- const eqUseCapture = (left, right) => {
105
- const leftValue = typeof left === "boolean" ? left : left.capture ?? false;
106
- const rightValue = typeof right === "boolean" ? right : right.capture ?? false;
107
- return leftValue === rightValue;
108
- };
109
48
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":";;;AAEA,MAAa,gBAAgB;IAA7B;QACU;;;;mBAAY,IAAI,GAAG,EAA8B;WAAC;IA8C5D,CAAC;IA5CC,gBAAgB,CACd,IAAO,EACP,QAAwB;QAExB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClB,IAAI,QAAQ;gBAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,mBAAmB,CACjB,IAAO,EACP,QAAwB;QAExB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAES,aAAa,CACrB,IAAO,EACP,GAAG,CAAC,IAAI,CAAwC;QAEhD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,GAAG,EAAE,CAAC;YACR,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE,CAAC;gBAC3B,QAAQ,CAAC,IAAY,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAES,cAAc,CAAC,KAAa,IAAS,CAAC;IACtC,gBAAgB,CAAC,KAAa,IAAS,CAAC;IACxC,eAAe;QACvB,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAa,CAAC;IAChD,CAAC;CACF;AA/CD,4CA+CC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const vitest_1 = require("vitest");
4
4
  const events_js_1 = require("./events.js");
5
- class TestTrackingEventTarget extends events_js_1.TrackingEventTarget {
5
+ class TestTypedEventTarget extends events_js_1.TypedEventTarget {
6
6
  constructor(activate, deactivate) {
7
7
  super();
8
8
  Object.defineProperty(this, "activate", {
@@ -21,6 +21,9 @@ class TestTrackingEventTarget extends events_js_1.TrackingEventTarget {
21
21
  getActiveEvents() {
22
22
  return super.getActiveEvents();
23
23
  }
24
+ dispatchEvent(type, ...[data]) {
25
+ super.dispatchEvent(type, ...[data]);
26
+ }
24
27
  eventActivated(type) {
25
28
  this.activate(type);
26
29
  }
@@ -28,12 +31,12 @@ class TestTrackingEventTarget extends events_js_1.TrackingEventTarget {
28
31
  this.deactivate(type);
29
32
  }
30
33
  }
31
- (0, vitest_1.describe)("TrackingEventTarget", () => {
32
- const listener = () => { };
34
+ (0, vitest_1.describe)("TypedEventTarget", () => {
35
+ const listener = (_data) => { };
33
36
  (0, vitest_1.it)("add remove", () => {
34
37
  const activate = vitest_1.vi.fn();
35
38
  const deactivate = vitest_1.vi.fn();
36
- const target = new TestTrackingEventTarget(activate, deactivate);
39
+ const target = new TestTypedEventTarget(activate, deactivate);
37
40
  (0, vitest_1.expect)(target.getActiveEvents()).toEqual([]);
38
41
  target.addEventListener("foo", listener);
39
42
  (0, vitest_1.expect)(activate).toBeCalledTimes(1);
@@ -44,66 +47,69 @@ class TestTrackingEventTarget extends events_js_1.TrackingEventTarget {
44
47
  (0, vitest_1.expect)(deactivate).toBeCalledTimes(1);
45
48
  (0, vitest_1.expect)(target.getActiveEvents()).toEqual([]);
46
49
  });
47
- (0, vitest_1.it)("callback equality", () => {
48
- const listenerAlt = () => { };
50
+ (0, vitest_1.it)("identity-based dedup", () => {
51
+ const listenerAlt = (_data) => { };
49
52
  const activate = vitest_1.vi.fn();
50
53
  const deactivate = vitest_1.vi.fn();
51
- const target = new TestTrackingEventTarget(activate, deactivate);
52
- (0, vitest_1.expect)(target.getActiveEvents()).toEqual([]);
54
+ const target = new TestTypedEventTarget(activate, deactivate);
53
55
  target.addEventListener("foo", listenerAlt);
54
56
  target.addEventListener("foo", listener);
55
- target.addEventListener("foo", listener);
57
+ target.addEventListener("foo", listener); // duplicate, ignored
58
+ (0, vitest_1.expect)(activate).toBeCalledTimes(1); // only called once for "foo"
56
59
  target.removeEventListener("foo", listener);
57
60
  (0, vitest_1.expect)(target.getActiveEvents()).toEqual(["foo"]);
58
61
  target.removeEventListener("foo", listenerAlt);
59
62
  (0, vitest_1.expect)(target.getActiveEvents()).toEqual([]);
60
63
  });
61
- (0, vitest_1.it)("option equality - capture", () => {
62
- const fooListener = vitest_1.vi.fn();
64
+ (0, vitest_1.it)("remove during dispatch", () => {
63
65
  const activate = vitest_1.vi.fn();
64
66
  const deactivate = vitest_1.vi.fn();
65
- const target = new TestTrackingEventTarget(activate, deactivate);
66
- (0, vitest_1.expect)(target.getActiveEvents()).toEqual([]);
67
- target.addEventListener("foo", fooListener, { capture: true });
68
- target.addEventListener("foo", fooListener, false);
69
- target.removeEventListener("foo", fooListener, true);
67
+ const target = new TestTypedEventTarget(activate, deactivate);
68
+ const calls = [];
69
+ const selfRemovingListener = (_data) => {
70
+ calls.push(1);
71
+ target.removeEventListener("foo", selfRemovingListener);
72
+ };
73
+ const secondListener = (_data) => {
74
+ calls.push(2);
75
+ };
76
+ target.addEventListener("foo", selfRemovingListener);
77
+ target.addEventListener("foo", secondListener);
78
+ target.dispatchEvent("foo", { value: 42 });
79
+ // Both should have been called (Set iteration guarantees this)
80
+ (0, vitest_1.expect)(calls).toEqual([1, 2]);
81
+ // selfRemovingListener should be removed now
70
82
  (0, vitest_1.expect)(target.getActiveEvents()).toEqual(["foo"]);
71
- target.dispatchEvent(new Event("foo"));
72
- (0, vitest_1.expect)(fooListener).toBeCalledTimes(1);
73
83
  });
74
- (0, vitest_1.it)("option equality", () => {
75
- const fooListener = vitest_1.vi.fn();
76
- const activate = vitest_1.vi.fn();
77
- const deactivate = vitest_1.vi.fn();
78
- const target = new TestTrackingEventTarget(activate, deactivate);
79
- // Despite MDN docs claiming all options can result in another listener added
80
- // it seems only capture counts for both add and remove
81
- target.addEventListener("foo", fooListener, { passive: true });
82
- target.addEventListener("foo", fooListener, { once: true });
83
- target.addEventListener("foo", fooListener, { capture: true });
84
- target.addEventListener("foo", fooListener, { capture: false });
85
- target.dispatchEvent(new Event("foo"));
86
- (0, vitest_1.expect)(fooListener).toBeCalledTimes(2);
87
- target.removeEventListener("foo", fooListener, true);
88
- (0, vitest_1.expect)(target.getActiveEvents()).toEqual(["foo"]);
89
- target.dispatchEvent(new Event("foo"));
90
- (0, vitest_1.expect)(fooListener).toBeCalledTimes(3);
91
- target.removeEventListener("foo", fooListener, false);
92
- (0, vitest_1.expect)(target.getActiveEvents()).toEqual([]);
93
- target.dispatchEvent(new Event("foo"));
94
- (0, vitest_1.expect)(fooListener).toBeCalledTimes(3);
84
+ (0, vitest_1.it)("getActiveEvents", () => {
85
+ const target = new TestTypedEventTarget(vitest_1.vi.fn(), vitest_1.vi.fn());
86
+ const fooListener = () => { };
87
+ const barListener = () => { };
88
+ target.addEventListener("foo", fooListener);
89
+ target.addEventListener("bar", barListener);
90
+ (0, vitest_1.expect)(target.getActiveEvents().sort()).toEqual(["bar", "foo"]);
91
+ target.removeEventListener("foo", fooListener);
92
+ (0, vitest_1.expect)(target.getActiveEvents()).toEqual(["bar"]);
95
93
  });
96
- (0, vitest_1.it)("once", () => {
94
+ (0, vitest_1.it)("void events dispatch without argument", () => {
95
+ const target = new TestTypedEventTarget(vitest_1.vi.fn(), vitest_1.vi.fn());
96
+ const barListener = vitest_1.vi.fn();
97
+ target.addEventListener("bar", barListener);
98
+ target.dispatchEvent("bar");
99
+ (0, vitest_1.expect)(barListener).toBeCalledTimes(1);
100
+ });
101
+ (0, vitest_1.it)("dispatches correct data to listeners", () => {
102
+ const target = new TestTypedEventTarget(vitest_1.vi.fn(), vitest_1.vi.fn());
97
103
  const fooListener = vitest_1.vi.fn();
98
- const activate = vitest_1.vi.fn();
104
+ target.addEventListener("foo", fooListener);
105
+ target.dispatchEvent("foo", { value: 99 });
106
+ (0, vitest_1.expect)(fooListener).toBeCalledWith({ value: 99 });
107
+ });
108
+ (0, vitest_1.it)("removing non-existent listener is a no-op", () => {
99
109
  const deactivate = vitest_1.vi.fn();
100
- const target = new TestTrackingEventTarget(activate, deactivate);
101
- target.addEventListener("foo", fooListener, { once: true });
102
- target.dispatchEvent(new Event("foo"));
103
- (0, vitest_1.expect)(fooListener).toBeCalledTimes(1);
104
- (0, vitest_1.expect)(deactivate).toBeCalledTimes(1);
105
- target.dispatchEvent(new Event("foo"));
106
- (0, vitest_1.expect)(fooListener).toBeCalledTimes(1);
110
+ const target = new TestTypedEventTarget(vitest_1.vi.fn(), deactivate);
111
+ target.removeEventListener("foo", listener);
112
+ (0, vitest_1.expect)(deactivate).not.toBeCalled();
107
113
  });
108
114
  });
109
115
  //# sourceMappingURL=events.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.test.js","sourceRoot":"","sources":["../../src/events.test.ts"],"names":[],"mappings":";;AAAA,mCAAkD;AAClD,2CAAkD;AAElD,MAAM,uBAAwB,SAAQ,+BAAmB;IACvD,YACU,QAAgC,EAChC,UAAkC;QAE1C,KAAK,EAAE,CAAC;QAHR;;;;mBAAQ,QAAQ;WAAwB;QACxC;;;;mBAAQ,UAAU;WAAwB;IAG5C,CAAC;IACM,eAAe;QACpB,OAAO,KAAK,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC;IACS,cAAc,CAAC,IAAY;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IACS,gBAAgB,CAAC,IAAY;QACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;CACF;AAED,IAAA,iBAAQ,EAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IAE1B,IAAA,WAAE,EAAC,YAAY,EAAE,GAAG,EAAE;QACpB,MAAM,QAAQ,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACjE,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE7C,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzC,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACpC,IAAA,eAAM,EAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACtC,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAElD,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACpC,IAAA,eAAM,EAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACtC,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,WAAW,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAE7B,MAAM,QAAQ,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACjE,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE7C,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC5C,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzC,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/C,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,WAAW,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACjE,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE7C,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACrD,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,IAAA,eAAM,EAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,MAAM,WAAW,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEjE,6EAA6E;QAC7E,uDAAuD;QACvD,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,IAAA,eAAM,EAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAEvC,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACrD,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,IAAA,eAAM,EAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAEvC,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QACtD,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,IAAA,eAAM,EAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,MAAM,EAAE,GAAG,EAAE;QACd,MAAM,WAAW,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,uBAAuB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEjE,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,IAAA,eAAM,EAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACvC,IAAA,eAAM,EAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAEtC,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,IAAA,eAAM,EAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"events.test.js","sourceRoot":"","sources":["../../src/events.test.ts"],"names":[],"mappings":";;AAAA,mCAAkD;AAClD,2CAA+C;AAO/C,MAAM,oBAAqB,SAAQ,4BAA8B;IAC/D,YACU,QAAgC,EAChC,UAAkC;QAE1C,KAAK,EAAE,CAAC;QAHR;;;;mBAAQ,QAAQ;WAAwB;QACxC;;;;mBAAQ,UAAU;WAAwB;IAG5C,CAAC;IACM,eAAe;QACpB,OAAO,KAAK,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC;IACM,aAAa,CAClB,IAAO,EACP,GAAG,CAAC,IAAI,CAA8D;QAEtE,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,GAAI,CAAC,IAAI,CAAS,CAAC,CAAC;IAChD,CAAC;IACS,cAAc,CAAC,IAAY;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IACS,gBAAgB,CAAC,IAAY;QACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;CACF;AAED,IAAA,iBAAQ,EAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,MAAM,QAAQ,GAAG,CAAC,KAAwB,EAAE,EAAE,GAAE,CAAC,CAAC;IAElD,IAAA,WAAE,EAAC,YAAY,EAAE,GAAG,EAAE;QACpB,MAAM,QAAQ,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC9D,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE7C,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzC,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACpC,IAAA,eAAM,EAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACtC,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAElD,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACpC,IAAA,eAAM,EAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACtC,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,WAAW,GAAG,CAAC,KAAwB,EAAE,EAAE,GAAE,CAAC,CAAC;QAErD,MAAM,QAAQ,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAE9D,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC5C,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB;QAC/D,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B;QAElE,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/C,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,QAAQ,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,MAAM,oBAAoB,GAAG,CAAC,KAAwB,EAAE,EAAE;YACxD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;QAC1D,CAAC,CAAC;QACF,MAAM,cAAc,GAAG,CAAC,KAAwB,EAAE,EAAE;YAClD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;QACrD,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC/C,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAE3C,+DAA+D;QAC/D,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9B,6CAA6C;QAC7C,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,WAAE,CAAC,EAAE,EAAE,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAC7B,MAAM,WAAW,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAE7B,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC5C,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC5C,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAEhE,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/C,IAAA,eAAM,EAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,WAAE,CAAC,EAAE,EAAE,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAE5B,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC5C,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAA,eAAM,EAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,WAAE,CAAC,EAAE,EAAE,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAE5B,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC5C,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAA,eAAM,EAAC,WAAW,CAAC,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,UAAU,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,WAAE,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;QAC7D,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAA,eAAM,EAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const truncateHexAfterEof: (hex: string) => string;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.truncateHexAfterEof = void 0;
4
+ // MakeCode hex files may contain embedded source in custom record types
5
+ // (type 0x0E) after the EOF record, and older files may have trailing blank
6
+ // lines. The nrf-intel-hex parser rejects any data after EOF, so we truncate.
7
+ const truncateHexAfterEof = (hex) => {
8
+ // The EOF record is :00000001FF (case-insensitive per the Intel HEX spec).
9
+ const eofIdx = hex.search(/:00000001FF/i);
10
+ if (eofIdx < 0)
11
+ return hex;
12
+ return hex.slice(0, eofIdx + ":00000001FF".length) + "\n";
13
+ };
14
+ exports.truncateHexAfterEof = truncateHexAfterEof;
15
+ //# sourceMappingURL=hex-util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hex-util.js","sourceRoot":"","sources":["../../src/hex-util.ts"],"names":[],"mappings":";;;AAAA,wEAAwE;AACxE,4EAA4E;AAC5E,8EAA8E;AACvE,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAU,EAAE;IACzD,2EAA2E;IAC3E,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC1C,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAC3B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAC5D,CAAC,CAAC;AALW,QAAA,mBAAmB,uBAK9B"}
@@ -1,18 +1,8 @@
1
- import { AccelerometerData, AccelerometerDataEvent } from "./accelerometer.js";
2
- import { createWebBluetoothConnection, MicrobitWebBluetoothConnection, MicrobitWebBluetoothConnectionOptions } from "./bluetooth.js";
3
- import { BoardId } from "./board-id.js";
4
- import { ButtonEvent, ButtonEventType, ButtonState } from "./buttons.js";
5
- import { DeviceBondState } from "./device-bond-state.js";
6
- import { AfterRequestDevice, BackgroundErrorEvent, BeforeRequestDevice, BoardVersion, ConnectOptions, ConnectionAvailabilityStatus, ConnectionStatus, ConnectionStatusEvent, DeviceConnection, DeviceConnectionEventMap, DeviceError, DeviceErrorCode, FlashDataError, FlashDataSource, FlashOptions, ProgressCallback, ProgressStage } from "./device.js";
7
- import { TypedEventTarget } from "./events.js";
8
- import { createUniversalHexFlashDataSource } from "./hex-flash-data-source.js";
9
- import { LedMatrix } from "./led.js";
1
+ /**
2
+ * @module @microbit/microbit-connection
3
+ */
4
+ import { BackgroundErrorData, BoardVersion, ConnectOptions, ConnectionAvailabilityStatus, ConnectionStatus, ConnectionStatusChange, DeviceConnection, DeviceError, DeviceErrorCode, FlashDataError, FlashDataSource, FlashOptions, ProgressCallback, ProgressStage, assertConnected } from "./device.js";
10
5
  import { Logging, LoggingEvent } from "./logging.js";
11
- import { MagnetometerData, MagnetometerDataEvent } from "./magnetometer.js";
12
- import { FlashEvent, SerialConnectionEventMap, SerialDataEvent, SerialErrorEvent, SerialResetEvent } from "./serial-events.js";
13
- import { ServiceConnectionEventMap } from "./service-events.js";
14
- import { UARTDataEvent } from "./uart.js";
15
- import { createRadioBridgeConnection, MicrobitRadioBridgeConnection, MicrobitRadioBridgeConnectionOptions } from "./usb-radio-bridge.js";
16
- import { createWebUSBConnection, DeviceSelectionMode, MicrobitWebUSBConnection, MicrobitWebUSBConnectionOptions } from "./usb.js";
17
- export { AfterRequestDevice, BackgroundErrorEvent, BeforeRequestDevice, BoardId, ConnectionStatus, ConnectionStatusEvent, createRadioBridgeConnection, createUniversalHexFlashDataSource, createWebBluetoothConnection, createWebUSBConnection, DeviceConnectionEventMap, DeviceSelectionMode, DeviceError, FlashDataError, FlashEvent, ProgressStage, SerialConnectionEventMap, SerialDataEvent, SerialErrorEvent, SerialResetEvent, ServiceConnectionEventMap, TypedEventTarget, UARTDataEvent, };
18
- export type { AccelerometerData, AccelerometerDataEvent, BoardVersion, ConnectionAvailabilityStatus, ButtonEvent, ButtonEventType, ButtonState, ConnectOptions, DeviceBondState, DeviceConnection, DeviceErrorCode, FlashDataSource, FlashOptions, LedMatrix, Logging, LoggingEvent, MagnetometerData, MagnetometerDataEvent, MicrobitRadioBridgeConnection, MicrobitRadioBridgeConnectionOptions, MicrobitWebBluetoothConnection, MicrobitWebBluetoothConnectionOptions, MicrobitWebUSBConnection, MicrobitWebUSBConnectionOptions, ProgressCallback, };
6
+ import { AccelerometerData, ButtonData, ButtonEventType, ButtonState, LedMatrix, MagnetometerData, UartData } from "./service-events.js";
7
+ export { ButtonState, ConnectionStatus, DeviceError, FlashDataError, assertConnected, ProgressStage, };
8
+ export type { AccelerometerData, BackgroundErrorData, BoardVersion, ButtonData, ButtonEventType, ConnectOptions, ConnectionAvailabilityStatus, ConnectionStatusChange, DeviceConnection, DeviceErrorCode, FlashDataSource, FlashOptions, LedMatrix, Logging, LoggingEvent, MagnetometerData, ProgressCallback, UartData, };
@@ -1,37 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UARTDataEvent = exports.TypedEventTarget = exports.ServiceConnectionEventMap = exports.SerialResetEvent = exports.SerialErrorEvent = exports.SerialDataEvent = exports.SerialConnectionEventMap = exports.ProgressStage = exports.FlashEvent = exports.FlashDataError = exports.DeviceError = exports.DeviceSelectionMode = exports.DeviceConnectionEventMap = exports.createWebUSBConnection = exports.createWebBluetoothConnection = exports.createUniversalHexFlashDataSource = exports.createRadioBridgeConnection = exports.ConnectionStatusEvent = exports.ConnectionStatus = exports.BoardId = exports.BeforeRequestDevice = exports.BackgroundErrorEvent = exports.AfterRequestDevice = void 0;
4
- const bluetooth_js_1 = require("./bluetooth.js");
5
- Object.defineProperty(exports, "createWebBluetoothConnection", { enumerable: true, get: function () { return bluetooth_js_1.createWebBluetoothConnection; } });
6
- const board_id_js_1 = require("./board-id.js");
7
- Object.defineProperty(exports, "BoardId", { enumerable: true, get: function () { return board_id_js_1.BoardId; } });
3
+ exports.ProgressStage = exports.assertConnected = exports.FlashDataError = exports.DeviceError = exports.ConnectionStatus = exports.ButtonState = void 0;
4
+ /**
5
+ * @module @microbit/microbit-connection
6
+ */
8
7
  const device_js_1 = require("./device.js");
9
- Object.defineProperty(exports, "AfterRequestDevice", { enumerable: true, get: function () { return device_js_1.AfterRequestDevice; } });
10
- Object.defineProperty(exports, "BackgroundErrorEvent", { enumerable: true, get: function () { return device_js_1.BackgroundErrorEvent; } });
11
- Object.defineProperty(exports, "BeforeRequestDevice", { enumerable: true, get: function () { return device_js_1.BeforeRequestDevice; } });
12
8
  Object.defineProperty(exports, "ConnectionStatus", { enumerable: true, get: function () { return device_js_1.ConnectionStatus; } });
13
- Object.defineProperty(exports, "ConnectionStatusEvent", { enumerable: true, get: function () { return device_js_1.ConnectionStatusEvent; } });
14
- Object.defineProperty(exports, "DeviceConnectionEventMap", { enumerable: true, get: function () { return device_js_1.DeviceConnectionEventMap; } });
15
9
  Object.defineProperty(exports, "DeviceError", { enumerable: true, get: function () { return device_js_1.DeviceError; } });
16
10
  Object.defineProperty(exports, "FlashDataError", { enumerable: true, get: function () { return device_js_1.FlashDataError; } });
17
11
  Object.defineProperty(exports, "ProgressStage", { enumerable: true, get: function () { return device_js_1.ProgressStage; } });
18
- const events_js_1 = require("./events.js");
19
- Object.defineProperty(exports, "TypedEventTarget", { enumerable: true, get: function () { return events_js_1.TypedEventTarget; } });
20
- const hex_flash_data_source_js_1 = require("./hex-flash-data-source.js");
21
- Object.defineProperty(exports, "createUniversalHexFlashDataSource", { enumerable: true, get: function () { return hex_flash_data_source_js_1.createUniversalHexFlashDataSource; } });
22
- const serial_events_js_1 = require("./serial-events.js");
23
- Object.defineProperty(exports, "FlashEvent", { enumerable: true, get: function () { return serial_events_js_1.FlashEvent; } });
24
- Object.defineProperty(exports, "SerialConnectionEventMap", { enumerable: true, get: function () { return serial_events_js_1.SerialConnectionEventMap; } });
25
- Object.defineProperty(exports, "SerialDataEvent", { enumerable: true, get: function () { return serial_events_js_1.SerialDataEvent; } });
26
- Object.defineProperty(exports, "SerialErrorEvent", { enumerable: true, get: function () { return serial_events_js_1.SerialErrorEvent; } });
27
- Object.defineProperty(exports, "SerialResetEvent", { enumerable: true, get: function () { return serial_events_js_1.SerialResetEvent; } });
12
+ Object.defineProperty(exports, "assertConnected", { enumerable: true, get: function () { return device_js_1.assertConnected; } });
28
13
  const service_events_js_1 = require("./service-events.js");
29
- Object.defineProperty(exports, "ServiceConnectionEventMap", { enumerable: true, get: function () { return service_events_js_1.ServiceConnectionEventMap; } });
30
- const uart_js_1 = require("./uart.js");
31
- Object.defineProperty(exports, "UARTDataEvent", { enumerable: true, get: function () { return uart_js_1.UARTDataEvent; } });
32
- const usb_radio_bridge_js_1 = require("./usb-radio-bridge.js");
33
- Object.defineProperty(exports, "createRadioBridgeConnection", { enumerable: true, get: function () { return usb_radio_bridge_js_1.createRadioBridgeConnection; } });
34
- const usb_js_1 = require("./usb.js");
35
- Object.defineProperty(exports, "createWebUSBConnection", { enumerable: true, get: function () { return usb_js_1.createWebUSBConnection; } });
36
- Object.defineProperty(exports, "DeviceSelectionMode", { enumerable: true, get: function () { return usb_js_1.DeviceSelectionMode; } });
14
+ Object.defineProperty(exports, "ButtonState", { enumerable: true, get: function () { return service_events_js_1.ButtonState; } });
37
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AACA,iDAIwB;AA0DtB,6GA7DA,2CAA4B,OA6DA;AAzD9B,+CAAwC;AAoDtC,wFApDO,qBAAO,OAoDP;AAjDT,2CAkBqB;AA4BnB,mGA7CA,8BAAkB,OA6CA;AAClB,qGA7CA,gCAAoB,OA6CA;AACpB,oGA7CA,+BAAmB,OA6CA;AAEnB,iGA3CA,4BAAgB,OA2CA;AAChB,sGA3CA,iCAAqB,OA2CA;AAKrB,yGA9CA,oCAAwB,OA8CA;AAExB,4FA/CA,uBAAW,OA+CA;AACX,+FA9CA,0BAAc,OA8CA;AAEd,8FA5CA,yBAAa,OA4CA;AA1Cf,2CAA+C;AAgD7C,iGAhDO,4BAAgB,OAgDP;AA/ClB,yEAA+E;AAiC7E,kHAjCO,4DAAiC,OAiCP;AA7BnC,yDAM4B;AA8B1B,2FAnCA,6BAAU,OAmCA;AAEV,yGApCA,2CAAwB,OAoCA;AACxB,gGApCA,kCAAe,OAoCA;AACf,iGApCA,mCAAgB,OAoCA;AAChB,iGApCA,mCAAgB,OAoCA;AAlClB,2DAAgE;AAmC9D,0GAnCO,6CAAyB,OAmCP;AAlC3B,uCAA0C;AAoCxC,8FApCO,uBAAa,OAoCP;AAnCf,+DAI+B;AAe7B,4GAlBA,iDAA2B,OAkBA;AAd7B,qCAKkB;AAYhB,uGAhBA,+BAAsB,OAgBA;AAEtB,oGAjBA,4BAAmB,OAiBA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,2CAgBqB;AAcnB,iGAzBA,4BAAgB,OAyBA;AAChB,4FAvBA,uBAAW,OAuBA;AACX,+FAtBA,0BAAc,OAsBA;AAEd,8FApBA,yBAAa,OAoBA;AADb,gGAlBA,2BAAe,OAkBA;AAfjB,2DAQ6B;AAG3B,4FAPA,+BAAW,OAOA"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * (c) 2023, Center for Computational Thinking and Design at Aarhus University and contributors
3
+ *
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { BackgroundErrorData, ConnectionStatusChange, DeviceConnection } from "../device.js";
7
+ import { Logging } from "../logging.js";
8
+ import { AccelerometerData, ButtonData } from "../service-events.js";
9
+ import { MicrobitUSBConnection } from "../usb/connection.js";
10
+ export interface MicrobitRadioBridgeConnectionOptions {
11
+ logging?: Logging;
12
+ }
13
+ /**
14
+ * A connection to a remote micro:bit via a USB-connected micro:bit running
15
+ * radio bridge firmware. Sensor data is relayed over a serial protocol.
16
+ *
17
+ * @experimental This connection type has limited service support compared to
18
+ * direct Bluetooth connections:
19
+ *
20
+ * - `accelerometerdatachanged`, `buttonachanged`, `buttonbchanged` events
21
+ * are supported.
22
+ * - `flash` is not supported.
23
+ */
24
+ export interface MicrobitRadioBridgeConnection extends DeviceConnection {
25
+ readonly type: "radio-bridge";
26
+ addEventListener(type: "status", listener: (data: ConnectionStatusChange) => void): void;
27
+ addEventListener(type: "backgrounderror", listener: (data: BackgroundErrorData) => void): void;
28
+ addEventListener(type: "beforerequestdevice", listener: () => void): void;
29
+ addEventListener(type: "afterrequestdevice", listener: () => void): void;
30
+ addEventListener(type: "flash", listener: () => void): void;
31
+ addEventListener(type: "accelerometerdatachanged", listener: (data: AccelerometerData) => void): void;
32
+ addEventListener(type: "buttonachanged" | "buttonbchanged", listener: (data: ButtonData) => void): void;
33
+ removeEventListener(type: "status", listener: (data: ConnectionStatusChange) => void): void;
34
+ removeEventListener(type: "backgrounderror", listener: (data: BackgroundErrorData) => void): void;
35
+ removeEventListener(type: "beforerequestdevice", listener: () => void): void;
36
+ removeEventListener(type: "afterrequestdevice", listener: () => void): void;
37
+ removeEventListener(type: "flash", listener: () => void): void;
38
+ removeEventListener(type: "accelerometerdatachanged", listener: (data: AccelerometerData) => void): void;
39
+ removeEventListener(type: "buttonachanged" | "buttonbchanged", listener: (data: ButtonData) => void): void;
40
+ /**
41
+ * Sets remote device.
42
+ *
43
+ * @param deviceId The device id of remote micro:bit.
44
+ */
45
+ setRemoteDeviceId(deviceId: number): void;
46
+ }
47
+ /**
48
+ * A radio bridge connection factory.
49
+ *
50
+ * @experimental See {@link MicrobitRadioBridgeConnection} for limitations.
51
+ */
52
+ export declare const createRadioBridgeConnection: (delegate: MicrobitUSBConnection, options?: MicrobitRadioBridgeConnectionOptions) => MicrobitRadioBridgeConnection;