@ledgerhq/hw-transport-node-hid-singleton 6.28.12 → 6.28.13-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.
- package/CHANGELOG.md +10 -0
- package/lib/TransportNodeHid.d.ts.map +1 -1
- package/lib/TransportNodeHid.js +3 -3
- package/lib/TransportNodeHid.js.map +1 -1
- package/lib/listenDevices.d.ts.map +1 -1
- package/lib/listenDevices.js +4 -4
- package/lib/listenDevices.js.map +1 -1
- package/lib-es/TransportNodeHid.d.ts.map +1 -1
- package/lib-es/TransportNodeHid.js +4 -4
- package/lib-es/TransportNodeHid.js.map +1 -1
- package/lib-es/listenDevices.d.ts.map +1 -1
- package/lib-es/listenDevices.js +4 -4
- package/lib-es/listenDevices.js.map +1 -1
- package/package.json +6 -6
- package/src/TransportNodeHid.ts +8 -16
- package/src/listenDevices.ts +5 -16
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @ledgerhq/hw-transport-node-hid-singleton
|
|
2
2
|
|
|
3
|
+
## 6.28.13-nightly.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`9adc1862dd`](https://github.com/LedgerHQ/ledger-live/commit/9adc1862dda605a722d19f3b6895bd324834c914)]:
|
|
8
|
+
- @ledgerhq/errors@6.12.7-nightly.0
|
|
9
|
+
- @ledgerhq/devices@8.0.4-nightly.0
|
|
10
|
+
- @ledgerhq/hw-transport@6.28.5-nightly.0
|
|
11
|
+
- @ledgerhq/hw-transport-node-hid-noevents@6.27.16-nightly.0
|
|
12
|
+
|
|
3
13
|
## 6.28.12
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransportNodeHid.d.ts","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":";AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"TransportNodeHid.d.ts","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":";AACA,OAAO,wBAAwC,MAAM,0CAA0C,CAAC;AAChG,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAwBtF,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;AAEzD;;;;;;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,qBAAqB,CAAC,KAAG,YAAY,CAqDvE;IAEF;;OAEG;WACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5C;;OAEG;WACU,UAAU;IASvB;;OAEG;IACH,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAmCjD,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"}
|
package/lib/TransportNodeHid.js
CHANGED
|
@@ -166,7 +166,7 @@ TransportNodeHidSingleton.list = hw_transport_node_hid_noevents_1.default.list;
|
|
|
166
166
|
*/
|
|
167
167
|
TransportNodeHidSingleton.listen = (observer) => {
|
|
168
168
|
let unsubscribed;
|
|
169
|
-
Promise.resolve((0, hw_transport_node_hid_noevents_1.getDevices)()).then(
|
|
169
|
+
Promise.resolve((0, hw_transport_node_hid_noevents_1.getDevices)()).then(devices => {
|
|
170
170
|
// this needs to run asynchronously so the subscription is defined during this phase
|
|
171
171
|
for (const device of devices) {
|
|
172
172
|
if (!unsubscribed) {
|
|
@@ -182,7 +182,7 @@ TransportNodeHidSingleton.listen = (observer) => {
|
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
184
|
});
|
|
185
|
-
const onAdd =
|
|
185
|
+
const onAdd = device => {
|
|
186
186
|
const deviceModel = (0, devices_1.identifyUSBProductId)(device.productId);
|
|
187
187
|
observer.next({
|
|
188
188
|
type: "add",
|
|
@@ -193,7 +193,7 @@ TransportNodeHidSingleton.listen = (observer) => {
|
|
|
193
193
|
},
|
|
194
194
|
});
|
|
195
195
|
};
|
|
196
|
-
const onRemove =
|
|
196
|
+
const onRemove = device => {
|
|
197
197
|
const deviceModel = (0, devices_1.identifyUSBProductId)(device.productId);
|
|
198
198
|
observer.next({
|
|
199
199
|
type: "remove",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransportNodeHid.js","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAA2B;AAC3B,
|
|
1
|
+
{"version":3,"file":"TransportNodeHid.js","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listenDevices.d.ts","sourceRoot":"","sources":["../src/listenDevices.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,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;
|
|
1
|
+
{"version":3,"file":"listenDevices.d.ts","sourceRoot":"","sources":["../src/listenDevices.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,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;AAiBF,eAAO,MAAM,aAAa,iBAAkB,MAAM,KAAK,IAAI,mBAAmB,MAAM,KAAK,IAAI,eAoC5F,CAAC"}
|
package/lib/listenDevices.js
CHANGED
|
@@ -4,13 +4,13 @@ exports.listenDevices = exports.setUsbDebounce = void 0;
|
|
|
4
4
|
const usb_1 = require("usb");
|
|
5
5
|
const devices_1 = require("@ledgerhq/devices");
|
|
6
6
|
const logs_1 = require("@ledgerhq/logs");
|
|
7
|
-
const deviceToLog = ({ deviceDescriptor: { idProduct }, busNumber, deviceAddress
|
|
7
|
+
const deviceToLog = ({ deviceDescriptor: { idProduct }, busNumber, deviceAddress }) => `productId=${idProduct} busNumber=${busNumber} deviceAddress=${deviceAddress}`;
|
|
8
8
|
let usbDebounce = 1000;
|
|
9
9
|
const setUsbDebounce = (n) => {
|
|
10
10
|
usbDebounce = n;
|
|
11
11
|
};
|
|
12
12
|
exports.setUsbDebounce = setUsbDebounce;
|
|
13
|
-
const mapRawDevice = ({ busNumber: locationId, deviceAddress, deviceDescriptor: { idVendor: vendorId, idProduct: productId, iSerialNumber: serialNumber
|
|
13
|
+
const mapRawDevice = ({ busNumber: locationId, deviceAddress, deviceDescriptor: { idVendor: vendorId, idProduct: productId, iSerialNumber: serialNumber }, }) => ({
|
|
14
14
|
locationId,
|
|
15
15
|
vendorId,
|
|
16
16
|
productId,
|
|
@@ -22,7 +22,7 @@ const mapRawDevice = ({ busNumber: locationId, deviceAddress, deviceDescriptor:
|
|
|
22
22
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
23
23
|
const listenDevices = (onAdd, onRemove) => {
|
|
24
24
|
let timeout;
|
|
25
|
-
const add =
|
|
25
|
+
const add = device => {
|
|
26
26
|
if (device.deviceDescriptor.idVendor !== devices_1.ledgerUSBVendorId)
|
|
27
27
|
return;
|
|
28
28
|
(0, logs_1.log)("usb-detection", "add: " + deviceToLog(device));
|
|
@@ -35,7 +35,7 @@ const listenDevices = (onAdd, onRemove) => {
|
|
|
35
35
|
}, usbDebounce);
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
-
const remove =
|
|
38
|
+
const remove = device => {
|
|
39
39
|
if (device.deviceDescriptor.idVendor !== devices_1.ledgerUSBVendorId)
|
|
40
40
|
return;
|
|
41
41
|
(0, logs_1.log)("usb-detection", "remove: " + deviceToLog(device));
|
package/lib/listenDevices.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listenDevices.js","sourceRoot":"","sources":["../src/listenDevices.ts"],"names":[],"mappings":";;;AAAA,6BAA0B;AAC1B,+CAAsD;AACtD,yCAAqC;AAYrC,MAAM,WAAW,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"listenDevices.js","sourceRoot":"","sources":["../src/listenDevices.ts"],"names":[],"mappings":";;;AAAA,6BAA0B;AAC1B,+CAAsD;AACtD,yCAAqC;AAYrC,MAAM,WAAW,GAAG,CAAC,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE,CACpF,aAAa,SAAS,cAAc,SAAS,kBAAkB,aAAa,EAAE,CAAC;AAEjF,IAAI,WAAW,GAAG,IAAI,CAAC;AAChB,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,EAAE;IAC1C,WAAW,GAAG,CAAC,CAAC;AAClB,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEF,MAAM,YAAY,GAAG,CAAC,EACpB,SAAS,EAAE,UAAU,EACrB,aAAa,EACb,gBAAgB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,GAChF,EAAU,EAAE,CAAC,CAAC;IACzB,UAAU;IACV,QAAQ;IACR,SAAS;IACT,UAAU,EAAE,EAAE;IACd,YAAY,EAAE,EAAE;IAChB,YAAY;IACZ,aAAa;CACd,CAAC,CAAC;AAEH,6EAA6E;AACtE,MAAM,aAAa,GAAG,CAAC,KAA6B,EAAE,QAAgC,EAAE,EAAE;IAC/F,IAAI,OAAO,CAAC;IAEZ,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE;QACnB,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,GAAG,EAAE;gBACxB,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5B,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC,EAAE,WAAW,CAAC,CAAC;SACjB;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE;QACtB,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,GAAG,EAAE;QACV,IAAI,OAAO;YAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,SAAG,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC,CAAC;AACJ,CAAC,CAAC;AApCW,QAAA,aAAa,iBAoCxB;AAEF,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;IACtB,SAAG,CAAC,kBAAkB,EAAE,CAAC;AAC3B,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransportNodeHid.d.ts","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":";AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"TransportNodeHid.d.ts","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":";AACA,OAAO,wBAAwC,MAAM,0CAA0C,CAAC;AAChG,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAwBtF,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;AAEzD;;;;;;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,qBAAqB,CAAC,KAAG,YAAY,CAqDvE;IAEF;;OAEG;WACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5C;;OAEG;WACU,UAAU;IASvB;;OAEG;IACH,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAmCjD,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"}
|
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import HID from "node-hid";
|
|
11
|
-
import TransportNodeHidNoEvents, { getDevices
|
|
11
|
+
import TransportNodeHidNoEvents, { getDevices } from "@ledgerhq/hw-transport-node-hid-noevents";
|
|
12
12
|
import { log } from "@ledgerhq/logs";
|
|
13
13
|
import { identifyUSBProductId } from "@ledgerhq/devices";
|
|
14
14
|
import { CantOpenDevice } from "@ledgerhq/errors";
|
|
@@ -137,7 +137,7 @@ TransportNodeHidSingleton.list = TransportNodeHidNoEvents.list;
|
|
|
137
137
|
*/
|
|
138
138
|
TransportNodeHidSingleton.listen = (observer) => {
|
|
139
139
|
let unsubscribed;
|
|
140
|
-
Promise.resolve(getDevices()).then(
|
|
140
|
+
Promise.resolve(getDevices()).then(devices => {
|
|
141
141
|
// this needs to run asynchronously so the subscription is defined during this phase
|
|
142
142
|
for (const device of devices) {
|
|
143
143
|
if (!unsubscribed) {
|
|
@@ -153,7 +153,7 @@ TransportNodeHidSingleton.listen = (observer) => {
|
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
155
|
});
|
|
156
|
-
const onAdd =
|
|
156
|
+
const onAdd = device => {
|
|
157
157
|
const deviceModel = identifyUSBProductId(device.productId);
|
|
158
158
|
observer.next({
|
|
159
159
|
type: "add",
|
|
@@ -164,7 +164,7 @@ TransportNodeHidSingleton.listen = (observer) => {
|
|
|
164
164
|
},
|
|
165
165
|
});
|
|
166
166
|
};
|
|
167
|
-
const onRemove =
|
|
167
|
+
const onRemove = device => {
|
|
168
168
|
const deviceModel = identifyUSBProductId(device.productId);
|
|
169
169
|
observer.next({
|
|
170
170
|
type: "remove",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransportNodeHid.js","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,wBAAwB,EAAE,
|
|
1
|
+
{"version":3,"file":"TransportNodeHid.js","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listenDevices.d.ts","sourceRoot":"","sources":["../src/listenDevices.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,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;
|
|
1
|
+
{"version":3,"file":"listenDevices.d.ts","sourceRoot":"","sources":["../src/listenDevices.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,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;AAiBF,eAAO,MAAM,aAAa,iBAAkB,MAAM,KAAK,IAAI,mBAAmB,MAAM,KAAK,IAAI,eAoC5F,CAAC"}
|
package/lib-es/listenDevices.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { usb } from "usb";
|
|
2
2
|
import { ledgerUSBVendorId } from "@ledgerhq/devices";
|
|
3
3
|
import { log } from "@ledgerhq/logs";
|
|
4
|
-
const deviceToLog = ({ deviceDescriptor: { idProduct }, busNumber, deviceAddress
|
|
4
|
+
const deviceToLog = ({ deviceDescriptor: { idProduct }, busNumber, deviceAddress }) => `productId=${idProduct} busNumber=${busNumber} deviceAddress=${deviceAddress}`;
|
|
5
5
|
let usbDebounce = 1000;
|
|
6
6
|
export const setUsbDebounce = (n) => {
|
|
7
7
|
usbDebounce = n;
|
|
8
8
|
};
|
|
9
|
-
const mapRawDevice = ({ busNumber: locationId, deviceAddress, deviceDescriptor: { idVendor: vendorId, idProduct: productId, iSerialNumber: serialNumber
|
|
9
|
+
const mapRawDevice = ({ busNumber: locationId, deviceAddress, deviceDescriptor: { idVendor: vendorId, idProduct: productId, iSerialNumber: serialNumber }, }) => ({
|
|
10
10
|
locationId,
|
|
11
11
|
vendorId,
|
|
12
12
|
productId,
|
|
@@ -18,7 +18,7 @@ const mapRawDevice = ({ busNumber: locationId, deviceAddress, deviceDescriptor:
|
|
|
18
18
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
19
19
|
export const listenDevices = (onAdd, onRemove) => {
|
|
20
20
|
let timeout;
|
|
21
|
-
const add =
|
|
21
|
+
const add = device => {
|
|
22
22
|
if (device.deviceDescriptor.idVendor !== ledgerUSBVendorId)
|
|
23
23
|
return;
|
|
24
24
|
log("usb-detection", "add: " + deviceToLog(device));
|
|
@@ -31,7 +31,7 @@ export const listenDevices = (onAdd, onRemove) => {
|
|
|
31
31
|
}, usbDebounce);
|
|
32
32
|
}
|
|
33
33
|
};
|
|
34
|
-
const remove =
|
|
34
|
+
const remove = device => {
|
|
35
35
|
if (device.deviceDescriptor.idVendor !== ledgerUSBVendorId)
|
|
36
36
|
return;
|
|
37
37
|
log("usb-detection", "remove: " + deviceToLog(device));
|
|
@@ -1 +1 @@
|
|
|
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,MAAM,WAAW,GAAG,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,MAAM,WAAW,GAAG,CAAC,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE,CACpF,aAAa,SAAS,cAAc,SAAS,kBAAkB,aAAa,EAAE,CAAC;AAEjF,IAAI,WAAW,GAAG,IAAI,CAAC;AACvB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,EAAE;IAC1C,WAAW,GAAG,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,EACpB,SAAS,EAAE,UAAU,EACrB,aAAa,EACb,gBAAgB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,GAChF,EAAU,EAAE,CAAC,CAAC;IACzB,UAAU;IACV,QAAQ;IACR,SAAS;IACT,UAAU,EAAE,EAAE;IACd,YAAY,EAAE,EAAE;IAChB,YAAY;IACZ,aAAa;CACd,CAAC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAA6B,EAAE,QAAgC,EAAE,EAAE;IAC/F,IAAI,OAAO,CAAC;IAEZ,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE;QACnB,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,GAAG,EAAE;gBACxB,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5B,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC,EAAE,WAAW,CAAC,CAAC;SACjB;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE;QACtB,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,GAAG,EAAE;QACV,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,GAAG,EAAE;IACtB,GAAG,CAAC,kBAAkB,EAAE,CAAC;AAC3B,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/hw-transport-node-hid-singleton",
|
|
3
|
-
"version": "6.28.
|
|
3
|
+
"version": "6.28.13-nightly.0",
|
|
4
4
|
"description": "Ledger Hardware Wallet Node implementation of the communication layer, using node-hid and node-usb",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
"lodash": "^4.17.21",
|
|
31
31
|
"node-hid": "^2.1.2",
|
|
32
32
|
"usb": "2.5.1",
|
|
33
|
-
"@ledgerhq/devices": "^8.0.
|
|
34
|
-
"@ledgerhq/errors": "^6.12.
|
|
35
|
-
"@ledgerhq/hw-transport": "^6.28.
|
|
36
|
-
"@ledgerhq/hw-transport-node-hid-noevents": "^6.27.
|
|
33
|
+
"@ledgerhq/devices": "^8.0.4-nightly.0",
|
|
34
|
+
"@ledgerhq/errors": "^6.12.7-nightly.0",
|
|
35
|
+
"@ledgerhq/hw-transport": "^6.28.5-nightly.0",
|
|
36
|
+
"@ledgerhq/hw-transport-node-hid-noevents": "^6.27.16-nightly.0",
|
|
37
37
|
"@ledgerhq/logs": "^6.10.1"
|
|
38
38
|
},
|
|
39
39
|
"gitHead": "dd0dea64b58e5a9125c8a422dcffd29e5ef6abec",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"prewatch": "pnpm build",
|
|
54
54
|
"watch": "tsc --watch",
|
|
55
55
|
"doc": "documentation readme src/** --section=API --pe ts --re ts --re d.ts",
|
|
56
|
-
"lint": "eslint ./src --no-error-on-unmatched-pattern --ext .ts,.tsx",
|
|
56
|
+
"lint": "eslint ./src --no-error-on-unmatched-pattern --ext .ts,.tsx --cache",
|
|
57
57
|
"lint:fix": "pnpm lint --fix",
|
|
58
58
|
"test": "jest"
|
|
59
59
|
}
|
package/src/TransportNodeHid.ts
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
import HID from "node-hid";
|
|
2
|
-
import TransportNodeHidNoEvents, {
|
|
3
|
-
|
|
4
|
-
} from "@ledgerhq/hw-transport-node-hid-noevents";
|
|
5
|
-
import type {
|
|
6
|
-
Observer,
|
|
7
|
-
DescriptorEvent,
|
|
8
|
-
Subscription,
|
|
9
|
-
} from "@ledgerhq/hw-transport";
|
|
2
|
+
import TransportNodeHidNoEvents, { getDevices } from "@ledgerhq/hw-transport-node-hid-noevents";
|
|
3
|
+
import type { Observer, DescriptorEvent, Subscription } from "@ledgerhq/hw-transport";
|
|
10
4
|
import { log } from "@ledgerhq/logs";
|
|
11
5
|
import { identifyUSBProductId } from "@ledgerhq/devices";
|
|
12
6
|
import { CantOpenDevice } from "@ledgerhq/errors";
|
|
@@ -26,7 +20,7 @@ const setDisconnectTimeout = () => {
|
|
|
26
20
|
clearDisconnectTimeout();
|
|
27
21
|
disconnectTimeout = setTimeout(
|
|
28
22
|
() => TransportNodeHidSingleton.autoDisconnect(),
|
|
29
|
-
DISCONNECT_TIMEOUT
|
|
23
|
+
DISCONNECT_TIMEOUT,
|
|
30
24
|
);
|
|
31
25
|
};
|
|
32
26
|
|
|
@@ -56,7 +50,7 @@ export default class TransportNodeHidSingleton extends TransportNodeHidNoEvents
|
|
|
56
50
|
*/
|
|
57
51
|
static listen = (observer: Observer<ListenDescriptorEvent>): Subscription => {
|
|
58
52
|
let unsubscribed;
|
|
59
|
-
Promise.resolve(getDevices()).then(
|
|
53
|
+
Promise.resolve(getDevices()).then(devices => {
|
|
60
54
|
// this needs to run asynchronously so the subscription is defined during this phase
|
|
61
55
|
for (const device of devices) {
|
|
62
56
|
if (!unsubscribed) {
|
|
@@ -73,7 +67,7 @@ export default class TransportNodeHidSingleton extends TransportNodeHidNoEvents
|
|
|
73
67
|
}
|
|
74
68
|
});
|
|
75
69
|
|
|
76
|
-
const onAdd =
|
|
70
|
+
const onAdd = device => {
|
|
77
71
|
const deviceModel = identifyUSBProductId(device.productId);
|
|
78
72
|
observer.next({
|
|
79
73
|
type: "add",
|
|
@@ -85,7 +79,7 @@ export default class TransportNodeHidSingleton extends TransportNodeHidNoEvents
|
|
|
85
79
|
});
|
|
86
80
|
};
|
|
87
81
|
|
|
88
|
-
const onRemove =
|
|
82
|
+
const onRemove = device => {
|
|
89
83
|
const deviceModel = identifyUSBProductId(device.productId);
|
|
90
84
|
observer.next({
|
|
91
85
|
type: "remove",
|
|
@@ -149,9 +143,7 @@ export default class TransportNodeHidSingleton extends TransportNodeHidNoEvents
|
|
|
149
143
|
const device = getDevices()[0];
|
|
150
144
|
if (!device) throw new CantOpenDevice("no device found");
|
|
151
145
|
log("hid-verbose", "new HID transport");
|
|
152
|
-
transportInstance = new TransportNodeHidSingleton(
|
|
153
|
-
new HID.HID(device.path as string)
|
|
154
|
-
);
|
|
146
|
+
transportInstance = new TransportNodeHidSingleton(new HID.HID(device.path as string));
|
|
155
147
|
const unlisten = listenDevices(
|
|
156
148
|
() => {},
|
|
157
149
|
() => {
|
|
@@ -159,7 +151,7 @@ export default class TransportNodeHidSingleton extends TransportNodeHidNoEvents
|
|
|
159
151
|
if (transportInstance) {
|
|
160
152
|
transportInstance.emit("disconnect");
|
|
161
153
|
}
|
|
162
|
-
}
|
|
154
|
+
},
|
|
163
155
|
);
|
|
164
156
|
|
|
165
157
|
const onDisconnect = () => {
|
package/src/listenDevices.ts
CHANGED
|
@@ -12,11 +12,7 @@ export type Device = {
|
|
|
12
12
|
deviceAddress: number;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
const deviceToLog = ({
|
|
16
|
-
deviceDescriptor: { idProduct },
|
|
17
|
-
busNumber,
|
|
18
|
-
deviceAddress,
|
|
19
|
-
}) =>
|
|
15
|
+
const deviceToLog = ({ deviceDescriptor: { idProduct }, busNumber, deviceAddress }) =>
|
|
20
16
|
`productId=${idProduct} busNumber=${busNumber} deviceAddress=${deviceAddress}`;
|
|
21
17
|
|
|
22
18
|
let usbDebounce = 1000;
|
|
@@ -27,11 +23,7 @@ export const setUsbDebounce = (n: number) => {
|
|
|
27
23
|
const mapRawDevice = ({
|
|
28
24
|
busNumber: locationId,
|
|
29
25
|
deviceAddress,
|
|
30
|
-
deviceDescriptor: {
|
|
31
|
-
idVendor: vendorId,
|
|
32
|
-
idProduct: productId,
|
|
33
|
-
iSerialNumber: serialNumber,
|
|
34
|
-
},
|
|
26
|
+
deviceDescriptor: { idVendor: vendorId, idProduct: productId, iSerialNumber: serialNumber },
|
|
35
27
|
}: usb.Device): Device => ({
|
|
36
28
|
locationId, // Nb we dont use this but the mapping might be incorrect.
|
|
37
29
|
vendorId,
|
|
@@ -43,13 +35,10 @@ const mapRawDevice = ({
|
|
|
43
35
|
});
|
|
44
36
|
|
|
45
37
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
46
|
-
export const listenDevices = (
|
|
47
|
-
onAdd: (arg0: Device) => void,
|
|
48
|
-
onRemove: (arg0: Device) => void
|
|
49
|
-
) => {
|
|
38
|
+
export const listenDevices = (onAdd: (arg0: Device) => void, onRemove: (arg0: Device) => void) => {
|
|
50
39
|
let timeout;
|
|
51
40
|
|
|
52
|
-
const add =
|
|
41
|
+
const add = device => {
|
|
53
42
|
if (device.deviceDescriptor.idVendor !== ledgerUSBVendorId) return;
|
|
54
43
|
log("usb-detection", "add: " + deviceToLog(device));
|
|
55
44
|
|
|
@@ -63,7 +52,7 @@ export const listenDevices = (
|
|
|
63
52
|
}
|
|
64
53
|
};
|
|
65
54
|
|
|
66
|
-
const remove =
|
|
55
|
+
const remove = device => {
|
|
67
56
|
if (device.deviceDescriptor.idVendor !== ledgerUSBVendorId) return;
|
|
68
57
|
log("usb-detection", "remove: " + deviceToLog(device));
|
|
69
58
|
|