@ledgerhq/react-native-hw-transport-ble 6.27.11-next.1 → 6.27.11-nightly.1

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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @ledgerhq/react-native-hw-transport-ble@6.27.11-next.0 build /home/runner/work/ledger-live/ledger-live/libs/ledgerjs/packages/react-native-hw-transport-ble
2
+ > @ledgerhq/react-native-hw-transport-ble@6.27.11-nightly.0 build /home/runner/work/ledger-live/ledger-live/libs/ledgerjs/packages/react-native-hw-transport-ble
3
3
  > tsc && tsc -m ES6 --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,12 +1,17 @@
1
1
  # @ledgerhq/react-native-hw-transport-ble
2
2
 
3
- ## 6.27.11-next.1
3
+ ## 6.27.11-nightly.1
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - [#2024](https://github.com/LedgerHQ/ledger-live/pull/2024) [`627b46b58e`](https://github.com/LedgerHQ/ledger-live/commit/627b46b58ed83970c69d621303af7a3a7e51850b) Thanks [@juan-cortes](https://github.com/juan-cortes)! - Undo the auto disconnect mechanism, due to regressions
7
+ - [#1984](https://github.com/LedgerHQ/ledger-live/pull/1984) [`f1c15446da`](https://github.com/LedgerHQ/ledger-live/commit/f1c15446dabef05bb91dada8d8f53f9bc6474ba5) Thanks [@alexandremgo](https://github.com/alexandremgo)! - New HwTransportError for all the implementations of Transport
8
8
 
9
- ## 6.27.11-next.0
9
+ - Updated dependencies [[`f1c15446da`](https://github.com/LedgerHQ/ledger-live/commit/f1c15446dabef05bb91dada8d8f53f9bc6474ba5)]:
10
+ - @ledgerhq/errors@6.12.2-nightly.0
11
+ - @ledgerhq/hw-transport@6.27.9-nightly.0
12
+ - @ledgerhq/devices@7.0.6-nightly.0
13
+
14
+ ## 6.27.11-nightly.0
10
15
 
11
16
  ### Patch Changes
12
17
 
@@ -3,12 +3,13 @@ import Transport from "@ledgerhq/hw-transport";
3
3
  import type { Subscription as TransportSubscription, Observer as TransportObserver, DescriptorEvent } from "@ledgerhq/hw-transport";
4
4
  import type { DeviceModel } from "@ledgerhq/devices";
5
5
  import { Observable } from "rxjs";
6
+ import { HwTransportError } from "@ledgerhq/errors";
6
7
  import type { Device, Characteristic } from "./types";
7
8
  declare type ReconnectionConfig = {
8
9
  pairingThreshold: number;
9
10
  delayAfterFirstPairing: number;
10
11
  };
11
- export declare function setReconnectionConfig(config: ReconnectionConfig | null | undefined): void;
12
+ export declare function setReconnectionConfig(config: ReconnectionConfig | null): void;
12
13
  /**
13
14
  * react-native bluetooth BLE implementation
14
15
  * @example
@@ -35,7 +36,7 @@ export default class BluetoothTransport extends Transport {
35
36
  /**
36
37
  * Scan for bluetooth Ledger devices
37
38
  */
38
- static listen(observer: TransportObserver<DescriptorEvent<Device>>): TransportSubscription;
39
+ static listen(observer: TransportObserver<DescriptorEvent<Device>, HwTransportError>): TransportSubscription;
39
40
  /**
40
41
  * Open a BLE transport
41
42
  * @param {*} deviceOrId
@@ -53,6 +54,7 @@ export default class BluetoothTransport extends Transport {
53
54
  notifyObservable: Observable<any>;
54
55
  deviceModel: DeviceModel;
55
56
  notYetDisconnected: boolean;
57
+ disconnectTimeout: null | ReturnType<typeof setTimeout>;
56
58
  constructor(device: Device, writeCharacteristic: Characteristic, writeCmdCharacteristic: Characteristic, notifyObservable: Observable<any>, deviceModel: DeviceModel);
57
59
  /**
58
60
  * communicate with a BLE transport
@@ -1 +1 @@
1
- {"version":3,"file":"BleTransport.d.ts","sourceRoot":"","sources":["../src/BleTransport.ts"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,KAAK,EACV,YAAY,IAAI,qBAAqB,EACrC,QAAQ,IAAI,iBAAiB,EAC7B,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAUhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAAE,UAAU,EAAsC,MAAM,MAAM,CAAC;AAetE,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAoBtD,aAAK,kBAAkB,GAAG;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;CAChC,CAAC;AAKF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,QAG9C;AAoOD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAS;IACvD;;OAEG;IACH,MAAM,CAAC,WAAW,QAAO,QAAQ,OAAO,CAAC,CACW;IAEpD;;OAEG;IACH,MAAM,CAAC,WAAW,UAAW,GAAG,UAE9B;IAEF;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG;;;IAcjC,MAAM,CAAC,IAAI,QAAO,GAAG,CAEnB;IAEF;;OAEG;IACH,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GACnD,qBAAqB;IAsDxB;;;OAGG;WACU,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C;;OAEG;IACH,MAAM,CAAC,UAAU,OAAc,GAAG,mBAGhC;IACF,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,SAAM;IACb,mBAAmB,EAAE,cAAc,CAAC;IACpC,sBAAsB,EAAE,cAAc,CAAC;IACvC,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,kBAAkB,UAAQ;gBAGxB,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,cAAc,EACnC,sBAAsB,EAAE,cAAc,EACtC,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,EACjC,WAAW,EAAE,WAAW;IAY1B;;OAEG;IACH,QAAQ,SAAU,MAAM,KAAG,QAAQ,GAAG,CAAC,CAuBlC;IAGC,QAAQ;IAqCR,yBAAyB,CAC7B,kBAAkB,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU;IAStD,cAAc;IAEd,KAAK,WAAkB,MAAM,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,mBAsB7D;IAEI,KAAK;CAKZ"}
1
+ {"version":3,"file":"BleTransport.d.ts","sourceRoot":"","sources":["../src/BleTransport.ts"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,KAAK,EACV,YAAY,IAAI,qBAAqB,EACrC,QAAQ,IAAI,iBAAiB,EAC7B,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAWhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAAE,UAAU,EAAsC,MAAM,MAAM,CAAC;AAStE,OAAO,EAKL,gBAAgB,EAEjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAqBtD,aAAK,kBAAkB,GAAG;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;CAChC,CAAC;AAKF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAE7E;AAyOD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAS;IACvD;;OAEG;IACH,MAAM,CAAC,WAAW,QAAO,QAAQ,OAAO,CAAC,CACW;IAEpD;;OAEG;IACH,MAAM,CAAC,WAAW,UAAW,GAAG,UAE9B;IAEF;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG;;;IAcjC,MAAM,CAAC,IAAI,QAAO,GAAG,CAEnB;IAEF;;OAEG;IACH,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,GACrE,qBAAqB;IAuDxB;;;OAGG;WACU,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C;;OAEG;IACH,MAAM,CAAC,UAAU,OAAc,GAAG,mBAIhC;IACF,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,SAAM;IACb,mBAAmB,EAAE,cAAc,CAAC;IACpC,sBAAsB,EAAE,cAAc,CAAC;IACvC,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,kBAAkB,UAAQ;IAC1B,iBAAiB,EAAE,IAAI,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAQ;gBAG7D,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,cAAc,EACnC,sBAAsB,EAAE,cAAc,EACtC,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,EACjC,WAAW,EAAE,WAAW;IAY1B;;OAEG;IACH,QAAQ,SAAU,MAAM,KAAG,QAAQ,GAAG,CAAC,CAuBlC;IAGC,QAAQ;IAqCR,yBAAyB,CAC7B,kBAAkB,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU;IAStD,cAAc;IAEd,KAAK,WAAkB,MAAM,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,mBAsB7D;IAEI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA2B7B"}
@@ -97,7 +97,8 @@ var awaitsBleOn_1 = require("./awaitsBleOn");
97
97
  var remapErrors_1 = require("./remapErrors");
98
98
  var connectOptions = {
99
99
  requestMTU: 156,
100
- connectionPriority: 1
100
+ connectionPriority: 1,
101
+ forceDisconnectTimeout: 4000
101
102
  };
102
103
  var transportsCache = {};
103
104
  var bleManager = new react_native_ble_plx_1.BleManager();
@@ -113,7 +114,7 @@ var retrieveInfos = function (device) {
113
114
  return infos;
114
115
  };
115
116
  var reconnectionConfig = {
116
- pairingThreshold: 1000,
117
+ pairingThreshold: 2000,
117
118
  delayAfterFirstPairing: 4000
118
119
  };
119
120
  function setReconnectionConfig(config) {
@@ -123,7 +124,7 @@ exports.setReconnectionConfig = setReconnectionConfig;
123
124
  var delay = function (ms) { return new Promise(function (success) { return setTimeout(success, ms); }); };
124
125
  function open(deviceOrId, needsReconnect) {
125
126
  return __awaiter(this, void 0, void 0, function () {
126
- var device, devices, connectedDevices, connectedDevicesFiltered, e_1, e_2, res, characteristics, _a, _b, uuid, e_3, e_4_1, deviceModel, serviceUuid, writeUuid, writeCmdUuid, notifyUuid, writeC, writeCmdC, notifyC, characteristics_1, characteristics_1_1, c, notifyObservable, notif, transport, onDisconnect, disconnectedSub, beforeMTUTime, afterMTUTime;
127
+ var device, maybeTimeout, devices, connectedDevices, connectedDevicesFiltered, e_1, e_2, res, characteristics, _a, _b, uuid, e_3, e_4_1, deviceModel, serviceUuid, writeUuid, writeCmdUuid, notifyUuid, writeC, writeCmdC, notifyC, characteristics_1, characteristics_1_1, c, notifyObservable, notif, transport, onDisconnect, disconnectedSub, beforeMTUTime, afterMTUTime;
127
128
  var _c, _d, e_4, _e, e_5, _f;
128
129
  return __generator(this, function (_g) {
129
130
  switch (_g.label) {
@@ -131,6 +132,11 @@ function open(deviceOrId, needsReconnect) {
131
132
  if (!(typeof deviceOrId === "string")) return [3 /*break*/, 13];
132
133
  if (transportsCache[deviceOrId]) {
133
134
  (0, logs_1.log)("ble-verbose", "Transport in cache, using that.");
135
+ maybeTimeout = transportsCache[deviceOrId].disconnectTimeout;
136
+ if (maybeTimeout) {
137
+ (0, logs_1.log)("ble-verbose", "Clearing queued disconnect");
138
+ clearTimeout(transportsCache[deviceOrId].disconnectTimeout);
139
+ }
134
140
  return [2 /*return*/, transportsCache[deviceOrId]];
135
141
  }
136
142
  (0, logs_1.log)("ble-verbose", "open(".concat(deviceOrId, ")"));
@@ -375,6 +381,7 @@ var BluetoothTransport = /** @class */ (function (_super) {
375
381
  var _this = _super.call(this) || this;
376
382
  _this.mtuSize = 20;
377
383
  _this.notYetDisconnected = true;
384
+ _this.disconnectTimeout = null;
378
385
  /**
379
386
  * communicate with a BLE transport
380
387
  */
@@ -475,7 +482,6 @@ var BluetoothTransport = /** @class */ (function (_super) {
475
482
  var _this = this;
476
483
  (0, logs_1.log)("ble-verbose", "listen...");
477
484
  var unsubscribed;
478
- // $FlowFixMe
479
485
  var stateSub = bleManager.onStateChange(function (state) { return __awaiter(_this, void 0, void 0, function () {
480
486
  var devices;
481
487
  return __generator(this, function (_b) {
@@ -497,7 +503,7 @@ var BluetoothTransport = /** @class */ (function (_super) {
497
503
  return [2 /*return*/];
498
504
  bleManager.startDeviceScan((0, devices_1.getBluetoothServiceUuids)(), null, function (bleError, device) {
499
505
  if (bleError) {
500
- observer.error(bleError);
506
+ observer.error(mapBleErrorToHwTransportError(bleError));
501
507
  unsubscribe();
502
508
  return;
503
509
  }
@@ -599,15 +605,36 @@ var BluetoothTransport = /** @class */ (function (_super) {
599
605
  BluetoothTransport.prototype.setScrambleKey = function () { };
600
606
  BluetoothTransport.prototype.close = function () {
601
607
  return __awaiter(this, void 0, void 0, function () {
608
+ var resolve, disconnectPromise;
609
+ var _this = this;
602
610
  return __generator(this, function (_b) {
603
611
  switch (_b.label) {
604
612
  case 0:
605
- if (!this.exchangeBusyPromise) return [3 /*break*/, 2];
606
- return [4 /*yield*/, this.exchangeBusyPromise];
613
+ // Clear any potential leftover timeouts
614
+ if (this.disconnectTimeout) {
615
+ clearTimeout(this.disconnectTimeout);
616
+ }
617
+ disconnectPromise = new Promise(function (res) {
618
+ resolve = res;
619
+ });
620
+ // Queue a disconnect
621
+ this.disconnectTimeout = setTimeout(function () {
622
+ BluetoothTransport.disconnect(_this.id);
623
+ resolve();
624
+ }, connectOptions.forceDisconnectTimeout);
625
+ // For cases where an exchange hasn't resolve and we triggered a `close` we
626
+ // introduce a timeout to forcefully disconnect in order to unblock subsequent
627
+ // usages of the `withDevice` logic.
628
+ return [4 /*yield*/, Promise.race([
629
+ this.exchangeBusyPromise || Promise.resolve(),
630
+ disconnectPromise,
631
+ ])];
607
632
  case 1:
633
+ // For cases where an exchange hasn't resolve and we triggered a `close` we
634
+ // introduce a timeout to forcefully disconnect in order to unblock subsequent
635
+ // usages of the `withDevice` logic.
608
636
  _b.sent();
609
- _b.label = 2;
610
- case 2: return [2 /*return*/];
637
+ return [2 /*return*/];
611
638
  }
612
639
  });
613
640
  });
@@ -640,6 +667,9 @@ var BluetoothTransport = /** @class */ (function (_super) {
640
667
  return [4 /*yield*/, bleManager.cancelDeviceConnection(id)];
641
668
  case 1:
642
669
  _b.sent();
670
+ return [4 /*yield*/, delay(1000)];
671
+ case 2:
672
+ _b.sent(); // Nb Test to improve stability of re-connections.
643
673
  return [2 /*return*/];
644
674
  }
645
675
  });
@@ -647,4 +677,21 @@ var BluetoothTransport = /** @class */ (function (_super) {
647
677
  return BluetoothTransport;
648
678
  }(hw_transport_1["default"]));
649
679
  exports["default"] = BluetoothTransport;
680
+ var bleErrorToHwTransportError = new Map([
681
+ [react_native_ble_plx_1.BleErrorCode.ScanStartFailed, errors_1.HwTransportErrorType.BleScanStartFailed],
682
+ [
683
+ react_native_ble_plx_1.BleErrorCode.LocationServicesDisabled,
684
+ errors_1.HwTransportErrorType.BleLocationServicesDisabled,
685
+ ],
686
+ [
687
+ react_native_ble_plx_1.BleErrorCode.BluetoothUnauthorized,
688
+ errors_1.HwTransportErrorType.BleBluetoothUnauthorized,
689
+ ],
690
+ ]);
691
+ var mapBleErrorToHwTransportError = function (bleError) {
692
+ var message = "".concat(bleError.message, ". Origin: ").concat(bleError.errorCode);
693
+ var inferedType = bleErrorToHwTransportError.get(bleError.errorCode);
694
+ var type = !inferedType ? errors_1.HwTransportErrorType.Unknown : inferedType;
695
+ return new errors_1.HwTransportError(type, message);
696
+ };
650
697
  //# sourceMappingURL=BleTransport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BleTransport.js","sourceRoot":"","sources":["../src/BleTransport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BleTransport.js","sourceRoot":"","sources":["../src/BleTransport.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,13 @@ import Transport from "@ledgerhq/hw-transport";
3
3
  import type { Subscription as TransportSubscription, Observer as TransportObserver, DescriptorEvent } from "@ledgerhq/hw-transport";
4
4
  import type { DeviceModel } from "@ledgerhq/devices";
5
5
  import { Observable } from "rxjs";
6
+ import { HwTransportError } from "@ledgerhq/errors";
6
7
  import type { Device, Characteristic } from "./types";
7
8
  declare type ReconnectionConfig = {
8
9
  pairingThreshold: number;
9
10
  delayAfterFirstPairing: number;
10
11
  };
11
- export declare function setReconnectionConfig(config: ReconnectionConfig | null | undefined): void;
12
+ export declare function setReconnectionConfig(config: ReconnectionConfig | null): void;
12
13
  /**
13
14
  * react-native bluetooth BLE implementation
14
15
  * @example
@@ -35,7 +36,7 @@ export default class BluetoothTransport extends Transport {
35
36
  /**
36
37
  * Scan for bluetooth Ledger devices
37
38
  */
38
- static listen(observer: TransportObserver<DescriptorEvent<Device>>): TransportSubscription;
39
+ static listen(observer: TransportObserver<DescriptorEvent<Device>, HwTransportError>): TransportSubscription;
39
40
  /**
40
41
  * Open a BLE transport
41
42
  * @param {*} deviceOrId
@@ -53,6 +54,7 @@ export default class BluetoothTransport extends Transport {
53
54
  notifyObservable: Observable<any>;
54
55
  deviceModel: DeviceModel;
55
56
  notYetDisconnected: boolean;
57
+ disconnectTimeout: null | ReturnType<typeof setTimeout>;
56
58
  constructor(device: Device, writeCharacteristic: Characteristic, writeCmdCharacteristic: Characteristic, notifyObservable: Observable<any>, deviceModel: DeviceModel);
57
59
  /**
58
60
  * communicate with a BLE transport
@@ -1 +1 @@
1
- {"version":3,"file":"BleTransport.d.ts","sourceRoot":"","sources":["../src/BleTransport.ts"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,KAAK,EACV,YAAY,IAAI,qBAAqB,EACrC,QAAQ,IAAI,iBAAiB,EAC7B,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAUhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAAE,UAAU,EAAsC,MAAM,MAAM,CAAC;AAetE,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAoBtD,aAAK,kBAAkB,GAAG;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;CAChC,CAAC;AAKF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,QAG9C;AAoOD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAS;IACvD;;OAEG;IACH,MAAM,CAAC,WAAW,QAAO,QAAQ,OAAO,CAAC,CACW;IAEpD;;OAEG;IACH,MAAM,CAAC,WAAW,UAAW,GAAG,UAE9B;IAEF;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG;;;IAcjC,MAAM,CAAC,IAAI,QAAO,GAAG,CAEnB;IAEF;;OAEG;IACH,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GACnD,qBAAqB;IAsDxB;;;OAGG;WACU,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C;;OAEG;IACH,MAAM,CAAC,UAAU,OAAc,GAAG,mBAGhC;IACF,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,SAAM;IACb,mBAAmB,EAAE,cAAc,CAAC;IACpC,sBAAsB,EAAE,cAAc,CAAC;IACvC,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,kBAAkB,UAAQ;gBAGxB,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,cAAc,EACnC,sBAAsB,EAAE,cAAc,EACtC,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,EACjC,WAAW,EAAE,WAAW;IAY1B;;OAEG;IACH,QAAQ,SAAU,MAAM,KAAG,QAAQ,GAAG,CAAC,CAuBlC;IAGC,QAAQ;IAqCR,yBAAyB,CAC7B,kBAAkB,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU;IAStD,cAAc;IAEd,KAAK,WAAkB,MAAM,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,mBAsB7D;IAEI,KAAK;CAKZ"}
1
+ {"version":3,"file":"BleTransport.d.ts","sourceRoot":"","sources":["../src/BleTransport.ts"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,KAAK,EACV,YAAY,IAAI,qBAAqB,EACrC,QAAQ,IAAI,iBAAiB,EAC7B,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAWhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAAE,UAAU,EAAsC,MAAM,MAAM,CAAC;AAStE,OAAO,EAKL,gBAAgB,EAEjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAqBtD,aAAK,kBAAkB,GAAG;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;CAChC,CAAC;AAKF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAE7E;AAyOD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAS;IACvD;;OAEG;IACH,MAAM,CAAC,WAAW,QAAO,QAAQ,OAAO,CAAC,CACW;IAEpD;;OAEG;IACH,MAAM,CAAC,WAAW,UAAW,GAAG,UAE9B;IAEF;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG;;;IAcjC,MAAM,CAAC,IAAI,QAAO,GAAG,CAEnB;IAEF;;OAEG;IACH,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,GACrE,qBAAqB;IAuDxB;;;OAGG;WACU,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C;;OAEG;IACH,MAAM,CAAC,UAAU,OAAc,GAAG,mBAIhC;IACF,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,SAAM;IACb,mBAAmB,EAAE,cAAc,CAAC;IACpC,sBAAsB,EAAE,cAAc,CAAC;IACvC,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,kBAAkB,UAAQ;IAC1B,iBAAiB,EAAE,IAAI,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAQ;gBAG7D,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,cAAc,EACnC,sBAAsB,EAAE,cAAc,EACtC,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,EACjC,WAAW,EAAE,WAAW;IAY1B;;OAEG;IACH,QAAQ,SAAU,MAAM,KAAG,QAAQ,GAAG,CAAC,CAuBlC;IAGC,QAAQ;IAqCR,yBAAyB,CAC7B,kBAAkB,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU;IAStD,cAAc;IAEd,KAAK,WAAkB,MAAM,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,mBAsB7D;IAEI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA2B7B"}
@@ -85,13 +85,14 @@ import { receiveAPDU } from "@ledgerhq/devices/ble/receiveAPDU";
85
85
  import { log } from "@ledgerhq/logs";
86
86
  import { defer, merge, from, of, throwError } from "rxjs";
87
87
  import { share, ignoreElements, first, map, tap, catchError, } from "rxjs/operators";
88
- import { CantOpenDevice, TransportError, DisconnectedDeviceDuringOperation, PairingFailed, } from "@ledgerhq/errors";
88
+ import { CantOpenDevice, TransportError, DisconnectedDeviceDuringOperation, PairingFailed, HwTransportError, HwTransportErrorType, } from "@ledgerhq/errors";
89
89
  import { monitorCharacteristic } from "./monitorCharacteristic";
90
90
  import { awaitsBleOn } from "./awaitsBleOn";
91
91
  import { decoratePromiseErrors, remapError } from "./remapErrors";
92
92
  var connectOptions = {
93
93
  requestMTU: 156,
94
- connectionPriority: 1
94
+ connectionPriority: 1,
95
+ forceDisconnectTimeout: 4000
95
96
  };
96
97
  var transportsCache = {};
97
98
  var bleManager = new BleManager();
@@ -107,7 +108,7 @@ var retrieveInfos = function (device) {
107
108
  return infos;
108
109
  };
109
110
  var reconnectionConfig = {
110
- pairingThreshold: 1000,
111
+ pairingThreshold: 2000,
111
112
  delayAfterFirstPairing: 4000
112
113
  };
113
114
  export function setReconnectionConfig(config) {
@@ -116,7 +117,7 @@ export function setReconnectionConfig(config) {
116
117
  var delay = function (ms) { return new Promise(function (success) { return setTimeout(success, ms); }); };
117
118
  function open(deviceOrId, needsReconnect) {
118
119
  return __awaiter(this, void 0, void 0, function () {
119
- var device, devices, connectedDevices, connectedDevicesFiltered, e_1, e_2, res, characteristics, _a, _b, uuid, e_3, e_4_1, deviceModel, serviceUuid, writeUuid, writeCmdUuid, notifyUuid, writeC, writeCmdC, notifyC, characteristics_1, characteristics_1_1, c, notifyObservable, notif, transport, onDisconnect, disconnectedSub, beforeMTUTime, afterMTUTime;
120
+ var device, maybeTimeout, devices, connectedDevices, connectedDevicesFiltered, e_1, e_2, res, characteristics, _a, _b, uuid, e_3, e_4_1, deviceModel, serviceUuid, writeUuid, writeCmdUuid, notifyUuid, writeC, writeCmdC, notifyC, characteristics_1, characteristics_1_1, c, notifyObservable, notif, transport, onDisconnect, disconnectedSub, beforeMTUTime, afterMTUTime;
120
121
  var _c, _d, e_4, _e, e_5, _f;
121
122
  return __generator(this, function (_g) {
122
123
  switch (_g.label) {
@@ -124,6 +125,11 @@ function open(deviceOrId, needsReconnect) {
124
125
  if (!(typeof deviceOrId === "string")) return [3 /*break*/, 13];
125
126
  if (transportsCache[deviceOrId]) {
126
127
  log("ble-verbose", "Transport in cache, using that.");
128
+ maybeTimeout = transportsCache[deviceOrId].disconnectTimeout;
129
+ if (maybeTimeout) {
130
+ log("ble-verbose", "Clearing queued disconnect");
131
+ clearTimeout(transportsCache[deviceOrId].disconnectTimeout);
132
+ }
127
133
  return [2 /*return*/, transportsCache[deviceOrId]];
128
134
  }
129
135
  log("ble-verbose", "open(".concat(deviceOrId, ")"));
@@ -368,6 +374,7 @@ var BluetoothTransport = /** @class */ (function (_super) {
368
374
  var _this = _super.call(this) || this;
369
375
  _this.mtuSize = 20;
370
376
  _this.notYetDisconnected = true;
377
+ _this.disconnectTimeout = null;
371
378
  /**
372
379
  * communicate with a BLE transport
373
380
  */
@@ -468,7 +475,6 @@ var BluetoothTransport = /** @class */ (function (_super) {
468
475
  var _this = this;
469
476
  log("ble-verbose", "listen...");
470
477
  var unsubscribed;
471
- // $FlowFixMe
472
478
  var stateSub = bleManager.onStateChange(function (state) { return __awaiter(_this, void 0, void 0, function () {
473
479
  var devices;
474
480
  return __generator(this, function (_b) {
@@ -490,7 +496,7 @@ var BluetoothTransport = /** @class */ (function (_super) {
490
496
  return [2 /*return*/];
491
497
  bleManager.startDeviceScan(getBluetoothServiceUuids(), null, function (bleError, device) {
492
498
  if (bleError) {
493
- observer.error(bleError);
499
+ observer.error(mapBleErrorToHwTransportError(bleError));
494
500
  unsubscribe();
495
501
  return;
496
502
  }
@@ -592,15 +598,36 @@ var BluetoothTransport = /** @class */ (function (_super) {
592
598
  BluetoothTransport.prototype.setScrambleKey = function () { };
593
599
  BluetoothTransport.prototype.close = function () {
594
600
  return __awaiter(this, void 0, void 0, function () {
601
+ var resolve, disconnectPromise;
602
+ var _this = this;
595
603
  return __generator(this, function (_b) {
596
604
  switch (_b.label) {
597
605
  case 0:
598
- if (!this.exchangeBusyPromise) return [3 /*break*/, 2];
599
- return [4 /*yield*/, this.exchangeBusyPromise];
606
+ // Clear any potential leftover timeouts
607
+ if (this.disconnectTimeout) {
608
+ clearTimeout(this.disconnectTimeout);
609
+ }
610
+ disconnectPromise = new Promise(function (res) {
611
+ resolve = res;
612
+ });
613
+ // Queue a disconnect
614
+ this.disconnectTimeout = setTimeout(function () {
615
+ BluetoothTransport.disconnect(_this.id);
616
+ resolve();
617
+ }, connectOptions.forceDisconnectTimeout);
618
+ // For cases where an exchange hasn't resolve and we triggered a `close` we
619
+ // introduce a timeout to forcefully disconnect in order to unblock subsequent
620
+ // usages of the `withDevice` logic.
621
+ return [4 /*yield*/, Promise.race([
622
+ this.exchangeBusyPromise || Promise.resolve(),
623
+ disconnectPromise,
624
+ ])];
600
625
  case 1:
626
+ // For cases where an exchange hasn't resolve and we triggered a `close` we
627
+ // introduce a timeout to forcefully disconnect in order to unblock subsequent
628
+ // usages of the `withDevice` logic.
601
629
  _b.sent();
602
- _b.label = 2;
603
- case 2: return [2 /*return*/];
630
+ return [2 /*return*/];
604
631
  }
605
632
  });
606
633
  });
@@ -633,6 +660,9 @@ var BluetoothTransport = /** @class */ (function (_super) {
633
660
  return [4 /*yield*/, bleManager.cancelDeviceConnection(id)];
634
661
  case 1:
635
662
  _b.sent();
663
+ return [4 /*yield*/, delay(1000)];
664
+ case 2:
665
+ _b.sent(); // Nb Test to improve stability of re-connections.
636
666
  return [2 /*return*/];
637
667
  }
638
668
  });
@@ -640,4 +670,21 @@ var BluetoothTransport = /** @class */ (function (_super) {
640
670
  return BluetoothTransport;
641
671
  }(Transport));
642
672
  export default BluetoothTransport;
673
+ var bleErrorToHwTransportError = new Map([
674
+ [BleErrorCode.ScanStartFailed, HwTransportErrorType.BleScanStartFailed],
675
+ [
676
+ BleErrorCode.LocationServicesDisabled,
677
+ HwTransportErrorType.BleLocationServicesDisabled,
678
+ ],
679
+ [
680
+ BleErrorCode.BluetoothUnauthorized,
681
+ HwTransportErrorType.BleBluetoothUnauthorized,
682
+ ],
683
+ ]);
684
+ var mapBleErrorToHwTransportError = function (bleError) {
685
+ var message = "".concat(bleError.message, ". Origin: ").concat(bleError.errorCode);
686
+ var inferedType = bleErrorToHwTransportError.get(bleError.errorCode);
687
+ var type = !inferedType ? HwTransportErrorType.Unknown : inferedType;
688
+ return new HwTransportError(type, message);
689
+ };
643
690
  //# sourceMappingURL=BleTransport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BleTransport.js","sourceRoot":"","sources":["../src/BleTransport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BleTransport.js","sourceRoot":"","sources":["../src/BleTransport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/react-native-hw-transport-ble",
3
- "version": "6.27.11-next.1",
3
+ "version": "6.27.11-nightly.1",
4
4
  "description": "Ledger Hardware Wallet Bluetooth BLE transport for React Native",
5
5
  "keywords": [
6
6
  "Ledger",
@@ -29,9 +29,9 @@
29
29
  "react-native-ble-plx": "2.0.3",
30
30
  "rxjs": "6",
31
31
  "uuid": "^3.4.0",
32
- "@ledgerhq/devices": "^7.0.5",
33
- "@ledgerhq/errors": "^6.12.1",
34
- "@ledgerhq/hw-transport": "^6.27.8",
32
+ "@ledgerhq/devices": "^7.0.6-nightly.0",
33
+ "@ledgerhq/errors": "^6.12.2-nightly.0",
34
+ "@ledgerhq/hw-transport": "^6.27.9-nightly.0",
35
35
  "@ledgerhq/logs": "^6.10.1"
36
36
  },
37
37
  "gitHead": "dd0dea64b58e5a9125c8a422dcffd29e5ef6abec",
@@ -9,6 +9,7 @@ import {
9
9
  BleManager,
10
10
  ConnectionPriority,
11
11
  BleErrorCode,
12
+ BleError,
12
13
  } from "react-native-ble-plx";
13
14
  import {
14
15
  getBluetoothServiceUuids,
@@ -32,6 +33,8 @@ import {
32
33
  TransportError,
33
34
  DisconnectedDeviceDuringOperation,
34
35
  PairingFailed,
36
+ HwTransportError,
37
+ HwTransportErrorType,
35
38
  } from "@ledgerhq/errors";
36
39
  import type { Device, Characteristic } from "./types";
37
40
  import { monitorCharacteristic } from "./monitorCharacteristic";
@@ -40,6 +43,7 @@ import { decoratePromiseErrors, remapError } from "./remapErrors";
40
43
  let connectOptions: Record<string, unknown> = {
41
44
  requestMTU: 156,
42
45
  connectionPriority: 1,
46
+ forceDisconnectTimeout: 4000,
43
47
  };
44
48
  const transportsCache = {};
45
49
  const bleManager = new BleManager();
@@ -58,12 +62,10 @@ type ReconnectionConfig = {
58
62
  delayAfterFirstPairing: number;
59
63
  };
60
64
  let reconnectionConfig: ReconnectionConfig | null | undefined = {
61
- pairingThreshold: 1000,
65
+ pairingThreshold: 2000,
62
66
  delayAfterFirstPairing: 4000,
63
67
  };
64
- export function setReconnectionConfig(
65
- config: ReconnectionConfig | null | undefined
66
- ) {
68
+ export function setReconnectionConfig(config: ReconnectionConfig | null): void {
67
69
  reconnectionConfig = config;
68
70
  }
69
71
 
@@ -75,6 +77,11 @@ async function open(deviceOrId: Device | string, needsReconnect: boolean) {
75
77
  if (typeof deviceOrId === "string") {
76
78
  if (transportsCache[deviceOrId]) {
77
79
  log("ble-verbose", "Transport in cache, using that.");
80
+ const maybeTimeout = transportsCache[deviceOrId].disconnectTimeout;
81
+ if (maybeTimeout) {
82
+ log("ble-verbose", "Clearing queued disconnect");
83
+ clearTimeout(transportsCache[deviceOrId].disconnectTimeout);
84
+ }
78
85
  return transportsCache[deviceOrId];
79
86
  }
80
87
 
@@ -339,11 +346,12 @@ export default class BluetoothTransport extends Transport {
339
346
  * Scan for bluetooth Ledger devices
340
347
  */
341
348
  static listen(
342
- observer: TransportObserver<DescriptorEvent<Device>>
349
+ observer: TransportObserver<DescriptorEvent<Device>, HwTransportError>
343
350
  ): TransportSubscription {
344
351
  log("ble-verbose", "listen...");
352
+
345
353
  let unsubscribed;
346
- // $FlowFixMe
354
+
347
355
  const stateSub = bleManager.onStateChange(async (state) => {
348
356
  if (state === "PoweredOn") {
349
357
  stateSub.remove();
@@ -362,7 +370,7 @@ export default class BluetoothTransport extends Transport {
362
370
  null,
363
371
  (bleError, device) => {
364
372
  if (bleError) {
365
- observer.error(bleError);
373
+ observer.error(mapBleErrorToHwTransportError(bleError));
366
374
  unsubscribe();
367
375
  return;
368
376
  }
@@ -408,6 +416,7 @@ export default class BluetoothTransport extends Transport {
408
416
  static disconnect = async (id: any) => {
409
417
  log("ble-verbose", `user disconnect(${id})`);
410
418
  await bleManager.cancelDeviceConnection(id);
419
+ await delay(1000); // Nb Test to improve stability of re-connections.
411
420
  };
412
421
  id: string;
413
422
  device: Device;
@@ -417,6 +426,7 @@ export default class BluetoothTransport extends Transport {
417
426
  notifyObservable: Observable<any>;
418
427
  deviceModel: DeviceModel;
419
428
  notYetDisconnected = true;
429
+ disconnectTimeout: null | ReturnType<typeof setTimeout> = null;
420
430
 
421
431
  constructor(
422
432
  device: Device,
@@ -537,9 +547,54 @@ export default class BluetoothTransport extends Transport {
537
547
  }
538
548
  };
539
549
 
540
- async close() {
541
- if (this.exchangeBusyPromise) {
542
- await this.exchangeBusyPromise;
550
+ async close(): Promise<void> {
551
+ // Clear any potential leftover timeouts
552
+ if (this.disconnectTimeout) {
553
+ clearTimeout(this.disconnectTimeout);
543
554
  }
555
+
556
+ let resolve;
557
+ const disconnectPromise = new Promise<void>((res) => {
558
+ resolve = res;
559
+ });
560
+
561
+ // Queue a disconnect
562
+ this.disconnectTimeout = setTimeout(() => {
563
+ BluetoothTransport.disconnect(this.id);
564
+ resolve();
565
+ }, connectOptions.forceDisconnectTimeout as number);
566
+
567
+ // For cases where an exchange hasn't resolve and we triggered a `close` we
568
+ // introduce a timeout to forcefully disconnect in order to unblock subsequent
569
+ // usages of the `withDevice` logic.
570
+ await Promise.race([
571
+ this.exchangeBusyPromise || Promise.resolve(),
572
+ disconnectPromise,
573
+ ]);
574
+
575
+ return;
544
576
  }
545
577
  }
578
+
579
+ const bleErrorToHwTransportError = new Map([
580
+ [BleErrorCode.ScanStartFailed, HwTransportErrorType.BleScanStartFailed],
581
+ [
582
+ BleErrorCode.LocationServicesDisabled,
583
+ HwTransportErrorType.BleLocationServicesDisabled,
584
+ ],
585
+ [
586
+ BleErrorCode.BluetoothUnauthorized,
587
+ HwTransportErrorType.BleBluetoothUnauthorized,
588
+ ],
589
+ ]);
590
+
591
+ const mapBleErrorToHwTransportError = (
592
+ bleError: BleError
593
+ ): HwTransportError => {
594
+ const message = `${bleError.message}. Origin: ${bleError.errorCode}`;
595
+
596
+ const inferedType = bleErrorToHwTransportError.get(bleError.errorCode);
597
+ const type = !inferedType ? HwTransportErrorType.Unknown : inferedType;
598
+
599
+ return new HwTransportError(type, message);
600
+ };