usb 2.8.2 → 2.8.3
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 +6 -0
- package/dist/usb/bindings.d.ts +4 -0
- package/dist/usb/index.js +11 -5
- package/dist/usb/index.js.map +1 -1
- package/dist/webusb/index.d.ts +1 -1
- package/dist/webusb/index.js +17 -2
- package/dist/webusb/index.js.map +1 -1
- package/package.json +2 -2
- package/prebuilds/darwin-x64+arm64/node.napi.node +0 -0
- package/prebuilds/win32-ia32/node.napi.node +0 -0
- package/prebuilds/win32-x64/node.napi.node +0 -0
- package/src/hotplug/windows.cc +2 -2
- package/test/usb.coffee +16 -1
- package/test/webusb.coffee +17 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.8.3] - 2023-03-09
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- Fixed Windows X86 crash with USB detection - [`578`](https://github.com/node-usb/node-usb/pull/578) ([Julian Waller](https://github.com/Julusian))
|
|
7
|
+
- Fixed Windows USB detection race condition with delay - [`577`](https://github.com/node-usb/node-usb/pull/577) ([Rob Moran](https://github.com/thegecko))
|
|
8
|
+
|
|
3
9
|
## [2.8.2] - 2023-03-06
|
|
4
10
|
|
|
5
11
|
### Added
|
package/dist/usb/bindings.d.ts
CHANGED
|
@@ -8,6 +8,10 @@ export declare function getDeviceList(): Device[];
|
|
|
8
8
|
* Force polling loop for hotplug events
|
|
9
9
|
*/
|
|
10
10
|
export declare let pollHotplug: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Hotplug polling loop delay (ms)
|
|
13
|
+
*/
|
|
14
|
+
export declare let pollHotplugDelay: number;
|
|
11
15
|
export declare const INIT_ERROR: number;
|
|
12
16
|
export declare class LibUSBException extends Error {
|
|
13
17
|
errno: number;
|
package/dist/usb/index.js
CHANGED
|
@@ -22,6 +22,10 @@ Object.defineProperty(usb, 'pollHotplug', {
|
|
|
22
22
|
value: false,
|
|
23
23
|
writable: true
|
|
24
24
|
});
|
|
25
|
+
Object.defineProperty(usb, 'pollHotplugDelay', {
|
|
26
|
+
value: 500,
|
|
27
|
+
writable: true
|
|
28
|
+
});
|
|
25
29
|
Object.getOwnPropertyNames(device_1.ExtendedDevice.prototype).forEach(function (name) {
|
|
26
30
|
Object.defineProperty(usb.Device.prototype, name, Object.getOwnPropertyDescriptor(device_1.ExtendedDevice.prototype, name) || Object.create(null));
|
|
27
31
|
});
|
|
@@ -79,8 +83,10 @@ var pollHotplug = function (start) {
|
|
|
79
83
|
else {
|
|
80
84
|
emitHotplugEvents();
|
|
81
85
|
}
|
|
82
|
-
setTimeout(function () { return pollHotplug(); },
|
|
86
|
+
setTimeout(function () { return pollHotplug(); }, usb.pollHotplugDelay);
|
|
83
87
|
};
|
|
88
|
+
// Devices changed event handler
|
|
89
|
+
var devicesChanged = function () { return setTimeout(function () { return emitHotplugEvents(); }, usb.pollHotplugDelay); };
|
|
84
90
|
// Hotplug control
|
|
85
91
|
var hotplugSupported = 0;
|
|
86
92
|
var startHotplug = function () {
|
|
@@ -94,8 +100,8 @@ var startHotplug = function () {
|
|
|
94
100
|
usb._enableHotplugEvents();
|
|
95
101
|
if (hotplugSupported === 2) {
|
|
96
102
|
// Use hotplug ID events to trigger a change check
|
|
97
|
-
usb.on('attachIds',
|
|
98
|
-
usb.on('detachIds',
|
|
103
|
+
usb.on('attachIds', devicesChanged);
|
|
104
|
+
usb.on('detachIds', devicesChanged);
|
|
99
105
|
}
|
|
100
106
|
}
|
|
101
107
|
else {
|
|
@@ -109,8 +115,8 @@ var stopHotplug = function () {
|
|
|
109
115
|
usb._disableHotplugEvents();
|
|
110
116
|
if (hotplugSupported === 2) {
|
|
111
117
|
// Remove hotplug ID event listeners
|
|
112
|
-
usb.off('attachIds',
|
|
113
|
-
usb.off('detachIds',
|
|
118
|
+
usb.off('attachIds', devicesChanged);
|
|
119
|
+
usb.off('detachIds', devicesChanged);
|
|
114
120
|
}
|
|
115
121
|
}
|
|
116
122
|
else {
|
package/dist/usb/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../tsc/usb/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAsC;AACtC,mCAA0C;AAC1C,gCAAkC;AAElC,IAAI,GAAG,CAAC,UAAU,EAAE;IAChB,+BAA+B;IAC/B,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;CAChD;AAED,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,qBAAY,CAAC,SAAS,CAAC,CAAC;AACnD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE;IACtC,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,IAAI;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,mBAAmB,CAAC,uBAAc,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAA,IAAI;IAC7D,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,wBAAwB,CAAC,uBAAc,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9I,CAAC,CAAC,CAAC;AAoCH,sDAAsD;AACtD,IAAI,cAAc,GAAG,IAAI,GAAG,EAAc,CAAC;AAE3C,oIAAoI;AACpI,IAAM,iBAAiB,GAAG;;IACtB,0BAA0B;IAC1B,IAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;;QAE7C,wBAAwB;QACxB,KAAqB,IAAA,YAAA,SAAA,OAAO,CAAA,gCAAA,qDAAE;YAAzB,IAAM,MAAM,oBAAA;YACb,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAC7B,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aAC9B;SACJ;;;;;;;;;;QAED,wBAAwB;QACxB,KAAqB,IAAA,mBAAA,SAAA,cAAc,CAAA,8CAAA,0EAAE;YAAhC,IAAM,MAAM,2BAAA;YACb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBACtB,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;aAC9B;SACJ;;;;;;;;;IAED,cAAc,GAAG,OAAO,CAAC;AAC7B,CAAC,CAAC;AAEF,yFAAyF;AACzF,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,IAAM,WAAW,GAAG,UAAC,KAAa;IAAb,sBAAA,EAAA,aAAa;IAC9B,IAAI,KAAK,EAAE;QACP,cAAc,GAAG,IAAI,CAAC;KACzB;SAAM,IAAI,CAAC,cAAc,EAAE;QACxB,OAAO;KACV;SAAM;QACH,iBAAiB,EAAE,CAAC;KACvB;IAED,UAAU,CAAC,cAAM,OAAA,WAAW,EAAE,EAAb,CAAa,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../tsc/usb/index.ts"],"names":[],"mappings":"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"}
|
package/dist/webusb/index.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ export declare class WebUSB implements USB {
|
|
|
32
32
|
private options;
|
|
33
33
|
protected emitter: EventEmitter;
|
|
34
34
|
protected knownDevices: Map<usb.Device, WebUSBDevice>;
|
|
35
|
-
protected authorisedDevices: Set<
|
|
35
|
+
protected authorisedDevices: Set<USBDeviceFilter>;
|
|
36
36
|
constructor(options?: USBOptions);
|
|
37
37
|
private _onconnect;
|
|
38
38
|
set onconnect(fn: (ev: USBConnectionEvent) => void);
|
package/dist/webusb/index.js
CHANGED
|
@@ -275,7 +275,14 @@ var WebUSB = /** @class */ (function () {
|
|
|
275
275
|
if (!device) {
|
|
276
276
|
throw new NamedError('Failed to execute \'requestDevice\' on \'USB\': No device selected.', 'NotFoundError');
|
|
277
277
|
}
|
|
278
|
-
this.authorisedDevices.add(
|
|
278
|
+
this.authorisedDevices.add({
|
|
279
|
+
vendorId: device.vendorId,
|
|
280
|
+
productId: device.productId,
|
|
281
|
+
classCode: device.deviceClass,
|
|
282
|
+
subclassCode: device.deviceSubclass,
|
|
283
|
+
protocolCode: device.deviceProtocol,
|
|
284
|
+
serialNumber: device.serialNumber
|
|
285
|
+
});
|
|
279
286
|
return [2 /*return*/, device];
|
|
280
287
|
case 6:
|
|
281
288
|
error_1 = _b.sent();
|
|
@@ -458,7 +465,15 @@ var WebUSB = /** @class */ (function () {
|
|
|
458
465
|
if (this.options.allowedDevices && this.filterDevice(device, this.options.allowedDevices)) {
|
|
459
466
|
return true;
|
|
460
467
|
}
|
|
461
|
-
|
|
468
|
+
// Check authorised devices
|
|
469
|
+
return __spreadArray([], __read(this.authorisedDevices.values())).some(function (authorised) {
|
|
470
|
+
return authorised.vendorId === device.vendorId
|
|
471
|
+
&& authorised.productId === device.productId
|
|
472
|
+
&& authorised.classCode === device.deviceClass
|
|
473
|
+
&& authorised.subclassCode === device.deviceSubclass
|
|
474
|
+
&& authorised.protocolCode === device.deviceProtocol
|
|
475
|
+
&& authorised.serialNumber === device.serialNumber;
|
|
476
|
+
});
|
|
462
477
|
};
|
|
463
478
|
return WebUSB;
|
|
464
479
|
}());
|
package/dist/webusb/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../tsc/webusb/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4BAA8B;AAC9B,iCAAsC;AACtC,iDAA+C;AA2B/C;;GAEG;AACI,IAAM,SAAS,GAAG;IACrB,IAAI,SAAS,IAAI,SAAS,CAAC,GAAG,EAAE;QAC5B,OAAO,SAAS,CAAC,GAAG,CAAC;KACxB;IAED,OAAO,IAAI,MAAM,EAAE,CAAC;AACxB,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB;AAEF;IAAyB,8BAAK;IAC1B,oBAAmB,OAAe,EAAE,IAAY;QAAhD,YACI,kBAAM,OAAO,CAAC,SAEjB;QADG,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;;IACrB,CAAC;IACL,iBAAC;AAAD,CAAC,AALD,CAAyB,KAAK,GAK7B;AAED;IAMI,gBAAoB,OAAwB;QAA5C,iBA0DC;QA1DmB,wBAAA,EAAA,YAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;QAJlC,YAAO,GAAG,IAAI,qBAAY,EAAE,CAAC;QAC7B,iBAAY,GAAkC,IAAI,GAAG,EAAE,CAAC;QACxD,sBAAiB,GAAG,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../tsc/webusb/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "usb",
|
|
3
3
|
"description": "Library to access USB devices",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "2.8.
|
|
5
|
+
"version": "2.8.3",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"engines": {
|
|
8
8
|
"node": ">=10.20.0 <11.x || >=12.17.0 <13.0 || >=14.0.0"
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"postcompile": "eslint . --ext .ts",
|
|
44
44
|
"watch": "tsc -w --preserveWatchOutput",
|
|
45
45
|
"test": "mocha --require coffeescript/register --grep Module test/*",
|
|
46
|
-
"full-test": "mocha --require coffeescript/register test/*.coffee",
|
|
46
|
+
"full-test": "mocha --timeout 10000 --require coffeescript/register test/*.coffee",
|
|
47
47
|
"valgrind": "coffee -c test/*.coffee; valgrind --leak-check=full --show-possibly-lost=no node --expose-gc --trace-gc node_modules/mocha/bin/_mocha -R spec",
|
|
48
48
|
"docs": "typedoc",
|
|
49
49
|
"prebuild": "prebuildify --napi --strip",
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/src/hotplug/windows.cc
CHANGED
|
@@ -54,7 +54,7 @@ void extractVidPid(wchar_t *buf, int *vid, int *pid)
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
DWORD MyCMInterfaceNotification(HCMNOTIFICATION hNotify, PVOID Context, CM_NOTIFY_ACTION Action, PCM_NOTIFY_EVENT_DATA EventData, DWORD EventDataSize)
|
|
57
|
+
DWORD WINAPI MyCMInterfaceNotification(HCMNOTIFICATION hNotify, PVOID Context, CM_NOTIFY_ACTION Action, PCM_NOTIFY_EVENT_DATA EventData, DWORD EventDataSize)
|
|
58
58
|
{
|
|
59
59
|
switch (Action)
|
|
60
60
|
{
|
|
@@ -73,7 +73,7 @@ DWORD MyCMInterfaceNotification(HCMNOTIFICATION hNotify, PVOID Context, CM_NOTIF
|
|
|
73
73
|
default:
|
|
74
74
|
break;
|
|
75
75
|
}
|
|
76
|
-
return
|
|
76
|
+
return ERROR_SUCCESS;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
class HotPlugManagerWindows : public HotPlugManager
|
package/test/usb.coffee
CHANGED
|
@@ -41,10 +41,25 @@ describe 'findByIds', ->
|
|
|
41
41
|
assert.ok(dev, "Demo device is not attached")
|
|
42
42
|
|
|
43
43
|
describe 'findBySerialNumber', ->
|
|
44
|
-
it 'should return a single device
|
|
44
|
+
it 'should return a single device', ->
|
|
45
45
|
dev = findBySerialNumber('TEST_DEVICE')
|
|
46
46
|
assert.ok(dev, "Demo device is not attached")
|
|
47
47
|
|
|
48
|
+
describe 'Hotplug', ->
|
|
49
|
+
it 'should detect detach', (done) ->
|
|
50
|
+
usb.once 'detach', (d) ->
|
|
51
|
+
assert.equal(d.deviceDescriptor.idVendor, 0x59e3)
|
|
52
|
+
assert.equal(d.deviceDescriptor.idProduct, 0x0a23)
|
|
53
|
+
done()
|
|
54
|
+
console.log('\n--- DISCONNECT DEVICE ---\n')
|
|
55
|
+
|
|
56
|
+
it 'should detect attach', (done) ->
|
|
57
|
+
usb.once 'attach', (d) ->
|
|
58
|
+
assert.equal(d.deviceDescriptor.idVendor, 0x59e3)
|
|
59
|
+
assert.equal(d.deviceDescriptor.idProduct, 0x0a23)
|
|
60
|
+
done()
|
|
61
|
+
console.log('\n--- CONNECT DEVICE ---\n')
|
|
62
|
+
|
|
48
63
|
describe 'Device', ->
|
|
49
64
|
device = null
|
|
50
65
|
before ->
|
package/test/webusb.coffee
CHANGED
|
@@ -35,6 +35,23 @@ describe 'getDevices', ->
|
|
|
35
35
|
assert.notEqual(l[0], undefined)
|
|
36
36
|
assert.deepEqual(l[0], device)
|
|
37
37
|
|
|
38
|
+
describe 'WebUSB Hotplug', ->
|
|
39
|
+
it 'should detect disconnect', (done) ->
|
|
40
|
+
fn = (e) ->
|
|
41
|
+
assert.equal(e.device.serialNumber, "TEST_DEVICE")
|
|
42
|
+
webusb.removeEventListener 'disconnect', fn
|
|
43
|
+
done()
|
|
44
|
+
webusb.addEventListener 'disconnect', fn
|
|
45
|
+
console.log('\n--- DISCONNECT DEVICE ---\n')
|
|
46
|
+
|
|
47
|
+
it 'should detect connect', (done) ->
|
|
48
|
+
fn = (e) ->
|
|
49
|
+
assert.equal(e.device.serialNumber, "TEST_DEVICE")
|
|
50
|
+
webusb.removeEventListener 'connect', fn
|
|
51
|
+
done()
|
|
52
|
+
webusb.addEventListener 'connect', fn
|
|
53
|
+
console.log('\n--- CONNECT DEVICE ---\n')
|
|
54
|
+
|
|
38
55
|
describe 'Device properties', ->
|
|
39
56
|
device = null
|
|
40
57
|
before ->
|