@ledgerhq/react-native-hw-transport-ble 6.29.5 → 6.29.6-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.29.5 build /home/runner/work/ledger-live/ledger-live/libs/ledgerjs/packages/react-native-hw-transport-ble
2
+ > @ledgerhq/react-native-hw-transport-ble@6.29.6-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,5 +1,21 @@
1
1
  # @ledgerhq/react-native-hw-transport-ble
2
2
 
3
+ ## 6.29.6-nightly.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`6b7fc5d071`](https://github.com/LedgerHQ/ledger-live/commit/6b7fc5d0711a83ed2fcacacd02795862a4a3bf1d)]:
8
+ - @ledgerhq/hw-transport@6.28.9-nightly.1
9
+
10
+ ## 6.29.6-nightly.0
11
+
12
+ ### Patch Changes
13
+
14
+ - Updated dependencies [[`4d6fa0772e`](https://github.com/LedgerHQ/ledger-live/commit/4d6fa0772e19cdbd4b432fafa43621c42e2a5fdd)]:
15
+ - @ledgerhq/errors@6.15.0-nightly.0
16
+ - @ledgerhq/devices@8.0.8-nightly.0
17
+ - @ledgerhq/hw-transport@6.28.9-nightly.0
18
+
3
19
  ## 6.29.5
4
20
 
5
21
  ### Patch Changes
@@ -3,10 +3,16 @@ import Transport from "@ledgerhq/hw-transport";
3
3
  import type { Subscription as TransportSubscription, Observer as TransportObserver } from "@ledgerhq/hw-transport";
4
4
  import { DeviceId, Device, Characteristic } from "react-native-ble-plx";
5
5
  import type { DeviceModel } from "@ledgerhq/devices";
6
+ import { TraceContext } from "@ledgerhq/logs";
6
7
  import { Observable, Observer } from "rxjs";
7
8
  import { HwTransportError } from "@ledgerhq/errors";
8
9
  import { ReconnectionConfig } from "./types";
9
10
  export declare const setReconnectionConfig: (config: ReconnectionConfig | null | undefined) => void;
11
+ /**
12
+ * react-native bluetooth BLE implementation
13
+ * @example
14
+ * import BleTransport from "@ledgerhq/react-native-hw-transport-ble";
15
+ */
10
16
  export default class BleTransport extends Transport {
11
17
  static disconnectTimeoutMs: number;
12
18
  /**
@@ -38,17 +44,21 @@ export default class BleTransport extends Transport {
38
44
  * @param observer Device is partial in order to avoid the live-common/this dep
39
45
  * @returns TransportSubscription
40
46
  */
41
- static listen(observer: TransportObserver<any, HwTransportError>): TransportSubscription;
47
+ static listen(observer: TransportObserver<any, HwTransportError>, context?: TraceContext): TransportSubscription;
42
48
  /**
43
- * Open a BLE transport
49
+ * Opens a BLE transport
50
+ *
44
51
  * @param {Device | string} deviceOrId
52
+ * @param timeoutMs TODO: to keep, used in a separate PR
53
+ * @param context An optional context object for log/tracing strategy
45
54
  */
46
- static open(deviceOrId: Device | string): Promise<BleTransport>;
55
+ static open(deviceOrId: Device | string, timeoutMs?: number, context?: TraceContext): Promise<BleTransport>;
47
56
  /**
48
- * Exposed method from the ble-plx library
57
+ * Exposes method from the ble-plx library to disconnect a device
58
+ *
49
59
  * Disconnects from {@link Device} if it's connected or cancels pending connection.
50
60
  */
51
- static disconnect: (id: DeviceId) => Promise<void>;
61
+ static disconnect: (id: DeviceId, context?: TraceContext) => Promise<void>;
52
62
  device: Device;
53
63
  deviceModel: DeviceModel;
54
64
  disconnectTimeout: null | ReturnType<typeof setTimeout>;
@@ -59,10 +69,13 @@ export default class BleTransport extends Transport {
59
69
  notYetDisconnected: boolean;
60
70
  writeCharacteristic: Characteristic;
61
71
  writeCmdCharacteristic: Characteristic | undefined;
62
- constructor(device: Device, writeCharacteristic: Characteristic, writeCmdCharacteristic: Characteristic | undefined, notifyObservable: Observable<any>, deviceModel: DeviceModel);
72
+ constructor(device: Device, writeCharacteristic: Characteristic, writeCmdCharacteristic: Characteristic | undefined, notifyObservable: Observable<any>, deviceModel: DeviceModel, { context }?: {
73
+ context?: TraceContext;
74
+ });
63
75
  /**
64
76
  * Send data to the device using a low level API.
65
77
  * It's recommended to use the "send" method for a higher level API.
78
+ *
66
79
  * @param {Buffer} apdu - The data to send.
67
80
  * @returns {Promise<Buffer>} A promise that resolves with the response data from the device.
68
81
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BleTransport.d.ts","sourceRoot":"","sources":["../src/BleTransport.ts"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,KAAK,EACV,YAAY,IAAI,qBAAqB,EACrC,QAAQ,IAAI,iBAAiB,EAC9B,MAAM,wBAAwB,CAAC;AAYhC,OAAO,EAKL,QAAQ,EACR,MAAM,EACN,cAAc,EAGf,MAAM,sBAAsB,CAAC;AAO9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAsC,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhF,OAAO,EAML,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAW7C,eAAO,MAAM,qBAAqB,WAAY,kBAAkB,GAAG,IAAI,GAAG,SAAS,KAAG,IAErF,CAAC;AAqSF,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS;IACjD,MAAM,CAAC,mBAAmB,SAAQ;IAClC;;OAEG;IACH,MAAM,CAAC,WAAW,QAAO,QAAQ,OAAO,CAAC,CAAsD;IAE/F;;OAEG;IACH,MAAM,CAAC,IAAI,QAAO,QAAQ,IAAI,EAAE,CAAC,CAE/B;IAEF;;;;OAIG;IACH,MAAM,CAAC,WAAW,aAAc,MAAM,KAAG,IAAI,CAM3C;IAEF;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CACjB,QAAQ,EAAE,QAAQ,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC,GACD,qBAAqB;IAexB;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,qBAAqB;IAuDxF;;;OAGG;WACU,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIrE;;;OAGG;IACH,MAAM,CAAC,UAAU,OAAc,QAAQ,KAAG,QAAQ,IAAI,CAAC,CAIrD;IAEF,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,EAAE,IAAI,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAQ;IAC/D,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,UAAQ;IACnB,OAAO,SAAM;IACb,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAClC,kBAAkB,UAAQ;IAC1B,mBAAmB,EAAE,cAAc,CAAC;IACpC,sBAAsB,EAAE,cAAc,GAAG,SAAS,CAAC;gBAGjD,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,cAAc,EACnC,sBAAsB,EAAE,cAAc,GAAG,SAAS,EAClD,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,EACjC,WAAW,EAAE,WAAW;IAc1B;;;;;OAKG;IACH,QAAQ,SAAU,MAAM,KAAG,QAAQ,GAAG,CAAC,CA2BlC;IAEL;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAkCjC;;;;;OAKG;IACG,yBAAyB,CAC7B,kBAAkB,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU,GACnD,OAAO,CAAC,MAAM,CAAC;IAMlB;;;;;OAKG;IACH,KAAK,WAAkB,MAAM,SAAS,MAAM,GAAG,SAAS,KAAG,QAAQ,IAAI,CAAC,CAetE;IAEF;;;;;;;OAOG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA2B7B"}
1
+ {"version":3,"file":"BleTransport.d.ts","sourceRoot":"","sources":["../src/BleTransport.ts"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,KAAK,EACV,YAAY,IAAI,qBAAqB,EACrC,QAAQ,IAAI,iBAAiB,EAC9B,MAAM,wBAAwB,CAAC;AAYhC,OAAO,EAKL,QAAQ,EACR,MAAM,EACN,cAAc,EAGf,MAAM,sBAAsB,CAAC;AAO9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAsC,QAAQ,EAAkB,MAAM,MAAM,CAAC;AAEhG,OAAO,EAML,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAa7C,eAAO,MAAM,qBAAqB,WAAY,kBAAkB,GAAG,IAAI,GAAG,SAAS,KAAG,IAErF,CAAC;AAsUF;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,SAAS;IACjD,MAAM,CAAC,mBAAmB,SAAQ;IAClC;;OAEG;IACH,MAAM,CAAC,WAAW,QAAO,QAAQ,OAAO,CAAC,CAAsD;IAE/F;;OAEG;IACH,MAAM,CAAC,IAAI,QAAO,QAAQ,IAAI,EAAE,CAAC,CAE/B;IAEF;;;;OAIG;IACH,MAAM,CAAC,WAAW,aAAc,MAAM,KAAG,IAAI,CAM3C;IAEF;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CACjB,QAAQ,EAAE,QAAQ,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC,GACD,qBAAqB;IAexB;;;;OAIG;IACH,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAClD,OAAO,CAAC,EAAE,YAAY,GACrB,qBAAqB;IAwDxB;;;;;;OAMG;WACU,IAAI,CACf,UAAU,EAAE,MAAM,GAAG,MAAM,EAC3B,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,YAAY,CAAC;IAIxB;;;;OAIG;IACH,MAAM,CAAC,UAAU,OAAc,QAAQ,YAAY,YAAY,KAAG,QAAQ,IAAI,CAAC,CAY7E;IAEF,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,EAAE,IAAI,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAQ;IAC/D,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,UAAQ;IACnB,OAAO,SAAM;IACb,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAClC,kBAAkB,UAAQ;IAC1B,mBAAmB,EAAE,cAAc,CAAC;IACpC,sBAAsB,EAAE,cAAc,GAAG,SAAS,CAAC;gBAGjD,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,cAAc,EACnC,sBAAsB,EAAE,cAAc,GAAG,SAAS,EAClD,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,EACjC,WAAW,EAAE,WAAW,EACxB,EAAE,OAAO,EAAE,GAAE;QAAE,OAAO,CAAC,EAAE,YAAY,CAAA;KAAO;IAe9C;;;;;;OAMG;IACH,QAAQ,SAAU,MAAM,KAAG,QAAQ,GAAG,CAAC,CAoCrC;IAEF;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IA4CjC;;;;;OAKG;IACG,yBAAyB,CAC7B,kBAAkB,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU,GACnD,OAAO,CAAC,MAAM,CAAC;IAMlB;;;;;OAKG;IACH,KAAK,WAAkB,MAAM,SAAS,MAAM,GAAG,SAAS,KAAG,QAAQ,IAAI,CAAC,CActE;IAEF;;;;;;;OAOG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA0B7B"}
@@ -34,6 +34,7 @@ const errors_1 = require("@ledgerhq/errors");
34
34
  const monitorCharacteristic_1 = require("./monitorCharacteristic");
35
35
  const awaitsBleOn_1 = require("./awaitsBleOn");
36
36
  const remapErrors_1 = require("./remapErrors");
37
+ const LOG_TYPE = "ble-verbose";
37
38
  /**
38
39
  * This is potentially not needed anymore, to be checked if the bug is still
39
40
  * happening.
@@ -89,28 +90,40 @@ const bleManagerInstance = () => {
89
90
  }
90
91
  return _bleManager;
91
92
  };
92
- const clearDisconnectTimeout = (deviceId) => {
93
+ const clearDisconnectTimeout = (deviceId, context) => {
93
94
  const cachedTransport = transportsCache[deviceId];
94
95
  if (cachedTransport && cachedTransport.disconnectTimeout) {
95
- (0, logs_1.log)(TAG, "Clearing queued disconnect");
96
+ (0, logs_1.trace)({ type: LOG_TYPE, message: "Clearing queued disconnect", context });
96
97
  clearTimeout(cachedTransport.disconnectTimeout);
97
98
  }
98
99
  };
99
- function open(deviceOrId, needsReconnect) {
100
+ /**
101
+ * Opens a BLE connection with a given device. Returns a Transport instance.
102
+ *
103
+ * @param deviceOrId
104
+ * @param needsReconnect
105
+ * @param timeoutMs TODO: to keep, used in a separate PR
106
+ * @param context Optional tracing/log context
107
+ * @returns A BleTransport instance
108
+ */
109
+ function open(deviceOrId, needsReconnect, timeoutMs, context) {
100
110
  return __awaiter(this, void 0, void 0, function* () {
111
+ const tracer = new logs_1.LocalTracer(LOG_TYPE, context);
101
112
  let device;
102
- (0, logs_1.log)(TAG, `open with ${deviceOrId}`);
113
+ tracer.trace(`Opening ${deviceOrId}`, { needsReconnect });
103
114
  if (typeof deviceOrId === "string") {
104
115
  if (transportsCache[deviceOrId]) {
105
- (0, logs_1.log)(TAG, "Transport in cache, using that.");
116
+ tracer.trace(`Transport in cache, using it`);
106
117
  clearDisconnectTimeout(deviceOrId);
118
+ // The cached transport probably has an older trace/log context
119
+ transportsCache[deviceOrId].setTraceContext(context);
107
120
  return transportsCache[deviceOrId];
108
121
  }
109
- (0, logs_1.log)(TAG, `Tries to open device: ${deviceOrId}`);
122
+ tracer.trace(`Trying to open device: ${deviceOrId}`);
110
123
  yield (0, awaitsBleOn_1.awaitsBleOn)(bleManagerInstance());
111
124
  // Returns a list of known devices by their identifiers
112
125
  const devices = yield bleManagerInstance().devices([deviceOrId]);
113
- (0, logs_1.log)(TAG, `found ${devices.length} devices`);
126
+ tracer.trace(`Found ${devices.length} already known device(s) with given id`, { deviceOrId });
114
127
  [device] = devices;
115
128
  if (!device) {
116
129
  // Returns a list of the peripherals currently connected to the system
@@ -118,18 +131,21 @@ function open(deviceOrId, needsReconnect) {
118
131
  // connected to our app, we check that below.
119
132
  const connectedDevices = yield bleManagerInstance().connectedDevices((0, devices_1.getBluetoothServiceUuids)());
120
133
  const connectedDevicesFiltered = connectedDevices.filter(d => d.id === deviceOrId);
121
- (0, logs_1.log)(TAG, `found ${connectedDevicesFiltered.length} connected devices`);
134
+ tracer.trace(`No known device with given id. Found ${connectedDevicesFiltered.length} devices from already connected devices`, { deviceOrId });
122
135
  [device] = connectedDevicesFiltered;
123
136
  }
124
137
  if (!device) {
125
138
  // We still don't have a device, so we attempt to connect to it.
126
- (0, logs_1.log)(TAG, `connectToDevice(${deviceOrId})`);
139
+ tracer.trace(`No known nor connected devices with given id. Trying to connect to device`, {
140
+ deviceOrId,
141
+ timeoutMs,
142
+ });
127
143
  // Nb ConnectionOptions dropped since it's not used internally by ble-plx.
128
144
  try {
129
145
  device = yield bleManagerInstance().connectToDevice(deviceOrId, connectOptions);
130
146
  }
131
147
  catch (e) {
132
- (0, logs_1.log)(TAG, `error code ${e.errorCode}`);
148
+ tracer.trace(`Error code: ${e.errorCode}`);
133
149
  if (e.errorCode === react_native_ble_plx_1.BleErrorCode.DeviceMTUChangeFailed) {
134
150
  // If the MTU update did not work, we try to connect without requesting for a specific MTU
135
151
  connectOptions = {};
@@ -149,21 +165,22 @@ function open(deviceOrId, needsReconnect) {
149
165
  device = deviceOrId;
150
166
  }
151
167
  if (!(yield device.isConnected())) {
152
- (0, logs_1.log)(TAG, "not connected. connecting...");
168
+ tracer.trace(`Device found but not connected. connecting...`, { timeoutMs, connectOptions });
153
169
  try {
154
- yield device.connect(connectOptions);
170
+ yield device.connect(Object.assign({}, connectOptions));
155
171
  }
156
- catch (e) {
157
- (0, logs_1.log)("ble-verbose", `connect error - ${JSON.stringify(e)}`);
158
- if (e.errorCode === react_native_ble_plx_1.BleErrorCode.DeviceMTUChangeFailed) {
159
- (0, logs_1.log)("ble-verbose", `device.mtu=${device.mtu}, reconnecting`);
172
+ catch (error) {
173
+ tracer.trace(`Connect error`, { error });
174
+ if (error.errorCode === react_native_ble_plx_1.BleErrorCode.DeviceMTUChangeFailed) {
175
+ tracer.trace(`Device mtu=${device.mtu}, reconnecting`);
160
176
  connectOptions = {};
161
177
  yield device.connect();
162
178
  }
163
- else if (e.iosErrorCode === 14 || e.reason === "Peer removed pairing information") {
164
- (0, logs_1.log)("ble-verbose", "iOS broken pairing");
165
- (0, logs_1.log)("ble-verbose", JSON.stringify(device));
166
- (0, logs_1.log)("ble-verbose", JSON.stringify(bluetoothInfoCache[device.id]));
179
+ else if (error.iosErrorCode === 14 || error.reason === "Peer removed pairing information") {
180
+ tracer.trace(`iOS broken pairing`, {
181
+ device,
182
+ bluetoothInfoCache: bluetoothInfoCache[device.id],
183
+ });
167
184
  const { deviceModel } = bluetoothInfoCache[device.id] || {};
168
185
  const { productName } = deviceModel || {};
169
186
  throw new errors_1.PeerRemovedPairing(undefined, {
@@ -172,10 +189,11 @@ function open(deviceOrId, needsReconnect) {
172
189
  });
173
190
  }
174
191
  else {
175
- throw (0, remapErrors_1.remapError)(e);
192
+ throw (0, remapErrors_1.remapError)(error);
176
193
  }
177
194
  }
178
195
  }
196
+ tracer.trace(`Device is connected now, getting services and characteristics`);
179
197
  yield device.discoverAllServicesAndCharacteristics();
180
198
  let res = retrieveInfos(device);
181
199
  let characteristics;
@@ -192,6 +210,7 @@ function open(deviceOrId, needsReconnect) {
192
210
  }
193
211
  }
194
212
  if (!res) {
213
+ tracer.trace(`Service not found`);
195
214
  throw new errors_1.TransportError("service not found", "BLEServiceNotFound");
196
215
  }
197
216
  const { deviceModel, serviceUuid, writeUuid, writeCmdUuid, notifyUuid } = res;
@@ -199,6 +218,7 @@ function open(deviceOrId, needsReconnect) {
199
218
  characteristics = yield device.characteristicsForService(serviceUuid);
200
219
  }
201
220
  if (!characteristics) {
221
+ tracer.trace(`Characteristics not found`);
202
222
  throw new errors_1.TransportError("service not found", "BLEServiceNotFound");
203
223
  }
204
224
  let writeC;
@@ -232,31 +252,36 @@ function open(deviceOrId, needsReconnect) {
232
252
  throw new errors_1.TransportError("write cmd characteristic not writableWithoutResponse", "BLECharacteristicInvalid");
233
253
  }
234
254
  }
235
- (0, logs_1.log)(TAG, `device.mtu=${device.mtu}`);
236
- const notifyObservable = (0, monitorCharacteristic_1.monitorCharacteristic)(notifyC).pipe((0, operators_1.catchError)(e => {
255
+ tracer.trace(`device.mtu=${device.mtu}`);
256
+ const notifyObservable = (0, monitorCharacteristic_1.monitorCharacteristic)(notifyC, context).pipe((0, operators_1.catchError)(e => {
237
257
  // LL-9033 fw 2.0.2 introduced this case, we silence the inner unhandled error.
238
258
  const msg = String(e);
239
- return msg.includes("notify change failed") ? (0, rxjs_1.of)(new errors_1.PairingFailed(msg)) : (0, rxjs_1.throwError)(e);
259
+ return msg.includes("notify change failed")
260
+ ? (0, rxjs_1.of)(new errors_1.PairingFailed(msg))
261
+ : (0, rxjs_1.throwError)(() => e);
240
262
  }), (0, operators_1.tap)(value => {
241
263
  if (value instanceof errors_1.PairingFailed)
242
264
  return;
243
- (0, logs_1.log)("ble-frame", "<= " + value.toString("hex"));
265
+ (0, logs_1.trace)({ type: "ble-frame", message: `<= ${value.toString("hex")}`, context });
244
266
  }), (0, operators_1.share)());
245
267
  const notif = notifyObservable.subscribe();
246
- const transport = new BleTransport(device, writeC, writeCmdC, notifyObservable, deviceModel);
268
+ const transport = new BleTransport(device, writeC, writeCmdC, notifyObservable, deviceModel, {
269
+ context,
270
+ });
271
+ tracer.trace(`New BleTransport created`);
247
272
  // Keeping it as a comment for now but if no new bluetooth issues occur, we will be able to remove it
248
273
  // await transport.requestConnectionPriority("High");
249
274
  // eslint-disable-next-line prefer-const
250
275
  let disconnectedSub;
251
- const onDisconnect = (e) => {
276
+ const onDisconnect = (error) => {
252
277
  transport.isConnected = false;
253
278
  transport.notYetDisconnected = false;
254
279
  notif.unsubscribe();
255
280
  disconnectedSub === null || disconnectedSub === void 0 ? void 0 : disconnectedSub.remove();
256
281
  clearDisconnectTimeout(transport.id);
257
282
  delete transportsCache[transport.id];
258
- (0, logs_1.log)(TAG, `BleTransport(${transport.id}) disconnected`);
259
- transport.emit("disconnect", e);
283
+ tracer.trace(`On device disconnected callback: cleared cached transport for ${transport.id}, emitting Transport event "disconnect"`, { reason: error });
284
+ transport.emit("disconnect", error);
260
285
  };
261
286
  // eslint-disable-next-line require-atomic-updates
262
287
  transportsCache[transport.id] = transport;
@@ -280,7 +305,7 @@ function open(deviceOrId, needsReconnect) {
280
305
  needsReconnect = false;
281
306
  }
282
307
  else if (deviceModel.id === devices_1.DeviceModelId.stax) {
283
- (0, logs_1.log)(TAG, "skipping needsReconnect for stax");
308
+ tracer.trace(`Skipping "needsReconnect" strategy for Stax`);
284
309
  needsReconnect = false;
285
310
  }
286
311
  if (needsReconnect) {
@@ -293,8 +318,8 @@ function open(deviceOrId, needsReconnect) {
293
318
  }
294
319
  }
295
320
  if (needsReconnect) {
296
- (0, logs_1.log)(TAG, "reconnecting");
297
- return open(device, false);
321
+ tracer.trace(`Reconnecting`);
322
+ return open(device, false, timeoutMs, context);
298
323
  }
299
324
  return transport;
300
325
  });
@@ -304,7 +329,6 @@ function open(deviceOrId, needsReconnect) {
304
329
  * @example
305
330
  * import BleTransport from "@ledgerhq/react-native-hw-transport-ble";
306
331
  */
307
- const TAG = "ble-verbose";
308
332
  class BleTransport extends hw_transport_1.default {
309
333
  /**
310
334
  * Listen to state changes on the bleManagerInstance and notify the
@@ -329,8 +353,9 @@ class BleTransport extends hw_transport_1.default {
329
353
  * @param observer Device is partial in order to avoid the live-common/this dep
330
354
  * @returns TransportSubscription
331
355
  */
332
- static listen(observer) {
333
- (0, logs_1.log)(TAG, "listening for devices");
356
+ static listen(observer, context) {
357
+ const tracer = new logs_1.LocalTracer(LOG_TYPE, context);
358
+ tracer.trace("Listening for devices ...");
334
359
  let unsubscribed;
335
360
  const stateSub = bleManagerInstance().onStateChange((state) => __awaiter(this, void 0, void 0, function* () {
336
361
  if (state === "PoweredOn") {
@@ -339,7 +364,7 @@ class BleTransport extends hw_transport_1.default {
339
364
  if (unsubscribed)
340
365
  return;
341
366
  if (devices.length) {
342
- (0, logs_1.log)(TAG, "disconnecting from devices");
367
+ tracer.trace("Disconnecting from all devices", { deviceCount: devices.length });
343
368
  yield Promise.all(devices.map(d => BleTransport.disconnect(d.id).catch(() => { })));
344
369
  }
345
370
  if (unsubscribed)
@@ -366,23 +391,26 @@ class BleTransport extends hw_transport_1.default {
366
391
  unsubscribed = true;
367
392
  bleManagerInstance().stopDeviceScan();
368
393
  stateSub.remove();
369
- (0, logs_1.log)(TAG, "done listening.");
394
+ tracer.trace("Done listening");
370
395
  };
371
396
  return {
372
397
  unsubscribe,
373
398
  };
374
399
  }
375
400
  /**
376
- * Open a BLE transport
401
+ * Opens a BLE transport
402
+ *
377
403
  * @param {Device | string} deviceOrId
404
+ * @param timeoutMs TODO: to keep, used in a separate PR
405
+ * @param context An optional context object for log/tracing strategy
378
406
  */
379
- static open(deviceOrId) {
407
+ static open(deviceOrId, timeoutMs, context) {
380
408
  return __awaiter(this, void 0, void 0, function* () {
381
- return open(deviceOrId, true);
409
+ return open(deviceOrId, true, timeoutMs, context);
382
410
  });
383
411
  }
384
- constructor(device, writeCharacteristic, writeCmdCharacteristic, notifyObservable, deviceModel) {
385
- super();
412
+ constructor(device, writeCharacteristic, writeCmdCharacteristic, notifyObservable, deviceModel, { context } = {}) {
413
+ super({ context, logType: LOG_TYPE });
386
414
  this.disconnectTimeout = null;
387
415
  this.isConnected = true;
388
416
  this.mtuSize = 20;
@@ -390,29 +418,40 @@ class BleTransport extends hw_transport_1.default {
390
418
  /**
391
419
  * Send data to the device using a low level API.
392
420
  * It's recommended to use the "send" method for a higher level API.
421
+ *
393
422
  * @param {Buffer} apdu - The data to send.
394
423
  * @returns {Promise<Buffer>} A promise that resolves with the response data from the device.
395
424
  */
396
- this.exchange = (apdu) => this.exchangeAtomicImpl(() => __awaiter(this, void 0, void 0, function* () {
397
- try {
398
- const msgIn = apdu.toString("hex");
399
- (0, logs_1.log)("apdu", `=> ${msgIn}`);
400
- const data = yield (0, rxjs_1.merge)(this.notifyObservable.pipe(receiveAPDU_1.receiveAPDU), (0, sendAPDU_1.sendAPDU)(this.write, apdu, this.mtuSize)).toPromise();
401
- const msgOut = data.toString("hex");
402
- (0, logs_1.log)("apdu", `<= ${msgOut}`);
403
- return data;
404
- }
405
- catch (e) {
406
- (0, logs_1.log)("ble-error", "exchange got " + String(e));
407
- if (this.notYetDisconnected) {
408
- // in such case we will always disconnect because something is bad.
409
- yield bleManagerInstance()
410
- .cancelDeviceConnection(this.id)
411
- .catch(() => { }); // but we ignore if disconnect worked.
425
+ this.exchange = (apdu) => {
426
+ const tracer = this.tracer.withUpdatedContext({
427
+ function: "exchange",
428
+ });
429
+ tracer.trace("Exchanging APDU ...");
430
+ return this.exchangeAtomicImpl(() => __awaiter(this, void 0, void 0, function* () {
431
+ try {
432
+ const msgIn = apdu.toString("hex");
433
+ tracer.withType("apdu").trace(`=> ${msgIn}`);
434
+ const data = yield (0, rxjs_1.firstValueFrom)((0, rxjs_1.merge)(this.notifyObservable.pipe(receiveAPDU_1.receiveAPDU), (0, sendAPDU_1.sendAPDU)(this.write, apdu, this.mtuSize)));
435
+ const msgOut = data.toString("hex");
436
+ tracer.withType("apdu").trace(`<= ${msgOut}`);
437
+ return data;
412
438
  }
413
- throw (0, remapErrors_1.remapError)(e);
414
- }
415
- }));
439
+ catch (error) {
440
+ tracer.withType("ble-error").trace(`Error while exchanging APDU`, { error });
441
+ if (this.notYetDisconnected) {
442
+ // in such case we will always disconnect because something is bad.
443
+ yield bleManagerInstance()
444
+ .cancelDeviceConnection(this.id)
445
+ .catch(() => { }); // but we ignore if disconnect worked.
446
+ }
447
+ const mappedError = (0, remapErrors_1.remapError)(error);
448
+ tracer.trace("Error while exchanging APDU, mapped and throws following error", {
449
+ mappedError,
450
+ });
451
+ throw mappedError;
452
+ }
453
+ }));
454
+ };
416
455
  /**
417
456
  * Do not call this directly unless you know what you're doing. Communication
418
457
  * with a Ledger device should be through the {@link exchange} method.
@@ -420,22 +459,18 @@ class BleTransport extends hw_transport_1.default {
420
459
  * @param txid
421
460
  */
422
461
  this.write = (buffer, txid) => __awaiter(this, void 0, void 0, function* () {
423
- (0, logs_1.log)("ble-frame", "=> " + buffer.toString("hex"));
424
- if (!this.writeCmdCharacteristic) {
425
- try {
462
+ try {
463
+ if (!this.writeCmdCharacteristic) {
426
464
  yield this.writeCharacteristic.writeWithResponse(buffer.toString("base64"), txid);
427
465
  }
428
- catch (e) {
429
- throw new errors_1.DisconnectedDeviceDuringOperation(e.message);
430
- }
431
- }
432
- else {
433
- try {
466
+ else {
434
467
  yield this.writeCmdCharacteristic.writeWithoutResponse(buffer.toString("base64"), txid);
435
468
  }
436
- catch (e) {
437
- throw new errors_1.DisconnectedDeviceDuringOperation(e.message);
438
- }
469
+ this.tracer.withType("ble-frame").trace("=> " + buffer.toString("hex"));
470
+ }
471
+ catch (error) {
472
+ this.tracer.trace("Error while writing APDU", { error });
473
+ throw new errors_1.DisconnectedDeviceDuringOperation(error instanceof Error ? error.message : `${error}`);
439
474
  }
440
475
  });
441
476
  this.id = device.id;
@@ -444,8 +479,8 @@ class BleTransport extends hw_transport_1.default {
444
479
  this.writeCmdCharacteristic = writeCmdCharacteristic;
445
480
  this.notifyObservable = notifyObservable;
446
481
  this.deviceModel = deviceModel;
447
- (0, logs_1.log)(TAG, `BleTransport(${String(this.id)}) new instance`);
448
482
  clearDisconnectTimeout(this.id);
483
+ this.tracer.trace(`New instance of BleTransport for device ${this.id}`);
449
484
  }
450
485
  /**
451
486
  * Negotiate with the device the maximum transfer unit for the ble frames
@@ -454,24 +489,32 @@ class BleTransport extends hw_transport_1.default {
454
489
  inferMTU() {
455
490
  return __awaiter(this, void 0, void 0, function* () {
456
491
  let { mtu } = this.device;
492
+ this.tracer.trace(`Inferring MTU ...`, { currentDeviceMtu: mtu });
457
493
  yield this.exchangeAtomicImpl(() => __awaiter(this, void 0, void 0, function* () {
458
494
  try {
459
- mtu = yield (0, rxjs_1.merge)(this.notifyObservable.pipe((0, operators_1.tap)(maybeError => {
495
+ mtu = yield (0, rxjs_1.firstValueFrom)((0, rxjs_1.merge)(this.notifyObservable.pipe((0, operators_1.tap)(maybeError => {
460
496
  if (maybeError instanceof Error)
461
497
  throw maybeError;
462
- }), (0, operators_1.first)(buffer => buffer.readUInt8(0) === 0x08), (0, operators_1.map)(buffer => buffer.readUInt8(5))), (0, rxjs_1.defer)(() => (0, rxjs_1.from)(this.write(Buffer.from([0x08, 0, 0, 0, 0])))).pipe((0, operators_1.ignoreElements)())).toPromise();
498
+ }), (0, operators_1.first)(buffer => buffer.readUInt8(0) === 0x08), (0, operators_1.map)(buffer => buffer.readUInt8(5))), (0, rxjs_1.defer)(() => (0, rxjs_1.from)(this.write(Buffer.from([0x08, 0, 0, 0, 0])))).pipe((0, operators_1.ignoreElements)())));
463
499
  }
464
- catch (e) {
465
- (0, logs_1.log)("ble-error", "inferMTU got " + JSON.stringify(e));
500
+ catch (error) {
501
+ this.tracer.withType("ble-error").trace("Error while inferring MTU", { mtu });
466
502
  yield bleManagerInstance()
467
503
  .cancelDeviceConnection(this.id)
468
504
  .catch(() => { }); // but we ignore if disconnect worked.
469
- throw (0, remapErrors_1.remapError)(e);
505
+ const mappedError = (0, remapErrors_1.remapError)(error);
506
+ this.tracer.trace("Error while inferring APDU, mapped and throws following error", {
507
+ mappedError,
508
+ });
509
+ throw mappedError;
470
510
  }
471
511
  }));
512
+ this.tracer.trace(`Successfully negotiated MTU with device`, {
513
+ mtu,
514
+ mtuSize: this.mtuSize,
515
+ });
472
516
  if (mtu > 20) {
473
517
  this.mtuSize = mtu;
474
- (0, logs_1.log)(TAG, `BleTransport(${this.id}) mtu set to ${this.mtuSize}`);
475
518
  }
476
519
  return this.mtuSize;
477
520
  });
@@ -497,16 +540,15 @@ class BleTransport extends hw_transport_1.default {
497
540
  */
498
541
  close() {
499
542
  return __awaiter(this, void 0, void 0, function* () {
543
+ this.tracer.trace("Closing, queuing a disconnect ...");
500
544
  let resolve;
501
545
  const disconnectPromise = new Promise(innerResolve => {
502
546
  resolve = innerResolve;
503
547
  });
504
548
  clearDisconnectTimeout(this.id);
505
- (0, logs_1.log)(TAG, "Queuing a disconnect");
506
549
  this.disconnectTimeout = setTimeout(() => {
507
- (0, logs_1.log)(TAG, `Triggering a disconnect from ${this.id}`);
508
550
  if (this.isConnected) {
509
- BleTransport.disconnect(this.id)
551
+ BleTransport.disconnect(this.id, this.tracer.getContext())
510
552
  .catch(() => { })
511
553
  .finally(resolve);
512
554
  }
@@ -547,13 +589,22 @@ BleTransport.setLogLevel = (logLevel) => {
547
589
  }
548
590
  };
549
591
  /**
550
- * Exposed method from the ble-plx library
592
+ * Exposes method from the ble-plx library to disconnect a device
593
+ *
551
594
  * Disconnects from {@link Device} if it's connected or cancels pending connection.
552
595
  */
553
- BleTransport.disconnect = (id) => __awaiter(void 0, void 0, void 0, function* () {
554
- (0, logs_1.log)(TAG, `user disconnect(${id})`);
596
+ BleTransport.disconnect = (id, context) => __awaiter(void 0, void 0, void 0, function* () {
597
+ (0, logs_1.trace)({
598
+ type: LOG_TYPE,
599
+ message: `Trying to disconnect device ${id})`,
600
+ context,
601
+ });
555
602
  yield bleManagerInstance().cancelDeviceConnection(id);
556
- (0, logs_1.log)(TAG, "disconnected");
603
+ (0, logs_1.trace)({
604
+ type: LOG_TYPE,
605
+ message: `Device ${id} disconnected`,
606
+ context,
607
+ });
557
608
  });
558
609
  exports.default = BleTransport;
559
610
  //# 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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"}
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { Observable } from "rxjs";
3
3
  import type { Characteristic } from "./types";
4
- export declare const monitorCharacteristic: (characteristic: Characteristic) => Observable<Buffer>;
4
+ import { TraceContext } from "@ledgerhq/logs";
5
+ export declare const monitorCharacteristic: (characteristic: Characteristic, context?: TraceContext) => Observable<Buffer>;
5
6
  //# sourceMappingURL=monitorCharacteristic.d.ts.map