@ledgerhq/react-native-hw-transport-ble 6.25.1 → 6.25.2-monorepo.0

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 (52) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/jest.config.ts +6 -0
  3. package/package.json +11 -8
  4. package/LICENSE +0 -202
  5. package/lib/BleTransport.d.ts +0 -69
  6. package/lib/BleTransport.d.ts.map +0 -1
  7. package/lib/BleTransport.js +0 -648
  8. package/lib/BleTransport.js.map +0 -1
  9. package/lib/awaitsBleOn.d.ts +0 -3
  10. package/lib/awaitsBleOn.d.ts.map +0 -1
  11. package/lib/awaitsBleOn.js +0 -38
  12. package/lib/awaitsBleOn.js.map +0 -1
  13. package/lib/monitorCharacteristic.d.ts +0 -5
  14. package/lib/monitorCharacteristic.d.ts.map +0 -1
  15. package/lib/monitorCharacteristic.js +0 -35
  16. package/lib/monitorCharacteristic.js.map +0 -1
  17. package/lib/remapErrors.d.ts +0 -4
  18. package/lib/remapErrors.d.ts.map +0 -1
  19. package/lib/remapErrors.js +0 -23
  20. package/lib/remapErrors.js.map +0 -1
  21. package/lib/timer.d.ts +0 -5
  22. package/lib/timer.d.ts.map +0 -1
  23. package/lib/timer.js +0 -26
  24. package/lib/timer.js.map +0 -1
  25. package/lib/types.d.ts +0 -4
  26. package/lib/types.d.ts.map +0 -1
  27. package/lib/types.js +0 -3
  28. package/lib/types.js.map +0 -1
  29. package/lib-es/BleTransport.d.ts +0 -69
  30. package/lib-es/BleTransport.d.ts.map +0 -1
  31. package/lib-es/BleTransport.js +0 -641
  32. package/lib-es/BleTransport.js.map +0 -1
  33. package/lib-es/awaitsBleOn.d.ts +0 -3
  34. package/lib-es/awaitsBleOn.d.ts.map +0 -1
  35. package/lib-es/awaitsBleOn.js +0 -31
  36. package/lib-es/awaitsBleOn.js.map +0 -1
  37. package/lib-es/monitorCharacteristic.d.ts +0 -5
  38. package/lib-es/monitorCharacteristic.d.ts.map +0 -1
  39. package/lib-es/monitorCharacteristic.js +0 -31
  40. package/lib-es/monitorCharacteristic.js.map +0 -1
  41. package/lib-es/remapErrors.d.ts +0 -4
  42. package/lib-es/remapErrors.d.ts.map +0 -1
  43. package/lib-es/remapErrors.js +0 -17
  44. package/lib-es/remapErrors.js.map +0 -1
  45. package/lib-es/timer.d.ts +0 -5
  46. package/lib-es/timer.d.ts.map +0 -1
  47. package/lib-es/timer.js +0 -24
  48. package/lib-es/timer.js.map +0 -1
  49. package/lib-es/types.d.ts +0 -4
  50. package/lib-es/types.d.ts.map +0 -1
  51. package/lib-es/types.js +0 -2
  52. package/lib-es/types.js.map +0 -1
