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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/build/cjs/async-util.d.ts +3 -1
  2. package/build/cjs/async-util.js +5 -1
  3. package/build/cjs/async-util.js.map +1 -1
  4. package/build/cjs/bluetooth/ble-error.d.ts +10 -0
  5. package/build/cjs/bluetooth/ble-error.js +47 -0
  6. package/build/cjs/bluetooth/ble-error.js.map +1 -0
  7. package/build/cjs/bluetooth/connection.d.ts +22 -3
  8. package/build/cjs/bluetooth/connection.js +27 -18
  9. package/build/cjs/bluetooth/connection.js.map +1 -1
  10. package/build/cjs/bluetooth/device-wrapper.js +3 -7
  11. package/build/cjs/bluetooth/device-wrapper.js.map +1 -1
  12. package/build/cjs/bluetooth/flashing/flashing-full.js +2 -1
  13. package/build/cjs/bluetooth/flashing/flashing-full.js.map +1 -1
  14. package/build/cjs/bluetooth/flashing/flashing-partial.js +2 -1
  15. package/build/cjs/bluetooth/flashing/flashing-partial.js.map +1 -1
  16. package/build/cjs/bluetooth/flashing/nordic-dfu.js +4 -3
  17. package/build/cjs/bluetooth/flashing/nordic-dfu.js.map +1 -1
  18. package/build/cjs/bluetooth/services/accelerometer-service.js +5 -4
  19. package/build/cjs/bluetooth/services/accelerometer-service.js.map +1 -1
  20. package/build/cjs/bluetooth/services/button-service.js +12 -3
  21. package/build/cjs/bluetooth/services/button-service.js.map +1 -1
  22. package/build/cjs/bluetooth/services/device-information-service.js +7 -12
  23. package/build/cjs/bluetooth/services/device-information-service.js.map +1 -1
  24. package/build/cjs/bluetooth/services/led-service.js +3 -0
  25. package/build/cjs/bluetooth/services/led-service.js.map +1 -1
  26. package/build/cjs/bluetooth/services/magnetometer-service.js +5 -4
  27. package/build/cjs/bluetooth/services/magnetometer-service.js.map +1 -1
  28. package/build/cjs/bluetooth/services/uart-service.js +12 -3
  29. package/build/cjs/bluetooth/services/uart-service.js.map +1 -1
  30. package/build/cjs/device.d.ts +73 -58
  31. package/build/cjs/device.js +7 -2
  32. package/build/cjs/device.js.map +1 -1
  33. package/build/cjs/events.d.ts +1 -2
  34. package/build/cjs/events.js.map +1 -1
  35. package/build/cjs/index.d.ts +4 -5
  36. package/build/cjs/index.js +1 -3
  37. package/build/cjs/index.js.map +1 -1
  38. package/build/cjs/radio-bridge/connection.d.ts +18 -5
  39. package/build/cjs/radio-bridge/connection.js +30 -12
  40. package/build/cjs/radio-bridge/connection.js.map +1 -1
  41. package/build/cjs/service-events.d.ts +6 -5
  42. package/build/cjs/usb/arm-debug.d.ts +1 -1
  43. package/build/cjs/usb/arm-debug.js +3 -3
  44. package/build/cjs/usb/arm-debug.js.map +1 -1
  45. package/build/cjs/usb/cmsis-dap.js +1 -1
  46. package/build/cjs/usb/cmsis-dap.js.map +1 -1
  47. package/build/cjs/usb/connection.d.ts +18 -3
  48. package/build/cjs/usb/connection.js +17 -10
  49. package/build/cjs/usb/connection.js.map +1 -1
  50. package/build/cjs/usb/index.d.ts +1 -1
  51. package/build/cjs/usb/partial-flashing.d.ts +22 -4
  52. package/build/cjs/usb/partial-flashing.js +108 -18
  53. package/build/cjs/usb/partial-flashing.js.map +1 -1
  54. package/build/cjs/usb/serial-events.d.ts +0 -5
  55. package/build/cjs/usb/transport.js +4 -4
  56. package/build/cjs/usb/transport.js.map +1 -1
  57. package/build/esm/async-util.d.ts +3 -1
  58. package/build/esm/async-util.js +5 -1
  59. package/build/esm/async-util.js.map +1 -1
  60. package/build/esm/bluetooth/ble-error.d.ts +10 -0
  61. package/build/esm/bluetooth/ble-error.js +42 -0
  62. package/build/esm/bluetooth/ble-error.js.map +1 -0
  63. package/build/esm/bluetooth/connection.d.ts +22 -3
  64. package/build/esm/bluetooth/connection.js +27 -18
  65. package/build/esm/bluetooth/connection.js.map +1 -1
  66. package/build/esm/bluetooth/device-wrapper.js +3 -7
  67. package/build/esm/bluetooth/device-wrapper.js.map +1 -1
  68. package/build/esm/bluetooth/flashing/flashing-full.js +2 -1
  69. package/build/esm/bluetooth/flashing/flashing-full.js.map +1 -1
  70. package/build/esm/bluetooth/flashing/flashing-partial.js +2 -1
  71. package/build/esm/bluetooth/flashing/flashing-partial.js.map +1 -1
  72. package/build/esm/bluetooth/flashing/nordic-dfu.js +4 -3
  73. package/build/esm/bluetooth/flashing/nordic-dfu.js.map +1 -1
  74. package/build/esm/bluetooth/services/accelerometer-service.js +5 -4
  75. package/build/esm/bluetooth/services/accelerometer-service.js.map +1 -1
  76. package/build/esm/bluetooth/services/button-service.js +12 -3
  77. package/build/esm/bluetooth/services/button-service.js.map +1 -1
  78. package/build/esm/bluetooth/services/device-information-service.js +7 -12
  79. package/build/esm/bluetooth/services/device-information-service.js.map +1 -1
  80. package/build/esm/bluetooth/services/led-service.js +3 -0
  81. package/build/esm/bluetooth/services/led-service.js.map +1 -1
  82. package/build/esm/bluetooth/services/magnetometer-service.js +5 -4
  83. package/build/esm/bluetooth/services/magnetometer-service.js.map +1 -1
  84. package/build/esm/bluetooth/services/uart-service.js +12 -3
  85. package/build/esm/bluetooth/services/uart-service.js.map +1 -1
  86. package/build/esm/device.d.ts +73 -58
  87. package/build/esm/device.js +7 -2
  88. package/build/esm/device.js.map +1 -1
  89. package/build/esm/events.d.ts +1 -2
  90. package/build/esm/events.js.map +1 -1
  91. package/build/esm/index.d.ts +4 -5
  92. package/build/esm/index.js +1 -2
  93. package/build/esm/index.js.map +1 -1
  94. package/build/esm/radio-bridge/connection.d.ts +18 -5
  95. package/build/esm/radio-bridge/connection.js +31 -13
  96. package/build/esm/radio-bridge/connection.js.map +1 -1
  97. package/build/esm/service-events.d.ts +6 -5
  98. package/build/esm/usb/arm-debug.d.ts +1 -1
  99. package/build/esm/usb/arm-debug.js +3 -3
  100. package/build/esm/usb/arm-debug.js.map +1 -1
  101. package/build/esm/usb/cmsis-dap.js +1 -1
  102. package/build/esm/usb/cmsis-dap.js.map +1 -1
  103. package/build/esm/usb/connection.d.ts +18 -3
  104. package/build/esm/usb/connection.js +18 -11
  105. package/build/esm/usb/connection.js.map +1 -1
  106. package/build/esm/usb/index.d.ts +1 -1
  107. package/build/esm/usb/partial-flashing.d.ts +22 -4
  108. package/build/esm/usb/partial-flashing.js +108 -18
  109. package/build/esm/usb/partial-flashing.js.map +1 -1
  110. package/build/esm/usb/serial-events.d.ts +0 -5
  111. package/build/esm/usb/transport.js +4 -4
  112. package/build/esm/usb/transport.js.map +1 -1
  113. package/package.json +1 -1
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ButtonService = void 0;
4
4
  const bluetooth_le_1 = require("@capacitor-community/bluetooth-le");
