@ledgerhq/hw-transport-node-hid-singleton 6.27.4-nightly.0 → 6.28.0-nightly.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.
@@ -1,5 +1,5 @@
1
- @ledgerhq/hw-transport-node-hid-singleton:build: cache hit, replaying output ed09168d94b71377
1
+ @ledgerhq/hw-transport-node-hid-singleton:build: cache hit, replaying output ae9eeeabbccf7704
2
2
  @ledgerhq/hw-transport-node-hid-singleton:build:
3
- @ledgerhq/hw-transport-node-hid-singleton:build: > @ledgerhq/hw-transport-node-hid-singleton@6.27.3 build /home/runner/work/ledger-live/ledger-live/libs/ledgerjs/packages/hw-transport-node-hid-singleton
3
+ @ledgerhq/hw-transport-node-hid-singleton:build: > @ledgerhq/hw-transport-node-hid-singleton@6.27.4 build /home/runner/work/ledger-live/ledger-live/libs/ledgerjs/packages/hw-transport-node-hid-singleton
4
4
  @ledgerhq/hw-transport-node-hid-singleton:build: > tsc && tsc -m ES6 --outDir lib-es
5
5
  @ledgerhq/hw-transport-node-hid-singleton:build:
package/CHANGELOG.md CHANGED
@@ -1,12 +1,34 @@
1
1
  # @ledgerhq/hw-transport-node-hid-singleton
2
2
 