@@ -1,641 +0,0 @@
1
- var __extends = (this && this.__extends) || (function () {
2
- var extendStatics = function (d, b) {
3
- extendStatics = Object.setPrototypeOf ||
4
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
- return extendStatics(d, b);
7
- };
8
- return function (d, b) {
9
- if (typeof b !== "function" && b !== null)
10
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
- extendStatics(d, b);
12
- function __() { this.constructor = d; }
13
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
- };
15
- })();
16
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
17
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18
- return new (P || (P = Promise))(function (resolve, reject) {
19
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
20
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
21
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
22
- step((generator = generator.apply(thisArg, _arguments || [])).next());
23
- });
24
- };
25
- var __generator = (this && this.__generator) || function (thisArg, body) {
26
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
27
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
28
- function verb(n) { return function (v) { return step([n, v]); }; }
29
- function step(op) {
30
- if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
32
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
- if (y = 0, t) op = [op[0] & 2, t.value];
34
- switch (op[0]) {
35
- case 0: case 1: t = op; break;
36
- case 4: _.label++; return { value: op[1], done: false };
37
- case 5: _.label++; y = op[1]; op = [0]; continue;
38
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
39
- default:
40
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
41
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
42
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
43
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
44
- if (t[2]) _.ops.pop();
45
- _.trys.pop(); continue;
46
- }
47
- op = body.call(thisArg, _);
48
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
49
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
50
- }
51
- };
52
- var __read = (this && this.__read) || function (o, n) {
53
- var m = typeof Symbol === "function" && o[Symbol.iterator];
54
- if (!m) return o;
55
- var i = m.call(o), r, ar = [], e;
56
- try {
57
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
58
- }
59
- catch (error) { e = { error: error }; }
60
- finally {
61
- try {
62
- if (r && !r.done && (m = i["return"])) m.call(i);
63
- }
64
- finally { if (e) throw e.error; }
65
- }
66
- return ar;
67
- };
68
- var __values = (this && this.__values) || function(o) {
69
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
70
- if (m) return m.call(o);
71
- if (o && typeof o.length === "number") return {
72
- next: function () {
73
- if (o && i >= o.length) o = void 0;
74
- return { value: o && o[i++], done: !o };
75
- }
76
- };
77
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
78
- };
79
- /* eslint-disable prefer-template */
80
- import Transport from "@ledgerhq/hw-transport";
81
- import { BleManager, ConnectionPriority, BleErrorCode, } from "react-native-ble-plx";
82
- import { getBluetoothServiceUuids, getInfosForServiceUuid, } from "@ledgerhq/devices";
83
- import { sendAPDU } from "@ledgerhq/devices/lib/ble/sendAPDU";
84
- import { receiveAPDU } from "@ledgerhq/devices/lib/ble/receiveAPDU";
85
- import { log } from "@ledgerhq/logs";
86
- import { defer, merge, from, of, throwError } from "rxjs";
87
- import { share, ignoreElements, first, map, tap, catchError, } from "rxjs/operators";
88
- import { CantOpenDevice, TransportError, DisconnectedDeviceDuringOperation, PairingFailed, } from "@ledgerhq/errors";
89
- import { monitorCharacteristic } from "./monitorCharacteristic";
90
- import { awaitsBleOn } from "./awaitsBleOn";
91
- import { decoratePromiseErrors, remapError } from "./remapErrors";
92
- var connectOptions = {
93
- requestMTU: 156,
94
- connectionPriority: 1
95
- };
96
- var transportsCache = {};
97
- var bleManager = new BleManager();
98
- var retrieveInfos = function (device) {
99
- if (!device || !device.serviceUUIDs)
100
- return;
101
- var _a = __read(device.serviceUUIDs, 1), serviceUUID = _a[0];
102
- if (!serviceUUID)
103
- return;
104
- var infos = getInfosForServiceUuid(serviceUUID);
105
- if (!infos)
106
- return;
107
- return infos;
108
- };
109
- var reconnectionConfig = {
110
- pairingThreshold: 1000,
111
- delayAfterFirstPairing: 4000
112
- };
113
- export function setReconnectionConfig(config) {
114
- reconnectionConfig = config;
115
- }
116
- var delay = function (ms) { return new Promise(function (success) { return setTimeout(success, ms); }); };
117
- function open(deviceOrId, needsReconnect) {
118
- 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 _c, _d, e_4, _e, e_5, _f;
121
- return __generator(this, function (_g) {
122
- switch (_g.label) {
123
- case 0:
124
- if (!(typeof deviceOrId === "string")) return [3 /*break*/, 13];
125
- if (transportsCache[deviceOrId]) {
126
- log("ble-verbose", "Transport in cache, using that.");
127
- return [2 /*return*/, transportsCache[deviceOrId]];
128
- }
129
- log("ble-verbose", "open(".concat(deviceOrId, ")"));
130
- return [4 /*yield*/, awaitsBleOn(bleManager)];
131
- case 1:
132
- _g.sent();
133
- if (!!device) return [3 /*break*/, 3];
134
- return [4 /*yield*/, bleManager.devices([deviceOrId])];
135
- case 2:
136
- devices = _g.sent();
137
- log("ble-verbose", "found ".concat(devices.length, " devices"));
138
- _c = __read(devices, 1), device = _c[0];
139
- _g.label = 3;
140
- case 3:
141
- if (!!device) return [3 /*break*/, 5];
142
- return [4 /*yield*/, bleManager.connectedDevices(getBluetoothServiceUuids())];
143
- case 4:
144
- connectedDevices = _g.sent();
145
- connectedDevicesFiltered = connectedDevices.filter(function (d) { return d.id === deviceOrId; });
146
- log("ble-verbose", "found ".concat(connectedDevicesFiltered.length, " connected devices"));
147
- _d = __read(connectedDevicesFiltered, 1), device = _d[0];
148
- _g.label = 5;
149
- case 5:
150
- if (!!device) return [3 /*break*/, 12];
151
- log("ble-verbose", "connectToDevice(".concat(deviceOrId, ")"));
152
- _g.label = 6;
153
- case 6:
154
- _g.trys.push([6, 8, , 12]);
155
- return [4 /*yield*/, bleManager.connectToDevice(deviceOrId, connectOptions)];
156
- case 7:
157
- device = _g.sent();
158
- return [3 /*break*/, 12];
159
- case 8:
160
- e_1 = _g.sent();
161
- if (!(e_1.errorCode === BleErrorCode.DeviceMTUChangeFailed)) return [3 /*break*/, 10];
162
- // eslint-disable-next-line require-atomic-updates
163
- connectOptions = {};
164
- return [4 /*yield*/, bleManager.connectToDevice(deviceOrId)];
165
- case 9:
166
- device = _g.sent();
167
- return [3 /*break*/, 11];
168
- case 10: throw e_1;
169
- case 11: return [3 /*break*/, 12];
170
- case 12:
171
- if (!device) {
172
- throw new CantOpenDevice();
173
- }
174
- return [3 /*break*/, 14];
175
- case 13:
176
- device = deviceOrId;
177
- _g.label = 14;
178
- case 14: return [4 /*yield*/, device.isConnected()];
179
- case 15:
180
- if (!!(_g.sent())) return [3 /*break*/, 22];
181
- log("ble-verbose", "not connected. connecting...");
182
- _g.label = 16;
183
- case 16:
184
- _g.trys.push([16, 18, , 22]);
185
- return [4 /*yield*/, device.connect(connectOptions)];
186
- case 17:
187
- _g.sent();
188
- return [3 /*break*/, 22];
189
- case 18:
190
- e_2 = _g.sent();
191
- if (!(e_2.errorCode === BleErrorCode.DeviceMTUChangeFailed)) return [3 /*break*/, 20];
192
- // eslint-disable-next-line require-atomic-updates
193
- connectOptions = {};
194
- return [4 /*yield*/, device.connect()];
195
- case 19:
196
- _g.sent();
197
- return [3 /*break*/, 21];
198
- case 20: throw e_2;
199
- case 21: return [3 /*break*/, 22];
200
- case 22: return [4 /*yield*/, device.discoverAllServicesAndCharacteristics()];
201
- case 23:
202
- _g.sent();
203
- res = retrieveInfos(device);
204
- if (!!res) return [3 /*break*/, 33];
205
- _g.label = 24;
206
- case 24:
207
- _g.trys.push([24, 31, 32, 33]);
208
- _a = __values(getBluetoothServiceUuids()), _b = _a.next();
209
- _g.label = 25;
210
- case 25:
211
- if (!!_b.done) return [3 /*break*/, 30];
212
- uuid = _b.value;
213
- _g.label = 26;
214
- case 26:
215
- _g.trys.push([26, 28, , 29]);
216
- return [4 /*yield*/, device.characteristicsForService(uuid)];
217
- case 27:
218
- characteristics = _g.sent();
219
- res = getInfosForServiceUuid(uuid);
220
- return [3 /*break*/, 30];
221
- case 28:
222
- e_3 = _g.sent();
223
- return [3 /*break*/, 29];
224
- case 29:
225
- _b = _a.next();
226
- return [3 /*break*/, 25];
227
- case 30: return [3 /*break*/, 33];
228
- case 31:
229
- e_4_1 = _g.sent();
230
- e_4 = { error: e_4_1 };
231
- return [3 /*break*/, 33];
232
- case 32:
233
- try {
234
- if (_b && !_b.done && (_e = _a["return"])) _e.call(_a);
235
- }
236
- finally { if (e_4) throw e_4.error; }
237
- return [7 /*endfinally*/];
238
- case 33:
239
- if (!res) {
240
- throw new TransportError("service not found", "BLEServiceNotFound");
241
- }
242
- deviceModel = res.deviceModel, serviceUuid = res.serviceUuid, writeUuid = res.writeUuid, writeCmdUuid = res.writeCmdUuid, notifyUuid = res.notifyUuid;
243
- if (!!characteristics) return [3 /*break*/, 35];
244
- return [4 /*yield*/, device.characteristicsForService(serviceUuid)];
245
- case 34:
246
- characteristics = _g.sent();
247
- _g.label = 35;
248
- case 35:
249
- if (!characteristics) {
250
- throw new TransportError("service not found", "BLEServiceNotFound");
251
- }
252
- try {
253
- for (characteristics_1 = __values(characteristics), characteristics_1_1 = characteristics_1.next(); !characteristics_1_1.done; characteristics_1_1 = characteristics_1.next()) {
254
- c = characteristics_1_1.value;
255
- if (c.uuid === writeUuid) {
256
- writeC = c;
257
- }
258
- else if (c.uuid === writeCmdUuid) {
259
- writeCmdC = c;
260
- }
261
- else if (c.uuid === notifyUuid) {
262
- notifyC = c;
263
- }
264
- }
265
- }
266
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
267
- finally {
268
- try {
269
- if (characteristics_1_1 && !characteristics_1_1.done && (_f = characteristics_1["return"])) _f.call(characteristics_1);
270
- }
271
- finally { if (e_5) throw e_5.error; }
272
- }
273
- if (!writeC) {
274
- throw new TransportError("write characteristic not found", "BLEChracteristicNotFound");
275
- }
276
- if (!notifyC) {
277
- throw new TransportError("notify characteristic not found", "BLEChracteristicNotFound");
278
- }
279
- if (!writeC.isWritableWithResponse) {
280
- throw new TransportError("write characteristic not writableWithResponse", "BLEChracteristicInvalid");
281
- }
282
- if (!notifyC.isNotifiable) {
283
- throw new TransportError("notify characteristic not notifiable", "BLEChracteristicInvalid");
284
- }
285
- if (writeCmdC) {
286
- if (!writeCmdC.isWritableWithoutResponse) {
287
- throw new TransportError("write cmd characteristic not writableWithoutResponse", "BLEChracteristicInvalid");
288
- }
289
- }
290
- log("ble-verbose", "device.mtu=".concat(device.mtu));
291
- notifyObservable = monitorCharacteristic(notifyC).pipe(catchError(function (e) {
292
- // LL-9033 fw 2.0.2 introduced this case, we silence the inner unhandled error.
293
- var msg = String(e);
294
- return msg.includes("notify change failed")
295
- ? of(new PairingFailed(msg))
296
- : throwError(e);
297
- }), tap(function (value) {
298
- if (value instanceof PairingFailed)
299
- return;
300
- log("ble-frame", "<= " + value.toString("hex"));
301
- }), share());
302
- notif = notifyObservable.subscribe();
303
- transport = new BluetoothTransport(device, writeC, writeCmdC, notifyObservable, deviceModel);
304
- onDisconnect = function (e) {
305
- transport.notYetDisconnected = false;
306
- notif.unsubscribe();
307
- disconnectedSub.remove();
308
- delete transportsCache[transport.id];
309
- log("ble-verbose", "BleTransport(".concat(transport.id, ") disconnected"));
310
- transport.emit("disconnect", e);
311
- };
312
- // eslint-disable-next-line require-atomic-updates
313
- transportsCache[transport.id] = transport;
314
- disconnectedSub = device.onDisconnected(function (e) {
315
- if (!transport.notYetDisconnected)
316
- return;
317
- onDisconnect(e);
318
- });
319
- beforeMTUTime = Date.now();
320
- _g.label = 36;
321
- case 36:
322
- _g.trys.push([36, , 38, 44]);
323
- return [4 /*yield*/, transport.inferMTU()];
324
- case 37:
325
- _g.sent();
326
- return [3 /*break*/, 44];
327
- case 38:
328
- afterMTUTime = Date.now();
329
- if (!reconnectionConfig) return [3 /*break*/, 42];
330
- // workaround for #279: we need to open() again if we come the first time here,
331
- // to make sure we do a disconnect() after the first pairing time
332
- // because of a firmware bug
333
- if (afterMTUTime - beforeMTUTime < reconnectionConfig.pairingThreshold) {
334
- needsReconnect = false; // (optim) there is likely no new pairing done because mtu answer was fast.
335
- }
336
- if (!needsReconnect) return [3 /*break*/, 41];
337
- // necessary time for the bonding workaround
338
- return [4 /*yield*/, BluetoothTransport.disconnect(transport.id)["catch"](function () { })];
339
- case 39:
340
- // necessary time for the bonding workaround
341
- _g.sent();
342
- return [4 /*yield*/, delay(reconnectionConfig.delayAfterFirstPairing)];
343
- case 40:
344
- _g.sent();
345
- _g.label = 41;
346
- case 41: return [3 /*break*/, 43];
347
- case 42:
348
- needsReconnect = false;
349
- _g.label = 43;
350
- case 43: return [7 /*endfinally*/];
351
- case 44:
352
- if (needsReconnect) {
353
- return [2 /*return*/, open(device, false)];
354
- }
355
- return [2 /*return*/, transport];
356
- }
357
- });
358
- });
359
- }
360
- /**
361
- * react-native bluetooth BLE implementation
362
- * @example
363
- * import BluetoothTransport from "@ledgerhq/react-native-hw-transport-ble";
364
- */
365
- var BluetoothTransport = /** @class */ (function (_super) {
366
- __extends(BluetoothTransport, _super);
367
- function BluetoothTransport(device, writeCharacteristic, writeCmdCharacteristic, notifyObservable, deviceModel) {
368
- var _this = _super.call(this) || this;
369
- _this.mtuSize = 20;
370
- _this.notYetDisconnected = true;
371
- /**
372
- * communicate with a BLE transport
373
- */
374
- _this.exchange = function (apdu) {
375
- return _this.exchangeAtomicImpl(function () { return __awaiter(_this, void 0, void 0, function () {
376
- var msgIn, data, msgOut, e_6;
377
- return __generator(this, function (_b) {
378
- switch (_b.label) {
379
- case 0:
380
- _b.trys.push([0, 2, , 5]);
381
- msgIn = apdu.toString("hex");
382
- log("apdu", "=> ".concat(msgIn));
383
- return [4 /*yield*/, merge(
384
- // $FlowFixMe
385
- this.notifyObservable.pipe(receiveAPDU), sendAPDU(this.write, apdu, this.mtuSize)).toPromise()];
386
- case 1:
387
- data = _b.sent();
388
- msgOut = data.toString("hex");
389
- log("apdu", "<= ".concat(msgOut));
390
- return [2 /*return*/, data];
391
- case 2:
392
- e_6 = _b.sent();
393
- log("ble-error", "exchange got " + String(e_6));
394
- if (!this.notYetDisconnected) return [3 /*break*/, 4];
395
- // in such case we will always disconnect because something is bad.
396
- return [4 /*yield*/, bleManager.cancelDeviceConnection(this.id)["catch"](function () { })];
397
- case 3:
398
- // in such case we will always disconnect because something is bad.
399
- _b.sent(); // but we ignore if disconnect worked.
400
- _b.label = 4;
401
- case 4: throw remapError(e_6);
402
- case 5: return [2 /*return*/];
403
- }
404
- });
405
- }); });
406
- };
407
- _this.write = function (buffer, txid) { return __awaiter(_this, void 0, void 0, function () {
408
- var e_7, e_8;
409
- return __generator(this, function (_b) {
410
- switch (_b.label) {
411
- case 0:
412
- log("ble-frame", "=> " + buffer.toString("hex"));
413
- if (!!this.writeCmdCharacteristic) return [3 /*break*/, 5];
414
- _b.label = 1;
415
- case 1:
416
- _b.trys.push([1, 3, , 4]);
417
- return [4 /*yield*/, this.writeCharacteristic.writeWithResponse(buffer.toString("base64"), txid)];
418
- case 2:
419
- _b.sent();
420
- return [3 /*break*/, 4];
421
- case 3:
422
- e_7 = _b.sent();
423
- throw new DisconnectedDeviceDuringOperation(e_7.message);
424
- case 4: return [3 /*break*/, 8];
425
- case 5:
426
- _b.trys.push([5, 7, , 8]);
427
- return [4 /*yield*/, this.writeCmdCharacteristic.writeWithoutResponse(buffer.toString("base64"), txid)];
428
- case 6:
429
- _b.sent();
430
- return [3 /*break*/, 8];
431
- case 7:
432
- e_8 = _b.sent();
433
- throw new DisconnectedDeviceDuringOperation(e_8.message);
434
- case 8: return [2 /*return*/];
435
- }
436
- });
437
- }); };
438
- _this.id = device.id;
439
- _this.device = device;
440
- _this.writeCharacteristic = writeCharacteristic;
441
- _this.writeCmdCharacteristic = writeCmdCharacteristic;
442
- _this.notifyObservable = notifyObservable;
443
- _this.deviceModel = deviceModel;
444
- log("ble-verbose", "BleTransport(".concat(String(_this.id), ") new instance"));
445
- return _this;
446
- }
447
- /**
448
- * TODO could add this concept in all transports
449
- * observe event with { available: bool, string } // available is generic, type is specific
450
- * an event is emit once and then listened
451
- */
452
- BluetoothTransport.observeState = function (observer) {
453
- var emitFromState = function (type) {
454
- observer.next({
455
- type: type,
456
- available: type === "PoweredOn"
457
- });
458
- };
459
- bleManager.onStateChange(emitFromState, true);
460
- return {
461
- unsubscribe: function () { }
462
- };
463
- };
464
- /**
465
- * Scan for bluetooth Ledger devices
466
- */
467
- BluetoothTransport.listen = function (observer) {
468
- var _this = this;
469
- log("ble-verbose", "listen...");
470
- var unsubscribed;
471
- // $FlowFixMe
472
- var stateSub = bleManager.onStateChange(function (state) { return __awaiter(_this, void 0, void 0, function () {
473
- var devices;
474
- return __generator(this, function (_b) {
475
- switch (_b.label) {
476
- case 0:
477
- if (!(state === "PoweredOn")) return [3 /*break*/, 3];
478
- stateSub.remove();
479
- return [4 /*yield*/, bleManager.connectedDevices(getBluetoothServiceUuids())];
480
- case 1:
481
- devices = _b.sent();
482
- if (unsubscribed)
483
- return [2 /*return*/];
484
- return [4 /*yield*/, Promise.all(devices.map(function (d) {
485
- return BluetoothTransport.disconnect(d.id)["catch"](function () { });
486
- }))];
487
- case 2:
488
- _b.sent();
489
- if (unsubscribed)
490
- return [2 /*return*/];
491
- bleManager.startDeviceScan(getBluetoothServiceUuids(), null, function (bleError, device) {
492
- if (bleError) {
493
- observer.error(bleError);
494
- unsubscribe();
495
- return;
496
- }
497
- var res = retrieveInfos(device);
498
- var deviceModel = res && res.deviceModel;
499
- observer.next({
500
- type: "add",
501
- descriptor: device,
502
- deviceModel: deviceModel
503
- });
504
- });
505
- _b.label = 3;
506
- case 3: return [2 /*return*/];
507
- }
508
- });
509
- }); }, true);
510
- var unsubscribe = function () {
511
- unsubscribed = true;
512
- bleManager.stopDeviceScan();
513
- stateSub.remove();
514
- log("ble-verbose", "done listening.");
515
- };
516
- return {
517
- unsubscribe: unsubscribe
518
- };
519
- };
520
- /**
521
- * Open a BLE transport
522
- * @param {*} deviceOrId
523
- */
524
- BluetoothTransport.open = function (deviceOrId) {
525
- return __awaiter(this, void 0, void 0, function () {
526
- return __generator(this, function (_b) {
527
- return [2 /*return*/, open(deviceOrId, true)];
528
- });
529
- });
530
- };
531
- // TODO we probably will do this at end of open
532
- BluetoothTransport.prototype.inferMTU = function () {
533
- return __awaiter(this, void 0, void 0, function () {
534
- var mtu, mtuSize;
535
- var _this = this;
536
- return __generator(this, function (_b) {
537
- switch (_b.label) {
538
- case 0:
539
- mtu = this.device.mtu;
540
- return [4 /*yield*/, this.exchangeAtomicImpl(function () { return __awaiter(_this, void 0, void 0, function () {
541
- var e_9;
542
- var _this = this;
543
- return __generator(this, function (_b) {
544
- switch (_b.label) {
545
- case 0:
546
- _b.trys.push([0, 2, , 4]);
547
- return [4 /*yield*/, merge(this.notifyObservable.pipe(tap(function (maybeError) {
548
- if (maybeError instanceof Error)
549
- throw maybeError;
550
- }), first(function (buffer) { return buffer.readUInt8(0) === 0x08; }), map(function (buffer) { return buffer.readUInt8(5); })), defer(function () { return from(_this.write(Buffer.from([0x08, 0, 0, 0, 0]))); }).pipe(ignoreElements())).toPromise()];
551
- case 1:
552
- mtu =
553
- (_b.sent()) + 3;
554
- return [3 /*break*/, 4];
555
- case 2:
556
- e_9 = _b.sent();
557
- log("ble-error", "inferMTU got " + String(e_9));
558
- return [4 /*yield*/, bleManager.cancelDeviceConnection(this.id)["catch"](function () { })];
559
- case 3:
560
- _b.sent(); // but we ignore if disconnect worked.
561
- throw remapError(e_9);
562
- case 4: return [2 /*return*/];
563
- }
564
- });
565
- }); })];
566
- case 1:
567
- _b.sent();
568
- if (mtu > 23) {
569
- mtuSize = mtu - 3;
570
- log("ble-verbose", "BleTransport(".concat(String(this.id), ") mtu set to ").concat(String(mtuSize)));
571
- this.mtuSize = mtuSize;
572
- }
573
- return [2 /*return*/, this.mtuSize];
574
- }
575
- });
576
- });
577
- };
578
- BluetoothTransport.prototype.requestConnectionPriority = function (connectionPriority) {
579
- return __awaiter(this, void 0, void 0, function () {
580
- return __generator(this, function (_b) {
581
- switch (_b.label) {
582
- case 0: return [4 /*yield*/, decoratePromiseErrors(this.device.requestConnectionPriority(ConnectionPriority[connectionPriority]))];
583
- case 1:
584
- _b.sent();
585
- return [2 /*return*/];
586
- }
587
- });
588
- });
589
- };
590
- BluetoothTransport.prototype.setScrambleKey = function () { };
591
- BluetoothTransport.prototype.close = function () {
592
- return __awaiter(this, void 0, void 0, function () {
593
- return __generator(this, function (_b) {
594
- switch (_b.label) {
595
- case 0:
596
- if (!this.exchangeBusyPromise) return [3 /*break*/, 2];
597
- return [4 /*yield*/, this.exchangeBusyPromise];
598
- case 1:
599
- _b.sent();
600
- _b.label = 2;
601
- case 2: return [2 /*return*/];
602
- }
603
- });
604
- });
605
- };
606
- var _a;
607
- _a = BluetoothTransport;
608
- /**
609
- *
610
- */
611
- BluetoothTransport.isSupported = function () {
612
- return Promise.resolve(typeof BleManager === "function");
613
- };
614
- /**
615
- *
616
- */
617
- BluetoothTransport.setLogLevel = function (level) {
618
- bleManager.setLogLevel(level);
619
- };
620
- BluetoothTransport.list = function () {
621
- throw new Error("not implemented");
622
- };
623
- /**
624
- * Globally disconnect a BLE device by its ID
625
- */
626
- BluetoothTransport.disconnect = function (id) { return __awaiter(void 0, void 0, void 0, function () {
627
- return __generator(_a, function (_b) {
628
- switch (_b.label) {
629
- case 0:
630
- log("ble-verbose", "user disconnect(".concat(id, ")"));
631
- return [4 /*yield*/, bleManager.cancelDeviceConnection(id)];
632
- case 1:
633
- _b.sent();
634
- return [2 /*return*/];
635
- }
636
- });
637
- }); };
638
- return BluetoothTransport;
639
- }(Transport));
640
- export default BluetoothTransport;
641
- //# sourceMappingURL=BleTransport.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BleTransport.js","sourceRoot":"","sources":["../src/BleTransport.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { BleManager } from "./types";
2
- export declare const awaitsBleOn: (bleManager: BleManager, ms?: number) => Promise<void>;
3
- //# sourceMappingURL=awaitsBleOn.d.ts.map