5
5
  const profile_js_1 = require("../profile.js");
6
+ const ble_error_js_1 = require("../ble-error.js");
6
7
  class ButtonService {
7
8
  constructor(deviceId, dispatchTypedEvent) {
8
9
  Object.defineProperty(this, "deviceId", {
@@ -42,8 +43,8 @@ class ButtonService {
42
43
  }
43
44
  catch (e) {
44
45
  this.dispatchTypedEvent("backgrounderror", {
45
- message: "Failed to start notifications",
46
- error: e,
46
+ error: (0, ble_error_js_1.mapBleError)(e),
47
+ event: type,
47
48
  });
48
49
  }
49
50
  }
@@ -53,7 +54,15 @@ class ButtonService {
53
54
  switch (type) {
54
55
  case "buttonachanged":
55
56
  case "buttonbchanged": {
56
- await bluetooth_le_1.BleClient.stopNotifications(this.deviceId, profile_js_1.profile.button.id, this.characteristicForButtonEventType(type).id);
57
+ try {
58
+ await bluetooth_le_1.BleClient.stopNotifications(this.deviceId, profile_js_1.profile.button.id, this.characteristicForButtonEventType(type).id);
59
+ }
60
+ catch (e) {
61
+ this.dispatchTypedEvent("backgrounderror", {
62
+ error: (0, ble_error_js_1.mapBleError)(e),
63
+ event: type,
64
+ });
65
+ }
57
66
  }
58
67
  }
59
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"button-service.js","sourceRoot":"","sources":["../../../../src/bluetooth/services/button-service.ts"],"names":[],"mappings":";;;AAAA,oEAA8D;AAE9D,8CAAwC;AAOxC,MAAa,aAAa;IAGxB,YACU,QAAgB,EAChB,kBAA+C;QADvD;;;;mBAAQ,QAAQ;WAAQ;QACxB;;;;mBAAQ,kBAAkB;WAA6B;QAJzD;;;;mBAAO,oBAAO,CAAC,MAAM,CAAC,EAAE;WAAC;IAKtB,CAAC;IAEJ,iBAAiB;QACf,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAuB;QAC9C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,gBAAgB,CAAC;YACtB,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC;oBACH,MAAM,wBAAS,CAAC,kBAAkB,CAChC,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,MAAM,CAAC,EAAE,EACjB,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAC,EAAE,EAC9C,CAAC,KAAK,EAAE,EAAE;wBACR,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAgB,CAAC;wBAC/C,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;4BAC5B,MAAM,EAAE,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;4BAC7C,KAAK;yBACN,CAAC,CAAC;oBACL,CAAC,CACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;wBACzC,OAAO,EAAE,+BAA+B;wBACxC,KAAK,EAAE,CAAC;qBACT,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAuB;QAC7C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,gBAAgB,CAAC;YACtB,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,wBAAS,CAAC,iBAAiB,CAC/B,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,MAAM,CAAC,EAAE,EACjB,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAC,EAAE,CAC/C,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,gCAAgC,CACtC,IAAyC;QAEzC,OAAO,IAAI,KAAK,gBAAgB;YAC9B,CAAC,CAAC,oBAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAClC,CAAC,CAAC,oBAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IACvC,CAAC;CACF;AA3DD,sCA2DC"}
1
+ {"version":3,"file":"button-service.js","sourceRoot":"","sources":["../../../../src/bluetooth/services/button-service.ts"],"names":[],"mappings":";;;AAAA,oEAA8D;AAE9D,8CAAwC;AAMxC,kDAA8C;AAE9C,MAAa,aAAa;IAGxB,YACU,QAAgB,EAChB,kBAA+C;QADvD;;;;mBAAQ,QAAQ;WAAQ;QACxB;;;;mBAAQ,kBAAkB;WAA6B;QAJzD;;;;mBAAO,oBAAO,CAAC,MAAM,CAAC,EAAE;WAAC;IAKtB,CAAC;IAEJ,iBAAiB;QACf,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAuB;QAC9C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,gBAAgB,CAAC;YACtB,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC;oBACH,MAAM,wBAAS,CAAC,kBAAkB,CAChC,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,MAAM,CAAC,EAAE,EACjB,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAC,EAAE,EAC9C,CAAC,KAAK,EAAE,EAAE;wBACR,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAgB,CAAC;wBAC/C,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;4BAC5B,MAAM,EAAE,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;4BAC7C,KAAK;yBACN,CAAC,CAAC;oBACL,CAAC,CACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;wBACzC,KAAK,EAAE,IAAA,0BAAW,EAAC,CAAC,CAAC;wBACrB,KAAK,EAAE,IAAI;qBACZ,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAuB;QAC7C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,gBAAgB,CAAC;YACtB,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC;oBACH,MAAM,wBAAS,CAAC,iBAAiB,CAC/B,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,MAAM,CAAC,EAAE,EACjB,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAC,EAAE,CAC/C,CAAC;gBACJ,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;wBACzC,KAAK,EAAE,IAAA,0BAAW,EAAC,CAAC,CAAC;wBACrB,KAAK,EAAE,IAAI;qBACZ,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,gCAAgC,CACtC,IAAyC;QAEzC,OAAO,IAAI,KAAK,gBAAgB;YAC9B,CAAC,CAAC,oBAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAClC,CAAC,CAAC,oBAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IACvC,CAAC;CACF;AAlED,sCAkEC"}
@@ -14,20 +14,15 @@ class DeviceInformationService {
14
14
  }
15
15
  async getBoardVersion() {
16
16
  const serviceMeta = profile_js_1.profile.deviceInformation;
17
- try {
18
- const modelNumberBytes = await bluetooth_le_1.BleClient.read(this.deviceId, serviceMeta.id, serviceMeta.characteristics.modelNumber.id);
19
- const modelNumber = new TextDecoder().decode(modelNumberBytes);
20
- if (modelNumber.toLowerCase() === "BBC micro:bit".toLowerCase()) {
21
- return "V1";
22
- }
23
- if (modelNumber.toLowerCase().includes("BBC micro:bit v2".toLowerCase())) {
24
- return "V2";
25
- }
26
- throw new Error(`Unexpected model number ${modelNumber}`);
17
+ const modelNumberBytes = await bluetooth_le_1.BleClient.read(this.deviceId, serviceMeta.id, serviceMeta.characteristics.modelNumber.id);
18
+ const modelNumber = new TextDecoder().decode(modelNumberBytes);
19
+ if (modelNumber.toLowerCase() === "BBC micro:bit".toLowerCase()) {
20
+ return "V1";
27
21
  }
28
- catch (e) {
29
- throw new Error(`Could not read model number: ${e instanceof Error ? e.message : e}`);
22
+ if (modelNumber.toLowerCase().includes("BBC micro:bit v2".toLowerCase())) {
23
+ return "V2";
30
24
  }
25
+ throw new Error(`Unexpected model number: ${modelNumber}`);
31
26
  }
32
27
  }
33
28
  exports.DeviceInformationService = DeviceInformationService;
@@ -1 +1 @@
1
- {"version":3,"file":"device-information-service.js","sourceRoot":"","sources":["../../../../src/bluetooth/services/device-information-service.ts"],"names":[],"mappings":";;;AAAA,oEAA8D;AAE9D,8CAAwC;AAExC,MAAa,wBAAwB;IACnC,YAAoB,QAAgB;QAAxB;;;;mBAAQ,QAAQ;WAAQ;IAAG,CAAC;IAExC,KAAK,CAAC,eAAe;QACnB,MAAM,WAAW,GAAG,oBAAO,CAAC,iBAAiB,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,MAAM,wBAAS,CAAC,IAAI,CAC3C,IAAI,CAAC,QAAQ,EACb,WAAW,CAAC,EAAE,EACd,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAC3C,CAAC;YACF,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC/D,IAAI,WAAW,CAAC,WAAW,EAAE,KAAK,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;gBAChE,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IACE,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,EACpE,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,WAAW,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,gCAAgC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA3BD,4DA2BC"}
1
+ {"version":3,"file":"device-information-service.js","sourceRoot":"","sources":["../../../../src/bluetooth/services/device-information-service.ts"],"names":[],"mappings":";;;AAAA,oEAA8D;AAE9D,8CAAwC;AAExC,MAAa,wBAAwB;IACnC,YAAoB,QAAgB;QAAxB;;;;mBAAQ,QAAQ;WAAQ;IAAG,CAAC;IAExC,KAAK,CAAC,eAAe;QACnB,MAAM,WAAW,GAAG,oBAAO,CAAC,iBAAiB,CAAC;QAC9C,MAAM,gBAAgB,GAAG,MAAM,wBAAS,CAAC,IAAI,CAC3C,IAAI,CAAC,QAAQ,EACb,WAAW,CAAC,EAAE,EACd,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAC3C,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC/D,IAAI,WAAW,CAAC,WAAW,EAAE,KAAK,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACzE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF;AAnBD,4DAmBC"}
@@ -35,6 +35,9 @@ class LedService {
35
35
  return this.dataViewToLedMatrix(dataView);
36
36
  }
37
37
  async setLedMatrix(value) {
38
+ if (value.length !== 5 || value.some((row) => row.length !== 5)) {
39
+ throw new Error("LED matrix must be 5x5");
40
+ }
38
41
  const dataView = this.ledMatrixToDataView(value);
39
42
  await bluetooth_le_1.BleClient.write(this.deviceId, profile_js_1.profile.led.id, profile_js_1.profile.led.characteristics.matrixState.id, dataView);
40
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"led-service.js","sourceRoot":"","sources":["../../../../src/bluetooth/services/led-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"led-service.js","sourceRoot":"","sources":["../../../../src/bluetooth/services/led-service.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MagnetometerService = void 0;
4
4
  const bluetooth_le_1 = require("@capacitor-community/bluetooth-le");
5
5
  const profile_js_1 = require("../profile.js");
6
+ const ble_error_js_1 = require("../ble-error.js");
6
7
  class MagnetometerService {
7
8
  constructor(deviceId, dispatchTypedEvent) {
8
9
  Object.defineProperty(this, "deviceId", {
@@ -74,8 +75,8 @@ class MagnetometerService {
74
75
  }
75
76
  catch (e) {
76
77
  this.dispatchTypedEvent("backgrounderror", {
77
- message: "Failed to start notifications",
78
- error: e,
78
+ error: (0, ble_error_js_1.mapBleError)(e),
79
+ event: type,
79
80
  });
80
81
  }
81
82
  }
@@ -87,8 +88,8 @@ class MagnetometerService {
87
88
  }
88
89
  catch (e) {
89
90
  this.dispatchTypedEvent("backgrounderror", {
90
- message: "Failed to stop notifications",
91
- error: e,
91
+ error: (0, ble_error_js_1.mapBleError)(e),
92
+ event: type,
92
93
  });
93
94
  }
94
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"magnetometer-service.js","sourceRoot":"","sources":["../../../../src/bluetooth/services/magnetometer-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"magnetometer-service.js","sourceRoot":"","sources":["../../../../src/bluetooth/services/magnetometer-service.ts"],"names":[],"mappings":";;;AAAA,oEAA8D;AAE9D,8CAAwC;AAMxC,kDAA8C;AAE9C,MAAa,mBAAmB;IAG9B,YACU,QAAgB,EAChB,kBAA+C;QADvD;;;;mBAAQ,QAAQ;WAAQ;QACxB;;;;mBAAQ,kBAAkB;WAA6B;QAJzD;;;;mBAAO,oBAAO,CAAC,YAAY,CAAC,EAAE;WAAC;IAK5B,CAAC;IAEJ,iBAAiB;QACf,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACrC,CAAC;IAEO,cAAc,CAAC,QAAkB;QACvC,OAAO;YACL,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;YAC7B,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;YAC7B,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;SAC9B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,QAAQ,GAAG,MAAM,wBAAS,CAAC,IAAI,CACnC,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,YAAY,CAAC,EAAE,EACvB,oBAAO,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAC7C,CAAC;QACF,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,QAAQ,GAAG,MAAM,wBAAS,CAAC,IAAI,CACnC,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,YAAY,CAAC,EAAE,EACvB,oBAAO,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAC/C,CAAC;QACF,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,wCAAwC;YACxC,OAAO;QACT,CAAC;QACD,kCAAkC;QAClC,gEAAgE;QAChE,gDAAgD;QAChD,mGAAmG;QACnG,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACnC,MAAM,wBAAS,CAAC,KAAK,CACnB,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,YAAY,CAAC,EAAE,EACvB,oBAAO,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,EAC9C,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,QAAQ,GAAG,MAAM,wBAAS,CAAC,IAAI,CACnC,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,YAAY,CAAC,EAAE,EACvB,oBAAO,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAChD,CAAC;QACF,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxB,MAAM,wBAAS,CAAC,KAAK,CACnB,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,YAAY,CAAC,EAAE,EACvB,oBAAO,CAAC,YAAY,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,EACnD,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAuB;QAC9C,IAAI,IAAI,KAAK,yBAAyB,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,wBAAS,CAAC,kBAAkB,CAChC,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,YAAY,CAAC,EAAE,EACvB,oBAAO,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAC5C,CAAC,KAAe,EAAE,EAAE;oBAClB,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBACxC,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC;gBAC3D,CAAC,CACF,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;oBACzC,KAAK,EAAE,IAAA,0BAAW,EAAC,CAAC,CAAC;oBACrB,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAuB;QAC7C,IAAI,IAAI,KAAK,yBAAyB,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,wBAAS,CAAC,iBAAiB,CAC/B,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,YAAY,CAAC,EAAE,EACvB,oBAAO,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAC7C,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;oBACzC,KAAK,EAAE,IAAA,0BAAW,EAAC,CAAC,CAAC;oBACrB,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAlHD,kDAkHC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UARTService = void 0;
4
4
  const bluetooth_le_1 = require("@capacitor-community/bluetooth-le");
5
5
  const profile_js_1 = require("../profile.js");
6
+ const ble_error_js_1 = require("../ble-error.js");
6
7
  class UARTService {
7
8
  constructor(deviceId, dispatchTypedEvent) {
8
9
  Object.defineProperty(this, "deviceId", {
@@ -38,15 +39,23 @@ class UARTService {
38
39
  }
39
40
  catch (e) {
40
41
  this.dispatchTypedEvent("backgrounderror", {
41
- message: "Failed to start notifications",
42
- error: e,
42
+ error: (0, ble_error_js_1.mapBleError)(e),
43
+ event: type,
43
44
  });
44
45
  }
45
46
  }
46
47
  }
47
48
  async stopNotifications(type) {
48
49
  if (type === "uartdata") {
49
- await bluetooth_le_1.BleClient.stopNotifications(this.deviceId, profile_js_1.profile.uart.id, profile_js_1.profile.uart.characteristics.tx.id);
50
+ try {
51
+ await bluetooth_le_1.BleClient.stopNotifications(this.deviceId, profile_js_1.profile.uart.id, profile_js_1.profile.uart.characteristics.tx.id);
52
+ }
53
+ catch (e) {
54
+ this.dispatchTypedEvent("backgrounderror", {
55
+ error: (0, ble_error_js_1.mapBleError)(e),
56
+ event: type,
57
+ });
58
+ }
50
59
  }
51
60
  }
52
61
  async writeData(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"uart-service.js","sourceRoot":"","sources":["../../../../src/bluetooth/services/uart-service.ts"],"names":[],"mappings":";;;AAAA,oEAA8D;AAE9D,8CAAwC;AAMxC,MAAa,WAAW;IAGtB,YACU,QAAgB,EAChB,kBAA+C;QADvD;;;;mBAAQ,QAAQ;WAAQ;QACxB;;;;mBAAQ,kBAAkB;WAA6B;QAJzD;;;;mBAAO,oBAAO,CAAC,IAAI,CAAC,EAAE;WAAC;IAKpB,CAAC;IAEJ,iBAAiB;QACf,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAuB;QAC9C,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,wBAAS,CAAC,kBAAkB,CAChC,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,IAAI,CAAC,EAAE,EACf,oBAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,EAClC,CAAC,KAAe,EAAE,EAAE;oBAClB,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;wBAClC,KAAK,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;qBACpC,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;oBACzC,OAAO,EAAE,+BAA+B;oBACxC,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAuB;QAC7C,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,MAAM,wBAAS,CAAC,iBAAiB,CAC/B,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,IAAI,CAAC,EAAE,EACf,oBAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CACnC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAiB;QAC/B,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,wBAAS,CAAC,oBAAoB,CAClC,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,IAAI,CAAC,EAAE,EACf,oBAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,EAClC,QAAQ,CACT,CAAC;IACJ,CAAC;CACF;AArDD,kCAqDC"}
1
+ {"version":3,"file":"uart-service.js","sourceRoot":"","sources":["../../../../src/bluetooth/services/uart-service.ts"],"names":[],"mappings":";;;AAAA,oEAA8D;AAE9D,8CAAwC;AAKxC,kDAA8C;AAE9C,MAAa,WAAW;IAGtB,YACU,QAAgB,EAChB,kBAA+C;QADvD;;;;mBAAQ,QAAQ;WAAQ;QACxB;;;;mBAAQ,kBAAkB;WAA6B;QAJzD;;;;mBAAO,oBAAO,CAAC,IAAI,CAAC,EAAE;WAAC;IAKpB,CAAC;IAEJ,iBAAiB;QACf,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAuB;QAC9C,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,wBAAS,CAAC,kBAAkB,CAChC,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,IAAI,CAAC,EAAE,EACf,oBAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,EAClC,CAAC,KAAe,EAAE,EAAE;oBAClB,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;wBAClC,KAAK,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;qBACpC,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;oBACzC,KAAK,EAAE,IAAA,0BAAW,EAAC,CAAC,CAAC;oBACrB,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAuB;QAC7C,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,wBAAS,CAAC,iBAAiB,CAC/B,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,IAAI,CAAC,EAAE,EACf,oBAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CACnC,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;oBACzC,KAAK,EAAE,IAAA,0BAAW,EAAC,CAAC,CAAC;oBACrB,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAiB;QAC/B,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,wBAAS,CAAC,oBAAoB,CAClC,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,IAAI,CAAC,EAAE,EACf,oBAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,EAClC,QAAQ,CACT,CAAC;IACJ,CAAC;CACF;AA5DD,kCA4DC"}
@@ -3,98 +3,101 @@
3
3
  *
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
- import { TypedEventTarget } from "./events.js";
7
6
  /**
8
7
  * Connection availability status returned by checkAvailability().
9
8
  * Used for pre-flight UX decisions before attempting to connect.
10
9
  */
11
10
  export type ConnectionAvailabilityStatus = "available" | "unsupported" | "disabled" | "permission-denied" | "location-disabled";
12
11
  /**
13
- * Specific identified error types.
12
+ * Error codes identifying specific failure modes.
14
13
  *
15
- * New members may be added over time.
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.
17
+ *
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.
16
21
  */
17
22
  export type DeviceErrorCode =
18
23
  /**
19
- * Operation was aborted via an AbortSignal.
24
+ * **BLE.** The operation was cancelled via an {@link AbortSignal}
25
+ * supplied by the caller. No user-facing error is needed.
20
26
  */
21
27
  "aborted"
22
28
  /**
23
- * Device not selected, e.g. because the user cancelled the dialog.
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.
24
32
  */
25
33
  | "no-device-selected"
26
34
  /**
27
- * Device not found, perhaps because it doesn't have new enough firmware (for V1).
28
- */
29
- | "update-req"
30
- /**
31
- * Unable to claim the interface, usually because it's in use in another tab/window.
35
+ * **USB, BLE.** The connection type is not supported on this platform
36
+ * or browser. Corresponds to {@link ConnectionAvailabilityStatus}
37
+ * `"unsupported"`.
32
38
  */
33
- | "clear-connect"
39
+ | "unsupported"
34
40
  /**
35
- * The device was found to be disconnected.
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"`.
36
44
  */
37
- | "device-disconnected"
45
+ | "disabled"
38
46
  /**
39
- * A communication timeout occurred.
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"`.
40
51
  */
41
- | "timeout-error"
52
+ | "permission-denied"
42
53
  /**
43
- * This is the fallback error case suggesting that the user physically reconnects their device.
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"`.
44
58
  */
45
- | "reconnect-microbit"
59
+ | "location-disabled"
46
60
  /**
47
- * An operation was attempted that requires an active connection.
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.
48
64
  */
49
65
  | "not-connected"
50
66
  /**
51
- * Error occured during serial or bluetooth communication.
52
- */
53
- | "background-comms-error"
54
- /**
55
- * Bluetooth service is missing on device.
56
- */
57
- | "service-missing"
58
- /**
59
- * Failed to establish Bluetooth connection.
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.
60
70
  */
61
- | "bluetooth-connection-failed"
71
+ | "device-in-use"
62
72
  /**
63
- * Pairing information lost on micro:bit.
73
+ * **USB, BLE.** The device disconnected during an operation.
74
+ * The physical USB or Bluetooth connection was lost.
64
75
  */
65
- | "pairing-information-lost"
66
- /**
67
- * Partial flash operation failed.
68
- */
69
- | "flash-partial-failed"
70
- /**
71
- * Full flash operation failed.
72
- */
73
- | "flash-full-failed"
74
- /**
75
- * Flash operation was cancelled.
76
- */
77
- | "flash-cancelled"
76
+ | "device-disconnected"
78
77
  /**
79
- * Connection type is not supported on this platform/browser.
80
- * Aligns with ConnectionAvailabilityStatus "unsupported".
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.
81
81
  */
82
- | "unsupported"
82
+ | "timeout"
83
83
  /**
84
- * Connection is disabled (e.g., Bluetooth turned off).
85
- * Aligns with ConnectionAvailabilityStatus "disabled".
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.
86
87
  */
87
- | "disabled"
88
+ | "connection-error"
88
89
  /**
89
- * Required permissions were denied.
90
- * Aligns with ConnectionAvailabilityStatus "permission-denied".
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.
91
93
  */
92
- | "permission-denied"
94
+ | "firmware-update-required"
93
95
  /**
94
- * Location services are disabled (Android < 12 only).
95
- * Aligns with ConnectionAvailabilityStatus "location-disabled".
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.
96
99
  */
97
- | "location-disabled";
100
+ | "pairing-information-lost";
98
101
  /**
99
102
  * Stages reported by the progress callback during connection and flashing.
100
103
  */
@@ -145,9 +148,10 @@ export type ProgressCallback = (stage: ProgressStage, progress?: number) => void
145
148
  */
146
149
  export declare class DeviceError extends Error {
147
150
  code: DeviceErrorCode;
148
- constructor({ code, message }: {
151
+ constructor({ code, message, cause, }: {
149
152
  code: DeviceErrorCode;
150
153
  message?: string;
154
+ cause?: unknown;
151
155
  });
152
156
  }
153
157
  /**
@@ -237,8 +241,8 @@ export interface ConnectionStatusChange {
237
241
  previousStatus: ConnectionStatus;
238
242
  }
239
243
  export interface BackgroundErrorData {
240
- message: string;
241
- error?: unknown;
244
+ error: DeviceError;
245
+ event?: string;
242
246
  }
243
247
  export interface DeviceConnectionEventMap {
244
248
  status: ConnectionStatusChange;
@@ -247,7 +251,18 @@ export interface DeviceConnectionEventMap {
247
251
  afterrequestdevice: void;
248
252
  flash: void;
249
253
  }
250
- export interface DeviceConnection<M> extends TypedEventTarget<DeviceConnectionEventMap & M> {
254
+ export interface DeviceConnection {
255
+ addEventListener(type: "status", listener: (data: ConnectionStatusChange) => void): void;
256
+ addEventListener(type: "backgrounderror", listener: (data: BackgroundErrorData) => void): void;
257
+ addEventListener(type: "beforerequestdevice", listener: () => void): void;
258
+ addEventListener(type: "afterrequestdevice", listener: () => void): void;
259
+ addEventListener(type: "flash", listener: () => void): void;
260
+ removeEventListener(type: "status", listener: (data: ConnectionStatusChange) => void): void;
261
+ removeEventListener(type: "backgrounderror", listener: (data: BackgroundErrorData) => void): void;
262
+ removeEventListener(type: "beforerequestdevice", listener: () => void): void;
263
+ removeEventListener(type: "afterrequestdevice", listener: () => void): void;
264
+ removeEventListener(type: "flash", listener: () => void): void;
265
+ readonly type: string;
251
266
  status: ConnectionStatus;
252
267
  /**
253
268
  * Initializes the device.
@@ -1,4 +1,9 @@
1
1
  "use strict";
2
+ /**
3
+ * (c) 2021, Micro:bit Educational Foundation and contributors
4
+ *
5
+ * SPDX-License-Identifier: MIT
6
+ */
2
7
  Object.defineProperty(exports, "__esModule", { value: true });
3
8
  exports.FlashDataError = exports.ConnectionStatus = exports.DeviceError = exports.ProgressStage = void 0;
4
9
  exports.assertConnected = assertConnected;
@@ -31,8 +36,8 @@ exports.ProgressStage = {
31
36
  * English.
32
37
  */
33
38
  class DeviceError extends Error {
34
- constructor({ code, message }) {
35
- super(message);
39
+ constructor({ code, message, cause, }) {
40
+ super(message, { cause });
36
41
  Object.defineProperty(this, "code", {
37
42
  enumerable: true,
38
43
  configurable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/device.ts"],"names":[],"mappings":";;;AA2KA,0CAMC;AAxED;;GAEG;AACU,QAAA,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,MAAa,WAAY,SAAQ,KAAK;IAEpC,YAAY,EAAE,IAAI,EAAE,OAAO,EAA+C;QACxE,KAAK,CAAC,OAAO,CAAC,CAAC;QAFjB;;;;;WAAsB;QAGpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAND,kCAMC;AAED;;;GAGG;AACH,SAAgB,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;AACU,QAAA,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;AAoDX,MAAa,cAAe,SAAQ,KAAK;CAAG;AAA5C,wCAA4C"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/device.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAgMH,0CAMC;AAhFD;;GAEG;AACU,QAAA,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,MAAa,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;AAdD,kCAcC;AAED;;;GAGG;AACH,SAAgB,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;AACU,QAAA,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;AAoDX,MAAa,cAAe,SAAQ,KAAK;CAAG;AAA5C,wCAA4C"}
@@ -1,4 +1,4 @@
1
- type Listener<T> = (data: T) => void;
1
+ export type Listener<T> = (data: T) => void;
2
2
  export declare class TypedEventTarget<M> {
3
3
  private listeners;
4
4
  addEventListener<K extends keyof M & string>(type: K, listener: Listener<M[K]>): void;
@@ -8,4 +8,3 @@ export declare class TypedEventTarget<M> {
8
8
  protected eventDeactivated(_type: string): void;
9
9
  protected getActiveEvents(): string[];
10
10
  }
11
- export {};
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":";;;AAEA,MAAa,gBAAgB;IAA7B;QACU;;;;mBAAY,IAAI,GAAG,EAA+B;WAAC;IA8C7D,CAAC;IA5CC,gBAAgB,CACd,IAAO,EACP,QAAwB;QAExB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClB,IAAI,QAAQ;gBAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,mBAAmB,CACjB,IAAO,EACP,QAAwB;QAExB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAES,aAAa,CACrB,IAAO,EACP,GAAG,CAAC,IAAI,CAAwC;QAEhD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,GAAG,EAAE,CAAC;YACR,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE,CAAC;gBAC3B,QAAQ,CAAC,IAAY,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAES,cAAc,CAAC,KAAa,IAAS,CAAC;IACtC,gBAAgB,CAAC,KAAa,IAAS,CAAC;IACxC,eAAe;QACvB,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAa,CAAC;IAChD,CAAC;CACF;AA/CD,4CA+CC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":";;;AAEA,MAAa,gBAAgB;IAA7B;QACU;;;;mBAAY,IAAI,GAAG,EAA8B;WAAC;IA8C5D,CAAC;IA5CC,gBAAgB,CACd,IAAO,EACP,QAAwB;QAExB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClB,IAAI,QAAQ;gBAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,mBAAmB,CACjB,IAAO,EACP,QAAwB;QAExB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAES,aAAa,CACrB,IAAO,EACP,GAAG,CAAC,IAAI,CAAwC;QAEhD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,GAAG,EAAE,CAAC;YACR,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE,CAAC;gBAC3B,QAAQ,CAAC,IAAY,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAES,cAAc,CAAC,KAAa,IAAS,CAAC;IACtC,gBAAgB,CAAC,KAAa,IAAS,CAAC;IACxC,eAAe;QACvB,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAa,CAAC;IAChD,CAAC;CACF;AA/CD,4CA+CC"}
@@ -1,9 +1,8 @@
1
1
  /**
2
2
  * @module @microbit/microbit-connection
3
3
  */
4
- import { BackgroundErrorData, BoardVersion, ConnectOptions, ConnectionAvailabilityStatus, ConnectionStatus, ConnectionStatusChange, DeviceConnection, DeviceConnectionEventMap, DeviceError, DeviceErrorCode, FlashDataError, FlashDataSource, FlashOptions, ProgressCallback, ProgressStage, assertConnected } from "./device.js";
5
- import { TypedEventTarget } from "./events.js";
4
+ import { BackgroundErrorData, BoardVersion, ConnectOptions, ConnectionAvailabilityStatus, ConnectionStatus, ConnectionStatusChange, DeviceConnection, DeviceError, DeviceErrorCode, FlashDataError, FlashDataSource, FlashOptions, ProgressCallback, ProgressStage, assertConnected } from "./device.js";
6
5
  import { Logging, LoggingEvent } from "./logging.js";
7
- import { AccelerometerData, ButtonData, ButtonEventType, ButtonState, LedMatrix, MagnetometerData, ServiceConnectionEventMap, UartData } from "./service-events.js";
8
- export { ButtonState, ConnectionStatus, DeviceError, FlashDataError, assertConnected, ProgressStage, TypedEventTarget, };
9
- export type { AccelerometerData, BackgroundErrorData, BoardVersion, ButtonData, ButtonEventType, ConnectOptions, ConnectionAvailabilityStatus, ConnectionStatusChange, DeviceConnection, DeviceConnectionEventMap, DeviceErrorCode, FlashDataSource, FlashOptions, LedMatrix, Logging, LoggingEvent, MagnetometerData, ProgressCallback, ServiceConnectionEventMap, UartData, };
6
+ import { AccelerometerData, ButtonData, ButtonEventType, ButtonState, LedMatrix, MagnetometerData, UartData } from "./service-events.js";
7
+ export { ButtonState, ConnectionStatus, DeviceError, FlashDataError, assertConnected, ProgressStage, };
8
+ export type { AccelerometerData, BackgroundErrorData, BoardVersion, ButtonData, ButtonEventType, ConnectOptions, ConnectionAvailabilityStatus, ConnectionStatusChange, DeviceConnection, DeviceErrorCode, FlashDataSource, FlashOptions, LedMatrix, Logging, LoggingEvent, MagnetometerData, ProgressCallback, UartData, };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TypedEventTarget = exports.ProgressStage = exports.assertConnected = exports.FlashDataError = exports.DeviceError = exports.ConnectionStatus = exports.ButtonState = void 0;
3
+ exports.ProgressStage = exports.assertConnected = exports.FlashDataError = exports.DeviceError = exports.ConnectionStatus = exports.ButtonState = void 0;
4
4
  /**
5
5
  * @module @microbit/microbit-connection
6
6
  */
@@ -10,8 +10,6 @@ Object.defineProperty(exports, "DeviceError", { enumerable: true, get: function
10
10
  Object.defineProperty(exports, "FlashDataError", { enumerable: true, get: function () { return device_js_1.FlashDataError; } });
11
11
  Object.defineProperty(exports, "ProgressStage", { enumerable: true, get: function () { return device_js_1.ProgressStage; } });
12
12
  Object.defineProperty(exports, "assertConnected", { enumerable: true, get: function () { return device_js_1.assertConnected; } });
13
- const events_js_1 = require("./events.js");
14
- Object.defineProperty(exports, "TypedEventTarget", { enumerable: true, get: function () { return events_js_1.TypedEventTarget; } });
15
13
  const service_events_js_1 = require("./service-events.js");
16
14
  Object.defineProperty(exports, "ButtonState", { enumerable: true, get: function () { return service_events_js_1.ButtonState; } });
17
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,2CAiBqB;AAgBnB,iGA5BA,4BAAgB,OA4BA;AAChB,4FAzBA,uBAAW,OAyBA;AACX,+FAxBA,0BAAc,OAwBA;AAEd,8FAtBA,yBAAa,OAsBA;AADb,gGApBA,2BAAe,OAoBA;AAlBjB,2CAA+C;AAoB7C,iGApBO,4BAAgB,OAoBP;AAlBlB,2DAS6B;AAG3B,4FARA,+BAAW,OAQA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,2CAgBqB;AAcnB,iGAzBA,4BAAgB,OAyBA;AAChB,4FAvBA,uBAAW,OAuBA;AACX,+FAtBA,0BAAc,OAsBA;AAEd,8FApBA,yBAAa,OAoBA;AADb,gGAlBA,2BAAe,OAkBA;AAfjB,2DAQ6B;AAG3B,4FAPA,+BAAW,OAOA"}
@@ -3,9 +3,9 @@
3
3
  *
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
- import { DeviceConnection } from "../device.js";
6
+ import { BackgroundErrorData, ConnectionStatusChange, DeviceConnection } from "../device.js";
7
7
  import { Logging } from "../logging.js";
8
- import { ServiceConnectionEventMap } from "../service-events.js";
8
+ import { AccelerometerData, ButtonData } from "../service-events.js";
9
9
  import { MicrobitUSBConnection } from "../usb/connection.js";
10
10
  export interface MicrobitRadioBridgeConnectionOptions {
11
11
  logging?: Logging;
@@ -19,11 +19,24 @@ export interface MicrobitRadioBridgeConnectionOptions {
19
19
  *
20
20
  * - `accelerometerdatachanged`, `buttonachanged`, `buttonbchanged` events
21
21
  * are supported.
22
- * - `magnetometerdatachanged` and `uartdata` events are declared on
23
- * {@link ServiceConnectionEventMap} but are not currently emitted.
24
22
  * - `flash` is not supported.
25
23
  */
26
- export interface MicrobitRadioBridgeConnection extends DeviceConnection<ServiceConnectionEventMap> {
24
+ export interface MicrobitRadioBridgeConnection extends DeviceConnection {
25
+ readonly type: "radio-bridge";
26
+ addEventListener(type: "status", listener: (data: ConnectionStatusChange) => void): void;
27
+ addEventListener(type: "backgrounderror", listener: (data: BackgroundErrorData) => void): void;
28
+ addEventListener(type: "beforerequestdevice", listener: () => void): void;
29
+ addEventListener(type: "afterrequestdevice", listener: () => void): void;
30
+ addEventListener(type: "flash", listener: () => void): void;
31
+ addEventListener(type: "accelerometerdatachanged", listener: (data: AccelerometerData) => void): void;
32
+ addEventListener(type: "buttonachanged" | "buttonbchanged", listener: (data: ButtonData) => void): void;
33
+ removeEventListener(type: "status", listener: (data: ConnectionStatusChange) => void): void;
34
+ removeEventListener(type: "backgrounderror", listener: (data: BackgroundErrorData) => void): void;
35
+ removeEventListener(type: "beforerequestdevice", listener: () => void): void;
36
+ removeEventListener(type: "afterrequestdevice", listener: () => void): void;
37
+ removeEventListener(type: "flash", listener: () => void): void;
38
+ removeEventListener(type: "accelerometerdatachanged", listener: (data: AccelerometerData) => void): void;
39
+ removeEventListener(type: "buttonachanged" | "buttonbchanged", listener: (data: ButtonData) => void): void;
27
40
  /**
28
41
  * Sets remote device.
29
42
  *