@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
|
@@ -38,48 +38,17 @@
|
|
|
38
38
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
39
39
|
* SOFTWARE.
|
|
40
40
|
*/
|
|
41
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
42
|
-
if (k2 === undefined) k2 = k;
|
|
43
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
44
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
45
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
46
|
-
}
|
|
47
|
-
Object.defineProperty(o, k2, desc);
|
|
48
|
-
}) : (function(o, m, k, k2) {
|
|
49
|
-
if (k2 === undefined) k2 = k;
|
|
50
|
-
o[k2] = m[k];
|
|
51
|
-
}));
|
|
52
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
53
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
54
|
-
}) : function(o, v) {
|
|
55
|
-
o["default"] = v;
|
|
56
|
-
});
|
|
57
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
58
|
-
if (mod && mod.__esModule) return mod;
|
|
59
|
-
var result = {};
|
|
60
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
61
|
-
__setModuleDefault(result, mod);
|
|
62
|
-
return result;
|
|
63
|
-
};
|
|
64
41
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
65
42
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
66
43
|
};
|
|
67
44
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
68
45
|
exports.PartialFlashing = void 0;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
*
|
|
72
|
-
* Latest Microsoft implementation is here:
|
|
73
|
-
* https://github.com/microsoft/pxt-microbit/blob/master/editor/flash.ts
|
|
74
|
-
*/
|
|
75
|
-
// dapjs import faff needed for Vitest https://github.com/ARMmbed/dapjs/issues/118
|
|
76
|
-
const dapjs = __importStar(require("dapjs"));
|
|
77
|
-
const { DAPLink: DAPLinkValue } = dapjs;
|
|
78
|
-
const async_util_js_1 = require("./async-util.js");
|
|
79
|
-
const usb_partial_flashing_utils_js_1 = require("./usb-partial-flashing-utils.js");
|
|
80
|
-
const device_js_1 = require("./device.js");
|
|
81
|
-
const hex_flash_data_source_js_1 = require("./hex-flash-data-source.js");
|
|
46
|
+
const device_js_1 = require("../device.js");
|
|
47
|
+
const hex_util_js_1 = require("../hex-util.js");
|
|
82
48
|
const nrf_intel_hex_1 = __importDefault(require("nrf-intel-hex"));
|
|
49
|
+
const cortex_m_js_1 = require("./cortex-m.js");
|
|
50
|
+
const daplink_js_1 = require("./daplink.js");
|
|
51
|
+
const partial_flashing_utils_js_1 = require("./partial-flashing-utils.js");
|
|
83
52
|
// Source code for binaries in can be found at https://github.com/microsoft/pxt-microbit/blob/dec5b8ce72d5c2b4b0b20aafefce7474a6f0c7b2/external/sha/source/main.c
|
|
84
53
|
// Drawn from https://github.com/microsoft/pxt-microbit/blob/dec5b8ce72d5c2b4b0b20aafefce7474a6f0c7b2/editor/extension.tsx#L243
|
|
85
54
|
// Update from https://github.com/microsoft/pxt-microbit/commit/a35057717222b8e48335144f497b55e29e9b0f25
|
|
@@ -111,17 +80,17 @@ const loadAddr = membase;
|
|
|
111
80
|
const dataAddr = 0x20002000;
|
|
112
81
|
const stackAddr = 0x20001000;
|
|
113
82
|
/**
|
|
114
|
-
* Uses a
|
|
83
|
+
* Uses a USBDeviceWrapper to flash the micro:bit.
|
|
115
84
|
*
|
|
116
|
-
*
|
|
85
|
+
* Intended to be used for a single flash with a pre-connected USBDeviceWrapper.
|
|
117
86
|
*/
|
|
118
87
|
class PartialFlashing {
|
|
119
|
-
constructor(
|
|
120
|
-
Object.defineProperty(this, "
|
|
88
|
+
constructor(device, logging, boardVersion, pageSize, numPages) {
|
|
89
|
+
Object.defineProperty(this, "device", {
|
|
121
90
|
enumerable: true,
|
|
122
91
|
configurable: true,
|
|
123
92
|
writable: true,
|
|
124
|
-
value:
|
|
93
|
+
value: device
|
|
125
94
|
});
|
|
126
95
|
Object.defineProperty(this, "logging", {
|
|
127
96
|
enumerable: true,
|
|
@@ -135,6 +104,18 @@ class PartialFlashing {
|
|
|
135
104
|
writable: true,
|
|
136
105
|
value: boardVersion
|
|
137
106
|
});
|
|
107
|
+
Object.defineProperty(this, "pageSize", {
|
|
108
|
+
enumerable: true,
|
|
109
|
+
configurable: true,
|
|
110
|
+
writable: true,
|
|
111
|
+
value: pageSize
|
|
112
|
+
});
|
|
113
|
+
Object.defineProperty(this, "numPages", {
|
|
114
|
+
enumerable: true,
|
|
115
|
+
configurable: true,
|
|
116
|
+
writable: true,
|
|
117
|
+
value: numPages
|
|
118
|
+
});
|
|
138
119
|
}
|
|
139
120
|
log(v) {
|
|
140
121
|
this.logging.log(v);
|
|
@@ -142,23 +123,21 @@ class PartialFlashing {
|
|
|
142
123
|
// Runs the checksum algorithm on the micro:bit's whole flash memory, and returns the results.
|
|
143
124
|
// Drawn from https://github.com/microsoft/pxt-microbit/blob/dec5b8ce72d5c2b4b0b20aafefce7474a6f0c7b2/editor/extension.tsx#L365
|
|
144
125
|
async getFlashChecksumsAsync() {
|
|
145
|
-
await this.
|
|
146
|
-
return this.
|
|
126
|
+
await this.device.cortexM.execute(loadAddr, computeChecksums2, stackAddr, loadAddr + 1, 0xffffffff, dataAddr, 0, this.pageSize, this.numPages);
|
|
127
|
+
return this.device.adi.readBlock(dataAddr, this.numPages * 2);
|
|
147
128
|
}
|
|
148
129
|
// Runs the code on the micro:bit to copy a single page of data from RAM address addr to the ROM address specified by the page.
|
|
149
130
|
// Does not wait for execution to halt.
|
|
150
131
|
// Drawn from https://github.com/microsoft/pxt-microbit/blob/dec5b8ce72d5c2b4b0b20aafefce7474a6f0c7b2/editor/extension.tsx#L340
|
|
151
132
|
async runFlash(page, addr) {
|
|
152
|
-
await this.
|
|
153
|
-
await
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
]);
|
|
161
|
-
return this.dapwrapper.cortexM.resume(false);
|
|
133
|
+
await this.device.cortexM.halt(true);
|
|
134
|
+
await this.device.cortexM.writeCoreRegister(cortex_m_js_1.CoreRegister.PC, loadAddr + 4 + 1);
|
|
135
|
+
await this.device.cortexM.writeCoreRegister(cortex_m_js_1.CoreRegister.LR, loadAddr + 1);
|
|
136
|
+
await this.device.cortexM.writeCoreRegister(cortex_m_js_1.CoreRegister.SP, stackAddr);
|
|
137
|
+
await this.device.cortexM.writeCoreRegister(0, page.targetAddr);
|
|
138
|
+
await this.device.cortexM.writeCoreRegister(1, addr);
|
|
139
|
+
await this.device.cortexM.writeCoreRegister(2, this.pageSize >> 2);
|
|
140
|
+
return this.device.cortexM.resume(false);
|
|
162
141
|
}
|
|
163
142
|
// Write a single page of data to micro:bit ROM by writing it to micro:bit RAM and copying to ROM.
|
|
164
143
|
// Drawn from https://github.com/microsoft/pxt-microbit/blob/dec5b8ce72d5c2b4b0b20aafefce7474a6f0c7b2/editor/extension.tsx#L385
|
|
@@ -170,28 +149,29 @@ class PartialFlashing {
|
|
|
170
149
|
// Use two slots in RAM to allow parallelisation of the following two tasks.
|
|
171
150
|
// 1. DAPjs writes a page to one slot.
|
|
172
151
|
// 2. flashPageBIN copies a page to flash from the other slot.
|
|
173
|
-
let thisAddr = i & 1 ? dataAddr : dataAddr + this.
|
|
174
|
-
let nextAddr = i & 1 ? dataAddr + this.
|
|
152
|
+
let thisAddr = i & 1 ? dataAddr : dataAddr + this.pageSize;
|
|
153
|
+
let nextAddr = i & 1 ? dataAddr + this.pageSize : dataAddr;
|
|
175
154
|
// Write first page to slot in RAM.
|
|
176
155
|
// All subsequent pages will have already been written to RAM.
|
|
177
156
|
if (i === 0) {
|
|
178
157
|
let u32data = new Uint32Array(page.data.length / 4);
|
|
179
158
|
for (let j = 0; j < page.data.length; j += 4) {
|
|
180
|
-
u32data[j >> 2] = (0,
|
|
159
|
+
u32data[j >> 2] = (0, partial_flashing_utils_js_1.read32FromUInt8Array)(page.data, j);
|
|
181
160
|
}
|
|
182
|
-
await this.
|
|
161
|
+
await this.device.adi.writeBlock(thisAddr, u32data);
|
|
183
162
|
}
|
|
184
163
|
await this.runFlash(page, thisAddr);
|
|
185
164
|
// Write next page to micro:bit RAM if it exists.
|
|
186
165
|
if (nextPage) {
|
|
187
166
|
let buf = new Uint32Array(nextPage.data.buffer);
|
|
188
|
-
await this.
|
|
167
|
+
await this.device.adi.writeBlock(nextAddr, buf);
|
|
189
168
|
}
|
|
190
|
-
return this.
|
|
169
|
+
return this.device.cortexM.waitForHalt();
|
|
191
170
|
}
|
|
192
171
|
// Write pages of data to micro:bit ROM.
|
|
193
172
|
async partialFlashCoreAsync(pages, updateProgress) {
|
|
194
173
|
this.log("Partial flash");
|
|
174
|
+
await this.device.adi.writeBlock(loadAddr, flashPageBIN);
|
|
195
175
|
for (let i = 0; i < pages.length; ++i) {
|
|
196
176
|
updateProgress(device_js_1.ProgressStage.PartialFlashing, i / pages.length);
|
|
197
177
|
await this.partialFlashPageAsync(pages[i], pages[i + 1], i);
|
|
@@ -204,11 +184,10 @@ class PartialFlashing {
|
|
|
204
184
|
async partialFlashAsync(data, updateProgress) {
|
|
205
185
|
const flashBytes = this.convertDataToPaddedBytes(data);
|
|
206
186
|
const checksums = await this.getFlashChecksumsAsync();
|
|
207
|
-
|
|
208
|
-
let aligned = (0, usb_partial_flashing_utils_js_1.pageAlignBlocks)(flashBytes, 0, this.dapwrapper.pageSize);
|
|
187
|
+
let aligned = (0, partial_flashing_utils_js_1.pageAlignBlocks)(flashBytes, 0, this.pageSize);
|
|
209
188
|
const totalPages = aligned.length;
|
|
210
189
|
this.log("Total pages: " + totalPages);
|
|
211
|
-
aligned = (0,
|
|
190
|
+
aligned = (0, partial_flashing_utils_js_1.onlyChanged)(aligned, checksums, this.pageSize);
|
|
212
191
|
this.log("Changed pages: " + aligned.length);
|
|
213
192
|
let partial;
|
|
214
193
|
if (aligned.length > totalPages / 2) {
|
|
@@ -219,6 +198,10 @@ class PartialFlashing {
|
|
|
219
198
|
catch (e) {
|
|
220
199
|
this.log(e);
|
|
221
200
|
this.log("Full flash failed, attempting partial flash.");
|
|
201
|
+
// FLASH_CLOSE (called during full flash cleanup) disables SWD,
|
|
202
|
+
// so we must reconnect before partial flash can use it.
|
|
203
|
+
await this.device.adi.reinit();
|
|
204
|
+
await this.device.cortexM.reset(true);
|
|
222
205
|
await this.partialFlashCoreAsync(aligned, updateProgress);
|
|
223
206
|
partial = true;
|
|
224
207
|
}
|
|
@@ -235,76 +218,38 @@ class PartialFlashing {
|
|
|
235
218
|
partial = false;
|
|
236
219
|
}
|
|
237
220
|
}
|
|
238
|
-
try {
|
|
239
|
-
await this.dapwrapper.reset();
|
|
240
|
-
}
|
|
241
|
-
catch (e) {
|
|
242
|
-
// Allow errors on resetting, user can always manually reset if necessary.
|
|
243
|
-
}
|
|
244
221
|
this.log("Flashing complete");
|
|
245
222
|
return partial;
|
|
246
223
|
}
|
|
247
|
-
// Perform full flash of micro:bit's ROM using
|
|
224
|
+
// Perform full flash of micro:bit's ROM using DAPLink vendor commands.
|
|
248
225
|
async fullFlashAsync(data, updateProgress) {
|
|
249
226
|
this.log("Full flash");
|
|
250
227
|
const fullFlashProgress = (progress) => {
|
|
251
228
|
updateProgress(device_js_1.ProgressStage.FullFlashing, progress);
|
|
252
229
|
};
|
|
253
|
-
this.
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
type: "WebUSB-info",
|
|
260
|
-
message: "full-flash-successful",
|
|
261
|
-
});
|
|
262
|
-
}
|
|
263
|
-
finally {
|
|
264
|
-
this.dapwrapper.daplink.removeListener(DAPLinkValue.EVENT_PROGRESS, fullFlashProgress);
|
|
265
|
-
}
|
|
230
|
+
const hexData = this.convertDataToHexString(data);
|
|
231
|
+
await (0, daplink_js_1.dapLinkFlash)(this.device.adi, new TextEncoder().encode(hexData), fullFlashProgress);
|
|
232
|
+
this.logging.event({
|
|
233
|
+
type: "WebUSB-info",
|
|
234
|
+
message: "full-flash-successful",
|
|
235
|
+
});
|
|
266
236
|
}
|
|
267
237
|
// Flash the micro:bit's ROM with the provided image, resetting the micro:bit first.
|
|
268
238
|
// Drawn from https://github.com/microsoft/pxt-microbit/blob/dec5b8ce72d5c2b4b0b20aafefce7474a6f0c7b2/editor/extension.tsx#L439
|
|
269
239
|
async flashAsync(data, updateProgress) {
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
try {
|
|
274
|
-
await this.dapwrapper.reset(true);
|
|
275
|
-
}
|
|
276
|
-
catch (e) {
|
|
277
|
-
this.log("Retrying reset");
|
|
278
|
-
await this.dapwrapper.reconnectAsync();
|
|
279
|
-
await this.dapwrapper.reset(true);
|
|
280
|
-
}
|
|
281
|
-
})();
|
|
240
|
+
// Reset into halted state so partial flash can execute code from a clean
|
|
241
|
+
// state.
|
|
242
|
+
this.log("Begin reset");
|
|
282
243
|
try {
|
|
283
|
-
|
|
284
|
-
await (0, async_util_js_1.withTimeout)(resetPromise, 1000);
|
|
285
|
-
this.log("Begin flashing");
|
|
286
|
-
return await this.partialFlashAsync(data, updateProgress);
|
|
287
|
-
}
|
|
288
|
-
catch (e) {
|
|
289
|
-
if (e instanceof async_util_js_1.TimeoutError) {
|
|
290
|
-
this.log("Resetting micro:bit timed out");
|
|
291
|
-
this.log("Partial flashing failed. Attempting full flash");
|
|
292
|
-
this.logging.event({
|
|
293
|
-
type: "WebUSB-info",
|
|
294
|
-
message: "flash-failed/attempting-full-flash",
|
|
295
|
-
});
|
|
296
|
-
await this.fullFlashAsync(data, updateProgress);
|
|
297
|
-
return false;
|
|
298
|
-
}
|
|
299
|
-
else {
|
|
300
|
-
throw e;
|
|
301
|
-
}
|
|
302
|
-
}
|
|
244
|
+
await this.device.cortexM.reset(true);
|
|
303
245
|
}
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
await this.
|
|
246
|
+
catch (e) {
|
|
247
|
+
this.log("Retrying reset");
|
|
248
|
+
await this.device.reconnect();
|
|
249
|
+
await this.device.cortexM.reset(true);
|
|
307
250
|
}
|
|
251
|
+
this.log("Begin flashing");
|
|
252
|
+
return this.partialFlashAsync(data, updateProgress);
|
|
308
253
|
}
|
|
309
254
|
convertDataToHexString(data) {
|
|
310
255
|
if (typeof data === "string") {
|
|
@@ -325,7 +270,7 @@ class PartialFlashing {
|
|
|
325
270
|
return this.memoryMapToPaddedBytes(data);
|
|
326
271
|
}
|
|
327
272
|
hexStringToPaddedBytes(hex) {
|
|
328
|
-
const m = nrf_intel_hex_1.default.fromHex((0,
|
|
273
|
+
const m = nrf_intel_hex_1.default.fromHex((0, hex_util_js_1.truncateHexAfterEof)(hex));
|
|
329
274
|
return this.memoryMapToPaddedBytes(m);
|
|
330
275
|
}
|
|
331
276
|
paddedBytesToHexString(data) {
|
|
@@ -340,4 +285,4 @@ class PartialFlashing {
|
|
|
340
285
|
}
|
|
341
286
|
}
|
|
342
287
|
exports.PartialFlashing = PartialFlashing;
|
|
343
|
-
//# sourceMappingURL=
|
|
288
|
+
//# sourceMappingURL=partial-flashing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partial-flashing.js","sourceRoot":"","sources":["../../../src/usb/partial-flashing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promise-queue.js","sourceRoot":"","sources":["../../../src/usb/promise-queue.ts"],"names":[],"mappings":";;;AAcA,MAAa,YAAY;IAKvB,YAAY,UAAmB,EAAE;QAJzB;;;;mBAAgB,KAAK;WAAC;QACtB;;;;mBAA6B,EAAE;WAAC;QAChC;;;;;WAA4C;QAGlD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACI,GAAG,CAAI,MAAwB;QACpC,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,KAAK,GAAkB;gBAC3B,OAAO;gBACP,MAAM;gBACN,MAAM;aACP,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC;YACH,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,SAAsB;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACpB,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA5DD,oCA4DC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const promise_queue_js_1 = require("./promise-queue.js");
|
|
5
|
+
(0, vitest_1.describe)("PromiseQueue", () => {
|
|
6
|
+
(0, vitest_1.it)("waits for previous items", async () => {
|
|
7
|
+
const sequence = [];
|
|
8
|
+
const queue = new promise_queue_js_1.PromiseQueue();
|
|
9
|
+
queue.add(async () => {
|
|
10
|
+
(0, vitest_1.expect)(sequence).toEqual([]);
|
|
11
|
+
sequence.push(1);
|
|
12
|
+
});
|
|
13
|
+
queue.add(async () => {
|
|
14
|
+
(0, vitest_1.expect)(sequence).toEqual([1]);
|
|
15
|
+
sequence.push(2);
|
|
16
|
+
});
|
|
17
|
+
(0, vitest_1.expect)(await queue.add(async () => {
|
|
18
|
+
(0, vitest_1.expect)(sequence).toEqual([1, 2]);
|
|
19
|
+
sequence.push(3);
|
|
20
|
+
return 3;
|
|
21
|
+
})).toEqual(3);
|
|
22
|
+
(0, vitest_1.expect)(sequence).toEqual([1, 2, 3]);
|
|
23
|
+
});
|
|
24
|
+
(0, vitest_1.it)("copes with errors", async () => {
|
|
25
|
+
const queue = new promise_queue_js_1.PromiseQueue();
|
|
26
|
+
const sequence = [];
|
|
27
|
+
const p1 = queue.add(() => {
|
|
28
|
+
sequence.push(1);
|
|
29
|
+
throw new Error("Oops");
|
|
30
|
+
});
|
|
31
|
+
const p2 = queue.add(() => {
|
|
32
|
+
sequence.push(2);
|
|
33
|
+
return Promise.resolve(2);
|
|
34
|
+
});
|
|
35
|
+
(0, vitest_1.expect)(await p2).toEqual(2);
|
|
36
|
+
await (0, vitest_1.expect)(p1).rejects.toThrow("Oops");
|
|
37
|
+
(0, vitest_1.expect)(sequence).toEqual([1, 2]);
|
|
38
|
+
});
|
|
39
|
+
(0, vitest_1.it)("clears", async () => {
|
|
40
|
+
const queue = new promise_queue_js_1.PromiseQueue();
|
|
41
|
+
const rejected = [];
|
|
42
|
+
const p1 = queue.add(() => new Promise((resolve) => setTimeout(resolve, 1000)));
|
|
43
|
+
const p2 = queue.add(() => new Promise((resolve) => setTimeout(resolve, 1000)));
|
|
44
|
+
const p3 = queue.add(() => new Promise((resolve) => setTimeout(resolve, 1000)));
|
|
45
|
+
p1.catch(() => rejected.push(p1));
|
|
46
|
+
p2.catch(() => rejected.push(p2));
|
|
47
|
+
p3.catch(() => rejected.push(p3));
|
|
48
|
+
queue.clear(() => new Error("Cleared!"));
|
|
49
|
+
await (0, vitest_1.expect)(p2).rejects.toThrow("Cleared!");
|
|
50
|
+
await (0, vitest_1.expect)(p3).rejects.toThrow("Cleared!");
|
|
51
|
+
(0, vitest_1.expect)(rejected).toEqual([p2, p3]);
|
|
52
|
+
});
|
|
53
|
+
(0, vitest_1.it)("detects abort", async () => {
|
|
54
|
+
let abort = false;
|
|
55
|
+
const queue = new promise_queue_js_1.PromiseQueue({
|
|
56
|
+
abortCheck: () => (abort ? () => new Error("Aborted") : undefined),
|
|
57
|
+
});
|
|
58
|
+
const p1 = queue.add(async () => {
|
|
59
|
+
abort = true;
|
|
60
|
+
});
|
|
61
|
+
const p2 = queue.add(async () => {
|
|
62
|
+
throw new Error("Does not happen");
|
|
63
|
+
});
|
|
64
|
+
(0, vitest_1.expect)(await p1).toBeUndefined();
|
|
65
|
+
await (0, vitest_1.expect)(p2).rejects.toThrow("Aborted");
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=promise-queue.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promise-queue.test.js","sourceRoot":"","sources":["../../../src/usb/promise-queue.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface SerialData {
|
|
2
|
+
data: string;
|
|
3
|
+
}
|
|
4
|
+
export interface SerialErrorData {
|
|
5
|
+
error: unknown;
|
|
6
|
+
}
|
|
7
|
+
export interface SerialConnectionEventMap {
|
|
8
|
+
/** Fired when serial data is received from the micro:bit. */
|
|
9
|
+
serialdata: SerialData;
|
|
10
|
+
/**
|
|
11
|
+
* Fired when the serial session ends, indicating that subsequent serial
|
|
12
|
+
* output may be from a different program (e.g. after flashing or a full
|
|
13
|
+
* disconnect). Consumers typically use this to clear the terminal.
|
|
14
|
+
*
|
|
15
|
+
* Not fired when the connection is paused (tab hidden) because the same
|
|
16
|
+
* program continues running and serial resumes when the tab becomes visible.
|
|
17
|
+
*/
|
|
18
|
+
serialreset: void;
|
|
19
|
+
/** Fired when a serial read error occurs. */
|
|
20
|
+
serialerror: SerialErrorData;
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serial-events.js","sourceRoot":"","sources":["../../../src/usb/serial-events.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* (c) 2026, Micro:bit Educational Foundation and contributors
|
|
3
|
+
*
|
|
4
|
+
* Derived from dapjs (https://github.com/ARMmbed/dapjs) which is
|
|
5
|
+
* Copyright (c) Arm Limited 2018
|
|
6
|
+
* Copyright (c) Microsoft Corporation
|
|
7
|
+
*
|
|
8
|
+
* SPDX-License-Identifier: MIT
|
|
9
|
+
*
|
|
10
|
+
* See arm-debug.ts for the full dapjs license.
|
|
11
|
+
*
|
|
12
|
+
* WebUSB transport layer. Handles opening/closing the USB interface,
|
|
13
|
+
* finding the correct CMSIS-DAP endpoints, and reading/writing raw packets.
|
|
14
|
+
*
|
|
15
|
+
* This is the lowest layer in the USB stack, sitting beneath the CMSIS-DAP
|
|
16
|
+
* protocol layer. It knows nothing about DAP commands — it just moves
|
|
17
|
+
* fixed-size packets between the host and the USB device.
|
|
18
|
+
*
|
|
19
|
+
* micro:bit V2 uses CMSIS-DAP v2 (bulk endpoints). micro:bit V1 uses
|
|
20
|
+
* CMSIS-DAP v1 (HID) which has no bulk endpoints — we fall back to
|
|
21
|
+
* control transfers (SET_REPORT/GET_REPORT) in that case.
|
|
22
|
+
*/
|
|
23
|
+
export declare const PACKET_SIZE = 64;
|
|
24
|
+
export interface Transport {
|
|
25
|
+
readonly isOpen: boolean;
|
|
26
|
+
open(): Promise<void>;
|
|
27
|
+
close(): Promise<void>;
|
|
28
|
+
read(): Promise<DataView>;
|
|
29
|
+
write(data: Uint8Array): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
export declare class UsbTransport implements Transport {
|
|
32
|
+
private device;
|
|
33
|
+
private interfaceNumber?;
|
|
34
|
+
private endpointIn?;
|
|
35
|
+
private endpointOut?;
|
|
36
|
+
constructor(device: USBDevice);
|
|
37
|
+
get isOpen(): boolean;
|
|
38
|
+
open(): Promise<void>;
|
|
39
|
+
close(): Promise<void>;
|
|
40
|
+
read(): Promise<DataView>;
|
|
41
|
+
write(data: Uint8Array): Promise<void>;
|
|
42
|
+
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* (c) 2026, Micro:bit Educational Foundation and contributors
|
|
4
|
+
*
|
|
5
|
+
* Derived from dapjs (https://github.com/ARMmbed/dapjs) which is
|
|
6
|
+
* Copyright (c) Arm Limited 2018
|
|
7
|
+
* Copyright (c) Microsoft Corporation
|
|
8
|
+
*
|
|
9
|
+
* SPDX-License-Identifier: MIT
|
|
10
|
+
*
|
|
11
|
+
* See arm-debug.ts for the full dapjs license.
|
|
12
|
+
*
|
|
13
|
+
* WebUSB transport layer. Handles opening/closing the USB interface,
|
|
14
|
+
* finding the correct CMSIS-DAP endpoints, and reading/writing raw packets.
|
|
15
|
+
*
|
|
16
|
+
* This is the lowest layer in the USB stack, sitting beneath the CMSIS-DAP
|
|
17
|
+
* protocol layer. It knows nothing about DAP commands — it just moves
|
|
18
|
+
* fixed-size packets between the host and the USB device.
|
|
19
|
+
*
|
|
20
|
+
* micro:bit V2 uses CMSIS-DAP v2 (bulk endpoints). micro:bit V1 uses
|
|
21
|
+
* CMSIS-DAP v1 (HID) which has no bulk endpoints — we fall back to
|
|
22
|
+
* control transfers (SET_REPORT/GET_REPORT) in that case.
|
|
23
|
+
*/
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.UsbTransport = exports.PACKET_SIZE = void 0;
|
|
26
|
+
const device_js_1 = require("../device.js");
|
|
27
|
+
// WebUSB interface class for CMSIS-DAP
|
|
28
|
+
const CMSIS_DAP_INTERFACE_CLASS = 0xff;
|
|
29
|
+
// HID report types for control transfer fallback (CMSIS-DAP v1 / no bulk endpoints)
|
|
30
|
+
const GET_REPORT = 0x01;
|
|
31
|
+
const SET_REPORT = 0x09;
|
|
32
|
+
const OUT_REPORT = 0x200;
|
|
33
|
+
const IN_REPORT = 0x100;
|
|
34
|
+
exports.PACKET_SIZE = 64;
|
|
35
|
+
class UsbTransport {
|
|
36
|
+
constructor(device) {
|
|
37
|
+
Object.defineProperty(this, "device", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
configurable: true,
|
|
40
|
+
writable: true,
|
|
41
|
+
value: device
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(this, "interfaceNumber", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
configurable: true,
|
|
46
|
+
writable: true,
|
|
47
|
+
value: void 0
|
|
48
|
+
});
|
|
49
|
+
Object.defineProperty(this, "endpointIn", {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
configurable: true,
|
|
52
|
+
writable: true,
|
|
53
|
+
value: void 0
|
|
54
|
+
});
|
|
55
|
+
Object.defineProperty(this, "endpointOut", {
|
|
56
|
+
enumerable: true,
|
|
57
|
+
configurable: true,
|
|
58
|
+
writable: true,
|
|
59
|
+
value: void 0
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
get isOpen() {
|
|
63
|
+
return this.interfaceNumber !== undefined;
|
|
64
|
+
}
|
|
65
|
+
async open() {
|
|
66
|
+
if (this.isOpen)
|
|
67
|
+
return;
|
|
68
|
+
await this.device.open();
|
|
69
|
+
await this.device.selectConfiguration(1);
|
|
70
|
+
const interfaces = this.device.configuration.interfaces.filter((iface) => iface.alternates[0].interfaceClass === CMSIS_DAP_INTERFACE_CLASS);
|
|
71
|
+
if (!interfaces.length) {
|
|
72
|
+
throw new device_js_1.DeviceError({
|
|
73
|
+
code: "update-req",
|
|
74
|
+
message: "No valid interfaces found.",
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
// Prefer interface with bulk endpoints (CMSIS-DAP v2).
|
|
78
|
+
// Fall back to an interface without endpoints (CMSIS-DAP v1 / HID),
|
|
79
|
+
// which will use control transfers instead.
|
|
80
|
+
const selectedInterface = interfaces.find((iface) => iface.alternates[0].endpoints.length > 0) ??
|
|
81
|
+
interfaces[0];
|
|
82
|
+
this.interfaceNumber = selectedInterface.interfaceNumber;
|
|
83
|
+
const endpoints = selectedInterface.alternates[0].endpoints;
|
|
84
|
+
this.endpointIn = undefined;
|
|
85
|
+
this.endpointOut = undefined;
|
|
86
|
+
for (const endpoint of endpoints) {
|
|
87
|
+
if (endpoint.direction === "in" && !this.endpointIn)
|
|
88
|
+
this.endpointIn = endpoint;
|
|
89
|
+
else if (endpoint.direction === "out" && !this.endpointOut)
|
|
90
|
+
this.endpointOut = endpoint;
|
|
91
|
+
}
|
|
92
|
+
await this.device.claimInterface(this.interfaceNumber);
|
|
93
|
+
}
|
|
94
|
+
async close() {
|
|
95
|
+
this.interfaceNumber = undefined;
|
|
96
|
+
this.endpointIn = undefined;
|
|
97
|
+
this.endpointOut = undefined;
|
|
98
|
+
await this.device.close();
|
|
99
|
+
}
|
|
100
|
+
async read() {
|
|
101
|
+
if (this.interfaceNumber === undefined) {
|
|
102
|
+
throw new device_js_1.DeviceError({
|
|
103
|
+
code: "reconnect-microbit",
|
|
104
|
+
message: "No device opened",
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
let result;
|
|
108
|
+
if (this.endpointIn) {
|
|
109
|
+
result = await this.device.transferIn(this.endpointIn.endpointNumber, exports.PACKET_SIZE);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
// Control transfer fallback for interfaces without bulk endpoints
|
|
113
|
+
result = await this.device.controlTransferIn({
|
|
114
|
+
requestType: "class",
|
|
115
|
+
recipient: "interface",
|
|
116
|
+
request: GET_REPORT,
|
|
117
|
+
value: IN_REPORT,
|
|
118
|
+
index: this.interfaceNumber,
|
|
119
|
+
}, exports.PACKET_SIZE);
|
|
120
|
+
}
|
|
121
|
+
if (result.status !== "ok" || !result.data) {
|
|
122
|
+
throw new device_js_1.DeviceError({
|
|
123
|
+
code: "reconnect-microbit",
|
|
124
|
+
message: "USB read failed",
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
return result.data;
|
|
128
|
+
}
|
|
129
|
+
async write(data) {
|
|
130
|
+
if (this.interfaceNumber === undefined) {
|
|
131
|
+
throw new device_js_1.DeviceError({
|
|
132
|
+
code: "reconnect-microbit",
|
|
133
|
+
message: "No device opened",
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
// Always pad to PACKET_SIZE (required for HID control transfer fallback)
|
|
137
|
+
const buffer = new Uint8Array(exports.PACKET_SIZE);
|
|
138
|
+
buffer.set(data.subarray(0, exports.PACKET_SIZE));
|
|
139
|
+
if (this.endpointOut) {
|
|
140
|
+
await this.device.transferOut(this.endpointOut.endpointNumber, buffer);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
// Control transfer fallback for interfaces without bulk endpoints
|
|
144
|
+
await this.device.controlTransferOut({
|
|
145
|
+
requestType: "class",
|
|
146
|
+
recipient: "interface",
|
|
147
|
+
request: SET_REPORT,
|
|
148
|
+
value: OUT_REPORT,
|
|
149
|
+
index: this.interfaceNumber,
|
|
150
|
+
}, buffer);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
exports.UsbTransport = UsbTransport;
|
|
155
|
+
//# sourceMappingURL=transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/usb/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-util.js","sourceRoot":"","sources":["../../
|
|
1
|
+
{"version":3,"file":"async-util.js","sourceRoot":"","sources":["../../src/async-util.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;CAAG;AAE1C,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,UAAkB,YAAY;QACxC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,aAAyB,EACzB,OAAe;IAEf,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,aAAa;QACb,iBAAiB,CAAC,OAAO,CAAC;KAC3B,CAAe,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,MAAc;IACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,UAAkB,SAAS;IAE3B,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;IACpB,MAAM,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAI,UAAkB,YAAY;IACvE,IAAI,QAAgC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QAC3C,QAAQ,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAS,EAAE,CAAC;AAC1C,CAAC"}
|