@microbit/microbit-connection 0.9.0-apps.alpha.15 → 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.
- package/build/cjs/async-util.js.map +1 -1
- package/build/cjs/async-util.test.d.ts +1 -0
- package/build/cjs/async-util.test.js +20 -0
- package/build/cjs/async-util.test.js.map +1 -0
- package/build/cjs/availability.js.map +1 -1
- package/build/{esm/bluetooth.d.ts → cjs/bluetooth/connection.d.ts} +30 -26
- package/build/cjs/{bluetooth.js → bluetooth/connection.js} +183 -106
- package/build/cjs/bluetooth/connection.js.map +1 -0
- package/build/cjs/bluetooth/connection.test.d.ts +1 -0
- package/build/cjs/bluetooth/connection.test.js +88 -0
- package/build/cjs/bluetooth/connection.test.js.map +1 -0
- package/build/cjs/bluetooth/device-bond-state.js.map +1 -0
- package/build/cjs/{bluetooth-device-wrapper.d.ts → bluetooth/device-wrapper.d.ts} +22 -11
- package/build/cjs/{bluetooth-device-wrapper.js → bluetooth/device-wrapper.js} +99 -42
- package/build/cjs/bluetooth/device-wrapper.js.map +1 -0
- package/build/cjs/{flashing → bluetooth/flashing}/flashing-full.d.ts +2 -2
- package/build/cjs/{flashing → bluetooth/flashing}/flashing-full.js +4 -4
- package/build/cjs/bluetooth/flashing/flashing-full.js.map +1 -0
- package/build/cjs/bluetooth/flashing/flashing-makecode.d.ts +10 -0
- package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.js +5 -2
- package/build/cjs/bluetooth/flashing/flashing-makecode.js.map +1 -0
- package/build/cjs/bluetooth/flashing/flashing-makecode.test.d.ts +1 -0
- package/build/cjs/bluetooth/flashing/flashing-makecode.test.js +253 -0
- package/build/cjs/bluetooth/flashing/flashing-makecode.test.js.map +1 -0
- package/build/cjs/{flashing → bluetooth/flashing}/flashing-partial.d.ts +3 -2
- package/build/cjs/{flashing → bluetooth/flashing}/flashing-partial.js +17 -3
- package/build/cjs/bluetooth/flashing/flashing-partial.js.map +1 -0
- package/build/cjs/bluetooth/flashing/flashing-v1.js.map +1 -0
- package/build/cjs/{flashing → bluetooth/flashing}/nordic-dfu.d.ts +2 -2
- package/build/cjs/{flashing → bluetooth/flashing}/nordic-dfu.js +25 -11
- package/build/cjs/bluetooth/flashing/nordic-dfu.js.map +1 -0
- package/build/cjs/bluetooth/flashing/zip.js.map +1 -0
- package/build/cjs/bluetooth/flashing/zip.test.d.ts +1 -0
- package/build/cjs/bluetooth/flashing/zip.test.js +96 -0
- package/build/cjs/bluetooth/flashing/zip.test.js.map +1 -0
- package/build/cjs/bluetooth/index.d.ts +5 -0
- package/build/cjs/bluetooth/index.js +9 -0
- package/build/cjs/bluetooth/index.js.map +1 -0
- package/build/cjs/{bluetooth-profile.d.ts → bluetooth/profile.d.ts} +8 -0
- package/build/cjs/{bluetooth-profile.js → bluetooth/profile.js} +7 -1
- package/build/cjs/bluetooth/profile.js.map +1 -0
- package/build/{esm → cjs/bluetooth/services}/accelerometer-service.d.ts +2 -3
- package/build/cjs/{accelerometer-service.js → bluetooth/services/accelerometer-service.js} +16 -12
- package/build/cjs/bluetooth/services/accelerometer-service.js.map +1 -0
- package/build/{esm → cjs/bluetooth/services}/button-service.d.ts +2 -3
- package/build/cjs/{button-service.js → bluetooth/services/button-service.js} +15 -14
- package/build/cjs/bluetooth/services/button-service.js.map +1 -0
- package/build/{esm → cjs/bluetooth/services}/device-information-service.d.ts +1 -1
- package/build/cjs/{device-information-service.js → bluetooth/services/device-information-service.js} +2 -2
- package/build/cjs/bluetooth/services/device-information-service.js.map +1 -0
- package/build/cjs/{dfu-service.js → bluetooth/services/dfu-service.js} +2 -2
- package/build/cjs/bluetooth/services/dfu-service.js.map +1 -0
- package/build/cjs/{led-service.d.ts → bluetooth/services/led-service.d.ts} +2 -3
- package/build/cjs/{led-service.js → bluetooth/services/led-service.js} +7 -7
- package/build/cjs/bluetooth/services/led-service.js.map +1 -0
- package/build/cjs/{magnetometer-service.d.ts → bluetooth/services/magnetometer-service.d.ts} +2 -3
- package/build/cjs/{magnetometer-service.js → bluetooth/services/magnetometer-service.js} +18 -14
- package/build/cjs/bluetooth/services/magnetometer-service.js.map +1 -0
- package/build/{esm → cjs/bluetooth/services}/partial-flashing-service.d.ts +1 -1
- package/build/cjs/{partial-flashing-service.js → bluetooth/services/partial-flashing-service.js} +8 -8
- package/build/cjs/bluetooth/services/partial-flashing-service.js.map +1 -0
- package/build/cjs/{uart-service.d.ts → bluetooth/services/uart-service.d.ts} +2 -2
- package/build/cjs/{uart-service.js → bluetooth/services/uart-service.js} +12 -9
- package/build/cjs/bluetooth/services/uart-service.js.map +1 -0
- package/build/cjs/board-id.d.ts +1 -1
- package/build/cjs/board-id.js.map +1 -1
- package/build/cjs/device.d.ts +82 -75
- package/build/cjs/device.js +40 -126
- package/build/cjs/device.js.map +1 -1
- package/build/cjs/events.d.ts +9 -108
- package/build/cjs/events.js +27 -88
- package/build/cjs/events.js.map +1 -1
- package/build/cjs/events.test.d.ts +1 -0
- package/build/cjs/events.test.js +115 -0
- package/build/cjs/events.test.js.map +1 -0
- package/build/cjs/hex-util.d.ts +1 -0
- package/build/cjs/hex-util.js +15 -0
- package/build/cjs/hex-util.js.map +1 -0
- package/build/cjs/index.d.ts +7 -16
- package/build/cjs/index.js +6 -26
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/logging.js.map +1 -1
- package/build/cjs/radio-bridge/connection.d.ts +39 -0
- package/build/cjs/{usb-radio-bridge.js → radio-bridge/connection.js} +39 -25
- package/build/cjs/radio-bridge/connection.js.map +1 -0
- package/build/cjs/radio-bridge/index.d.ts +4 -0
- package/build/cjs/radio-bridge/index.js +9 -0
- package/build/cjs/radio-bridge/index.js.map +1 -0
- package/build/cjs/{usb-serial-protocol.js → radio-bridge/serial-protocol.js} +1 -1
- package/build/cjs/radio-bridge/serial-protocol.js.map +1 -0
- package/build/cjs/service-events.d.ts +42 -14
- package/build/cjs/service-events.js +6 -36
- package/build/cjs/service-events.js.map +1 -1
- package/build/cjs/setupTests.js +8 -0
- package/build/cjs/setupTests.js.map +1 -1
- package/build/{esm/hex-flash-data-source.d.ts → cjs/universal-hex/flash-data-source.d.ts} +1 -2
- package/build/cjs/{hex-flash-data-source.js → universal-hex/flash-data-source.js} +7 -15
- package/build/cjs/universal-hex/flash-data-source.js.map +1 -0
- package/build/cjs/universal-hex/index.d.ts +4 -0
- package/build/cjs/universal-hex/index.js +9 -0
- package/build/cjs/universal-hex/index.js.map +1 -0
- package/build/cjs/usb/arm-debug.d.ts +137 -0
- package/build/cjs/usb/arm-debug.js +414 -0
- package/build/cjs/usb/arm-debug.js.map +1 -0
- package/build/cjs/usb/arm-debug.test.d.ts +1 -0
- package/build/cjs/usb/arm-debug.test.js +333 -0
- package/build/cjs/usb/arm-debug.test.js.map +1 -0
- package/build/cjs/{board-serial-info.d.ts → usb/board-serial-info.d.ts} +2 -1
- package/build/cjs/{board-serial-info.js → usb/board-serial-info.js} +10 -7
- package/build/cjs/usb/board-serial-info.js.map +1 -0
- package/build/cjs/usb/board-serial-info.test.d.ts +1 -0
- package/build/cjs/usb/board-serial-info.test.js +46 -0
- package/build/cjs/usb/board-serial-info.test.js.map +1 -0
- package/build/cjs/usb/cdc-saturation.d.ts +36 -0
- package/build/cjs/usb/cdc-saturation.js +151 -0
- package/build/cjs/usb/cdc-saturation.js.map +1 -0
- package/build/cjs/usb/cmsis-dap.d.ts +113 -0
- package/build/cjs/usb/cmsis-dap.js +349 -0
- package/build/cjs/usb/cmsis-dap.js.map +1 -0
- package/build/cjs/usb/cmsis-dap.test.d.ts +1 -0
- package/build/cjs/usb/cmsis-dap.test.js +350 -0
- package/build/cjs/usb/cmsis-dap.test.js.map +1 -0
- package/build/cjs/usb/connection.d.ts +81 -0
- package/build/cjs/{usb.js → usb/connection.js} +243 -166
- package/build/cjs/usb/connection.js.map +1 -0
- package/build/cjs/usb/connection.test.d.ts +1 -0
- package/build/cjs/usb/connection.test.js +266 -0
- package/build/cjs/usb/connection.test.js.map +1 -0
- package/build/cjs/usb/cortex-m.d.ts +72 -0
- package/build/cjs/usb/cortex-m.js +165 -0
- package/build/cjs/usb/cortex-m.js.map +1 -0
- package/build/cjs/usb/cortex-m.test.d.ts +1 -0
- package/build/cjs/usb/cortex-m.test.js +217 -0
- package/build/cjs/usb/cortex-m.test.js.map +1 -0
- package/build/cjs/usb/daplink.d.ts +69 -0
- package/build/cjs/usb/daplink.js +238 -0
- package/build/cjs/usb/daplink.js.map +1 -0
- package/build/cjs/usb/daplink.test.d.ts +1 -0
- package/build/cjs/usb/daplink.test.js +290 -0
- package/build/cjs/usb/daplink.test.js.map +1 -0
- package/build/cjs/usb/device-wrapper.d.ts +34 -0
- package/build/cjs/usb/device-wrapper.js +102 -0
- package/build/cjs/usb/device-wrapper.js.map +1 -0
- package/build/cjs/usb/index.d.ts +5 -0
- package/build/cjs/usb/index.js +10 -0
- package/build/cjs/usb/index.js.map +1 -0
- package/build/{esm/usb-partial-flashing-utils.d.ts → cjs/usb/partial-flashing-utils.d.ts} +6 -9
- package/build/cjs/{usb-partial-flashing-utils.js → usb/partial-flashing-utils.js} +6 -49
- package/build/cjs/usb/partial-flashing-utils.js.map +1 -0
- package/build/cjs/{usb-partial-flashing.d.ts → usb/partial-flashing.d.ts} +15 -7
- package/build/cjs/{usb-partial-flashing.js → usb/partial-flashing.js} +64 -119
- package/build/cjs/usb/partial-flashing.js.map +1 -0
- package/build/cjs/usb/promise-queue.js.map +1 -0
- package/build/cjs/usb/promise-queue.test.d.ts +1 -0
- package/build/cjs/usb/promise-queue.test.js +68 -0
- package/build/cjs/usb/promise-queue.test.js.map +1 -0
- package/build/cjs/usb/serial-events.d.ts +21 -0
- package/build/cjs/{led.js → usb/serial-events.js} +1 -1
- package/build/cjs/usb/serial-events.js.map +1 -0
- package/build/cjs/usb/transport.d.ts +42 -0
- package/build/cjs/usb/transport.js +155 -0
- package/build/cjs/usb/transport.js.map +1 -0
- package/build/esm/async-util.js.map +1 -1
- package/build/esm/async-util.test.d.ts +1 -0
- package/build/esm/async-util.test.js +18 -0
- package/build/esm/async-util.test.js.map +1 -0
- package/build/esm/availability.js.map +1 -1
- package/build/{cjs/bluetooth.d.ts → esm/bluetooth/connection.d.ts} +30 -26
- package/build/esm/{bluetooth.js → bluetooth/connection.js} +177 -100
- package/build/esm/bluetooth/connection.js.map +1 -0
- package/build/esm/bluetooth/connection.test.d.ts +1 -0
- package/build/esm/bluetooth/connection.test.js +86 -0
- package/build/esm/bluetooth/connection.test.js.map +1 -0
- package/build/esm/bluetooth/device-bond-state.js.map +1 -0
- package/build/esm/{bluetooth-device-wrapper.d.ts → bluetooth/device-wrapper.d.ts} +22 -11
- package/build/esm/{bluetooth-device-wrapper.js → bluetooth/device-wrapper.js} +97 -41
- package/build/esm/bluetooth/device-wrapper.js.map +1 -0
- package/build/esm/{flashing → bluetooth/flashing}/flashing-full.d.ts +2 -2
- package/build/esm/{flashing → bluetooth/flashing}/flashing-full.js +4 -4
- package/build/esm/bluetooth/flashing/flashing-full.js.map +1 -0
- package/build/esm/bluetooth/flashing/flashing-makecode.d.ts +10 -0
- package/build/esm/{flashing → bluetooth/flashing}/flashing-makecode.js +5 -2
- package/build/esm/bluetooth/flashing/flashing-makecode.js.map +1 -0
- package/build/esm/bluetooth/flashing/flashing-makecode.test.d.ts +1 -0
- package/build/esm/bluetooth/flashing/flashing-makecode.test.js +248 -0
- package/build/esm/bluetooth/flashing/flashing-makecode.test.js.map +1 -0
- package/build/esm/{flashing → bluetooth/flashing}/flashing-partial.d.ts +3 -2
- package/build/esm/{flashing → bluetooth/flashing}/flashing-partial.js +17 -3
- package/build/esm/bluetooth/flashing/flashing-partial.js.map +1 -0
- package/build/esm/bluetooth/flashing/flashing-v1.js.map +1 -0
- package/build/esm/{flashing → bluetooth/flashing}/nordic-dfu.d.ts +2 -2
- package/build/esm/{flashing → bluetooth/flashing}/nordic-dfu.js +25 -11
- package/build/esm/bluetooth/flashing/nordic-dfu.js.map +1 -0
- package/build/esm/bluetooth/flashing/zip.js.map +1 -0
- package/build/esm/bluetooth/flashing/zip.test.d.ts +1 -0
- package/build/esm/bluetooth/flashing/zip.test.js +94 -0
- package/build/esm/bluetooth/flashing/zip.test.js.map +1 -0
- package/build/esm/bluetooth/index.d.ts +5 -0
- package/build/esm/bluetooth/index.js +5 -0
- package/build/esm/bluetooth/index.js.map +1 -0
- package/build/esm/{bluetooth-profile.d.ts → bluetooth/profile.d.ts} +8 -0
- package/build/esm/{bluetooth-profile.js → bluetooth/profile.js} +7 -1
- package/build/{cjs/bluetooth-profile.js.map → esm/bluetooth/profile.js.map} +1 -1
- package/build/{cjs → esm/bluetooth/services}/accelerometer-service.d.ts +2 -3
- package/build/esm/{accelerometer-service.js → bluetooth/services/accelerometer-service.js} +10 -6
- package/build/esm/bluetooth/services/accelerometer-service.js.map +1 -0
- package/build/{cjs → esm/bluetooth/services}/button-service.d.ts +2 -3
- package/build/esm/{button-service.js → bluetooth/services/button-service.js} +10 -9
- package/build/esm/bluetooth/services/button-service.js.map +1 -0
- package/build/{cjs → esm/bluetooth/services}/device-information-service.d.ts +1 -1
- package/build/esm/{device-information-service.js → bluetooth/services/device-information-service.js} +1 -1
- package/build/esm/bluetooth/services/device-information-service.js.map +1 -0
- package/build/esm/{dfu-service.js → bluetooth/services/dfu-service.js} +1 -1
- package/build/esm/bluetooth/services/dfu-service.js.map +1 -0
- package/build/esm/{led-service.d.ts → bluetooth/services/led-service.d.ts} +2 -3
- package/build/esm/{led-service.js → bluetooth/services/led-service.js} +1 -1
- package/build/esm/bluetooth/services/led-service.js.map +1 -0
- package/build/esm/{magnetometer-service.d.ts → bluetooth/services/magnetometer-service.d.ts} +2 -3
- package/build/esm/{magnetometer-service.js → bluetooth/services/magnetometer-service.js} +10 -6
- package/build/esm/bluetooth/services/magnetometer-service.js.map +1 -0
- package/build/{cjs → esm/bluetooth/services}/partial-flashing-service.d.ts +1 -1
- package/build/esm/{partial-flashing-service.js → bluetooth/services/partial-flashing-service.js} +4 -4
- package/build/esm/bluetooth/services/partial-flashing-service.js.map +1 -0
- package/build/esm/{uart-service.d.ts → bluetooth/services/uart-service.d.ts} +2 -2
- package/build/esm/{uart-service.js → bluetooth/services/uart-service.js} +8 -5
- package/build/esm/bluetooth/services/uart-service.js.map +1 -0
- package/build/esm/board-id.d.ts +1 -1
- package/build/esm/board-id.js.map +1 -1
- package/build/esm/device.d.ts +82 -75
- package/build/esm/device.js +38 -120
- package/build/esm/device.js.map +1 -1
- package/build/esm/events.d.ts +9 -108
- package/build/esm/events.js +26 -86
- package/build/esm/events.js.map +1 -1
- package/build/esm/events.test.d.ts +1 -0
- package/build/esm/events.test.js +113 -0
- package/build/esm/events.test.js.map +1 -0
- package/build/esm/hex-util.d.ts +1 -0
- package/build/esm/hex-util.js +11 -0
- package/build/esm/hex-util.js.map +1 -0
- package/build/esm/index.d.ts +7 -16
- package/build/esm/index.js +6 -10
- package/build/esm/index.js.map +1 -1
- package/build/esm/logging.js.map +1 -1
- package/build/esm/radio-bridge/connection.d.ts +39 -0
- package/build/esm/{usb-radio-bridge.js → radio-bridge/connection.js} +39 -25
- package/build/esm/radio-bridge/connection.js.map +1 -0
- package/build/esm/radio-bridge/index.d.ts +4 -0
- package/build/esm/radio-bridge/index.js +5 -0
- package/build/esm/radio-bridge/index.js.map +1 -0
- package/build/esm/{usb-serial-protocol.js → radio-bridge/serial-protocol.js} +1 -1
- package/build/esm/radio-bridge/serial-protocol.js.map +1 -0
- package/build/esm/service-events.d.ts +42 -14
- package/build/esm/service-events.js +5 -34
- package/build/esm/service-events.js.map +1 -1
- package/build/esm/setupTests.js +7 -0
- package/build/esm/setupTests.js.map +1 -1
- package/build/{cjs/hex-flash-data-source.d.ts → esm/universal-hex/flash-data-source.d.ts} +1 -2
- package/build/esm/{hex-flash-data-source.js → universal-hex/flash-data-source.js} +6 -13
- package/build/esm/universal-hex/flash-data-source.js.map +1 -0
- package/build/esm/universal-hex/index.d.ts +4 -0
- package/build/esm/universal-hex/index.js +5 -0
- package/build/esm/universal-hex/index.js.map +1 -0
- package/build/esm/usb/arm-debug.d.ts +137 -0
- package/build/esm/usb/arm-debug.js +409 -0
- package/build/esm/usb/arm-debug.js.map +1 -0
- package/build/esm/usb/arm-debug.test.d.ts +1 -0
- package/build/esm/usb/arm-debug.test.js +331 -0
- package/build/esm/usb/arm-debug.test.js.map +1 -0
- package/build/esm/{board-serial-info.d.ts → usb/board-serial-info.d.ts} +2 -1
- package/build/esm/{board-serial-info.js → usb/board-serial-info.js} +10 -7
- package/build/esm/usb/board-serial-info.js.map +1 -0
- package/build/esm/usb/board-serial-info.test.d.ts +1 -0
- package/build/esm/usb/board-serial-info.test.js +44 -0
- package/build/esm/usb/board-serial-info.test.js.map +1 -0
- package/build/esm/usb/cdc-saturation.d.ts +36 -0
- package/build/esm/usb/cdc-saturation.js +148 -0
- package/build/esm/usb/cdc-saturation.js.map +1 -0
- package/build/esm/usb/cmsis-dap.d.ts +113 -0
- package/build/esm/usb/cmsis-dap.js +342 -0
- package/build/esm/usb/cmsis-dap.js.map +1 -0
- package/build/esm/usb/cmsis-dap.test.d.ts +1 -0
- package/build/esm/usb/cmsis-dap.test.js +348 -0
- package/build/esm/usb/cmsis-dap.test.js.map +1 -0
- package/build/esm/usb/connection.d.ts +81 -0
- package/build/esm/{usb.js → usb/connection.js} +239 -161
- package/build/esm/usb/connection.js.map +1 -0
- package/build/esm/usb/connection.test.d.ts +1 -0
- package/build/esm/usb/connection.test.js +264 -0
- package/build/esm/usb/connection.test.js.map +1 -0
- package/build/esm/usb/cortex-m.d.ts +72 -0
- package/build/esm/usb/cortex-m.js +161 -0
- package/build/esm/usb/cortex-m.js.map +1 -0
- package/build/esm/usb/cortex-m.test.d.ts +1 -0
- package/build/esm/usb/cortex-m.test.js +215 -0
- package/build/esm/usb/cortex-m.test.js.map +1 -0
- package/build/esm/usb/daplink.d.ts +69 -0
- package/build/esm/usb/daplink.js +231 -0
- package/build/esm/usb/daplink.js.map +1 -0
- package/build/esm/usb/daplink.test.d.ts +1 -0
- package/build/esm/usb/daplink.test.js +288 -0
- package/build/esm/usb/daplink.test.js.map +1 -0
- package/build/esm/usb/device-wrapper.d.ts +34 -0
- package/build/esm/usb/device-wrapper.js +98 -0
- package/build/esm/usb/device-wrapper.js.map +1 -0
- package/build/esm/usb/index.d.ts +5 -0
- package/build/esm/usb/index.js +5 -0
- package/build/esm/usb/index.js.map +1 -0
- package/build/{cjs/usb-partial-flashing-utils.d.ts → esm/usb/partial-flashing-utils.d.ts} +6 -9
- package/build/esm/{usb-partial-flashing-utils.js → usb/partial-flashing-utils.js} +4 -44
- package/build/esm/usb/partial-flashing-utils.js.map +1 -0
- package/build/esm/{usb-partial-flashing.d.ts → usb/partial-flashing.d.ts} +15 -7
- package/build/esm/{usb-partial-flashing.js → usb/partial-flashing.js} +62 -94
- package/build/esm/usb/partial-flashing.js.map +1 -0
- package/build/esm/usb/promise-queue.js.map +1 -0
- package/build/esm/usb/promise-queue.test.d.ts +1 -0
- package/build/esm/usb/promise-queue.test.js +66 -0
- package/build/esm/usb/promise-queue.test.js.map +1 -0
- package/build/esm/usb/serial-events.d.ts +21 -0
- package/build/esm/usb/serial-events.js +2 -0
- package/build/esm/usb/serial-events.js.map +1 -0
- package/build/esm/usb/transport.d.ts +42 -0
- package/build/esm/usb/transport.js +151 -0
- package/build/esm/usb/transport.js.map +1 -0
- package/package.json +55 -15
- package/LICENSE.md +0 -21
- package/README.md +0 -125
- package/build/cjs/accelerometer-service.js.map +0 -1
- package/build/cjs/accelerometer.d.ts +0 -9
- package/build/cjs/accelerometer.js +0 -16
- package/build/cjs/accelerometer.js.map +0 -1
- package/build/cjs/bluetooth-device-wrapper.js.map +0 -1
- package/build/cjs/bluetooth.js.map +0 -1
- package/build/cjs/board-serial-info.js.map +0 -1
- package/build/cjs/button-service.js.map +0 -1
- package/build/cjs/buttons.d.ts +0 -10
- package/build/cjs/buttons.js +0 -22
- package/build/cjs/buttons.js.map +0 -1
- package/build/cjs/constants.d.ts +0 -48
- package/build/cjs/constants.js +0 -73
- package/build/cjs/constants.js.map +0 -1
- package/build/cjs/device-bond-state.js.map +0 -1
- package/build/cjs/device-information-service.js.map +0 -1
- package/build/cjs/dfu-service.js.map +0 -1
- package/build/cjs/flashing/flashing-full.js.map +0 -1
- package/build/cjs/flashing/flashing-makecode.d.ts +0 -6
- package/build/cjs/flashing/flashing-makecode.js.map +0 -1
- package/build/cjs/flashing/flashing-partial.js.map +0 -1
- package/build/cjs/flashing/flashing-v1.js.map +0 -1
- package/build/cjs/flashing/nordic-dfu.js.map +0 -1
- package/build/cjs/flashing/zip.js.map +0 -1
- package/build/cjs/hex-flash-data-source.js.map +0 -1
- package/build/cjs/led-service.js.map +0 -1
- package/build/cjs/led.d.ts +0 -6
- package/build/cjs/led.js.map +0 -1
- package/build/cjs/magnetometer-service.js.map +0 -1
- package/build/cjs/magnetometer.d.ts +0 -9
- package/build/cjs/magnetometer.js +0 -16
- package/build/cjs/magnetometer.js.map +0 -1
- package/build/cjs/partial-flashing-service.js.map +0 -1
- package/build/cjs/promise-queue.js.map +0 -1
- package/build/cjs/serial-events.d.ts +0 -20
- package/build/cjs/serial-events.js +0 -69
- package/build/cjs/serial-events.js.map +0 -1
- package/build/cjs/uart-service.js.map +0 -1
- package/build/cjs/uart.d.ts +0 -4
- package/build/cjs/uart.js +0 -16
- package/build/cjs/uart.js.map +0 -1
- package/build/cjs/usb-device-wrapper.d.ts +0 -47
- package/build/cjs/usb-device-wrapper.js +0 -437
- package/build/cjs/usb-device-wrapper.js.map +0 -1
- package/build/cjs/usb-partial-flashing-utils.js.map +0 -1
- package/build/cjs/usb-partial-flashing.js.map +0 -1
- package/build/cjs/usb-radio-bridge.d.ts +0 -24
- package/build/cjs/usb-radio-bridge.js.map +0 -1
- package/build/cjs/usb-serial-protocol.js.map +0 -1
- package/build/cjs/usb.d.ts +0 -66
- package/build/cjs/usb.js.map +0 -1
- package/build/esm/accelerometer-service.js.map +0 -1
- package/build/esm/accelerometer.d.ts +0 -9
- package/build/esm/accelerometer.js +0 -12
- package/build/esm/accelerometer.js.map +0 -1
- package/build/esm/bluetooth-device-wrapper.js.map +0 -1
- package/build/esm/bluetooth-profile.js.map +0 -1
- package/build/esm/bluetooth.js.map +0 -1
- package/build/esm/board-serial-info.js.map +0 -1
- package/build/esm/button-service.js.map +0 -1
- package/build/esm/buttons.d.ts +0 -10
- package/build/esm/buttons.js +0 -18
- package/build/esm/buttons.js.map +0 -1
- package/build/esm/constants.d.ts +0 -48
- package/build/esm/constants.js +0 -70
- package/build/esm/constants.js.map +0 -1
- package/build/esm/device-bond-state.js.map +0 -1
- package/build/esm/device-information-service.js.map +0 -1
- package/build/esm/dfu-service.js.map +0 -1
- package/build/esm/flashing/flashing-full.js.map +0 -1
- package/build/esm/flashing/flashing-makecode.d.ts +0 -6
- package/build/esm/flashing/flashing-makecode.js.map +0 -1
- package/build/esm/flashing/flashing-partial.js.map +0 -1
- package/build/esm/flashing/flashing-v1.js.map +0 -1
- package/build/esm/flashing/nordic-dfu.js.map +0 -1
- package/build/esm/flashing/zip.js.map +0 -1
- package/build/esm/hex-flash-data-source.js.map +0 -1
- package/build/esm/led-service.js.map +0 -1
- package/build/esm/led.d.ts +0 -6
- package/build/esm/led.js +0 -2
- package/build/esm/led.js.map +0 -1
- package/build/esm/magnetometer-service.js.map +0 -1
- package/build/esm/magnetometer.d.ts +0 -9
- package/build/esm/magnetometer.js +0 -12
- package/build/esm/magnetometer.js.map +0 -1
- package/build/esm/partial-flashing-service.js.map +0 -1
- package/build/esm/promise-queue.js.map +0 -1
- package/build/esm/serial-events.d.ts +0 -20
- package/build/esm/serial-events.js +0 -61
- package/build/esm/serial-events.js.map +0 -1
- package/build/esm/uart-service.js.map +0 -1
- package/build/esm/uart.d.ts +0 -4
- package/build/esm/uart.js +0 -12
- package/build/esm/uart.js.map +0 -1
- package/build/esm/usb-device-wrapper.d.ts +0 -47
- package/build/esm/usb-device-wrapper.js +0 -410
- package/build/esm/usb-device-wrapper.js.map +0 -1
- package/build/esm/usb-partial-flashing-utils.js.map +0 -1
- package/build/esm/usb-partial-flashing.js.map +0 -1
- package/build/esm/usb-radio-bridge.d.ts +0 -24
- package/build/esm/usb-radio-bridge.js.map +0 -1
- package/build/esm/usb-serial-protocol.js.map +0 -1
- package/build/esm/usb.d.ts +0 -66
- package/build/esm/usb.js.map +0 -1
- package/typedoc.json +0 -14
- /package/build/cjs/{device-bond-state.d.ts → bluetooth/device-bond-state.d.ts} +0 -0
- /package/build/cjs/{device-bond-state.js → bluetooth/device-bond-state.js} +0 -0
- /package/build/cjs/{flashing → bluetooth/flashing}/flashing-v1.d.ts +0 -0
- /package/build/cjs/{flashing → bluetooth/flashing}/flashing-v1.js +0 -0
- /package/build/cjs/{flashing → bluetooth/flashing}/zip.d.ts +0 -0
- /package/build/cjs/{flashing → bluetooth/flashing}/zip.js +0 -0
- /package/build/cjs/{dfu-service.d.ts → bluetooth/services/dfu-service.d.ts} +0 -0
- /package/build/cjs/{usb-serial-protocol.d.ts → radio-bridge/serial-protocol.d.ts} +0 -0
- /package/build/cjs/{promise-queue.d.ts → usb/promise-queue.d.ts} +0 -0
- /package/build/cjs/{promise-queue.js → usb/promise-queue.js} +0 -0
- /package/build/esm/{device-bond-state.d.ts → bluetooth/device-bond-state.d.ts} +0 -0
- /package/build/esm/{device-bond-state.js → bluetooth/device-bond-state.js} +0 -0
- /package/build/esm/{flashing → bluetooth/flashing}/flashing-v1.d.ts +0 -0
- /package/build/esm/{flashing → bluetooth/flashing}/flashing-v1.js +0 -0
- /package/build/esm/{flashing → bluetooth/flashing}/zip.d.ts +0 -0
- /package/build/esm/{flashing → bluetooth/flashing}/zip.js +0 -0
- /package/build/esm/{dfu-service.d.ts → bluetooth/services/dfu-service.d.ts} +0 -0
- /package/build/esm/{usb-serial-protocol.d.ts → radio-bridge/serial-protocol.d.ts} +0 -0
- /package/build/esm/{promise-queue.d.ts → usb/promise-queue.d.ts} +0 -0
- /package/build/esm/{promise-queue.js → usb/promise-queue.js} +0 -0
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
29
|
+
exports.createBluetoothConnection = void 0;
|
|
30
30
|
/**
|
|
31
31
|
* (c) 2021, Micro:bit Educational Foundation and contributors
|
|
32
32
|
*
|
|
@@ -35,39 +35,40 @@ exports.createWebBluetoothConnection = void 0;
|
|
|
35
35
|
const bluetooth_le_1 = require("@capacitor-community/bluetooth-le");
|
|
36
36
|
const core_1 = require("@capacitor/core");
|
|
37
37
|
const nrf_intel_hex_1 = __importDefault(require("nrf-intel-hex"));
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
-
const device_js_1 = require("
|
|
41
|
-
const events_js_1 = require("
|
|
42
|
-
const logging_js_1 = require("
|
|
38
|
+
const device_wrapper_js_1 = require("./device-wrapper.js");
|
|
39
|
+
const profile_js_1 = require("./profile.js");
|
|
40
|
+
const device_js_1 = require("../device.js");
|
|
41
|
+
const events_js_1 = require("../events.js");
|
|
42
|
+
const logging_js_1 = require("../logging.js");
|
|
43
43
|
const flashing_full_js_1 = require("./flashing/flashing-full.js");
|
|
44
44
|
const flashing_partial_js_1 = __importStar(require("./flashing/flashing-partial.js"));
|
|
45
|
-
const availability_js_1 = require("
|
|
46
|
-
const
|
|
45
|
+
const availability_js_1 = require("../availability.js");
|
|
46
|
+
const hex_util_js_1 = require("../hex-util.js");
|
|
47
47
|
const device_bond_state_js_1 = require("./device-bond-state.js");
|
|
48
|
+
const async_util_js_1 = require("../async-util.js");
|
|
48
49
|
let bleClientInitialized = false;
|
|
49
50
|
/**
|
|
50
51
|
* A Bluetooth connection factory.
|
|
51
52
|
*/
|
|
52
|
-
const
|
|
53
|
-
exports.
|
|
53
|
+
const createBluetoothConnection = (options) => new MicrobitBluetoothConnectionImpl(options);
|
|
54
|
+
exports.createBluetoothConnection = createBluetoothConnection;
|
|
54
55
|
/**
|
|
55
56
|
* A Bluetooth connection to a micro:bit device.
|
|
56
57
|
*/
|
|
57
|
-
class
|
|
58
|
+
class MicrobitBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
58
59
|
constructor(options = {}) {
|
|
59
60
|
super();
|
|
60
61
|
Object.defineProperty(this, "status", {
|
|
61
62
|
enumerable: true,
|
|
62
63
|
configurable: true,
|
|
63
64
|
writable: true,
|
|
64
|
-
value: device_js_1.ConnectionStatus.
|
|
65
|
+
value: device_js_1.ConnectionStatus.NoAuthorizedDevice
|
|
65
66
|
});
|
|
66
67
|
/**
|
|
67
|
-
* The
|
|
68
|
+
* The BLE device we last connected to.
|
|
68
69
|
* Cleared if it is disconnected.
|
|
69
70
|
*/
|
|
70
|
-
Object.defineProperty(this, "
|
|
71
|
+
Object.defineProperty(this, "bleDevice", {
|
|
71
72
|
enumerable: true,
|
|
72
73
|
configurable: true,
|
|
73
74
|
writable: true,
|
|
@@ -85,7 +86,19 @@ class MicrobitWebBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
|
85
86
|
writable: true,
|
|
86
87
|
value: void 0
|
|
87
88
|
});
|
|
88
|
-
|
|
89
|
+
/**
|
|
90
|
+
* Device-specific state. Created on connect, cleared on disconnect.
|
|
91
|
+
*/
|
|
92
|
+
Object.defineProperty(this, "device", {
|
|
93
|
+
enumerable: true,
|
|
94
|
+
configurable: true,
|
|
95
|
+
writable: true,
|
|
96
|
+
value: void 0
|
|
97
|
+
});
|
|
98
|
+
/**
|
|
99
|
+
* Cached device property that persists across reconnections until clearDevice.
|
|
100
|
+
*/
|
|
101
|
+
Object.defineProperty(this, "cachedBoardVersion", {
|
|
89
102
|
enumerable: true,
|
|
90
103
|
configurable: true,
|
|
91
104
|
writable: true,
|
|
@@ -103,15 +116,21 @@ class MicrobitWebBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
|
103
116
|
writable: true,
|
|
104
117
|
value: void 0
|
|
105
118
|
});
|
|
119
|
+
Object.defineProperty(this, "waitForPostFlashDisconnectPromise", {
|
|
120
|
+
enumerable: true,
|
|
121
|
+
configurable: true,
|
|
122
|
+
writable: true,
|
|
123
|
+
value: void 0
|
|
124
|
+
});
|
|
106
125
|
this.logging = options.logging || new logging_js_1.ConsoleLogging();
|
|
107
126
|
this.deviceBondState =
|
|
108
127
|
options.deviceBondState || new device_bond_state_js_1.DefaultDeviceBondState();
|
|
109
128
|
}
|
|
110
129
|
eventActivated(type) {
|
|
111
|
-
this.
|
|
130
|
+
this.device?.startNotifications(type);
|
|
112
131
|
}
|
|
113
132
|
eventDeactivated(type) {
|
|
114
|
-
this.
|
|
133
|
+
this.device?.stopNotifications(type);
|
|
115
134
|
}
|
|
116
135
|
log(v) {
|
|
117
136
|
this.logging.log(v);
|
|
@@ -144,7 +163,7 @@ class MicrobitWebBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
|
144
163
|
// On Android, check if location services are enabled. This is only
|
|
145
164
|
// required on Android < 12 (API < 31), but isLocationEnabled() returns
|
|
146
165
|
// true on newer Android, so we can always check it.
|
|
147
|
-
if ((0,
|
|
166
|
+
if ((0, device_wrapper_js_1.isAndroid)()) {
|
|
148
167
|
const isLocationEnabled = await bluetooth_le_1.BleClient.isLocationEnabled();
|
|
149
168
|
if (!isLocationEnabled) {
|
|
150
169
|
return "location-disabled";
|
|
@@ -179,7 +198,8 @@ class MicrobitWebBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
|
179
198
|
}
|
|
180
199
|
}
|
|
181
200
|
getBoardVersion() {
|
|
182
|
-
|
|
201
|
+
(0, device_js_1.assertConnected)(this.cachedBoardVersion);
|
|
202
|
+
return this.cachedBoardVersion;
|
|
183
203
|
}
|
|
184
204
|
async connect(options) {
|
|
185
205
|
const progress = options?.progress ?? (() => { });
|
|
@@ -187,21 +207,26 @@ class MicrobitWebBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
|
187
207
|
// because on Android/iOS that's the appropriate time to ask for permissions.
|
|
188
208
|
progress(device_js_1.ProgressStage.Initializing);
|
|
189
209
|
(0, availability_js_1.throwIfUnavailable)(await this.checkAvailability());
|
|
190
|
-
|
|
210
|
+
// After partial flashing, we will need to wait for connection to fully
|
|
211
|
+
// disconnect before attempting to connect.
|
|
212
|
+
this.waitForPostFlashDisconnectPromise &&
|
|
213
|
+
(await this.waitForPostFlashDisconnectPromise);
|
|
214
|
+
if (!this.bleDevice || !this.device) {
|
|
191
215
|
progress(device_js_1.ProgressStage.FindingDevice);
|
|
192
216
|
const device = await this.requestDevice(options?.signal);
|
|
193
|
-
this.
|
|
194
|
-
onConnecting: () => this.setStatus(device_js_1.ConnectionStatus.
|
|
195
|
-
onSuccess: () => this.setStatus(device_js_1.ConnectionStatus.
|
|
196
|
-
onDisconnect: () => this.setStatus(device_js_1.ConnectionStatus.
|
|
217
|
+
this.device = new device_wrapper_js_1.BluetoothDeviceWrapper(device, this.logging, this.deviceBondState, this.dispatchEvent.bind(this), () => this.getActiveEvents(), {
|
|
218
|
+
onConnecting: () => this.setStatus(device_js_1.ConnectionStatus.Connecting),
|
|
219
|
+
onSuccess: () => this.setStatus(device_js_1.ConnectionStatus.Connected),
|
|
220
|
+
onDisconnect: () => this.setStatus(device_js_1.ConnectionStatus.Disconnected),
|
|
197
221
|
});
|
|
198
222
|
}
|
|
199
|
-
await this.
|
|
223
|
+
await this.device.connect(options);
|
|
224
|
+
this.cachedBoardVersion = this.device.boardVersion;
|
|
200
225
|
}
|
|
201
226
|
async disconnect() {
|
|
202
227
|
try {
|
|
203
|
-
if (this.
|
|
204
|
-
await this.
|
|
228
|
+
if (this.device) {
|
|
229
|
+
await this.device.disconnect();
|
|
205
230
|
}
|
|
206
231
|
}
|
|
207
232
|
catch (e) {
|
|
@@ -211,7 +236,7 @@ class MicrobitWebBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
|
211
236
|
});
|
|
212
237
|
}
|
|
213
238
|
finally {
|
|
214
|
-
this.setStatus(device_js_1.ConnectionStatus.
|
|
239
|
+
this.setStatus(device_js_1.ConnectionStatus.Disconnected);
|
|
215
240
|
this.logging.event({
|
|
216
241
|
type: "Bluetooth-info",
|
|
217
242
|
message: "disconnected",
|
|
@@ -223,105 +248,118 @@ class MicrobitWebBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
|
223
248
|
this.status = newStatus;
|
|
224
249
|
this.log("Bluetooth connection status " + newStatus);
|
|
225
250
|
if (this.deferredUpdatesPreviousStatus === undefined) {
|
|
226
|
-
this.
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
if (this.connection) {
|
|
231
|
-
// TODO
|
|
251
|
+
this.dispatchEvent("status", {
|
|
252
|
+
status: newStatus,
|
|
253
|
+
previousStatus,
|
|
254
|
+
});
|
|
232
255
|
}
|
|
233
|
-
return Promise.resolve();
|
|
234
256
|
}
|
|
235
257
|
async clearDevice() {
|
|
236
258
|
await this.disconnect();
|
|
237
|
-
this.
|
|
238
|
-
this.
|
|
259
|
+
this.bleDevice = undefined;
|
|
260
|
+
this.cachedBoardVersion = undefined;
|
|
261
|
+
this.setStatus(device_js_1.ConnectionStatus.NoAuthorizedDevice);
|
|
239
262
|
}
|
|
240
263
|
setNameFilter(name) {
|
|
241
264
|
this.nameFilter = name;
|
|
242
265
|
}
|
|
243
266
|
async requestDevice(signal) {
|
|
244
|
-
//
|
|
267
|
+
// Support both the default "BBC micro:bit" name and the shorter "uBit"
|
|
268
|
+
// name used by some MakeCode extensions (e.g. bsiever/microbit-pxt-blehid).
|
|
245
269
|
// See https://github.com/bsiever/microbit-pxt-blehid/issues/31
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
const namePrefix = this.nameFilter
|
|
250
|
-
? `BBC micro:bit [${this.nameFilter}]`
|
|
251
|
-
: "BBC micro:bit";
|
|
270
|
+
const namePrefixes = this.nameFilter
|
|
271
|
+
? [`BBC micro:bit [${this.nameFilter}]`, `uBit [${this.nameFilter}]`]
|
|
272
|
+
: ["BBC micro:bit", "uBit"];
|
|
252
273
|
// If we have a cached device, check if it still matches the current filter.
|
|
253
274
|
// If not, clear it so we find a new device.
|
|
254
|
-
if (this.
|
|
255
|
-
if (this.
|
|
256
|
-
return this.
|
|
275
|
+
if (this.bleDevice) {
|
|
276
|
+
if (namePrefixes.some((p) => this.bleDevice.name?.startsWith(p))) {
|
|
277
|
+
return this.bleDevice;
|
|
257
278
|
}
|
|
258
|
-
this.log(`Cached device "${this.
|
|
279
|
+
this.log(`Cached device "${this.bleDevice.name}" doesn't match filters "${namePrefixes.join(", ")}", clearing`);
|
|
259
280
|
await this.clearDevice();
|
|
260
281
|
}
|
|
261
|
-
this.
|
|
282
|
+
this.dispatchEvent("beforerequestdevice");
|
|
262
283
|
try {
|
|
263
|
-
this.
|
|
264
|
-
? await this.requestDeviceNative(
|
|
265
|
-
: await this.requestDeviceWeb(
|
|
266
|
-
if (!this.
|
|
267
|
-
this.setStatus(device_js_1.ConnectionStatus.
|
|
284
|
+
this.bleDevice = core_1.Capacitor.isNativePlatform()
|
|
285
|
+
? await this.requestDeviceNative(namePrefixes, signal)
|
|
286
|
+
: await this.requestDeviceWeb(namePrefixes);
|
|
287
|
+
if (!this.bleDevice) {
|
|
288
|
+
this.setStatus(device_js_1.ConnectionStatus.NoAuthorizedDevice);
|
|
268
289
|
throw new device_js_1.DeviceError({
|
|
269
290
|
code: "no-device-selected",
|
|
270
291
|
message: "No device selected",
|
|
271
292
|
});
|
|
272
293
|
}
|
|
273
|
-
return this.
|
|
294
|
+
return this.bleDevice;
|
|
274
295
|
}
|
|
275
296
|
finally {
|
|
276
|
-
this.
|
|
297
|
+
this.dispatchEvent("afterrequestdevice");
|
|
277
298
|
}
|
|
278
299
|
}
|
|
279
300
|
async getAccelerometerData() {
|
|
280
|
-
|
|
301
|
+
(0, device_js_1.assertConnected)(this.device);
|
|
302
|
+
return this.device.accelerometer.getData();
|
|
281
303
|
}
|
|
282
304
|
async getAccelerometerPeriod() {
|
|
283
|
-
|
|
305
|
+
(0, device_js_1.assertConnected)(this.device);
|
|
306
|
+
return this.device.accelerometer.getPeriod();
|
|
284
307
|
}
|
|
285
308
|
async setAccelerometerPeriod(value) {
|
|
286
|
-
|
|
309
|
+
(0, device_js_1.assertConnected)(this.device);
|
|
310
|
+
return this.device.accelerometer.setPeriod(value);
|
|
287
311
|
}
|
|
288
312
|
async setLedText(text) {
|
|
289
|
-
|
|
313
|
+
(0, device_js_1.assertConnected)(this.device);
|
|
314
|
+
return this.device.led.setText(text);
|
|
290
315
|
}
|
|
291
316
|
async getLedScrollingDelay() {
|
|
292
|
-
|
|
317
|
+
(0, device_js_1.assertConnected)(this.device);
|
|
318
|
+
return this.device.led.getScrollingDelay();
|
|
293
319
|
}
|
|
294
320
|
async setLedScrollingDelay(delayInMillis) {
|
|
295
|
-
|
|
321
|
+
(0, device_js_1.assertConnected)(this.device);
|
|
322
|
+
await this.device.led.setScrollingDelay(delayInMillis);
|
|
296
323
|
}
|
|
297
324
|
async getLedMatrix() {
|
|
298
|
-
|
|
325
|
+
(0, device_js_1.assertConnected)(this.device);
|
|
326
|
+
return await this.device.led.getLedMatrix();
|
|
299
327
|
}
|
|
300
328
|
async setLedMatrix(matrix) {
|
|
301
|
-
|
|
329
|
+
(0, device_js_1.assertConnected)(this.device);
|
|
330
|
+
await this.device.led.setLedMatrix(matrix);
|
|
302
331
|
}
|
|
303
332
|
async getMagnetometerData() {
|
|
304
|
-
|
|
333
|
+
(0, device_js_1.assertConnected)(this.device);
|
|
334
|
+
return this.device.magnetometer.getData();
|
|
305
335
|
}
|
|
306
336
|
async getMagnetometerPeriod() {
|
|
307
|
-
|
|
337
|
+
(0, device_js_1.assertConnected)(this.device);
|
|
338
|
+
return this.device.magnetometer.getPeriod();
|
|
308
339
|
}
|
|
309
340
|
async setMagnetometerPeriod(value) {
|
|
310
|
-
|
|
341
|
+
(0, device_js_1.assertConnected)(this.device);
|
|
342
|
+
return this.device.magnetometer.setPeriod(value);
|
|
311
343
|
}
|
|
312
344
|
async getMagnetometerBearing() {
|
|
313
|
-
|
|
345
|
+
(0, device_js_1.assertConnected)(this.device);
|
|
346
|
+
return this.device.magnetometer.getBearing();
|
|
314
347
|
}
|
|
315
348
|
async triggerMagnetometerCalibration() {
|
|
316
|
-
|
|
349
|
+
(0, device_js_1.assertConnected)(this.device);
|
|
350
|
+
await this.device.magnetometer.triggerCalibration();
|
|
317
351
|
}
|
|
318
352
|
async uartWrite(data) {
|
|
319
|
-
|
|
353
|
+
(0, device_js_1.assertConnected)(this.device);
|
|
354
|
+
await this.device.uart.writeData(data);
|
|
320
355
|
}
|
|
321
356
|
/**
|
|
322
357
|
* Flash the micro:bit.
|
|
323
358
|
*
|
|
324
|
-
*
|
|
359
|
+
* Always leaves the connection in {@link ConnectionStatus.Disconnected} state.
|
|
360
|
+
* Bluetooth connects directly to the application processor, which reboots
|
|
361
|
+
* after flashing, so the connection is necessarily lost. Call {@link connect}
|
|
362
|
+
* again after flashing to reconnect.
|
|
325
363
|
*
|
|
326
364
|
* @param dataSource The data to use.
|
|
327
365
|
* @param options Flash options and progress callback.
|
|
@@ -331,10 +369,10 @@ class MicrobitWebBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
|
331
369
|
try {
|
|
332
370
|
// We'll disconnect/reconnect multiple times due to device resets, but reporting this is unhelpful.
|
|
333
371
|
this.deferredUpdatesPreviousStatus = this.status;
|
|
334
|
-
if (this.status !== device_js_1.ConnectionStatus.
|
|
372
|
+
if (this.status !== device_js_1.ConnectionStatus.Connected) {
|
|
335
373
|
await this.connect({ progress, signal: options.signal });
|
|
336
374
|
}
|
|
337
|
-
const connection = this.
|
|
375
|
+
const connection = this.device;
|
|
338
376
|
try {
|
|
339
377
|
const boardVersion = connection.boardVersion;
|
|
340
378
|
if (!boardVersion) {
|
|
@@ -347,7 +385,7 @@ class MicrobitWebBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
|
347
385
|
if (!memoryMap) {
|
|
348
386
|
throw new device_js_1.FlashDataError("Could not convert hex to memory map");
|
|
349
387
|
}
|
|
350
|
-
if (!this.
|
|
388
|
+
if (!this.bleDevice) {
|
|
351
389
|
throw new device_js_1.DeviceError({
|
|
352
390
|
code: "device-disconnected",
|
|
353
391
|
message: "No device",
|
|
@@ -358,10 +396,32 @@ class MicrobitWebBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
|
358
396
|
if (partialFlashResult === flashing_partial_js_1.PartialFlashResult.AttemptFullFlash) {
|
|
359
397
|
await (0, flashing_full_js_1.fullFlash)(connection, boardVersion, memoryMap, progress);
|
|
360
398
|
}
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
399
|
+
this.dispatchEvent("flash");
|
|
400
|
+
if (partialFlashResult === flashing_partial_js_1.PartialFlashResult.AlreadyUpToDate ||
|
|
401
|
+
partialFlashResult === flashing_partial_js_1.PartialFlashResult.Success) {
|
|
402
|
+
this.waitForPostFlashDisconnectPromise = (async () => {
|
|
403
|
+
try {
|
|
404
|
+
if (connection.connected) {
|
|
405
|
+
this.log("Wait for post partial flash disconnect...");
|
|
406
|
+
await connection.waitForDisconnect(10_000);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
catch (e) {
|
|
410
|
+
if (e instanceof async_util_js_1.TimeoutError) {
|
|
411
|
+
this.log("Wait for post partial flash disconnect timed out.");
|
|
412
|
+
}
|
|
413
|
+
else {
|
|
414
|
+
this.error("Error waiting for post partial flash disconnect", e);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
finally {
|
|
418
|
+
this.waitForPostFlashDisconnectPromise = undefined;
|
|
419
|
+
if (connection.connected) {
|
|
420
|
+
await this.disconnect();
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
})();
|
|
424
|
+
this.setStatus(device_js_1.ConnectionStatus.Disconnected);
|
|
365
425
|
}
|
|
366
426
|
}
|
|
367
427
|
catch (e) {
|
|
@@ -369,13 +429,18 @@ class MicrobitWebBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
|
369
429
|
throw e;
|
|
370
430
|
}
|
|
371
431
|
finally {
|
|
372
|
-
|
|
432
|
+
if (!this.waitForPostFlashDisconnectPromise) {
|
|
433
|
+
await this.disconnect();
|
|
434
|
+
}
|
|
373
435
|
}
|
|
374
436
|
}
|
|
375
437
|
finally {
|
|
376
438
|
const previousStatus = this.deferredUpdatesPreviousStatus;
|
|
377
439
|
this.deferredUpdatesPreviousStatus = undefined;
|
|
378
|
-
this.
|
|
440
|
+
this.dispatchEvent("status", {
|
|
441
|
+
status: this.status,
|
|
442
|
+
previousStatus,
|
|
443
|
+
});
|
|
379
444
|
}
|
|
380
445
|
}
|
|
381
446
|
/**
|
|
@@ -383,22 +448,33 @@ class MicrobitWebBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
|
383
448
|
*
|
|
384
449
|
* @returns device or undefined if user cancels.
|
|
385
450
|
*/
|
|
386
|
-
async requestDeviceWeb(
|
|
451
|
+
async requestDeviceWeb(namePrefixes) {
|
|
452
|
+
const optionalServices = [
|
|
453
|
+
profile_js_1.profile.accelerometer.id,
|
|
454
|
+
profile_js_1.profile.button.id,
|
|
455
|
+
profile_js_1.profile.deviceInformation.id,
|
|
456
|
+
profile_js_1.profile.dfuControl.id,
|
|
457
|
+
profile_js_1.profile.event.id,
|
|
458
|
+
profile_js_1.profile.ioPin.id,
|
|
459
|
+
profile_js_1.profile.led.id,
|
|
460
|
+
profile_js_1.profile.magnetometer.id,
|
|
461
|
+
profile_js_1.profile.temperature.id,
|
|
462
|
+
profile_js_1.profile.uart.id,
|
|
463
|
+
];
|
|
464
|
+
// Temporarily patch navigator.bluetooth.requestDevice to support multiple
|
|
465
|
+
// name prefix filters. The capacitor-ble plugin only supports a single
|
|
466
|
+
// namePrefix, but the Web Bluetooth API supports a filters array.
|
|
467
|
+
// By patching at this level the plugin's internal deviceMap is populated
|
|
468
|
+
// naturally when its own requestDevice completes.
|
|
469
|
+
const orig = navigator.bluetooth.requestDevice.bind(navigator.bluetooth);
|
|
387
470
|
try {
|
|
471
|
+
navigator.bluetooth.requestDevice = (options) => orig({
|
|
472
|
+
...options,
|
|
473
|
+
filters: namePrefixes.map((namePrefix) => ({ namePrefix })),
|
|
474
|
+
});
|
|
388
475
|
return await bluetooth_le_1.BleClient.requestDevice({
|
|
389
|
-
namePrefix,
|
|
390
|
-
optionalServices
|
|
391
|
-
bluetooth_profile_js_1.profile.accelerometer.id,
|
|
392
|
-
bluetooth_profile_js_1.profile.button.id,
|
|
393
|
-
bluetooth_profile_js_1.profile.deviceInformation.id,
|
|
394
|
-
bluetooth_profile_js_1.profile.dfuControl.id,
|
|
395
|
-
bluetooth_profile_js_1.profile.event.id,
|
|
396
|
-
bluetooth_profile_js_1.profile.ioPin.id,
|
|
397
|
-
bluetooth_profile_js_1.profile.led.id,
|
|
398
|
-
bluetooth_profile_js_1.profile.magnetometer.id,
|
|
399
|
-
bluetooth_profile_js_1.profile.temperature.id,
|
|
400
|
-
bluetooth_profile_js_1.profile.uart.id,
|
|
401
|
-
],
|
|
476
|
+
namePrefix: namePrefixes[0],
|
|
477
|
+
optionalServices,
|
|
402
478
|
});
|
|
403
479
|
}
|
|
404
480
|
catch (e) {
|
|
@@ -407,6 +483,9 @@ class MicrobitWebBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
|
407
483
|
}
|
|
408
484
|
throw e;
|
|
409
485
|
}
|
|
486
|
+
finally {
|
|
487
|
+
navigator.bluetooth.requestDevice = orig;
|
|
488
|
+
}
|
|
410
489
|
}
|
|
411
490
|
/**
|
|
412
491
|
* Finds device with specified name prefix.
|
|
@@ -414,19 +493,17 @@ class MicrobitWebBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
|
414
493
|
* @returns device or undefined if none can be found.
|
|
415
494
|
* @throws DeviceError with code "aborted" if signal is aborted.
|
|
416
495
|
*/
|
|
417
|
-
async requestDeviceNative(
|
|
496
|
+
async requestDeviceNative(namePrefixes, signal) {
|
|
418
497
|
if (signal?.aborted) {
|
|
419
498
|
throw new device_js_1.DeviceError({ code: "aborted", message: "Connection aborted" });
|
|
420
499
|
}
|
|
500
|
+
const matchesAnyPrefix = (name) => !!name && namePrefixes.some((p) => name.startsWith(p));
|
|
421
501
|
// Check for existing bonded devices.
|
|
422
|
-
const bonded = await this.checkBondedDevices((device) =>
|
|
423
|
-
const name = device.name;
|
|
424
|
-
return !!name && name.startsWith(namePrefix);
|
|
425
|
-
});
|
|
502
|
+
const bonded = await this.checkBondedDevices((device) => matchesAnyPrefix(device.name));
|
|
426
503
|
if (bonded) {
|
|
427
504
|
return bonded;
|
|
428
505
|
}
|
|
429
|
-
this.log(`Scanning for device - ${
|
|
506
|
+
this.log(`Scanning for device - ${namePrefixes.join(", ")}`);
|
|
430
507
|
let found = false;
|
|
431
508
|
let aborted = false;
|
|
432
509
|
const scanPromise = new Promise((resolve) =>
|
|
@@ -436,8 +513,8 @@ class MicrobitWebBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
|
436
513
|
// isn't matched by the name filter but the advertising name is in the
|
|
437
514
|
// localName on the device. So we filter here instead. This happens on
|
|
438
515
|
// iOS if DFU fails / is interrupted.
|
|
439
|
-
if (result.device.name
|
|
440
|
-
result.localName
|
|
516
|
+
if (matchesAnyPrefix(result.device.name) ||
|
|
517
|
+
matchesAnyPrefix(result.localName)) {
|
|
441
518
|
found = true;
|
|
442
519
|
await bluetooth_le_1.BleClient.stopLEScan();
|
|
443
520
|
resolve(result.device);
|
|
@@ -457,11 +534,11 @@ class MicrobitWebBluetoothConnectionImpl extends events_js_1.TypedEventTarget {
|
|
|
457
534
|
this.log("Timeout scanning for device");
|
|
458
535
|
resolve(undefined);
|
|
459
536
|
}
|
|
460
|
-
},
|
|
537
|
+
}, device_wrapper_js_1.scanningTimeoutInMs));
|
|
461
538
|
return await Promise.race([scanPromise, scanTimeoutPromise, abortPromise]);
|
|
462
539
|
}
|
|
463
540
|
async checkBondedDevices(predicate) {
|
|
464
|
-
if (!(0,
|
|
541
|
+
if (!(0, device_wrapper_js_1.isAndroid)()) {
|
|
465
542
|
// Not supported.
|
|
466
543
|
return undefined;
|
|
467
544
|
}
|
|
@@ -480,6 +557,6 @@ const convertDataToMemoryMap = (data) => {
|
|
|
480
557
|
if (data instanceof Uint8Array) {
|
|
481
558
|
return nrf_intel_hex_1.default.fromPaddedUint8Array(data);
|
|
482
559
|
}
|
|
483
|
-
return nrf_intel_hex_1.default.fromHex((0,
|
|
560
|
+
return nrf_intel_hex_1.default.fromHex((0, hex_util_js_1.truncateHexAfterEof)(data));
|
|
484
561
|
};
|
|
485
|
-
//# sourceMappingURL=
|
|
562
|
+
//# sourceMappingURL=connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/bluetooth/connection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,oEAAyE;AACzE,0CAA4C;AAC5C,kEAAsC;AACtC,2DAI6B;AAC7B,6CAAuC;AACvC,4CAcsB;AACtB,4CAAgD;AAChD,8CAAwD;AACxD,kEAAwD;AACxD,sFAEwC;AASxC,wDAAwD;AACxD,gDAAqD;AACrD,iEAGgC;AAChC,oDAAgD;AAIhD,IAAI,oBAAoB,GAAG,KAAK,CAAC;AAkIjC;;GAEG;AACI,MAAM,yBAAyB,GAAG,CACvC,OAA4C,EACf,EAAE,CAAC,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAC;AAFlE,QAAA,yBAAyB,6BAEyC;AAE/E;;GAEG;AACH,MAAM,+BACJ,SAAQ,4BAAsE;IA2B9E,YAAY,UAA8C,EAAE;QAC1D,KAAK,EAAE,CAAC;QAzBV;;;;mBAA2B,4BAAgB,CAAC,kBAAkB;WAAC;QAE/D;;;WAGG;QACK;;;;;WAAiC;QAEjC;;;;;WAAiB;QACjB;;;;;WAAiC;QACzC;;WAEG;QACK;;;;;WAA2C;QAEnD;;WAEG;QACK;;;;;WAA6C;QAE7C;;;;;WAA+B;QAC/B;;;;;WAA4D;QAC5D;;;;;WAA6D;QAInE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,2BAAc,EAAE,CAAC;QACvD,IAAI,CAAC,eAAe;YAClB,OAAO,CAAC,eAAe,IAAI,IAAI,6CAAsB,EAAE,CAAC;IAC5D,CAAC;IAES,cAAc,CAAC,IAAY;QACnC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAyB,CAAC,CAAC;IAC7D,CAAC;IAES,gBAAgB,CAAC,IAAY;QACrC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAyB,CAAC,CAAC;IAC5D,CAAC;IAEO,GAAG,CAAC,CAAM;QAChB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,OAAe,EAAE,CAAW;QACxC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,UAAU,KAAmB,CAAC;IAEpC,OAAO,KAAI,CAAC;IAEZ,KAAK,CAAC,iBAAiB;QACrB,IAAI,gBAAS,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,gCAAgC,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC,6BAA6B,EAAE,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,6BAA6B;QACzC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YACzB,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;YAC9D,OAAO,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gCAAgC;QAC5C,IAAI,CAAC;YACH,mEAAmE;YACnE,uEAAuE;YACvE,oDAAoD;YACpD,IAAI,IAAA,6BAAS,GAAE,EAAE,CAAC;gBAChB,MAAM,iBAAiB,GAAG,MAAM,wBAAS,CAAC,iBAAiB,EAAE,CAAC;gBAC9D,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,OAAO,mBAAmB,CAAC;gBAC7B,CAAC;YACH,CAAC;YAED,qEAAqE;YACrE,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1B,MAAM,wBAAS,CAAC,UAAU,CAAC,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9D,oBAAoB,GAAG,IAAI,CAAC;YAC9B,CAAC;YAED,iCAAiC;YACjC,MAAM,kBAAkB,GAAG,MAAM,wBAAS,CAAC,SAAS,EAAE,CAAC;YACvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,OAAO,UAAU,CAAC;YACpB,CAAC;YAED,OAAO,WAAW,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,yEAAyE;YACzE,qEAAqE;YACrE,+FAA+F;YAC/F,MAAM,YAAY,GAChB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAoB,EAAE,OAAO,IAAI,EAAE,CAAC;YACxE,IAAI,CAAC,GAAG,CAAC,yCAAyC,YAAY,GAAG,CAAC,CAAC;YAEnE,IAAI,YAAY,KAAK,uBAAuB,EAAE,CAAC;gBAC7C,OAAO,mBAAmB,CAAC;YAC7B,CAAC;YACD,IAAI,YAAY,KAAK,iBAAiB,EAAE,CAAC;gBACvC,OAAO,aAAa,CAAC;YACvB,CAAC;YAED,+CAA+C;YAC/C,OAAO,mBAAmB,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,eAAe;QACb,IAAA,2BAAe,EAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAwB;QACpC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEjD,8EAA8E;QAC9E,6EAA6E;QAC7E,QAAQ,CAAC,yBAAa,CAAC,YAAY,CAAC,CAAC;QACrC,IAAA,oCAAkB,EAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAEnD,uEAAuE;QACvE,2CAA2C;QAC3C,IAAI,CAAC,iCAAiC;YACpC,CAAC,MAAM,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAEjD,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,QAAQ,CAAC,yBAAa,CAAC,aAAa,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,GAAG,IAAI,0CAAsB,CACtC,MAAM,EACN,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAC7B,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAA4C,EACtE;gBACE,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,4BAAgB,CAAC,UAAU,CAAC;gBAC/D,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,4BAAgB,CAAC,SAAS,CAAC;gBAC3D,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,4BAAgB,CAAC,YAAY,CAAC;aAClE,CACF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBACjB,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,qBAAqB;aAC/B,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,CAAC,4BAAgB,CAAC,YAAY,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBACjB,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,cAAc;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,SAA2B;QAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,8BAA8B,GAAG,SAAS,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,6BAA6B,KAAK,SAAS,EAAE,CAAC;YACrD,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAC3B,MAAM,EAAE,SAAS;gBACjB,cAAc;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,4BAAgB,CAAC,kBAAkB,CAAC,CAAC;IACtD,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAoB;QAC9C,uEAAuE;QACvE,4EAA4E;QAC5E,+DAA+D;QAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU;YAClC,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,UAAU,GAAG,EAAE,SAAS,IAAI,CAAC,UAAU,GAAG,CAAC;YACrE,CAAC,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAE9B,4EAA4E;QAC5E,4CAA4C;QAC5C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB,CAAC;YACD,IAAI,CAAC,GAAG,CACN,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,4BAA4B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CACtG,CAAC;YACF,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,GAAG,gBAAS,CAAC,gBAAgB,EAAE;gBAC3C,CAAC,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC;gBACtD,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,4BAAgB,CAAC,kBAAkB,CAAC,CAAC;gBACpD,MAAM,IAAI,uBAAW,CAAC;oBACpB,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EAAE,oBAAoB;iBAC9B,CAAC,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,IAAA,2BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,IAAA,2BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,KAAa;QACxC,IAAA,2BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,IAAA,2BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,IAAA,2BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,aAAqB;QAC9C,IAAA,2BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAA,2BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAiB;QAClC,IAAA,2BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,IAAA,2BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,IAAA,2BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,KAAa;QACvC,IAAA,2BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,IAAA,2BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,8BAA8B;QAClC,IAAA,2BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAgB;QAC9B,IAAA,2BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,CACT,UAA2B,EAC3B,UAAwB,EAAE;QAE1B,MAAM,QAAQ,GAAqB,OAAO,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,mGAAmG;YACnG,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,MAAM,CAAC;YAEjD,IAAI,IAAI,CAAC,MAAM,KAAK,4BAAgB,CAAC,SAAS,EAAE,CAAC;gBAC/C,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,MAAO,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;gBAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,MAAM,IAAI,uBAAW,CAAC;wBACpB,IAAI,EAAE,qBAAqB;wBAC3B,OAAO,EAAE,wBAAwB;qBAClC,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,SAAS,GAAG,sBAAsB,CACtC,MAAM,UAAU,CAAC,YAAY,CAAC,CAC/B,CAAC;gBACF,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,MAAM,IAAI,0BAAc,CAAC,qCAAqC,CAAC,CAAC;gBAClE,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;oBACpB,MAAM,IAAI,uBAAW,CAAC;wBACpB,IAAI,EAAE,qBAAqB;wBAC3B,OAAO,EAAE,WAAW;qBACrB,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;gBAE9C,MAAM,kBAAkB,GAAG,MAAM,IAAA,6BAAY,EAC3C,UAAU,EACV,YAAY,EACZ,SAAS,EACT,QAAQ,CACT,CAAC;gBAEF,IAAI,kBAAkB,KAAK,wCAAkB,CAAC,gBAAgB,EAAE,CAAC;oBAC/D,MAAM,IAAA,4BAAS,EAAC,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACjE,CAAC;gBAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAE5B,IACE,kBAAkB,KAAK,wCAAkB,CAAC,eAAe;oBACzD,kBAAkB,KAAK,wCAAkB,CAAC,OAAO,EACjD,CAAC;oBACD,IAAI,CAAC,iCAAiC,GAAG,CAAC,KAAK,IAAI,EAAE;wBACnD,IAAI,CAAC;4BACH,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gCACzB,IAAI,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;gCACtD,MAAM,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;4BAC7C,CAAC;wBACH,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,IAAI,CAAC,YAAY,4BAAY,EAAE,CAAC;gCAC9B,IAAI,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;4BAChE,CAAC;iCAAM,CAAC;gCACN,IAAI,CAAC,KAAK,CACR,iDAAiD,EACjD,CAAC,CACF,CAAC;4BACJ,CAAC;wBACH,CAAC;gCAAS,CAAC;4BACT,IAAI,CAAC,iCAAiC,GAAG,SAAS,CAAC;4BACnD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gCACzB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;4BAC1B,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,EAAE,CAAC;oBACL,IAAI,CAAC,SAAS,CAAC,4BAAgB,CAAC,YAAY,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;gBACjC,MAAM,CAAC,CAAC;YACV,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,IAAI,CAAC,iCAAiC,EAAE,CAAC;oBAC5C,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,cAAc,GAAG,IAAI,CAAC,6BAA8B,CAAC;YAC3D,IAAI,CAAC,6BAA6B,GAAG,SAAS,CAAC;YAC/C,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,cAAc;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB,CAC5B,YAAsB;QAEtB,MAAM,gBAAgB,GAAG;YACvB,oBAAO,CAAC,aAAa,CAAC,EAAE;YACxB,oBAAO,CAAC,MAAM,CAAC,EAAE;YACjB,oBAAO,CAAC,iBAAiB,CAAC,EAAE;YAC5B,oBAAO,CAAC,UAAU,CAAC,EAAE;YACrB,oBAAO,CAAC,KAAK,CAAC,EAAE;YAChB,oBAAO,CAAC,KAAK,CAAC,EAAE;YAChB,oBAAO,CAAC,GAAG,CAAC,EAAE;YACd,oBAAO,CAAC,YAAY,CAAC,EAAE;YACvB,oBAAO,CAAC,WAAW,CAAC,EAAE;YACtB,oBAAO,CAAC,IAAI,CAAC,EAAE;SAChB,CAAC;QACF,0EAA0E;QAC1E,uEAAuE;QACvE,kEAAkE;QAClE,yEAAyE;QACzE,kDAAkD;QAClD,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC;YACH,SAAS,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,OAA8B,EAAE,EAAE,CACrE,IAAI,CAAC;gBACH,GAAG,OAAO;gBACV,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;aAC5D,CAAC,CAAC;YACL,OAAO,MAAM,wBAAS,CAAC,aAAa,CAAC;gBACnC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;gBAC3B,gBAAgB;aACjB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC5D,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;gBAAS,CAAC;YACT,SAAS,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,mBAAmB,CAC/B,YAAsB,EACtB,MAAoB;QAEpB,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,uBAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,gBAAgB,GAAG,CAAC,IAAwB,EAAE,EAAE,CACpD,CAAC,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzD,qCAAqC;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAiB,EAAE,EAAE,CACjE,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAC9B,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,yBAAyB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,WAAW,GAAuB,IAAI,OAAO,CACjD,CAAC,OAAO,EAAE,EAAE;QACV,4CAA4C;QAC5C,KAAK,wBAAS,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAChD,qEAAqE;YACrE,sEAAsE;YACtE,uEAAuE;YACvE,qCAAqC;YACrC,IACE,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACpC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,EAClC,CAAC;gBACD,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM,wBAAS,CAAC,UAAU,EAAE,CAAC;gBAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CACL,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YACpD,MAAM,EAAE,gBAAgB,CACtB,OAAO,EACP,KAAK,IAAI,EAAE;gBACT,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,wBAAS,CAAC,UAAU,EAAE,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBACvC,MAAM,CACJ,IAAI,uBAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CACpE,CAAC;YACJ,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAuB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACrE,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvB,MAAM,wBAAS,CAAC,UAAU,EAAE,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;gBACxC,OAAO,CAAC,SAAS,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,EAAE,uCAAmB,CAAC,CACxB,CAAC;QACF,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7E,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,SAAyC;QACxE,IAAI,CAAC,IAAA,6BAAS,GAAE,EAAE,CAAC;YACjB,iBAAiB;YACjB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,wBAAS,CAAC,gBAAgB,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,CACN,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,2BAA2B;YAC7B,CAAC,CAAC,8BAA8B,CACnC,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,MAAM,sBAAsB,GAAG,CAC7B,IAAqC,EAC1B,EAAE;IACb,IAAI,IAAI,YAAY,uBAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC/B,OAAO,uBAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,uBAAS,CAAC,OAAO,CAAC,IAAA,iCAAmB,EAAC,IAAI,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
4
|
+
* (c) 2021, Micro:bit Educational Foundation and contributors
|
|
5
|
+
*
|
|
6
|
+
* SPDX-License-Identifier: MIT
|
|
7
|
+
*/
|
|
8
|
+
const device_js_1 = require("../device.js");
|
|
9
|
+
const connection_js_1 = require("./connection.js");
|
|
10
|
+
const vitest_1 = require("vitest");
|
|
11
|
+
// Mock Capacitor
|
|
12
|
+
vitest_1.vi.mock("@capacitor/core", () => ({
|
|
13
|
+
Capacitor: {
|
|
14
|
+
isNativePlatform: () => false,
|
|
15
|
+
getPlatform: () => "web",
|
|
16
|
+
},
|
|
17
|
+
}));
|
|
18
|
+
// Mock BleClient
|
|
19
|
+
vitest_1.vi.mock("@capacitor-community/bluetooth-le", () => ({
|
|
20
|
+
BleClient: {
|
|
21
|
+
initialize: vitest_1.vi.fn().mockResolvedValue(undefined),
|
|
22
|
+
isEnabled: vitest_1.vi.fn().mockResolvedValue(true),
|
|
23
|
+
requestDevice: vitest_1.vi.fn(),
|
|
24
|
+
connect: vitest_1.vi.fn(),
|
|
25
|
+
disconnect: vitest_1.vi.fn().mockResolvedValue(undefined),
|
|
26
|
+
getServices: vitest_1.vi.fn().mockResolvedValue([]),
|
|
27
|
+
},
|
|
28
|
+
}));
|
|
29
|
+
// Mock flashing modules
|
|
30
|
+
vitest_1.vi.mock("./flashing/flashing-partial.js", () => ({
|
|
31
|
+
default: vitest_1.vi.fn(),
|
|
32
|
+
PartialFlashResult: { AttemptFullFlash: "AttemptFullFlash" },
|
|
33
|
+
}));
|
|
34
|
+
vitest_1.vi.mock("./flashing/flashing-full.js", () => ({
|
|
35
|
+
fullFlash: vitest_1.vi.fn(),
|
|
36
|
+
}));
|
|
37
|
+
const setupNavigatorMock = () => {
|
|
38
|
+
Object.defineProperty(globalThis, "navigator", {
|
|
39
|
+
value: {
|
|
40
|
+
bluetooth: {
|
|
41
|
+
getAvailability: vitest_1.vi.fn().mockResolvedValue(true),
|
|
42
|
+
addEventListener: vitest_1.vi.fn(),
|
|
43
|
+
removeEventListener: vitest_1.vi.fn(),
|
|
44
|
+
requestDevice: vitest_1.vi.fn(),
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
writable: true,
|
|
48
|
+
configurable: true,
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
(0, vitest_1.describe)("Bluetooth connection status events", () => {
|
|
52
|
+
(0, vitest_1.it)("emits status events with correct previousStatus", async () => {
|
|
53
|
+
setupNavigatorMock();
|
|
54
|
+
const connection = (0, connection_js_1.createBluetoothConnection)();
|
|
55
|
+
await connection.initialize();
|
|
56
|
+
(0, vitest_1.expect)(connection.status).toBe(device_js_1.ConnectionStatus.NoAuthorizedDevice);
|
|
57
|
+
const events = [];
|
|
58
|
+
connection.addEventListener("status", (e) => {
|
|
59
|
+
events.push(e);
|
|
60
|
+
});
|
|
61
|
+
await connection.disconnect();
|
|
62
|
+
(0, vitest_1.expect)(events).toHaveLength(1);
|
|
63
|
+
(0, vitest_1.expect)(events[0].status).toBe(device_js_1.ConnectionStatus.Disconnected);
|
|
64
|
+
(0, vitest_1.expect)(events[0].previousStatus).toBe(device_js_1.ConnectionStatus.NoAuthorizedDevice);
|
|
65
|
+
});
|
|
66
|
+
(0, vitest_1.it)("defers status updates during flash, emitting single catch-up event", async () => {
|
|
67
|
+
setupNavigatorMock();
|
|
68
|
+
const connection = (0, connection_js_1.createBluetoothConnection)();
|
|
69
|
+
await connection.initialize();
|
|
70
|
+
const statusBeforeFlash = connection.status;
|
|
71
|
+
(0, vitest_1.expect)(statusBeforeFlash).toBe(device_js_1.ConnectionStatus.NoAuthorizedDevice);
|
|
72
|
+
const events = [];
|
|
73
|
+
connection.addEventListener("status", (e) => {
|
|
74
|
+
events.push(e);
|
|
75
|
+
});
|
|
76
|
+
// flash() will fail but the finally block still emits a catch-up event
|
|
77
|
+
try {
|
|
78
|
+
await connection.flash(async () => "mock-hex-data", {});
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// Expected to fail
|
|
82
|
+
}
|
|
83
|
+
// Should have exactly one catch-up event with correct previousStatus
|
|
84
|
+
(0, vitest_1.expect)(events).toHaveLength(1);
|
|
85
|
+
(0, vitest_1.expect)(events[0].previousStatus).toBe(statusBeforeFlash);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=connection.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.test.js","sourceRoot":"","sources":["../../../src/bluetooth/connection.test.ts"],"names":[],"mappings":"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"}
|