@microbit/microbit-connection 0.9.0-apps.alpha.2 → 0.9.0-apps.alpha.20
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.d.ts +3 -1
- package/build/cjs/async-util.js +5 -1
- 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.d.ts +14 -0
- package/build/cjs/availability.js +44 -0
- package/build/cjs/availability.js.map +1 -0
- package/build/cjs/bluetooth/ble-error.d.ts +10 -0
- package/build/cjs/bluetooth/ble-error.js +47 -0
- package/build/cjs/bluetooth/ble-error.js.map +1 -0
- package/build/cjs/bluetooth/connection.d.ts +378 -0
- package/build/cjs/bluetooth/connection.js +623 -0
- 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.d.ts +14 -0
- package/build/cjs/bluetooth/device-bond-state.js +26 -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} +35 -19
- package/build/cjs/{bluetooth-device-wrapper.js → bluetooth/device-wrapper.js} +169 -101
- package/build/cjs/bluetooth/device-wrapper.js.map +1 -0
- package/build/{esm → cjs/bluetooth}/flashing/flashing-full.d.ts +2 -2
- package/build/cjs/{flashing → bluetooth/flashing}/flashing-full.js +6 -5
- 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/bluetooth/flashing/flashing-partial.d.ts +10 -0
- package/build/cjs/bluetooth/flashing/flashing-partial.js +145 -0
- 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 +40 -14
- 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} +17 -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} +24 -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/bluetooth/services/device-information-service.js +29 -0
- 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/bluetooth/services/event-service.d.ts +48 -0
- package/build/cjs/bluetooth/services/event-service.js +273 -0
- package/build/cjs/bluetooth/services/event-service.js.map +1 -0
- package/build/cjs/bluetooth/services/event-service.test.d.ts +1 -0
- package/build/cjs/bluetooth/services/event-service.test.js +252 -0
- package/build/cjs/bluetooth/services/event-service.test.js.map +1 -0
- package/build/cjs/bluetooth/services/io-pin-service.d.ts +65 -0
- package/build/cjs/bluetooth/services/io-pin-service.js +173 -0
- package/build/cjs/bluetooth/services/io-pin-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} +10 -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} +19 -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/bluetooth/services/temperature-service.d.ts +14 -0
- package/build/cjs/bluetooth/services/temperature-service.js +80 -0
- package/build/cjs/bluetooth/services/temperature-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} +21 -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 +214 -97
- package/build/cjs/device.js +57 -114
- package/build/cjs/device.js.map +1 -1
- package/build/cjs/events.d.ts +8 -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 +8 -16
- package/build/cjs/index.js +9 -28
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/logging.js.map +1 -1
- package/build/cjs/microbit-events.d.ts +67 -0
- package/build/cjs/microbit-events.js +55 -0
- package/build/cjs/microbit-events.js.map +1 -0
- package/build/cjs/radio-bridge/connection.d.ts +52 -0
- package/build/cjs/{usb-radio-bridge.js → radio-bridge/connection.js} +108 -97
- 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 +92 -15
- 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 -1
- package/build/cjs/{hex-flash-data-source.js → universal-hex/flash-data-source.js} +6 -3
- 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/{esm → cjs/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 +96 -0
- package/build/cjs/{usb.js → usb/connection.js} +274 -193
- 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/cjs/{usb-partial-flashing-utils.d.ts → 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} +37 -11
- package/build/cjs/{usb-partial-flashing.js → usb/partial-flashing.js} +170 -134
- 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 +16 -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.d.ts +3 -1
- package/build/esm/async-util.js +5 -1
- 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.d.ts +14 -0
- package/build/esm/availability.js +40 -0
- package/build/esm/availability.js.map +1 -0
- package/build/esm/bluetooth/ble-error.d.ts +10 -0
- package/build/esm/bluetooth/ble-error.js +42 -0
- package/build/esm/bluetooth/ble-error.js.map +1 -0
- package/build/esm/bluetooth/connection.d.ts +378 -0
- package/build/esm/bluetooth/connection.js +593 -0
- 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.d.ts +14 -0
- package/build/esm/bluetooth/device-bond-state.js +22 -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} +35 -19
- package/build/esm/{bluetooth-device-wrapper.js → bluetooth/device-wrapper.js} +167 -100
- package/build/esm/bluetooth/device-wrapper.js.map +1 -0
- package/build/{cjs → esm/bluetooth}/flashing/flashing-full.d.ts +2 -2
- package/build/esm/{flashing → bluetooth/flashing}/flashing-full.js +6 -5
- 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/bluetooth/flashing/flashing-partial.d.ts +10 -0
- package/build/esm/bluetooth/flashing/flashing-partial.js +142 -0
- 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 +40 -14
- 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} +11 -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} +20 -10
- 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/bluetooth/services/device-information-service.js +25 -0
- 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/bluetooth/services/event-service.d.ts +48 -0
- package/build/esm/bluetooth/services/event-service.js +269 -0
- package/build/esm/bluetooth/services/event-service.js.map +1 -0
- package/build/esm/bluetooth/services/event-service.test.d.ts +1 -0
- package/build/esm/bluetooth/services/event-service.test.js +250 -0
- package/build/esm/bluetooth/services/event-service.test.js.map +1 -0
- package/build/esm/bluetooth/services/io-pin-service.d.ts +65 -0
- package/build/esm/bluetooth/services/io-pin-service.js +169 -0
- package/build/esm/bluetooth/services/io-pin-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} +4 -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} +11 -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/bluetooth/services/temperature-service.d.ts +14 -0
- package/build/esm/bluetooth/services/temperature-service.js +76 -0
- package/build/esm/bluetooth/services/temperature-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} +18 -6
- 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 +214 -97
- package/build/esm/device.js +55 -108
- package/build/esm/device.js.map +1 -1
- package/build/esm/events.d.ts +8 -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 +8 -16
- package/build/esm/index.js +7 -11
- package/build/esm/index.js.map +1 -1
- package/build/esm/logging.js.map +1 -1
- package/build/esm/microbit-events.d.ts +67 -0
- package/build/esm/microbit-events.js +52 -0
- package/build/esm/microbit-events.js.map +1 -0
- package/build/esm/radio-bridge/connection.d.ts +52 -0
- package/build/esm/{usb-radio-bridge.js → radio-bridge/connection.js} +108 -97
- 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 +92 -15
- 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 -1
- package/build/esm/{hex-flash-data-source.js → universal-hex/flash-data-source.js} +6 -3
- 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/{cjs → esm/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 +96 -0
- package/build/esm/{usb.js → usb/connection.js} +270 -188
- 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/esm/{usb-partial-flashing-utils.d.ts → 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} +37 -11
- package/build/esm/{usb-partial-flashing.js → usb/partial-flashing.js} +169 -110
- 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 +16 -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.d.ts +0 -112
- package/build/cjs/bluetooth.js +0 -458
- 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-information-service.js +0 -34
- 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.d.ts +0 -9
- package/build/cjs/flashing/flashing-partial.js +0 -98
- 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.d.ts +0 -112
- package/build/esm/bluetooth.js +0 -428
- 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-information-service.js +0 -30
- 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.d.ts +0 -9
- package/build/esm/flashing/flashing-partial.js +0 -95
- 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/{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/{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
package/build/esm/device.d.ts
CHANGED
|
@@ -3,82 +3,128 @@
|
|
|
3
3
|
*
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
*/
|
|
6
|
-
import { TypedEventTarget, ValueIsEvent } from "./events.js";
|
|
7
6
|
/**
|
|
8
|
-
*
|
|
7
|
+
* Connection availability status returned by checkAvailability().
|
|
8
|
+
* Used for pre-flight UX decisions before attempting to connect.
|
|
9
|
+
*/
|
|
10
|
+
export type ConnectionAvailabilityStatus = "available" | "unsupported" | "disabled" | "permission-denied" | "location-disabled";
|
|
11
|
+
/**
|
|
12
|
+
* Error codes identifying specific failure modes.
|
|
13
|
+
*
|
|
14
|
+
* Each code represents a distinct category of failure that apps can
|
|
15
|
+
* match on to decide what message to show or what recovery to attempt.
|
|
16
|
+
* New codes may be added in future minor releases.
|
|
9
17
|
*
|
|
10
|
-
*
|
|
18
|
+
* Codes are annotated with **USB**, **BLE**, or **USB, BLE** to indicate
|
|
19
|
+
* which connection types can produce them. USB-only apps can ignore
|
|
20
|
+
* BLE-only codes.
|
|
11
21
|
*/
|
|
12
22
|
export type DeviceErrorCode =
|
|
13
23
|
/**
|
|
14
|
-
*
|
|
24
|
+
* **BLE.** The operation was cancelled via an {@link AbortSignal}
|
|
25
|
+
* supplied by the caller. No user-facing error is needed.
|
|
15
26
|
*/
|
|
16
|
-
"
|
|
27
|
+
"aborted"
|
|
17
28
|
/**
|
|
18
|
-
*
|
|
29
|
+
* **USB, BLE.** The user dismissed the device-picker dialog without
|
|
30
|
+
* selecting a device. Typically no error message is needed — the user
|
|
31
|
+
* chose not to proceed.
|
|
19
32
|
*/
|
|
20
|
-
| "
|
|
33
|
+
| "no-device-selected"
|
|
21
34
|
/**
|
|
22
|
-
*
|
|
35
|
+
* **USB, BLE.** The connection type is not supported on this platform
|
|
36
|
+
* or browser. Corresponds to {@link ConnectionAvailabilityStatus}
|
|
37
|
+
* `"unsupported"`.
|
|
23
38
|
*/
|
|
24
|
-
| "
|
|
39
|
+
| "unsupported"
|
|
25
40
|
/**
|
|
26
|
-
*
|
|
41
|
+
* **BLE.** Bluetooth is turned off at the OS level. Prompt the user
|
|
42
|
+
* to enable it in system settings. Corresponds to
|
|
43
|
+
* {@link ConnectionAvailabilityStatus} `"disabled"`.
|
|
27
44
|
*/
|
|
28
|
-
| "
|
|
45
|
+
| "disabled"
|
|
29
46
|
/**
|
|
30
|
-
*
|
|
47
|
+
* **BLE.** The app does not have the required Bluetooth permissions
|
|
48
|
+
* (iOS/Android). Prompt the user to grant permission in system
|
|
49
|
+
* settings. Corresponds to {@link ConnectionAvailabilityStatus}
|
|
50
|
+
* `"permission-denied"`.
|
|
31
51
|
*/
|
|
32
|
-
| "
|
|
52
|
+
| "permission-denied"
|
|
33
53
|
/**
|
|
34
|
-
*
|
|
54
|
+
* **BLE.** Location services are disabled. Required on Android
|
|
55
|
+
* versions before 12 for Bluetooth scanning. Prompt the user to
|
|
56
|
+
* enable location in system settings. Corresponds to
|
|
57
|
+
* {@link ConnectionAvailabilityStatus} `"location-disabled"`.
|
|
35
58
|
*/
|
|
36
|
-
| "
|
|
59
|
+
| "location-disabled"
|
|
37
60
|
/**
|
|
38
|
-
*
|
|
61
|
+
* **USB, BLE.** A method was called that requires an active
|
|
62
|
+
* connection, but no connection is currently open. Call
|
|
63
|
+
* {@link DeviceConnection.connect} first.
|
|
39
64
|
*/
|
|
40
|
-
| "
|
|
65
|
+
| "not-connected"
|
|
41
66
|
/**
|
|
42
|
-
*
|
|
67
|
+
* **USB.** The USB interface could not be claimed, usually because
|
|
68
|
+
* another browser tab or application already has an open connection
|
|
69
|
+
* to the device.
|
|
43
70
|
*/
|
|
44
|
-
| "
|
|
71
|
+
| "device-in-use"
|
|
45
72
|
/**
|
|
46
|
-
*
|
|
73
|
+
* **USB, BLE.** The device disconnected during an operation.
|
|
74
|
+
* The physical USB or Bluetooth connection was lost.
|
|
47
75
|
*/
|
|
48
|
-
| "
|
|
76
|
+
| "device-disconnected"
|
|
49
77
|
/**
|
|
50
|
-
*
|
|
78
|
+
* **USB, BLE.** A communication timeout — the device did not respond
|
|
79
|
+
* within the expected time. This may indicate the device is busy,
|
|
80
|
+
* hung, or that the connection is degraded.
|
|
51
81
|
*/
|
|
52
|
-
| "
|
|
82
|
+
| "timeout"
|
|
53
83
|
/**
|
|
54
|
-
*
|
|
84
|
+
* **USB, BLE.** A communication failure that does not match any more
|
|
85
|
+
* specific code. Typical handling: prompt the user to physically
|
|
86
|
+
* disconnect and reconnect the device, then retry.
|
|
55
87
|
*/
|
|
56
|
-
| "
|
|
88
|
+
| "connection-error"
|
|
57
89
|
/**
|
|
58
|
-
*
|
|
90
|
+
* **USB.** The USB device was found but lacks the expected CMSIS-DAP
|
|
91
|
+
* interface. On micro:bit V1 this indicates the DAPLink firmware is
|
|
92
|
+
* too old and needs updating.
|
|
59
93
|
*/
|
|
60
|
-
| "
|
|
94
|
+
| "firmware-update-required"
|
|
61
95
|
/**
|
|
62
|
-
*
|
|
96
|
+
* **BLE.** The micro:bit's Bluetooth pairing/bonding information has
|
|
97
|
+
* been lost (e.g. after a firmware reflash). The user needs to
|
|
98
|
+
* re-pair the device. Currently only detected on iOS.
|
|
63
99
|
*/
|
|
64
|
-
| "
|
|
100
|
+
| "pairing-information-lost";
|
|
65
101
|
/**
|
|
66
|
-
*
|
|
102
|
+
* Stages reported by the progress callback during connection and flashing.
|
|
67
103
|
*/
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
Initializing
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
104
|
+
export declare const ProgressStage: {
|
|
105
|
+
/** Checking permissions and availability before connecting. */
|
|
106
|
+
readonly Initializing: "Initializing";
|
|
107
|
+
/** Finding device. */
|
|
108
|
+
readonly FindingDevice: "FindingDevice";
|
|
109
|
+
/** Checking that a bond is established. Only applicable on Native platforms. */
|
|
110
|
+
readonly CheckingBond: "CheckingBond";
|
|
111
|
+
/** Resetting device in preparation for flashing. Only applicable on Native platforms. */
|
|
112
|
+
readonly ResettingDevice: "ResettingDevice";
|
|
113
|
+
/** Connecting for flashing. */
|
|
114
|
+
readonly Connecting: "Connecting";
|
|
115
|
+
/** Partial flashing. */
|
|
116
|
+
readonly PartialFlashing: "PartialFlashing";
|
|
117
|
+
/** Full flashing. */
|
|
118
|
+
readonly FullFlashing: "FullFlashing";
|
|
119
|
+
};
|
|
120
|
+
export type ProgressStage = (typeof ProgressStage)[keyof typeof ProgressStage];
|
|
76
121
|
/**
|
|
77
122
|
* Progress callback for tracking operation stages (connection and flashing).
|
|
78
123
|
*
|
|
79
124
|
* @param stage - The current stage of the operation
|
|
80
125
|
* @param progress - Optional progress value (0-1) for PartialFlashing and FullFlashing stages.
|
|
81
|
-
* Initializing, FindingDevice,
|
|
126
|
+
* Initializing, FindingDevice, CheckingBond (only for native platforms),
|
|
127
|
+
* ResettingDevice (only for native platforms), and Connecting stages are called once
|
|
82
128
|
* without progress values to indicate stage entry.
|
|
83
129
|
*
|
|
84
130
|
* @example
|
|
@@ -102,54 +148,81 @@ export type ProgressCallback = (stage: ProgressStage, progress?: number) => void
|
|
|
102
148
|
*/
|
|
103
149
|
export declare class DeviceError extends Error {
|
|
104
150
|
code: DeviceErrorCode;
|
|
105
|
-
constructor({ code, message }: {
|
|
151
|
+
constructor({ code, message, cause, }: {
|
|
106
152
|
code: DeviceErrorCode;
|
|
107
153
|
message?: string;
|
|
154
|
+
cause?: unknown;
|
|
108
155
|
});
|
|
109
156
|
}
|
|
110
157
|
/**
|
|
111
|
-
*
|
|
158
|
+
* Asserts that a connection is active, throwing a {@link DeviceError}
|
|
159
|
+
* with code `"not-connected"` if it is not.
|
|
112
160
|
*/
|
|
113
|
-
export declare
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
SUPPORT_NOT_KNOWN = "SUPPORT_NOT_KNOWN",
|
|
119
|
-
/**
|
|
120
|
-
* Not supported.
|
|
121
|
-
*/
|
|
122
|
-
NOT_SUPPORTED = "NOT_SUPPORTED",
|
|
161
|
+
export declare function assertConnected<T>(connection: T | undefined): asserts connection is T;
|
|
162
|
+
/**
|
|
163
|
+
* Tracks connection status.
|
|
164
|
+
*/
|
|
165
|
+
export declare const ConnectionStatus: {
|
|
123
166
|
/**
|
|
124
|
-
*
|
|
167
|
+
* No device available.
|
|
125
168
|
*
|
|
126
|
-
* This will be the case even when a device is
|
|
127
|
-
* but has not been connected via the browser security UI.
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
* Authorized device available but we haven't connected to it.
|
|
169
|
+
* This is the initial status and will be the case even when a device is
|
|
170
|
+
* physically connected but has not been connected via the browser security UI.
|
|
171
|
+
*
|
|
172
|
+
* Use checkAvailability() to determine whether the connection type is
|
|
173
|
+
* supported before attempting to connect.
|
|
132
174
|
*/
|
|
133
|
-
|
|
175
|
+
readonly NoAuthorizedDevice: "NoAuthorizedDevice";
|
|
176
|
+
/** Authorized device available but we haven't connected to it. */
|
|
177
|
+
readonly Disconnected: "Disconnected";
|
|
178
|
+
/** Connected. */
|
|
179
|
+
readonly Connected: "Connected";
|
|
180
|
+
/** Connecting. */
|
|
181
|
+
readonly Connecting: "Connecting";
|
|
134
182
|
/**
|
|
135
|
-
*
|
|
183
|
+
* Paused due to tab visibility. The connection was temporarily suspended
|
|
184
|
+
* because the browser tab became hidden. Reconnection will be attempted
|
|
185
|
+
* automatically when the tab becomes visible again.
|
|
136
186
|
*/
|
|
137
|
-
|
|
187
|
+
readonly Paused: "Paused";
|
|
188
|
+
};
|
|
189
|
+
export type ConnectionStatus = (typeof ConnectionStatus)[keyof typeof ConnectionStatus];
|
|
190
|
+
/**
|
|
191
|
+
* Controls bonding behaviour and post-bond device mode on native platforms.
|
|
192
|
+
*
|
|
193
|
+
* - `"pairing"` — Bond if needed, then reset the device into pairing mode.
|
|
194
|
+
* Use when you intend to flash immediately after connecting.
|
|
195
|
+
* - `"application"` — Bond if needed, then reset the device into application
|
|
196
|
+
* mode. Use when you want to interact with BLE services (sensors, UART, …)
|
|
197
|
+
* on firmware that has BLE enabled in application mode.
|
|
198
|
+
* - `"none"` — Skip bonding entirely and just connect. Use for open-link
|
|
199
|
+
* firmware where no bonding is required.
|
|
200
|
+
*
|
|
201
|
+
* Ignored on web platforms where the browser manages pairing transparently.
|
|
202
|
+
*/
|
|
203
|
+
export type BondMode = "pairing" | "application" | "none";
|
|
204
|
+
export interface ConnectOptions {
|
|
138
205
|
/**
|
|
139
|
-
*
|
|
206
|
+
* Optional progress callback for tracking connection stages.
|
|
140
207
|
*/
|
|
141
|
-
|
|
208
|
+
progress?: ProgressCallback;
|
|
142
209
|
/**
|
|
143
|
-
*
|
|
144
|
-
*
|
|
210
|
+
* Optional AbortSignal to abort the connection attempt.
|
|
211
|
+
* When aborted, the connect promise will reject with a DeviceError
|
|
212
|
+
* with code "aborted".
|
|
213
|
+
*
|
|
214
|
+
* Note: Currently only aborts during the FindingDevice stage on native
|
|
215
|
+
* platforms. Web platform device selection (browser picker) cannot be
|
|
216
|
+
* aborted programmatically.
|
|
145
217
|
*/
|
|
146
|
-
|
|
147
|
-
}
|
|
148
|
-
export interface ConnectOptions {
|
|
218
|
+
signal?: AbortSignal;
|
|
149
219
|
/**
|
|
150
|
-
*
|
|
220
|
+
* Controls bonding and post-bond device mode on native platforms.
|
|
221
|
+
* Ignored on web. Default: `"pairing"`.
|
|
222
|
+
*
|
|
223
|
+
* @see {@link BondMode}
|
|
151
224
|
*/
|
|
152
|
-
|
|
225
|
+
bondMode?: BondMode;
|
|
153
226
|
}
|
|
154
227
|
export interface FlashOptions {
|
|
155
228
|
/**
|
|
@@ -169,38 +242,62 @@ export interface FlashOptions {
|
|
|
169
242
|
* Smallest possible progress increment to limit callback rate.
|
|
170
243
|
*/
|
|
171
244
|
minimumProgressIncrement?: number;
|
|
245
|
+
/**
|
|
246
|
+
* Optional AbortSignal to abort the flash operation.
|
|
247
|
+
* When aborted, the flash promise will reject with a DeviceError
|
|
248
|
+
* with code "aborted".
|
|
249
|
+
*
|
|
250
|
+
* Note: Currently only aborts during the FindingDevice stage on native
|
|
251
|
+
* platforms. Once a device is found and flashing begins, the operation
|
|
252
|
+
* cannot be aborted.
|
|
253
|
+
*/
|
|
254
|
+
signal?: AbortSignal;
|
|
172
255
|
}
|
|
173
256
|
export declare class FlashDataError extends Error {
|
|
174
257
|
}
|
|
175
258
|
export type FlashDataSource = (boardVersion: BoardVersion) => Promise<string | Uint8Array>;
|
|
176
259
|
export type BoardVersion = "V1" | "V2";
|
|
177
|
-
export
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
}
|
|
181
|
-
export declare class BeforeRequestDevice extends Event {
|
|
182
|
-
constructor();
|
|
183
|
-
}
|
|
184
|
-
export declare class AfterRequestDevice extends Event {
|
|
185
|
-
constructor();
|
|
260
|
+
export interface ConnectionStatusChange {
|
|
261
|
+
status: ConnectionStatus;
|
|
262
|
+
previousStatus: ConnectionStatus;
|
|
186
263
|
}
|
|
187
|
-
export
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
constructor(errorMessage: string, error?: unknown | undefined);
|
|
264
|
+
export interface BackgroundErrorData {
|
|
265
|
+
error: DeviceError;
|
|
266
|
+
event?: string;
|
|
191
267
|
}
|
|
192
|
-
export
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
268
|
+
export interface DeviceConnectionEventMap {
|
|
269
|
+
status: ConnectionStatusChange;
|
|
270
|
+
backgrounderror: BackgroundErrorData;
|
|
271
|
+
beforerequestdevice: void;
|
|
272
|
+
afterrequestdevice: void;
|
|
273
|
+
flash: void;
|
|
197
274
|
}
|
|
198
|
-
export interface DeviceConnection
|
|
275
|
+
export interface DeviceConnection {
|
|
276
|
+
addEventListener(type: "status", listener: (data: ConnectionStatusChange) => void): void;
|
|
277
|
+
addEventListener(type: "backgrounderror", listener: (data: BackgroundErrorData) => void): void;
|
|
278
|
+
addEventListener(type: "beforerequestdevice", listener: () => void): void;
|
|
279
|
+
addEventListener(type: "afterrequestdevice", listener: () => void): void;
|
|
280
|
+
addEventListener(type: "flash", listener: () => void): void;
|
|
281
|
+
removeEventListener(type: "status", listener: (data: ConnectionStatusChange) => void): void;
|
|
282
|
+
removeEventListener(type: "backgrounderror", listener: (data: BackgroundErrorData) => void): void;
|
|
283
|
+
removeEventListener(type: "beforerequestdevice", listener: () => void): void;
|
|
284
|
+
removeEventListener(type: "afterrequestdevice", listener: () => void): void;
|
|
285
|
+
removeEventListener(type: "flash", listener: () => void): void;
|
|
286
|
+
readonly type: string;
|
|
199
287
|
status: ConnectionStatus;
|
|
200
288
|
/**
|
|
201
289
|
* Initializes the device.
|
|
202
290
|
*/
|
|
203
291
|
initialize(): Promise<void>;
|
|
292
|
+
/**
|
|
293
|
+
* Checks if this connection type is currently available.
|
|
294
|
+
*
|
|
295
|
+
* Use this for pre-flight UX decisions (e.g., showing "enable Bluetooth" dialog).
|
|
296
|
+
* Note: Even if this returns "available", connect() can still fail.
|
|
297
|
+
*
|
|
298
|
+
* @returns A promise resolving to the current availability status.
|
|
299
|
+
*/
|
|
300
|
+
checkAvailability(): Promise<ConnectionAvailabilityStatus>;
|
|
204
301
|
/**
|
|
205
302
|
* Removes all listeners.
|
|
206
303
|
*/
|
|
@@ -208,29 +305,49 @@ export interface DeviceConnection<M extends ValueIsEvent<M>> extends TypedEventT
|
|
|
208
305
|
/**
|
|
209
306
|
* Connects to a currently paired device or requests pairing.
|
|
210
307
|
*
|
|
211
|
-
* @param options Optional connection options including progress callback.
|
|
308
|
+
* @param options Optional connection options including progress callback and abort signal.
|
|
212
309
|
* @throws {DeviceError} On connection failure. The error.code property indicates the failure type.
|
|
213
310
|
*/
|
|
214
311
|
connect(options?: ConnectOptions): Promise<void>;
|
|
215
312
|
/**
|
|
216
313
|
* Get the board version.
|
|
217
314
|
*
|
|
218
|
-
*
|
|
315
|
+
* Cached after the first successful connection until {@link clearDevice}
|
|
316
|
+
* is called, so remains available after disconnection.
|
|
317
|
+
*
|
|
318
|
+
* @returns the board version.
|
|
319
|
+
* @throws {DeviceError} with code `not-connected` if no device has been connected.
|
|
219
320
|
*/
|
|
220
|
-
getBoardVersion(): BoardVersion
|
|
321
|
+
getBoardVersion(): BoardVersion;
|
|
221
322
|
/**
|
|
222
323
|
* Disconnect from the device.
|
|
223
324
|
*/
|
|
224
325
|
disconnect(): Promise<void>;
|
|
225
326
|
/**
|
|
226
|
-
*
|
|
327
|
+
* Flash the micro:bit.
|
|
328
|
+
*
|
|
329
|
+
* Not all connection types support flashing. For example, radio bridge
|
|
330
|
+
* connections do not support flashing, and Bluetooth connections only
|
|
331
|
+
* support flashing on native platforms (not Web).
|
|
332
|
+
*
|
|
333
|
+
* Post-flash connection state differs by transport:
|
|
334
|
+
*
|
|
335
|
+
* - **USB**: The connection remains in {@link ConnectionStatus.Connected} state.
|
|
336
|
+
* USB connects to the micro:bit's interface chip (running DAPLink firmware),
|
|
337
|
+
* which is not affected by flashing the application processor, so the
|
|
338
|
+
* connection persists and serial communication is automatically reinitialised.
|
|
227
339
|
*
|
|
228
|
-
*
|
|
340
|
+
* - **Bluetooth**: The connection is always left in {@link ConnectionStatus.Disconnected}
|
|
341
|
+
* state. Bluetooth connects to the application processor directly, which
|
|
342
|
+
* reboots after flashing, so the connection is necessarily lost. Callers
|
|
343
|
+
* must call {@link connect} again after flashing.
|
|
229
344
|
*
|
|
230
|
-
* @param
|
|
231
|
-
* @
|
|
345
|
+
* @param dataSource The data to use.
|
|
346
|
+
* @param options Flash options and progress callback.
|
|
347
|
+
* @throws {DeviceError} On flash failure. The error.code property indicates the failure type.
|
|
348
|
+
* @throws {FlashDataError} If data preparation fails.
|
|
232
349
|
*/
|
|
233
|
-
|
|
350
|
+
flash?(dataSource: FlashDataSource, options: FlashOptions): Promise<void>;
|
|
234
351
|
/**
|
|
235
352
|
* Clear device to enable chooseDevice.
|
|
236
353
|
*/
|
package/build/esm/device.js
CHANGED
|
@@ -1,11 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
/**
|
|
2
|
+
* (c) 2021, Micro:bit Educational Foundation and contributors
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Stages reported by the progress callback during connection and flashing.
|
|
8
|
+
*/
|
|
9
|
+
export const ProgressStage = {
|
|
10
|
+
/** Checking permissions and availability before connecting. */
|
|
11
|
+
Initializing: "Initializing",
|
|
12
|
+
/** Finding device. */
|
|
13
|
+
FindingDevice: "FindingDevice",
|
|
14
|
+
/** Checking that a bond is established. Only applicable on Native platforms. */
|
|
15
|
+
CheckingBond: "CheckingBond",
|
|
16
|
+
/** Resetting device in preparation for flashing. Only applicable on Native platforms. */
|
|
17
|
+
ResettingDevice: "ResettingDevice",
|
|
18
|
+
/** Connecting for flashing. */
|
|
19
|
+
Connecting: "Connecting",
|
|
20
|
+
/** Partial flashing. */
|
|
21
|
+
PartialFlashing: "PartialFlashing",
|
|
22
|
+
/** Full flashing. */
|
|
23
|
+
FullFlashing: "FullFlashing",
|
|
24
|
+
};
|
|
9
25
|
/**
|
|
10
26
|
* Error type used for all interactions with this module.
|
|
11
27
|
*
|
|
@@ -16,8 +32,8 @@ export var ProgressStage;
|
|
|
16
32
|
* English.
|
|
17
33
|
*/
|
|
18
34
|
export class DeviceError extends Error {
|
|
19
|
-
constructor({ code, message }) {
|
|
20
|
-
super(message);
|
|
35
|
+
constructor({ code, message, cause, }) {
|
|
36
|
+
super(message, { cause });
|
|
21
37
|
Object.defineProperty(this, "code", {
|
|
22
38
|
enumerable: true,
|
|
23
39
|
configurable: true,
|
|
@@ -28,110 +44,41 @@ export class DeviceError extends Error {
|
|
|
28
44
|
}
|
|
29
45
|
}
|
|
30
46
|
/**
|
|
31
|
-
*
|
|
47
|
+
* Asserts that a connection is active, throwing a {@link DeviceError}
|
|
48
|
+
* with code `"not-connected"` if it is not.
|
|
32
49
|
*/
|
|
33
|
-
export
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
*/
|
|
43
|
-
ConnectionStatus["NOT_SUPPORTED"] = "NOT_SUPPORTED";
|
|
50
|
+
export function assertConnected(connection) {
|
|
51
|
+
if (!connection) {
|
|
52
|
+
throw new DeviceError({ code: "not-connected", message: "Not connected" });
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Tracks connection status.
|
|
57
|
+
*/
|
|
58
|
+
export const ConnectionStatus = {
|
|
44
59
|
/**
|
|
45
|
-
*
|
|
60
|
+
* No device available.
|
|
46
61
|
*
|
|
47
|
-
* This will be the case even when a device is
|
|
48
|
-
* but has not been connected via the browser security UI.
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
* Authorized device available but we haven't connected to it.
|
|
53
|
-
*/
|
|
54
|
-
ConnectionStatus["DISCONNECTED"] = "DISCONNECTED";
|
|
55
|
-
/**
|
|
56
|
-
* Connected.
|
|
57
|
-
*/
|
|
58
|
-
ConnectionStatus["CONNECTED"] = "CONNECTED";
|
|
59
|
-
/**
|
|
60
|
-
* Connecting.
|
|
62
|
+
* This is the initial status and will be the case even when a device is
|
|
63
|
+
* physically connected but has not been connected via the browser security UI.
|
|
64
|
+
*
|
|
65
|
+
* Use checkAvailability() to determine whether the connection type is
|
|
66
|
+
* supported before attempting to connect.
|
|
61
67
|
*/
|
|
62
|
-
|
|
68
|
+
NoAuthorizedDevice: "NoAuthorizedDevice",
|
|
69
|
+
/** Authorized device available but we haven't connected to it. */
|
|
70
|
+
Disconnected: "Disconnected",
|
|
71
|
+
/** Connected. */
|
|
72
|
+
Connected: "Connected",
|
|
73
|
+
/** Connecting. */
|
|
74
|
+
Connecting: "Connecting",
|
|
63
75
|
/**
|
|
64
|
-
*
|
|
65
|
-
*
|
|
76
|
+
* Paused due to tab visibility. The connection was temporarily suspended
|
|
77
|
+
* because the browser tab became hidden. Reconnection will be attempted
|
|
78
|
+
* automatically when the tab becomes visible again.
|
|
66
79
|
*/
|
|
67
|
-
|
|
68
|
-
}
|
|
80
|
+
Paused: "Paused",
|
|
81
|
+
};
|
|
69
82
|
export class FlashDataError extends Error {
|
|
70
83
|
}
|
|
71
|
-
export class ConnectionStatusEvent extends Event {
|
|
72
|
-
constructor(status) {
|
|
73
|
-
super("status");
|
|
74
|
-
Object.defineProperty(this, "status", {
|
|
75
|
-
enumerable: true,
|
|
76
|
-
configurable: true,
|
|
77
|
-
writable: true,
|
|
78
|
-
value: status
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
export class BeforeRequestDevice extends Event {
|
|
83
|
-
constructor() {
|
|
84
|
-
super("beforerequestdevice");
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
export class AfterRequestDevice extends Event {
|
|
88
|
-
constructor() {
|
|
89
|
-
super("afterrequestdevice");
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
export class BackgroundErrorEvent extends Event {
|
|
93
|
-
constructor(errorMessage, error) {
|
|
94
|
-
super("backgrounderror");
|
|
95
|
-
Object.defineProperty(this, "errorMessage", {
|
|
96
|
-
enumerable: true,
|
|
97
|
-
configurable: true,
|
|
98
|
-
writable: true,
|
|
99
|
-
value: errorMessage
|
|
100
|
-
});
|
|
101
|
-
Object.defineProperty(this, "error", {
|
|
102
|
-
enumerable: true,
|
|
103
|
-
configurable: true,
|
|
104
|
-
writable: true,
|
|
105
|
-
value: error
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
export class DeviceConnectionEventMap {
|
|
110
|
-
constructor() {
|
|
111
|
-
Object.defineProperty(this, "status", {
|
|
112
|
-
enumerable: true,
|
|
113
|
-
configurable: true,
|
|
114
|
-
writable: true,
|
|
115
|
-
value: void 0
|
|
116
|
-
});
|
|
117
|
-
Object.defineProperty(this, "backgrounderror", {
|
|
118
|
-
enumerable: true,
|
|
119
|
-
configurable: true,
|
|
120
|
-
writable: true,
|
|
121
|
-
value: void 0
|
|
122
|
-
});
|
|
123
|
-
Object.defineProperty(this, "beforerequestdevice", {
|
|
124
|
-
enumerable: true,
|
|
125
|
-
configurable: true,
|
|
126
|
-
writable: true,
|
|
127
|
-
value: void 0
|
|
128
|
-
});
|
|
129
|
-
Object.defineProperty(this, "afterrequestdevice", {
|
|
130
|
-
enumerable: true,
|
|
131
|
-
configurable: true,
|
|
132
|
-
writable: true,
|
|
133
|
-
value: void 0
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
84
|
//# sourceMappingURL=device.js.map
|
package/build/esm/device.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/device.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsHH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,+DAA+D;IAC/D,YAAY,EAAE,cAAc;IAC5B,sBAAsB;IACtB,aAAa,EAAE,eAAe;IAC9B,gFAAgF;IAChF,YAAY,EAAE,cAAc;IAC5B,yFAAyF;IACzF,eAAe,EAAE,iBAAiB;IAClC,+BAA+B;IAC/B,UAAU,EAAE,YAAY;IACxB,wBAAwB;IACxB,eAAe,EAAE,iBAAiB;IAClC,qBAAqB;IACrB,YAAY,EAAE,cAAc;CACpB,CAAC;AA2BX;;;;;;;;GAQG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAEpC,YAAY,EACV,IAAI,EACJ,OAAO,EACP,KAAK,GAKN;QACC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAV5B;;;;;WAAsB;QAWpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,UAAyB;IAEzB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B;;;;;;;;OAQG;IACH,kBAAkB,EAAE,oBAAoB;IACxC,kEAAkE;IAClE,YAAY,EAAE,cAAc;IAC5B,iBAAiB;IACjB,SAAS,EAAE,WAAW;IACtB,kBAAkB;IAClB,UAAU,EAAE,YAAY;IACxB;;;;OAIG;IACH,MAAM,EAAE,QAAQ;CACR,CAAC;AA0EX,MAAM,OAAO,cAAe,SAAQ,KAAK;CAAG"}
|