@ledgerhq/hw-transport-node-hid-singleton 6.23.0 → 6.23.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.
- package/README.md +1 -13
- package/lib/TransportNodeHid.d.ts +0 -7
- package/lib/TransportNodeHid.d.ts.map +1 -1
- package/lib/TransportNodeHid.js +0 -33
- package/lib/TransportNodeHid.js.map +1 -1
- package/lib-es/TransportNodeHid.d.ts +0 -7
- package/lib-es/TransportNodeHid.d.ts.map +1 -1
- package/lib-es/TransportNodeHid.js +0 -33
- package/lib-es/TransportNodeHid.js.map +1 -1
- package/package.json +2 -2
- package/src/TransportNodeHid.ts +1 -31
package/README.md
CHANGED
|
@@ -17,12 +17,10 @@ Allows to communicate with Ledger Hardware Wallets.
|
|
|
17
17
|
|
|
18
18
|
* [TransportNodeHidSingleton](#transportnodehidsingleton)
|
|
19
19
|
* [Examples](#examples)
|
|
20
|
-
* [exchange](#exchange)
|
|
21
|
-
* [Parameters](#parameters)
|
|
22
20
|
* [isSupported](#issupported)
|
|
23
21
|
* [list](#list)
|
|
24
22
|
* [listen](#listen)
|
|
25
|
-
* [Parameters](#parameters
|
|
23
|
+
* [Parameters](#parameters)
|
|
26
24
|
* [disconnect](#disconnect)
|
|
27
25
|
* [open](#open)
|
|
28
26
|
|
|
@@ -40,16 +38,6 @@ import TransportNodeHid from "@ledgerhq/hw-transport-node-hid-singleton";
|
|
|
40
38
|
TransportNodeHid.create().then(transport => ...)
|
|
41
39
|
```
|
|
42
40
|
|
|
43
|
-
#### exchange
|
|
44
|
-
|
|
45
|
-
Exchange with the device using APDU protocol.
|
|
46
|
-
|
|
47
|
-
##### Parameters
|
|
48
|
-
|
|
49
|
-
* `apdu` **[Buffer](https://nodejs.org/api/buffer.html)**
|
|
50
|
-
|
|
51
|
-
Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[Buffer](https://nodejs.org/api/buffer.html)>** a promise of apdu response
|
|
52
|
-
|
|
53
41
|
#### isSupported
|
|
54
42
|
|
|
55
43
|
#### list
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import TransportNodeHidNoEvents from "@ledgerhq/hw-transport-node-hid-noevents";
|
|
3
2
|
import type { Observer, DescriptorEvent, Subscription } from "@ledgerhq/hw-transport";
|
|
4
3
|
/**
|
|
@@ -28,12 +27,6 @@ export default class TransportNodeHidSingleton extends TransportNodeHidNoEvents
|
|
|
28
27
|
* if path="" is not provided, the library will take the first device
|
|
29
28
|
*/
|
|
30
29
|
static open(): Promise<TransportNodeHidSingleton>;
|
|
31
|
-
/**
|
|
32
|
-
* Exchange with the device using APDU protocol.
|
|
33
|
-
* @param apdu
|
|
34
|
-
* @returns a promise of apdu response
|
|
35
|
-
*/
|
|
36
|
-
exchange(apdu: Buffer): Promise<Buffer>;
|
|
37
30
|
close(): Promise<void>;
|
|
38
31
|
}
|
|
39
32
|
//# sourceMappingURL=TransportNodeHid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransportNodeHid.d.ts","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":"
|
|
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;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,wBAAwB;IAC7E;;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,UAAU;IAQvB;;OAEG;IACH,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAoCjD,KAAK;CAIN"}
|
package/lib/TransportNodeHid.js
CHANGED
|
@@ -91,16 +91,6 @@ var devices_1 = require("@ledgerhq/devices");
|
|
|
91
91
|
var errors_1 = require("@ledgerhq/errors");
|
|
92
92
|
var listenDevices_1 = require("./listenDevices");
|
|
93
93
|
var transportInstance;
|
|
94
|
-
var DISCONNECT_TIMEOUT = 5000;
|
|
95
|
-
var disconnectTimeout;
|
|
96
|
-
var clearDisconnectTimeout = function () {
|
|
97
|
-
if (disconnectTimeout) {
|
|
98
|
-
clearTimeout(disconnectTimeout);
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
var setDisconnectTimeout = function () {
|
|
102
|
-
disconnectTimeout = setTimeout(function () { return TransportNodeHidSingleton.disconnect(); }, DISCONNECT_TIMEOUT);
|
|
103
|
-
};
|
|
104
94
|
/**
|
|
105
95
|
* node-hid Transport implementation
|
|
106
96
|
* @example
|
|
@@ -124,7 +114,6 @@ var TransportNodeHidSingleton = /** @class */ (function (_super) {
|
|
|
124
114
|
transportInstance.emit("disconnect");
|
|
125
115
|
transportInstance = null;
|
|
126
116
|
}
|
|
127
|
-
clearDisconnectTimeout();
|
|
128
117
|
return [2 /*return*/];
|
|
129
118
|
});
|
|
130
119
|
});
|
|
@@ -133,7 +122,6 @@ var TransportNodeHidSingleton = /** @class */ (function (_super) {
|
|
|
133
122
|
* if path="" is not provided, the library will take the first device
|
|
134
123
|
*/
|
|
135
124
|
TransportNodeHidSingleton.open = function () {
|
|
136
|
-
clearDisconnectTimeout();
|
|
137
125
|
return Promise.resolve().then(function () {
|
|
138
126
|
if (transportInstance) {
|
|
139
127
|
(0, logs_1.log)("hid-verbose", "reusing opened transport instance");
|
|
@@ -162,27 +150,6 @@ var TransportNodeHidSingleton = /** @class */ (function (_super) {
|
|
|
162
150
|
return transportInstance;
|
|
163
151
|
});
|
|
164
152
|
};
|
|
165
|
-
/**
|
|
166
|
-
* Exchange with the device using APDU protocol.
|
|
167
|
-
* @param apdu
|
|
168
|
-
* @returns a promise of apdu response
|
|
169
|
-
*/
|
|
170
|
-
TransportNodeHidSingleton.prototype.exchange = function (apdu) {
|
|
171
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
172
|
-
var result;
|
|
173
|
-
return __generator(this, function (_a) {
|
|
174
|
-
switch (_a.label) {
|
|
175
|
-
case 0:
|
|
176
|
-
clearDisconnectTimeout();
|
|
177
|
-
return [4 /*yield*/, _super.prototype.exchange.call(this, apdu)];
|
|
178
|
-
case 1:
|
|
179
|
-
result = _a.sent();
|
|
180
|
-
setDisconnectTimeout();
|
|
181
|
-
return [2 /*return*/, result];
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
});
|
|
185
|
-
};
|
|
186
153
|
TransportNodeHidSingleton.prototype.close = function () {
|
|
187
154
|
// intentionally, a close will not effectively close the hid connection
|
|
188
155
|
return Promise.resolve();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransportNodeHid.js","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA2B;AAC3B,yGAEkD;AAMlD,uCAAqC;AACrC,6CAAyD;AACzD,2CAAkD;AAClD,iDAAgD;AAChD,IAAI,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"TransportNodeHid.js","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA2B;AAC3B,yGAEkD;AAMlD,uCAAqC;AACrC,6CAAyD;AACzD,2CAAkD;AAClD,iDAAgD;AAChD,IAAI,iBAAiB,CAAC;AACtB;;;;;;GAMG;AAEH;IAAuD,6CAAwB;IAA/E;;IA0HA,CAAC;IAtDC;;OAEG;IACU,oCAAU,GAAvB;;;gBACE,IAAI,iBAAiB,EAAE;oBACrB,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACrC,iBAAiB,GAAG,IAAI,CAAC;iBAC1B;;;;KACF;IAED;;OAEG;IACI,8BAAI,GAAX;QACE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;YAC5B,IAAI,iBAAiB,EAAE;gBACrB,IAAA,UAAG,EAAC,aAAa,EAAE,mCAAmC,CAAC,CAAC;gBACxD,OAAO,iBAAiB,CAAC;aAC1B;YAED,IAAM,MAAM,GAAG,IAAA,2CAAU,GAAE,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,uBAAc,CAAC,iBAAiB,CAAC,CAAC;YACzD,IAAA,UAAG,EAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;YACxC,iBAAiB,GAAG,IAAI,yBAAyB,CAC/C,IAAI,qBAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAc,CAAC,CACnC,CAAC;YACF,IAAM,QAAQ,GAAG,IAAA,6BAAa,EAC5B,cAAO,CAAC,EACR;gBACE,6DAA6D;gBAC7D,IAAI,iBAAiB,EAAE;oBACrB,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBACtC;YACH,CAAC,CACF,CAAC;YAEF,IAAM,YAAY,GAAG;gBACnB,IAAI,CAAC,iBAAiB;oBAAE,OAAO;gBAC/B,IAAA,UAAG,EAAC,aAAa,EAAE,qCAAqC,CAAC,CAAC;gBAC1D,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBAClD,iBAAiB,GAAG,IAAI,CAAC;gBACzB,QAAQ,EAAE,CAAC;YACb,CAAC,CAAC;YAEF,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YACjD,OAAO,iBAAiB,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yCAAK,GAAL;QACE,uEAAuE;QACvE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAxHD;;OAEG;IACI,qCAAW,GAAG,2CAAwB,CAAC,WAAW,CAAC;IAE1D;;OAEG;IACI,8BAAI,GAAG,2CAAwB,CAAC,IAAI,CAAC;IAE5C;OACG;IACI,gCAAM,GAAG,UAAC,QAAwC;QACvD,IAAI,YAAY,CAAC;QACjB,OAAO,CAAC,OAAO,CAAC,IAAA,2CAAU,GAAE,CAAC,CAAC,IAAI,CAAC,UAAC,OAAO;;;gBACzC,oFAAoF;gBACpF,KAAqB,IAAA,YAAA,SAAA,OAAO,CAAA,gCAAA,qDAAE;oBAAzB,IAAM,MAAM,oBAAA;oBACf,IAAI,CAAC,YAAY,EAAE;wBACjB,IAAM,WAAW,GAAG,IAAA,8BAAoB,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBAC3D,QAAQ,CAAC,IAAI,CAAC;4BACZ,IAAI,EAAE,KAAK;4BACX,UAAU,EAAE,EAAE;4BACd,MAAM,EAAE;gCACN,IAAI,EAAE,MAAM,CAAC,UAAU;6BACxB;4BACD,WAAW,aAAA;yBACZ,CAAC,CAAC;qBACJ;iBACF;;;;;;;;;QACH,CAAC,CAAC,CAAC;QAEH,IAAM,KAAK,GAAG,UAAC,MAAM;YACnB,IAAM,WAAW,GAAG,IAAA,8BAAoB,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3D,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,KAAK;gBACX,UAAU,EAAE,EAAE;gBACd,WAAW,aAAA;gBACX,MAAM,EAAE;oBACN,IAAI,EAAE,MAAM,CAAC,UAAU;iBACxB;aACF,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,IAAM,QAAQ,GAAG,UAAC,MAAM;YACtB,IAAM,WAAW,GAAG,IAAA,8BAAoB,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3D,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;gBACd,WAAW,aAAA;gBACX,MAAM,EAAE;oBACN,IAAI,EAAE,MAAM,CAAC,UAAU;iBACxB;aACF,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,IAAM,IAAI,GAAG,IAAA,6BAAa,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE5C,SAAS,WAAW;YAClB,IAAI,EAAE,CAAC;YACP,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;QAED,OAAO;YACL,WAAW,aAAA;SACZ,CAAC;IACJ,CAAC,CAAC;IAwDJ,gCAAC;CAAA,AA1HD,CAAuD,2CAAwB,GA0H9E;qBA1HoB,yBAAyB"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import TransportNodeHidNoEvents from "@ledgerhq/hw-transport-node-hid-noevents";
|
|
3
2
|
import type { Observer, DescriptorEvent, Subscription } from "@ledgerhq/hw-transport";
|
|
4
3
|
/**
|
|
@@ -28,12 +27,6 @@ export default class TransportNodeHidSingleton extends TransportNodeHidNoEvents
|
|
|
28
27
|
* if path="" is not provided, the library will take the first device
|
|
29
28
|
*/
|
|
30
29
|
static open(): Promise<TransportNodeHidSingleton>;
|
|
31
|
-
/**
|
|
32
|
-
* Exchange with the device using APDU protocol.
|
|
33
|
-
* @param apdu
|
|
34
|
-
* @returns a promise of apdu response
|
|
35
|
-
*/
|
|
36
|
-
exchange(apdu: Buffer): Promise<Buffer>;
|
|
37
30
|
close(): Promise<void>;
|
|
38
31
|
}
|
|
39
32
|
//# sourceMappingURL=TransportNodeHid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransportNodeHid.d.ts","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":"
|
|
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;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,wBAAwB;IAC7E;;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,UAAU;IAQvB;;OAEG;IACH,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAoCjD,KAAK;CAIN"}
|
|
@@ -67,16 +67,6 @@ import { identifyUSBProductId } from "@ledgerhq/devices";
|
|
|
67
67
|
import { CantOpenDevice } from "@ledgerhq/errors";
|
|
68
68
|
import { listenDevices } from "./listenDevices";
|
|
69
69
|
var transportInstance;
|
|
70
|
-
var DISCONNECT_TIMEOUT = 5000;
|
|
71
|
-
var disconnectTimeout;
|
|
72
|
-
var clearDisconnectTimeout = function () {
|
|
73
|
-
if (disconnectTimeout) {
|
|
74
|
-
clearTimeout(disconnectTimeout);
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
var setDisconnectTimeout = function () {
|
|
78
|
-
disconnectTimeout = setTimeout(function () { return TransportNodeHidSingleton.disconnect(); }, DISCONNECT_TIMEOUT);
|
|
79
|
-
};
|
|
80
70
|
/**
|
|
81
71
|
* node-hid Transport implementation
|
|
82
72
|
* @example
|
|
@@ -100,7 +90,6 @@ var TransportNodeHidSingleton = /** @class */ (function (_super) {
|
|
|
100
90
|
transportInstance.emit("disconnect");
|
|
101
91
|
transportInstance = null;
|
|
102
92
|
}
|
|
103
|
-
clearDisconnectTimeout();
|
|
104
93
|
return [2 /*return*/];
|
|
105
94
|
});
|
|
106
95
|
});
|
|
@@ -109,7 +98,6 @@ var TransportNodeHidSingleton = /** @class */ (function (_super) {
|
|
|
109
98
|
* if path="" is not provided, the library will take the first device
|
|
110
99
|
*/
|
|
111
100
|
TransportNodeHidSingleton.open = function () {
|
|
112
|
-
clearDisconnectTimeout();
|
|
113
101
|
return Promise.resolve().then(function () {
|
|
114
102
|
if (transportInstance) {
|
|
115
103
|
log("hid-verbose", "reusing opened transport instance");
|
|
@@ -138,27 +126,6 @@ var TransportNodeHidSingleton = /** @class */ (function (_super) {
|
|
|
138
126
|
return transportInstance;
|
|
139
127
|
});
|
|
140
128
|
};
|
|
141
|
-
/**
|
|
142
|
-
* Exchange with the device using APDU protocol.
|
|
143
|
-
* @param apdu
|
|
144
|
-
* @returns a promise of apdu response
|
|
145
|
-
*/
|
|
146
|
-
TransportNodeHidSingleton.prototype.exchange = function (apdu) {
|
|
147
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
148
|
-
var result;
|
|
149
|
-
return __generator(this, function (_a) {
|
|
150
|
-
switch (_a.label) {
|
|
151
|
-
case 0:
|
|
152
|
-
clearDisconnectTimeout();
|
|
153
|
-
return [4 /*yield*/, _super.prototype.exchange.call(this, apdu)];
|
|
154
|
-
case 1:
|
|
155
|
-
result = _a.sent();
|
|
156
|
-
setDisconnectTimeout();
|
|
157
|
-
return [2 /*return*/, result];
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
};
|
|
162
129
|
TransportNodeHidSingleton.prototype.close = function () {
|
|
163
130
|
// intentionally, a close will not effectively close the hid connection
|
|
164
131
|
return Promise.resolve();
|
|
@@ -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,EAC/B,UAAU,GACX,MAAM,0CAA0C,CAAC;AAMlD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,IAAI,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"TransportNodeHid.js","sourceRoot":"","sources":["../src/TransportNodeHid.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/hw-transport-node-hid-singleton",
|
|
3
|
-
"version": "6.23.
|
|
3
|
+
"version": "6.23.1",
|
|
4
4
|
"description": "Ledger Hardware Wallet Node implementation of the communication layer, using node-hid and usb-detection",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"watch": "bash ../../script/watch.sh",
|
|
43
43
|
"doc": "bash ../../script/doc.sh"
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "97d487fa1d4b68fb2b13555ddc2ac93b2121a449"
|
|
46
46
|
}
|
package/src/TransportNodeHid.ts
CHANGED
|
@@ -12,22 +12,6 @@ import { identifyUSBProductId } from "@ledgerhq/devices";
|
|
|
12
12
|
import { CantOpenDevice } from "@ledgerhq/errors";
|
|
13
13
|
import { listenDevices } from "./listenDevices";
|
|
14
14
|
let transportInstance;
|
|
15
|
-
|
|
16
|
-
const DISCONNECT_TIMEOUT = 5000;
|
|
17
|
-
let disconnectTimeout;
|
|
18
|
-
const clearDisconnectTimeout = () => {
|
|
19
|
-
if (disconnectTimeout) {
|
|
20
|
-
clearTimeout(disconnectTimeout);
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const setDisconnectTimeout = () => {
|
|
25
|
-
disconnectTimeout = setTimeout(
|
|
26
|
-
() => TransportNodeHidSingleton.disconnect(),
|
|
27
|
-
DISCONNECT_TIMEOUT
|
|
28
|
-
);
|
|
29
|
-
};
|
|
30
|
-
|
|
31
15
|
/**
|
|
32
16
|
* node-hid Transport implementation
|
|
33
17
|
* @example
|
|
@@ -113,14 +97,12 @@ export default class TransportNodeHidSingleton extends TransportNodeHidNoEvents
|
|
|
113
97
|
transportInstance.emit("disconnect");
|
|
114
98
|
transportInstance = null;
|
|
115
99
|
}
|
|
116
|
-
clearDisconnectTimeout();
|
|
117
100
|
}
|
|
118
101
|
|
|
119
102
|
/**
|
|
120
103
|
* if path="" is not provided, the library will take the first device
|
|
121
104
|
*/
|
|
122
105
|
static open(): Promise<TransportNodeHidSingleton> {
|
|
123
|
-
clearDisconnectTimeout();
|
|
124
106
|
return Promise.resolve().then(() => {
|
|
125
107
|
if (transportInstance) {
|
|
126
108
|
log("hid-verbose", "reusing opened transport instance");
|
|
@@ -156,19 +138,7 @@ export default class TransportNodeHidSingleton extends TransportNodeHidNoEvents
|
|
|
156
138
|
});
|
|
157
139
|
}
|
|
158
140
|
|
|
159
|
-
|
|
160
|
-
* Exchange with the device using APDU protocol.
|
|
161
|
-
* @param apdu
|
|
162
|
-
* @returns a promise of apdu response
|
|
163
|
-
*/
|
|
164
|
-
async exchange(apdu: Buffer): Promise<Buffer> {
|
|
165
|
-
clearDisconnectTimeout();
|
|
166
|
-
const result = await super.exchange(apdu);
|
|
167
|
-
setDisconnectTimeout();
|
|
168
|
-
return result;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
close(): Promise<void> {
|
|
141
|
+
close() {
|
|
172
142
|
// intentionally, a close will not effectively close the hid connection
|
|
173
143
|
return Promise.resolve();
|
|
174
144
|
}
|