usb 2.8.1 → 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 CHANGED
@@ -1,5 +1,16 @@
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
+
9
+ ## [2.8.2] - 2023-03-06
10
+
11
+ ### Added
12
+ - Added new `usb.pollHotplug` setting to allow users to force hotplug detection using polling - [`576`](https://github.com/node-usb/node-usb/pull/576) ([Rob Moran](https://github.com/thegecko))
13
+
3
14
  ## [2.8.1] - 2023-02-26
4
15
 
5
16
  ### Changed
package/README.md CHANGED
@@ -290,6 +290,12 @@ Legacy usb object.
290
290
  #### usb.LIBUSB_*
291
291
  Constant properties from libusb
292
292
 
293
+ #### usb.getDeviceList()
294
+ Return a list of legacy `Device` objects for the USB devices attached to the system.
295
+
296
+ #### usb.pollHotplug
297
+ Force polling loop for hotplug events.
298
+
293
299
  #### usb.setDebugLevel(level : int)
294
300
  Set the libusb debug level (between 0 and 4)
295
301
 
@@ -4,6 +4,14 @@ import type { DeviceDescriptor, ConfigDescriptor, BosDescriptor } from './descri
4
4
  * Return a list of `Device` objects for the USB devices attached to the system.
5
5
  */
6
6
  export declare function getDeviceList(): Device[];
7
+ /**
8
+ * Force polling loop for hotplug events
9
+ */
10
+ export declare let pollHotplug: boolean;
11
+ /**
12
+ * Hotplug polling loop delay (ms)
13
+ */
14
+ export declare let pollHotplugDelay: number;
7
15
  export declare const INIT_ERROR: number;
8
16
  export declare class LibUSBException extends Error {
9
17
  errno: number;
package/dist/usb/index.js CHANGED
@@ -18,14 +18,20 @@ if (usb.INIT_ERROR) {
18
18
  console.warn('Failed to initialize libusb.');
19
19
  }
20
20
  Object.setPrototypeOf(usb, events_1.EventEmitter.prototype);
21
+ Object.defineProperty(usb, 'pollHotplug', {
22
+ value: false,
23
+ writable: true
24
+ });
25
+ Object.defineProperty(usb, 'pollHotplugDelay', {
26
+ value: 500,
27
+ writable: true
28
+ });
21
29
  Object.getOwnPropertyNames(device_1.ExtendedDevice.prototype).forEach(function (name) {
22
30
  Object.defineProperty(usb.Device.prototype, name, Object.getOwnPropertyDescriptor(device_1.ExtendedDevice.prototype, name) || Object.create(null));
23
31
  });
24
- // Hotplug support
25
- var hotplugSupported = usb._supportedHotplugEvents();
26
32
  // Devices delta support for non-libusb hotplug events
27
- // This methd needs to be used for attach/detach IDs (hotplugSupportType === 2) rather than a lookup because vid/pid are not unique
28
33
  var hotPlugDevices = new Set();
34
+ // This method needs to be used for attach/detach IDs (hotplugSupportType === 2) rather than a lookup because vid/pid are not unique
29
35
  var emitHotplugEvents = function () {
30
36
  var e_1, _a, e_2, _b;
31
37
  // Collect current devices
@@ -77,10 +83,14 @@ var pollHotplug = function (start) {
77
83
  else {
78
84
  emitHotplugEvents();
79
85
  }
80
- setTimeout(function () { return pollHotplug(); }, 500);
86
+ setTimeout(function () { return pollHotplug(); }, usb.pollHotplugDelay);
81
87
  };
88
+ // Devices changed event handler
89
+ var devicesChanged = function () { return setTimeout(function () { return emitHotplugEvents(); }, usb.pollHotplugDelay); };
82
90
  // Hotplug control
91
+ var hotplugSupported = 0;
83
92
  var startHotplug = function () {
93
+ hotplugSupported = usb.pollHotplug ? 0 : usb._supportedHotplugEvents();
84
94
  if (hotplugSupported !== 1) {
85
95
  // Collect initial devices when not using libusb
86
96
  hotPlugDevices = new Set(usb.getDeviceList());
@@ -90,8 +100,8 @@ var startHotplug = function () {
90
100
  usb._enableHotplugEvents();
91
101
  if (hotplugSupported === 2) {
92
102
  // Use hotplug ID events to trigger a change check
93
- usb.on('attachIds', emitHotplugEvents);
94
- usb.on('detachIds', emitHotplugEvents);
103
+ usb.on('attachIds', devicesChanged);
104
+ usb.on('detachIds', devicesChanged);
95
105
  }
96
106
  }
97
107
  else {
@@ -105,8 +115,8 @@ var stopHotplug = function () {
105
115
  usb._disableHotplugEvents();
106
116
  if (hotplugSupported === 2) {
107
117
  // Remove hotplug ID event listeners
108
- usb.off('attachIds', emitHotplugEvents);
109
- usb.off('detachIds', emitHotplugEvents);
118
+ usb.off('attachIds', devicesChanged);
119
+ usb.off('detachIds', devicesChanged);
110
120
  }
111
121
  }
112
122
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../tsc/usb/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../tsc/usb/index.ts"],"names":[],"mappings":"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"}
@@ -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<USBDevice>;
35
+ protected authorisedDevices: Set<USBDeviceFilter>;
36
36
  constructor(options?: USBOptions);
37
37
  private _onconnect;
38
38
  set onconnect(fn: (ev: USBConnectionEvent) => void);
@@ -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(device);
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
- return this.authorisedDevices.has(device);
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
  }());
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../tsc/webusb/index.ts"],"names":[],"mappings":"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"}
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.1",
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
@@ -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 0;
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 ->
@@ -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 ->