3
- ## 6.27.4-nightly.0
3
+ ## 6.28.0-nightly.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#903](https://github.com/LedgerHQ/ledger-live/pull/903) [`41d82e7bb3`](https://github.com/LedgerHQ/ledger-live/commit/41d82e7bb3a30fb4a82c45ece43d13242342f91c) Thanks [@juan-cortes](https://github.com/juan-cortes)! - Replaced 'usb-detection' with 'node-usb' in singleton transport
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [[`ae5e33e15e`](https://github.com/LedgerHQ/ledger-live/commit/ae5e33e15e8a107d0ba8a3688a63eda2c0d43ce7)]:
12
+ - @ledgerhq/errors@6.10.2-nightly.0
13
+ - @ledgerhq/devices@7.0.1-nightly.0
14
+ - @ledgerhq/hw-transport@6.27.4-nightly.0
15
+ - @ledgerhq/hw-transport-node-hid-noevents@6.27.4-nightly.0
16
+
17
+ ## 6.27.4
4
18
 
5
19
  ### Patch Changes
6
20
 
7
21
  - Updated dependencies [[`ecfdd1ebd8`](https://github.com/LedgerHQ/ledger-live/commit/ecfdd1ebd8cc7c4b5bc6315316ce662bb6241311)]:
8
- - @ledgerhq/hw-transport@6.27.3-nightly.0
9
- - @ledgerhq/hw-transport-node-hid-noevents@6.27.3-nightly.0
22
+ - @ledgerhq/hw-transport@6.27.3
23
+ - @ledgerhq/hw-transport-node-hid-noevents@6.27.3
24
+
25
+ ## 6.27.4-next.0
26
+
27
+ ### Patch Changes
28
+
29
+ - Updated dependencies [[`ecfdd1ebd`](https://github.com/LedgerHQ/ledger-live/commit/ecfdd1ebd8cc7c4b5bc6315316ce662bb6241311)]:
30
+ - @ledgerhq/hw-transport@6.27.3-next.0
31
+ - @ledgerhq/hw-transport-node-hid-noevents@6.27.3-next.0
10
32
 
11
33
  ## 6.27.3
12
34
 
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  Allows to communicate with Ledger Hardware Wallets.
9
9
 
10
- **\[Node]**/Electron **(HID)** – uses `node-hid` and `usb-detection`. Keep transport opened and re-use it as a singleton, one device at a time on a computer but more robust implementation.
10
+ **\[Node]**/Electron **(HID)** – uses `node-hid` and `node-usb`. Keep transport opened and re-use it as a singleton, one device at a time on a computer but more robust implementation.
11
11
 
12
12
  ***
13
13
 
@@ -1,7 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import TransportNodeHidNoEvents from "@ledgerhq/hw-transport-node-hid-noevents";
3
3
  import type { Observer, DescriptorEvent, Subscription } from "@ledgerhq/hw-transport";
4
- export * as usbDetect from "usb-detection";
5
4
  /**
6
5
  * node-hid Transport implementation
7
6
  * @example
@@ -1 +1 @@
1
- {"version":3,"file":"TransportNodeHid.d.ts","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":";AACA,OAAO,wBAEN,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACb,MAAM,wBAAwB,CAAC;AAMhC,OAAO,KAAK,SAAS,MAAM,eAAe,CAAC;AAoB3C;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,wBAAwB;IAC7E,qBAAqB,UAAS;IAC9B;;OAEG;IACH,MAAM,CAAC,WAAW,yBAAwC;IAE1D;;OAEG;IACH,MAAM,CAAC,IAAI,qBAAiC;IAE5C;OACG;IACH,MAAM,CAAC,MAAM,aAAc,SAAS,gBAAgB,GAAG,CAAC,CAAC,KAAG,YAAY,CAqDtE;IAEF;;OAEG;WACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5C;;OAEG;WACU,UAAU;IASvB;;OAEG;IACH,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAqCjD,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI5C;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAMvB"}
1
+ {"version":3,"file":"TransportNodeHid.d.ts","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":";AACA,OAAO,wBAEN,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACb,MAAM,wBAAwB,CAAC;AAwBhC;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,wBAAwB;IAC7E,qBAAqB,UAAS;IAC9B;;OAEG;IACH,MAAM,CAAC,WAAW,yBAAwC;IAE1D;;OAEG;IACH,MAAM,CAAC,IAAI,qBAAiC;IAE5C;OACG;IACH,MAAM,CAAC,MAAM,aAAc,SAAS,gBAAgB,GAAG,CAAC,CAAC,KAAG,YAAY,CAqDtE;IAEF;;OAEG;WACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5C;;OAEG;WACU,UAAU;IASvB;;OAEG;IACH,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAqCjD,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI5C;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAMvB"}
@@ -88,14 +88,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
88
88
  return (mod && mod.__esModule) ? mod : { "default": mod };
89
89
  };
90
90
  exports.__esModule = true;
91
- exports.usbDetect = void 0;
92
91
  var node_hid_1 = __importDefault(require("node-hid"));
93
92
  var hw_transport_node_hid_noevents_1 = __importStar(require("@ledgerhq/hw-transport-node-hid-noevents"));
94
93
  var logs_1 = require("@ledgerhq/logs");
95
94
  var devices_1 = require("@ledgerhq/devices");
96
95
  var errors_1 = require("@ledgerhq/errors");
97
96
  var listenDevices_1 = require("./listenDevices");
98
- exports.usbDetect = __importStar(require("usb-detection"));
99
97
  var transportInstance;
100
98
  var DISCONNECT_TIMEOUT = 5000;
101
99
  var disconnectTimeout;
@@ -1 +1 @@
1
- {"version":3,"file":"TransportNodeHid.js","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransportNodeHid.js","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export declare type Device = {
4
4
  productId: number;
5
5
  deviceName: string;
6
6
  manufacturer: string;
7
- serialNumber: string;
7
+ serialNumber: number;
8
8
  deviceAddress: number;
9
9
  };
10
10
  export declare const setUsbDebounce: (n: number) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"listenDevices.d.ts","sourceRoot":"","sources":["../src/listenDevices.ts"],"names":[],"mappings":"AAGA,oBAAY,MAAM,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAMF,eAAO,MAAM,cAAc,MAAO,MAAM,SAEvC,CAAC;AAmBF,eAAO,MAAM,aAAa,iBACV,MAAM,KAAK,IAAI,mBACZ,MAAM,KAAK,IAAI,eAyCjC,CAAC"}
1
+ {"version":3,"file":"listenDevices.d.ts","sourceRoot":"","sources":["../src/listenDevices.ts"],"names":[],"mappings":"AAIA,oBAAY,MAAM,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAUF,eAAO,MAAM,cAAc,MAAO,MAAM,SAEvC,CAAC;AAqBF,eAAO,MAAM,aAAa,iBACV,MAAM,KAAK,IAAI,mBACZ,MAAM,KAAK,IAAI,eAqCjC,CAAC"}
@@ -1,73 +1,68 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  exports.__esModule = true;
6
3
  exports.listenDevices = exports.setUsbDebounce = void 0;
7
- var usb_detection_1 = __importDefault(require("usb-detection"));
4
+ var usb_1 = require("usb");
8
5
  var devices_1 = require("@ledgerhq/devices");
9
6
  var logs_1 = require("@ledgerhq/logs");
10
7
  var deviceToLog = function (_a) {
11
- var productId = _a.productId, locationId = _a.locationId, deviceAddress = _a.deviceAddress;
12
- return "productId=".concat(productId, " locationId=").concat(locationId, " deviceAddress=").concat(deviceAddress);
8
+ var idProduct = _a.deviceDescriptor.idProduct, busNumber = _a.busNumber, deviceAddress = _a.deviceAddress;
9
+ return "productId=".concat(idProduct, " busNumber=").concat(busNumber, " deviceAddress=").concat(deviceAddress);
13
10
  };
14
11
  var usbDebounce = 1000;
15
12
  var setUsbDebounce = function (n) {
16
13
  usbDebounce = n;
17
14
  };
18
15
  exports.setUsbDebounce = setUsbDebounce;
19
- var monitoring = false;
20
- var monitor = function () {
21
- if (!monitoring) {
22
- monitoring = true;
23
- usb_detection_1["default"].startMonitoring();
24
- }
25
- return function () { };
16
+ var mapRawDevice = function (_a) {
17
+ var locationId = _a.busNumber, deviceAddress = _a.deviceAddress, _b = _a.deviceDescriptor, vendorId = _b.idVendor, productId = _b.idProduct, serialNumber = _b.iSerialNumber;
18
+ return ({
19
+ locationId: locationId,
20
+ vendorId: vendorId,
21
+ productId: productId,
22
+ deviceName: "",
23
+ manufacturer: "",
24
+ serialNumber: serialNumber,
25
+ deviceAddress: deviceAddress
26
+ });
26
27
  };
27
- // No better way for now. see https://github.com/LedgerHQ/ledgerjs/issues/434
28
- process.on("exit", function () {
29
- if (monitoring) {
30
- // redeem the monitoring so the process can be terminated.
31
- usb_detection_1["default"].stopMonitoring();
32
- }
33
- });
28
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
34
29
  var listenDevices = function (onAdd, onRemove) {
35
- var unmonitor = monitor();
36
- var addEvent = "add:" + devices_1.ledgerUSBVendorId;
37
- var removeEvent = "remove:" + devices_1.ledgerUSBVendorId;
38
30
  var timeout;
39
31
  var add = function (device) {
32
+ if (device.deviceDescriptor.idVendor !== devices_1.ledgerUSBVendorId)
33
+ return;
40
34
  (0, logs_1.log)("usb-detection", "add: " + deviceToLog(device));
41
35
  if (!timeout) {
42
36
  // a time is needed for the device to actually be connectable over HID..
43
37
  // we also take this time to not emit the device yet and potentially cancel it if a remove happens.
44
38
  timeout = setTimeout(function () {
45
- onAdd(device);
39
+ onAdd(mapRawDevice(device));
46
40
  timeout = null;
47
41
  }, usbDebounce);
48
42
  }
49
43
  };
50
44
  var remove = function (device) {
45
+ if (device.deviceDescriptor.idVendor !== devices_1.ledgerUSBVendorId)
46
+ return;
51
47
  (0, logs_1.log)("usb-detection", "remove: " + deviceToLog(device));
52
48
  if (timeout) {
53
49
  clearTimeout(timeout);
54
50
  timeout = null;
55
51
  }
56
52
  else {
57
- onRemove(device);
53
+ onRemove(mapRawDevice(device));
58
54
  }
59
55
  };
60
- usb_detection_1["default"].on(addEvent, add);
61
- usb_detection_1["default"].on(removeEvent, remove);
56
+ usb_1.usb.on("attach", add);
57
+ usb_1.usb.on("detach", remove);
62
58
  return function () {
63
59
  if (timeout)
64
60
  clearTimeout(timeout);
65
- // @ts-expect-error not all EventEmitter methods are covered in its definition file
66
- usb_detection_1["default"].off(addEvent, add);
67
- // @ts-expect-error not all EventEmitter methods are covered in its definition file
68
- usb_detection_1["default"].off(removeEvent, remove);
69
- unmonitor();
61
+ usb_1.usb.unrefHotplugEvents();
70
62
  };
71
63
  };
72
64
  exports.listenDevices = listenDevices;
65
+ process.on("exit", function () {
66
+ usb_1.usb.unrefHotplugEvents();
67
+ });
73
68
  //# sourceMappingURL=listenDevices.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"listenDevices.js","sourceRoot":"","sources":["../src/listenDevices.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAsC;AACtC,6CAAsD;AACtD,uCAAqC;AAWrC,IAAM,WAAW,GAAG,UAAC,EAAwC;QAAtC,SAAS,eAAA,EAAE,UAAU,gBAAA,EAAE,aAAa,mBAAA;IACzD,OAAA,oBAAa,SAAS,yBAAe,UAAU,4BAAkB,aAAa,CAAE;AAAhF,CAAgF,CAAC;AAEnF,IAAI,WAAW,GAAG,IAAI,CAAC;AAChB,IAAM,cAAc,GAAG,UAAC,CAAS;IACtC,WAAW,GAAG,CAAC,CAAC;AAClB,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AACF,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,IAAM,OAAO,GAAG;IACd,IAAI,CAAC,UAAU,EAAE;QACf,UAAU,GAAG,IAAI,CAAC;QAClB,0BAAS,CAAC,eAAe,EAAE,CAAC;KAC7B;IAED,OAAO,cAAO,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,6EAA6E;AAC7E,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;IACjB,IAAI,UAAU,EAAE;QACd,0DAA0D;QAC1D,0BAAS,CAAC,cAAc,EAAE,CAAC;KAC5B;AACH,CAAC,CAAC,CAAC;AACI,IAAM,aAAa,GAAG,UAC3B,KAA6B,EAC7B,QAAgC;IAEhC,IAAM,SAAS,GAAG,OAAO,EAAE,CAAC;IAC5B,IAAM,QAAQ,GAAG,MAAM,GAAG,2BAAiB,CAAC;IAC5C,IAAM,WAAW,GAAG,SAAS,GAAG,2BAAiB,CAAC;IAClD,IAAI,OAAO,CAAC;IAEZ,IAAM,GAAG,GAAG,UAAC,MAAM;QACjB,IAAA,UAAG,EAAC,eAAe,EAAE,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAEpD,IAAI,CAAC,OAAO,EAAE;YACZ,wEAAwE;YACxE,mGAAmG;YACnG,OAAO,GAAG,UAAU,CAAC;gBACnB,KAAK,CAAC,MAAM,CAAC,CAAC;gBACd,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC,EAAE,WAAW,CAAC,CAAC;SACjB;IACH,CAAC,CAAC;IAEF,IAAM,MAAM,GAAG,UAAC,MAAM;QACpB,IAAA,UAAG,EAAC,eAAe,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAEvD,IAAI,OAAO,EAAE;YACX,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,GAAG,IAAI,CAAC;SAChB;aAAM;YACL,QAAQ,CAAC,MAAM,CAAC,CAAC;SAClB;IACH,CAAC,CAAC;IAEF,0BAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC5B,0BAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO;QACL,IAAI,OAAO;YAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,mFAAmF;QACnF,0BAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC7B,mFAAmF;QACnF,0BAAS,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACnC,SAAS,EAAE,CAAC;IACd,CAAC,CAAC;AACJ,CAAC,CAAC;AA3CW,QAAA,aAAa,iBA2CxB"}
1
+ {"version":3,"file":"listenDevices.js","sourceRoot":"","sources":["../src/listenDevices.ts"],"names":[],"mappings":";;;AAAA,2BAA0B;AAC1B,6CAAsD;AACtD,uCAAqC;AAYrC,IAAM,WAAW,GAAG,UAAC,EAIpB;QAHqB,SAAS,gCAAA,EAC7B,SAAS,eAAA,EACT,aAAa,mBAAA;IAEb,OAAA,oBAAa,SAAS,wBAAc,SAAS,4BAAkB,aAAa,CAAE;AAA9E,CAA8E,CAAC;AAEjF,IAAI,WAAW,GAAG,IAAI,CAAC;AAChB,IAAM,cAAc,GAAG,UAAC,CAAS;IACtC,WAAW,GAAG,CAAC,CAAC;AAClB,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEF,IAAM,YAAY,GAAG,UAAC,EAQT;QAPA,UAAU,eAAA,EACrB,aAAa,mBAAA,EACb,wBAIC,EAHW,QAAQ,cAAA,EACP,SAAS,eAAA,EACL,YAAY,mBAAA;IAEL,OAAA,CAAC;QACzB,UAAU,YAAA;QACV,QAAQ,UAAA;QACR,SAAS,WAAA;QACT,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,EAAE;QAChB,YAAY,cAAA;QACZ,aAAa,eAAA;KACd,CAAC;AARwB,CAQxB,CAAC;AAEH,6EAA6E;AACtE,IAAM,aAAa,GAAG,UAC3B,KAA6B,EAC7B,QAAgC;IAEhC,IAAI,OAAO,CAAC;IAEZ,IAAM,GAAG,GAAG,UAAC,MAAM;QACjB,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,KAAK,2BAAiB;YAAE,OAAO;QACnE,IAAA,UAAG,EAAC,eAAe,EAAE,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAEpD,IAAI,CAAC,OAAO,EAAE;YACZ,wEAAwE;YACxE,mGAAmG;YACnG,OAAO,GAAG,UAAU,CAAC;gBACnB,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5B,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC,EAAE,WAAW,CAAC,CAAC;SACjB;IACH,CAAC,CAAC;IAEF,IAAM,MAAM,GAAG,UAAC,MAAM;QACpB,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,KAAK,2BAAiB;YAAE,OAAO;QACnE,IAAA,UAAG,EAAC,eAAe,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAEvD,IAAI,OAAO,EAAE;YACX,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,GAAG,IAAI,CAAC;SAChB;aAAM;YACL,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;SAChC;IACH,CAAC,CAAC;IAEF,SAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtB,SAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAEzB,OAAO;QACL,IAAI,OAAO;YAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,SAAG,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC,CAAC;AACJ,CAAC,CAAC;AAvCW,QAAA,aAAa,iBAuCxB;AAEF,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;IACjB,SAAG,CAAC,kBAAkB,EAAE,CAAC;AAC3B,CAAC,CAAC,CAAC"}
@@ -1,7 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import TransportNodeHidNoEvents from "@ledgerhq/hw-transport-node-hid-noevents";
3
3
  import type { Observer, DescriptorEvent, Subscription } from "@ledgerhq/hw-transport";
4
- export * as usbDetect from "usb-detection";
5
4
  /**
6
5
  * node-hid Transport implementation
7
6
  * @example
@@ -1 +1 @@
1
- {"version":3,"file":"TransportNodeHid.d.ts","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":";AACA,OAAO,wBAEN,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACb,MAAM,wBAAwB,CAAC;AAMhC,OAAO,KAAK,SAAS,MAAM,eAAe,CAAC;AAoB3C;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,wBAAwB;IAC7E,qBAAqB,UAAS;IAC9B;;OAEG;IACH,MAAM,CAAC,WAAW,yBAAwC;IAE1D;;OAEG;IACH,MAAM,CAAC,IAAI,qBAAiC;IAE5C;OACG;IACH,MAAM,CAAC,MAAM,aAAc,SAAS,gBAAgB,GAAG,CAAC,CAAC,KAAG,YAAY,CAqDtE;IAEF;;OAEG;WACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5C;;OAEG;WACU,UAAU;IASvB;;OAEG;IACH,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAqCjD,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI5C;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAMvB"}
1
+ {"version":3,"file":"TransportNodeHid.d.ts","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":";AACA,OAAO,wBAEN,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACb,MAAM,wBAAwB,CAAC;AAwBhC;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,wBAAwB;IAC7E,qBAAqB,UAAS;IAC9B;;OAEG;IACH,MAAM,CAAC,WAAW,yBAAwC;IAE1D;;OAEG;IACH,MAAM,CAAC,IAAI,qBAAiC;IAE5C;OACG;IACH,MAAM,CAAC,MAAM,aAAc,SAAS,gBAAgB,GAAG,CAAC,CAAC,KAAG,YAAY,CAqDtE;IAEF;;OAEG;WACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5C;;OAEG;WACU,UAAU;IASvB;;OAEG;IACH,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAqCjD,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI5C;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAMvB"}
@@ -66,8 +66,6 @@ import { log } from "@ledgerhq/logs";
66
66
  import { identifyUSBProductId } from "@ledgerhq/devices";
67
67
  import { CantOpenDevice } from "@ledgerhq/errors";
68
68
  import { listenDevices } from "./listenDevices";
69
- import * as usbDetect_1 from "usb-detection";
70
- export { usbDetect_1 as usbDetect };
71
69
  var transportInstance;
72
70
  var DISCONNECT_TIMEOUT = 5000;
73
71
  var disconnectTimeout;
@@ -1 +1 @@
1
- {"version":3,"file":"TransportNodeHid.js","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransportNodeHid.js","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export declare type Device = {
4
4
  productId: number;
5
5
  deviceName: string;
6
6
  manufacturer: string;
7
- serialNumber: string;
7
+ serialNumber: number;
8
8
  deviceAddress: number;
9
9
  };
10
10
  export declare const setUsbDebounce: (n: number) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"listenDevices.d.ts","sourceRoot":"","sources":["../src/listenDevices.ts"],"names":[],"mappings":"AAGA,oBAAY,MAAM,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAMF,eAAO,MAAM,cAAc,MAAO,MAAM,SAEvC,CAAC;AAmBF,eAAO,MAAM,aAAa,iBACV,MAAM,KAAK,IAAI,mBACZ,MAAM,KAAK,IAAI,eAyCjC,CAAC"}
1
+ {"version":3,"file":"listenDevices.d.ts","sourceRoot":"","sources":["../src/listenDevices.ts"],"names":[],"mappings":"AAIA,oBAAY,MAAM,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAUF,eAAO,MAAM,cAAc,MAAO,MAAM,SAEvC,CAAC;AAqBF,eAAO,MAAM,aAAa,iBACV,MAAM,KAAK,IAAI,mBACZ,MAAM,KAAK,IAAI,eAqCjC,CAAC"}
@@ -1,65 +1,63 @@
1
- import usbDetect from "usb-detection";
1
+ import { usb } from "usb";
2
2
  import { ledgerUSBVendorId } from "@ledgerhq/devices";
3
3
  import { log } from "@ledgerhq/logs";
4
4
  var deviceToLog = function (_a) {
5
- var productId = _a.productId, locationId = _a.locationId, deviceAddress = _a.deviceAddress;
6
- return "productId=".concat(productId, " locationId=").concat(locationId, " deviceAddress=").concat(deviceAddress);
5
+ var idProduct = _a.deviceDescriptor.idProduct, busNumber = _a.busNumber, deviceAddress = _a.deviceAddress;
6
+ return "productId=".concat(idProduct, " busNumber=").concat(busNumber, " deviceAddress=").concat(deviceAddress);
7
7
  };
8
8
  var usbDebounce = 1000;
9
9
  export var setUsbDebounce = function (n) {
10
10
  usbDebounce = n;
11
11
  };
12
- var monitoring = false;
13
- var monitor = function () {
14
- if (!monitoring) {
15
- monitoring = true;
16
- usbDetect.startMonitoring();
17
- }
18
- return function () { };
12
+ var mapRawDevice = function (_a) {
13
+ var locationId = _a.busNumber, deviceAddress = _a.deviceAddress, _b = _a.deviceDescriptor, vendorId = _b.idVendor, productId = _b.idProduct, serialNumber = _b.iSerialNumber;
14
+ return ({
15
+ locationId: locationId,
16
+ vendorId: vendorId,
17
+ productId: productId,
18
+ deviceName: "",
19
+ manufacturer: "",
20
+ serialNumber: serialNumber,
21
+ deviceAddress: deviceAddress
22
+ });
19
23
  };
20
- // No better way for now. see https://github.com/LedgerHQ/ledgerjs/issues/434
21
- process.on("exit", function () {
22
- if (monitoring) {
23
- // redeem the monitoring so the process can be terminated.
24
- usbDetect.stopMonitoring();
25
- }
26
- });
24
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
27
25
  export var listenDevices = function (onAdd, onRemove) {
28
- var unmonitor = monitor();
29
- var addEvent = "add:" + ledgerUSBVendorId;
30
- var removeEvent = "remove:" + ledgerUSBVendorId;
31
26
  var timeout;
32
27
  var add = function (device) {
28
+ if (device.deviceDescriptor.idVendor !== ledgerUSBVendorId)
29
+ return;
33
30
  log("usb-detection", "add: " + deviceToLog(device));
34
31
  if (!timeout) {
35
32
  // a time is needed for the device to actually be connectable over HID..
36
33
  // we also take this time to not emit the device yet and potentially cancel it if a remove happens.
37
34
  timeout = setTimeout(function () {
38
- onAdd(device);
35
+ onAdd(mapRawDevice(device));
39
36
  timeout = null;
40
37
  }, usbDebounce);
41
38
  }
42
39
  };
43
40
  var remove = function (device) {
41
+ if (device.deviceDescriptor.idVendor !== ledgerUSBVendorId)
42
+ return;
44
43
  log("usb-detection", "remove: " + deviceToLog(device));
45
44
  if (timeout) {
46
45
  clearTimeout(timeout);
47
46
  timeout = null;
48
47
  }
49
48
  else {
50
- onRemove(device);
49
+ onRemove(mapRawDevice(device));
51
50
  }
52
51
  };
53
- usbDetect.on(addEvent, add);
54
- usbDetect.on(removeEvent, remove);
52
+ usb.on("attach", add);
53
+ usb.on("detach", remove);
55
54
  return function () {
56
55
  if (timeout)
57
56
  clearTimeout(timeout);
58
- // @ts-expect-error not all EventEmitter methods are covered in its definition file
59
- usbDetect.off(addEvent, add);
60
- // @ts-expect-error not all EventEmitter methods are covered in its definition file
61
- usbDetect.off(removeEvent, remove);
62
- unmonitor();
57
+ usb.unrefHotplugEvents();
63
58
  };
64
59
  };
60
+ process.on("exit", function () {
61
+ usb.unrefHotplugEvents();
62
+ });
65
63
  //# sourceMappingURL=listenDevices.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"listenDevices.js","sourceRoot":"","sources":["../src/listenDevices.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAWrC,IAAM,WAAW,GAAG,UAAC,EAAwC;QAAtC,SAAS,eAAA,EAAE,UAAU,gBAAA,EAAE,aAAa,mBAAA;IACzD,OAAA,oBAAa,SAAS,yBAAe,UAAU,4BAAkB,aAAa,CAAE;AAAhF,CAAgF,CAAC;AAEnF,IAAI,WAAW,GAAG,IAAI,CAAC;AACvB,MAAM,CAAC,IAAM,cAAc,GAAG,UAAC,CAAS;IACtC,WAAW,GAAG,CAAC,CAAC;AAClB,CAAC,CAAC;AACF,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,IAAM,OAAO,GAAG;IACd,IAAI,CAAC,UAAU,EAAE;QACf,UAAU,GAAG,IAAI,CAAC;QAClB,SAAS,CAAC,eAAe,EAAE,CAAC;KAC7B;IAED,OAAO,cAAO,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,6EAA6E;AAC7E,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;IACjB,IAAI,UAAU,EAAE;QACd,0DAA0D;QAC1D,SAAS,CAAC,cAAc,EAAE,CAAC;KAC5B;AACH,CAAC,CAAC,CAAC;AACH,MAAM,CAAC,IAAM,aAAa,GAAG,UAC3B,KAA6B,EAC7B,QAAgC;IAEhC,IAAM,SAAS,GAAG,OAAO,EAAE,CAAC;IAC5B,IAAM,QAAQ,GAAG,MAAM,GAAG,iBAAiB,CAAC;IAC5C,IAAM,WAAW,GAAG,SAAS,GAAG,iBAAiB,CAAC;IAClD,IAAI,OAAO,CAAC;IAEZ,IAAM,GAAG,GAAG,UAAC,MAAM;QACjB,GAAG,CAAC,eAAe,EAAE,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAEpD,IAAI,CAAC,OAAO,EAAE;YACZ,wEAAwE;YACxE,mGAAmG;YACnG,OAAO,GAAG,UAAU,CAAC;gBACnB,KAAK,CAAC,MAAM,CAAC,CAAC;gBACd,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC,EAAE,WAAW,CAAC,CAAC;SACjB;IACH,CAAC,CAAC;IAEF,IAAM,MAAM,GAAG,UAAC,MAAM;QACpB,GAAG,CAAC,eAAe,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAEvD,IAAI,OAAO,EAAE;YACX,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,GAAG,IAAI,CAAC;SAChB;aAAM;YACL,QAAQ,CAAC,MAAM,CAAC,CAAC;SAClB;IACH,CAAC,CAAC;IAEF,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC5B,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO;QACL,IAAI,OAAO;YAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,mFAAmF;QACnF,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC7B,mFAAmF;QACnF,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACnC,SAAS,EAAE,CAAC;IACd,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"listenDevices.js","sourceRoot":"","sources":["../src/listenDevices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAYrC,IAAM,WAAW,GAAG,UAAC,EAIpB;QAHqB,SAAS,gCAAA,EAC7B,SAAS,eAAA,EACT,aAAa,mBAAA;IAEb,OAAA,oBAAa,SAAS,wBAAc,SAAS,4BAAkB,aAAa,CAAE;AAA9E,CAA8E,CAAC;AAEjF,IAAI,WAAW,GAAG,IAAI,CAAC;AACvB,MAAM,CAAC,IAAM,cAAc,GAAG,UAAC,CAAS;IACtC,WAAW,GAAG,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,IAAM,YAAY,GAAG,UAAC,EAQT;QAPA,UAAU,eAAA,EACrB,aAAa,mBAAA,EACb,wBAIC,EAHW,QAAQ,cAAA,EACP,SAAS,eAAA,EACL,YAAY,mBAAA;IAEL,OAAA,CAAC;QACzB,UAAU,YAAA;QACV,QAAQ,UAAA;QACR,SAAS,WAAA;QACT,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,EAAE;QAChB,YAAY,cAAA;QACZ,aAAa,eAAA;KACd,CAAC;AARwB,CAQxB,CAAC;AAEH,6EAA6E;AAC7E,MAAM,CAAC,IAAM,aAAa,GAAG,UAC3B,KAA6B,EAC7B,QAAgC;IAEhC,IAAI,OAAO,CAAC;IAEZ,IAAM,GAAG,GAAG,UAAC,MAAM;QACjB,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,KAAK,iBAAiB;YAAE,OAAO;QACnE,GAAG,CAAC,eAAe,EAAE,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAEpD,IAAI,CAAC,OAAO,EAAE;YACZ,wEAAwE;YACxE,mGAAmG;YACnG,OAAO,GAAG,UAAU,CAAC;gBACnB,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5B,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC,EAAE,WAAW,CAAC,CAAC;SACjB;IACH,CAAC,CAAC;IAEF,IAAM,MAAM,GAAG,UAAC,MAAM;QACpB,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,KAAK,iBAAiB;YAAE,OAAO;QACnE,GAAG,CAAC,eAAe,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAEvD,IAAI,OAAO,EAAE;YACX,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,GAAG,IAAI,CAAC;SAChB;aAAM;YACL,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;SAChC;IACH,CAAC,CAAC;IAEF,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtB,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAEzB,OAAO;QACL,IAAI,OAAO;YAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,GAAG,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;IACjB,GAAG,CAAC,kBAAkB,EAAE,CAAC;AAC3B,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ledgerhq/hw-transport-node-hid-singleton",
3
- "version": "6.27.4-nightly.0",
4
- "description": "Ledger Hardware Wallet Node implementation of the communication layer, using node-hid and usb-detection",
3
+ "version": "6.28.0-nightly.0",
4
+ "description": "Ledger Hardware Wallet Node implementation of the communication layer, using node-hid and node-usb",
5
5
  "keywords": [
6
6
  "Ledger",
7
7
  "LedgerWallet",
@@ -27,14 +27,14 @@
27
27
  "types": "lib/TransportNodeHid.d.ts",
28
28
  "license": "Apache-2.0",
29
29
  "dependencies": {
30
- "@ledgerhq/devices": "^7.0.0",
31
- "@ledgerhq/errors": "^6.10.1",
32
- "@ledgerhq/hw-transport": "^6.27.3-nightly.0",
33
- "@ledgerhq/hw-transport-node-hid-noevents": "^6.27.3-nightly.0",
30
+ "@ledgerhq/devices": "^7.0.1-nightly.0",
31
+ "@ledgerhq/errors": "^6.10.2-nightly.0",
32
+ "@ledgerhq/hw-transport": "^6.27.4-nightly.0",
33
+ "@ledgerhq/hw-transport-node-hid-noevents": "^6.27.4-nightly.0",
34
34
  "@ledgerhq/logs": "^6.10.1-nightly.0",
35
35
  "lodash": "^4.17.21",
36
36
  "node-hid": "2.1.1",
37
- "usb-detection": "4.13.0"
37
+ "usb": "2.5.1"
38
38
  },
39
39
  "gitHead": "dd0dea64b58e5a9125c8a422dcffd29e5ef6abec",
40
40
  "scripts": {
@@ -12,8 +12,6 @@ import { identifyUSBProductId } from "@ledgerhq/devices";
12
12
  import { CantOpenDevice } from "@ledgerhq/errors";
13
13
  import { listenDevices } from "./listenDevices";
14
14
 
15
- export * as usbDetect from "usb-detection";
16
-
17
15
  let transportInstance;
18
16
 
19
17
  const DISCONNECT_TIMEOUT = 5000;
@@ -1,82 +1,89 @@
1
- import usbDetect from "usb-detection";
1
+ import { usb } from "usb";
2
2
  import { ledgerUSBVendorId } from "@ledgerhq/devices";
3
3
  import { log } from "@ledgerhq/logs";
4
+
4
5
  export type Device = {
5
6
  locationId: number;
6
7
  vendorId: number;
7
8
  productId: number;
8
9
  deviceName: string;
9
10
  manufacturer: string;
10
- serialNumber: string;
11
+ serialNumber: number;
11
12
  deviceAddress: number;
12
13
  };
13
14
 
14
- const deviceToLog = ({ productId, locationId, deviceAddress }) =>
15
- `productId=${productId} locationId=${locationId} deviceAddress=${deviceAddress}`;
15
+ const deviceToLog = ({
16
+ deviceDescriptor: { idProduct },
17
+ busNumber,
18
+ deviceAddress,
19
+ }) =>
20
+ `productId=${idProduct} busNumber=${busNumber} deviceAddress=${deviceAddress}`;
16
21
 
17
22
  let usbDebounce = 1000;
18
23
  export const setUsbDebounce = (n: number) => {
19
24
  usbDebounce = n;
20
25
  };
21
- let monitoring = false;
22
-
23
- const monitor = () => {
24
- if (!monitoring) {
25
- monitoring = true;
26
- usbDetect.startMonitoring();
27
- }
28
26
 
29
- return () => {};
30
- };
31
-
32
- // No better way for now. see https://github.com/LedgerHQ/ledgerjs/issues/434
33
- process.on("exit", () => {
34
- if (monitoring) {
35
- // redeem the monitoring so the process can be terminated.
36
- usbDetect.stopMonitoring();
37
- }
27
+ const mapRawDevice = ({
28
+ busNumber: locationId,
29
+ deviceAddress,
30
+ deviceDescriptor: {
31
+ idVendor: vendorId,
32
+ idProduct: productId,
33
+ iSerialNumber: serialNumber,
34
+ },
35
+ }: usb.Device): Device => ({
36
+ locationId, // Nb we dont use this but the mapping might be incorrect.
37
+ vendorId,
38
+ productId,
39
+ deviceName: "",
40
+ manufacturer: "",
41
+ serialNumber,
42
+ deviceAddress,
38
43
  });
44
+
45
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
39
46
  export const listenDevices = (
40
47
  onAdd: (arg0: Device) => void,
41
48
  onRemove: (arg0: Device) => void
42
49
  ) => {
43
- const unmonitor = monitor();
44
- const addEvent = "add:" + ledgerUSBVendorId;
45
- const removeEvent = "remove:" + ledgerUSBVendorId;
46
50
  let timeout;
47
51
 
48
52
  const add = (device) => {
53
+ if (device.deviceDescriptor.idVendor !== ledgerUSBVendorId) return;
49
54
  log("usb-detection", "add: " + deviceToLog(device));
50
55
 
51
56
  if (!timeout) {
52
57
  // a time is needed for the device to actually be connectable over HID..
53
58
  // we also take this time to not emit the device yet and potentially cancel it if a remove happens.
54
59
  timeout = setTimeout(() => {
55
- onAdd(device);
60
+ onAdd(mapRawDevice(device));
56
61
  timeout = null;
57
62
  }, usbDebounce);
58
63
  }
59
64
  };
60
65
 
61
66
  const remove = (device) => {
67
+ if (device.deviceDescriptor.idVendor !== ledgerUSBVendorId) return;
62
68
  log("usb-detection", "remove: " + deviceToLog(device));
63
69
 
64
70
  if (timeout) {
65
71
  clearTimeout(timeout);
66
72
  timeout = null;
67
73
  } else {
68
- onRemove(device);
74
+ onRemove(mapRawDevice(device));
69
75
  }
70
76
  };
71
77
 
72
- usbDetect.on(addEvent, add);
73
- usbDetect.on(removeEvent, remove);
78
+ usb.on("attach", add);
79
+ usb.on("detach", remove);
80
+
74
81
  return () => {
75
82
  if (timeout) clearTimeout(timeout);
76
- // @ts-expect-error not all EventEmitter methods are covered in its definition file
77
- usbDetect.off(addEvent, add);
78
- // @ts-expect-error not all EventEmitter methods are covered in its definition file
79
- usbDetect.off(removeEvent, remove);
80
- unmonitor();
83
+ usb.unrefHotplugEvents();
81
84
  };
82
85
  };
86
+
87
+ process.on("exit", () => {
88
+ usb.unrefHotplugEvents();
89
+ });