usb 2.17.0 → 3.0.0-alpha.2
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/LICENSE +18 -4
- package/README.md +25 -516
- package/dist/index.d.ts +67 -13
- package/dist/index.js +333 -64
- package/index.d.ts +89 -0
- package/index.js +583 -0
- package/package.json +53 -33
- package/CHANGELOG.md +0 -294
- package/binding.gyp +0 -128
- package/dist/index.js.map +0 -1
- package/dist/usb/bindings.d.ts +0 -266
- package/dist/usb/bindings.js +0 -10
- package/dist/usb/bindings.js.map +0 -1
- package/dist/usb/capability.d.ts +0 -13
- package/dist/usb/capability.js +0 -17
- package/dist/usb/capability.js.map +0 -1
- package/dist/usb/descriptors.d.ts +0 -128
- package/dist/usb/descriptors.js +0 -3
- package/dist/usb/descriptors.js.map +0 -1
- package/dist/usb/device.d.ts +0 -100
- package/dist/usb/device.js +0 -297
- package/dist/usb/device.js.map +0 -1
- package/dist/usb/endpoint.d.ts +0 -94
- package/dist/usb/endpoint.js +0 -219
- package/dist/usb/endpoint.js.map +0 -1
- package/dist/usb/index.d.ts +0 -31
- package/dist/usb/index.js +0 -116
- package/dist/usb/index.js.map +0 -1
- package/dist/usb/interface.d.ts +0 -80
- package/dist/usb/interface.js +0 -133
- package/dist/usb/interface.js.map +0 -1
- package/dist/webusb/index.d.ts +0 -64
- package/dist/webusb/index.js +0 -295
- package/dist/webusb/index.js.map +0 -1
- package/dist/webusb/webusb-device.d.ts +0 -54
- package/dist/webusb/webusb-device.js +0 -434
- package/dist/webusb/webusb-device.js.map +0 -1
- package/libusb/.clang-tidy +0 -34
- package/libusb/.codespellrc +0 -3
- package/libusb/.private/README.txt +0 -5
- package/libusb/.private/appveyor_build.sh +0 -26
- package/libusb/.private/bm.sh +0 -54
- package/libusb/.private/ci-build.sh +0 -92
- package/libusb/.private/ci-container-build.sh +0 -67
- package/libusb/.private/post-rewrite.sh +0 -32
- package/libusb/.private/pre-commit.sh +0 -52
- package/libusb/.private/wbs.txt +0 -43
- package/libusb/.travis.yml +0 -58
- package/libusb/AUTHORS +0 -231
- package/libusb/COPYING +0 -504
- package/libusb/ChangeLog +0 -365
- package/libusb/HACKING +0 -25
- package/libusb/INSTALL_WIN.txt +0 -52
- package/libusb/KEYS +0 -123
- package/libusb/Makefile.am +0 -50
- package/libusb/NEWS +0 -2
- package/libusb/PORTING +0 -94
- package/libusb/README +0 -29
- package/libusb/README.git +0 -41
- package/libusb/TODO +0 -2
- package/libusb/Xcode/common.xcconfig +0 -92
- package/libusb/Xcode/config.h +0 -31
- package/libusb/Xcode/debug.xcconfig +0 -32
- package/libusb/Xcode/libusb.xcconfig +0 -21
- package/libusb/Xcode/libusb.xcodeproj/project.pbxproj +0 -1391
- package/libusb/Xcode/libusb_debug.xcconfig +0 -21
- package/libusb/Xcode/libusb_release.xcconfig +0 -21
- package/libusb/Xcode/release.xcconfig +0 -30
- package/libusb/android/README +0 -152
- package/libusb/android/config.h +0 -55
- package/libusb/android/examples/unrooted_android.c +0 -301
- package/libusb/android/examples/unrooted_android.h +0 -36
- package/libusb/android/jni/Android.mk +0 -23
- package/libusb/android/jni/Application.mk +0 -40
- package/libusb/android/jni/examples.mk +0 -168
- package/libusb/android/jni/libusb.mk +0 -60
- package/libusb/android/jni/tests.mk +0 -45
- package/libusb/appveyor.yml +0 -108
- package/libusb/autogen.sh +0 -10
- package/libusb/bootstrap.sh +0 -10
- package/libusb/configure.ac +0 -450
- package/libusb/doc/Makefile.in +0 -22
- package/libusb/doc/doxygen.cfg.in +0 -2571
- package/libusb/doc/libusb.png +0 -0
- package/libusb/examples/Makefile.am +0 -12
- package/libusb/examples/dpfp.c +0 -711
- package/libusb/examples/ezusb.c +0 -846
- package/libusb/examples/ezusb.h +0 -109
- package/libusb/examples/fxload.c +0 -310
- package/libusb/examples/hotplugtest.c +0 -147
- package/libusb/examples/listdevs.c +0 -73
- package/libusb/examples/sam3u_benchmark.c +0 -228
- package/libusb/examples/testlibusb.c +0 -312
- package/libusb/examples/xusb.c +0 -1254
- package/libusb/libusb/Makefile.am +0 -98
- package/libusb/libusb/Makefile.am.extra +0 -26
- package/libusb/libusb/core.c +0 -2925
- package/libusb/libusb/descriptor.c +0 -1558
- package/libusb/libusb/hotplug.c +0 -489
- package/libusb/libusb/io.c +0 -2865
- package/libusb/libusb/libusb-1.0.def +0 -199
- package/libusb/libusb/libusb-1.0.rc +0 -53
- package/libusb/libusb/libusb.h +0 -2421
- package/libusb/libusb/libusbi.h +0 -1535
- package/libusb/libusb/os/darwin_usb.c +0 -2977
- package/libusb/libusb/os/darwin_usb.h +0 -156
- package/libusb/libusb/os/emscripten_webusb.cpp +0 -875
- package/libusb/libusb/os/events_posix.c +0 -340
- package/libusb/libusb/os/events_posix.h +0 -62
- package/libusb/libusb/os/events_windows.c +0 -214
- package/libusb/libusb/os/events_windows.h +0 -46
- package/libusb/libusb/os/haiku_pollfs.cpp +0 -372
- package/libusb/libusb/os/haiku_usb.h +0 -113
- package/libusb/libusb/os/haiku_usb_backend.cpp +0 -532
- package/libusb/libusb/os/haiku_usb_raw.cpp +0 -231
- package/libusb/libusb/os/haiku_usb_raw.h +0 -188
- package/libusb/libusb/os/linux_netlink.c +0 -401
- package/libusb/libusb/os/linux_udev.c +0 -321
- package/libusb/libusb/os/linux_usbfs.c +0 -2829
- package/libusb/libusb/os/linux_usbfs.h +0 -221
- package/libusb/libusb/os/netbsd_usb.c +0 -617
- package/libusb/libusb/os/null_usb.c +0 -111
- package/libusb/libusb/os/openbsd_usb.c +0 -700
- package/libusb/libusb/os/sunos_usb.c +0 -1619
- package/libusb/libusb/os/sunos_usb.h +0 -79
- package/libusb/libusb/os/threads_posix.c +0 -126
- package/libusb/libusb/os/threads_posix.h +0 -98
- package/libusb/libusb/os/threads_windows.c +0 -40
- package/libusb/libusb/os/threads_windows.h +0 -113
- package/libusb/libusb/os/windows_common.c +0 -923
- package/libusb/libusb/os/windows_common.h +0 -424
- package/libusb/libusb/os/windows_usbdk.c +0 -724
- package/libusb/libusb/os/windows_usbdk.h +0 -106
- package/libusb/libusb/os/windows_winusb.c +0 -4766
- package/libusb/libusb/os/windows_winusb.h +0 -787
- package/libusb/libusb/strerror.c +0 -223
- package/libusb/libusb/sync.c +0 -342
- package/libusb/libusb/version.h +0 -18
- package/libusb/libusb/version_nano.h +0 -1
- package/libusb/libusb-1.0.pc.in +0 -11
- package/libusb/msvc/Base.props +0 -60
- package/libusb/msvc/Configuration.Application.props +0 -7
- package/libusb/msvc/Configuration.Base.props +0 -47
- package/libusb/msvc/Configuration.DynamicLibrary.props +0 -21
- package/libusb/msvc/Configuration.StaticLibrary.props +0 -7
- package/libusb/msvc/ProjectConfigurations.Base.props +0 -69
- package/libusb/msvc/build_all.ps1 +0 -17
- package/libusb/msvc/config.h +0 -58
- package/libusb/msvc/dpfp.vcxproj +0 -33
- package/libusb/msvc/dpfp_threaded.vcxproj +0 -38
- package/libusb/msvc/fxload.vcxproj +0 -46
- package/libusb/msvc/getopt/getopt.c +0 -1060
- package/libusb/msvc/getopt/getopt.h +0 -180
- package/libusb/msvc/getopt/getopt1.c +0 -188
- package/libusb/msvc/getopt.vcxproj +0 -33
- package/libusb/msvc/hotplugtest.vcxproj +0 -32
- package/libusb/msvc/init_context.vcxproj +0 -35
- package/libusb/msvc/libusb.sln +0 -542
- package/libusb/msvc/libusb_dll.vcxproj +0 -61
- package/libusb/msvc/libusb_static.vcxproj +0 -49
- package/libusb/msvc/listdevs.vcxproj +0 -32
- package/libusb/msvc/sam3u_benchmark.vcxproj +0 -33
- package/libusb/msvc/set_option.vcxproj +0 -35
- package/libusb/msvc/stress.vcxproj +0 -35
- package/libusb/msvc/stress_mt.vcxproj +0 -33
- package/libusb/msvc/testlibusb.vcxproj +0 -32
- package/libusb/msvc/xusb.vcxproj +0 -38
- package/libusb/tests/Makefile.am +0 -40
- package/libusb/tests/init_context.c +0 -153
- package/libusb/tests/libusb_testlib.h +0 -76
- package/libusb/tests/macos.c +0 -130
- package/libusb/tests/set_option.c +0 -253
- package/libusb/tests/stress.c +0 -172
- package/libusb/tests/stress_mt.c +0 -267
- package/libusb/tests/testlib.c +0 -184
- package/libusb/tests/umockdev.c +0 -1175
- package/libusb/tests/webusb-test-shim/index.js +0 -12
- package/libusb/tests/webusb-test-shim/package-lock.json +0 -50
- package/libusb/tests/webusb-test-shim/package.json +0 -10
- package/libusb.gypi +0 -154
- package/libusb_config/config.h +0 -1
- package/prebuilds/android-arm/node.napi.armv7.node +0 -0
- package/prebuilds/android-arm64/node.napi.armv8.node +0 -0
- package/prebuilds/darwin-x64+arm64/node.napi.node +0 -0
- package/prebuilds/linux-arm/node.napi.armv6.node +0 -0
- package/prebuilds/linux-arm/node.napi.armv7.node +0 -0
- package/prebuilds/linux-arm64/node.napi.armv8.node +0 -0
- package/prebuilds/linux-ia32/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.glibc.node +0 -0
- package/prebuilds/linux-x64/node.napi.musl.node +0 -0
- package/prebuilds/win32-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/device.cc +0 -439
- package/src/helpers.h +0 -64
- package/src/hotplug/hotplug.h +0 -22
- package/src/hotplug/libusb.cc +0 -90
- package/src/hotplug/windows.cc +0 -168
- package/src/node_usb.cc +0 -314
- package/src/node_usb.h +0 -131
- package/src/thread_name.cc +0 -79
- package/src/thread_name.h +0 -11
- package/src/transfer.cc +0 -143
- package/src/uv_async_queue.h +0 -41
- package/test/usb.coffee +0 -250
- package/test/webusb.coffee +0 -227
- package/test/worker.cjs +0 -13
package/dist/webusb/index.js
DELETED
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WebUSB = exports.getWebUsb = void 0;
|
|
4
|
-
const usb = require("../usb");
|
|
5
|
-
const events_1 = require("events");
|
|
6
|
-
const webusb_device_1 = require("./webusb-device");
|
|
7
|
-
/**
|
|
8
|
-
* Convenience method to get the WebUSB interface available
|
|
9
|
-
*/
|
|
10
|
-
const getWebUsb = () => {
|
|
11
|
-
if (navigator && navigator.usb) {
|
|
12
|
-
return navigator.usb;
|
|
13
|
-
}
|
|
14
|
-
return new WebUSB();
|
|
15
|
-
};
|
|
16
|
-
exports.getWebUsb = getWebUsb;
|
|
17
|
-
class NamedError extends Error {
|
|
18
|
-
constructor(message, name) {
|
|
19
|
-
super(message);
|
|
20
|
-
this.name = name;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
class WebUSB {
|
|
24
|
-
constructor(options = {}) {
|
|
25
|
-
this.options = options;
|
|
26
|
-
this.emitter = new events_1.EventEmitter();
|
|
27
|
-
this.knownDevices = new Map();
|
|
28
|
-
this.authorisedDevices = new Set();
|
|
29
|
-
const deviceConnectCallback = async (device) => {
|
|
30
|
-
const webDevice = await this.getWebDevice(device);
|
|
31
|
-
// When connected, emit an event if it is an allowed device
|
|
32
|
-
if (webDevice && this.isAuthorisedDevice(webDevice)) {
|
|
33
|
-
const event = {
|
|
34
|
-
type: 'connect',
|
|
35
|
-
device: webDevice
|
|
36
|
-
};
|
|
37
|
-
this.emitter.emit('connect', event);
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
const deviceDisconnectCallback = async (device) => {
|
|
41
|
-
// When disconnected, emit an event if the device was a known allowed device
|
|
42
|
-
if (this.knownDevices.has(device)) {
|
|
43
|
-
const webDevice = this.knownDevices.get(device);
|
|
44
|
-
if (webDevice && this.isAuthorisedDevice(webDevice)) {
|
|
45
|
-
const event = {
|
|
46
|
-
type: 'disconnect',
|
|
47
|
-
device: webDevice
|
|
48
|
-
};
|
|
49
|
-
this.emitter.emit('disconnect', event);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
this.emitter.on('newListener', event => {
|
|
54
|
-
const listenerCount = this.emitter.listenerCount(event);
|
|
55
|
-
if (listenerCount !== 0) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
if (event === 'connect') {
|
|
59
|
-
usb.addListener('attach', deviceConnectCallback);
|
|
60
|
-
}
|
|
61
|
-
else if (event === 'disconnect') {
|
|
62
|
-
usb.addListener('detach', deviceDisconnectCallback);
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
this.emitter.on('removeListener', event => {
|
|
66
|
-
const listenerCount = this.emitter.listenerCount(event);
|
|
67
|
-
if (listenerCount !== 0) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
if (event === 'connect') {
|
|
71
|
-
usb.removeListener('attach', deviceConnectCallback);
|
|
72
|
-
}
|
|
73
|
-
else if (event === 'disconnect') {
|
|
74
|
-
usb.removeListener('detach', deviceDisconnectCallback);
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
set onconnect(fn) {
|
|
79
|
-
if (this._onconnect) {
|
|
80
|
-
this.removeEventListener('connect', this._onconnect);
|
|
81
|
-
this._onconnect = undefined;
|
|
82
|
-
}
|
|
83
|
-
if (fn) {
|
|
84
|
-
this._onconnect = fn;
|
|
85
|
-
this.addEventListener('connect', this._onconnect);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
set ondisconnect(fn) {
|
|
89
|
-
if (this._ondisconnect) {
|
|
90
|
-
this.removeEventListener('disconnect', this._ondisconnect);
|
|
91
|
-
this._ondisconnect = undefined;
|
|
92
|
-
}
|
|
93
|
-
if (fn) {
|
|
94
|
-
this._ondisconnect = fn;
|
|
95
|
-
this.addEventListener('disconnect', this._ondisconnect);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
addEventListener(type, listener) {
|
|
99
|
-
this.emitter.addListener(type, listener);
|
|
100
|
-
}
|
|
101
|
-
removeEventListener(type, callback) {
|
|
102
|
-
this.emitter.removeListener(type, callback);
|
|
103
|
-
}
|
|
104
|
-
dispatchEvent(_event) {
|
|
105
|
-
// Don't dispatch from here
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Requests a single Web USB device
|
|
110
|
-
* @param options The options to use when scanning
|
|
111
|
-
* @returns Promise containing the selected device
|
|
112
|
-
*/
|
|
113
|
-
async requestDevice(options) {
|
|
114
|
-
// Must have options
|
|
115
|
-
if (!options) {
|
|
116
|
-
throw new TypeError('requestDevice error: 1 argument required, but only 0 present');
|
|
117
|
-
}
|
|
118
|
-
// Options must be an object
|
|
119
|
-
if (options.constructor !== {}.constructor) {
|
|
120
|
-
throw new TypeError('requestDevice error: parameter 1 (options) is not an object');
|
|
121
|
-
}
|
|
122
|
-
// Must have a filter
|
|
123
|
-
if (!options.filters) {
|
|
124
|
-
throw new TypeError('requestDevice error: required member filters is undefined');
|
|
125
|
-
}
|
|
126
|
-
// Filter must be an array
|
|
127
|
-
if (options.filters.constructor !== [].constructor) {
|
|
128
|
-
throw new TypeError('requestDevice error: the provided value cannot be converted to a sequence');
|
|
129
|
-
}
|
|
130
|
-
// Check filters
|
|
131
|
-
options.filters.forEach(filter => {
|
|
132
|
-
// Protocol & Subclass
|
|
133
|
-
if (filter.protocolCode && !filter.subclassCode) {
|
|
134
|
-
throw new TypeError('requestDevice error: subclass code is required');
|
|
135
|
-
}
|
|
136
|
-
// Subclass & Class
|
|
137
|
-
if (filter.subclassCode && !filter.classCode) {
|
|
138
|
-
throw new TypeError('requestDevice error: class code is required');
|
|
139
|
-
}
|
|
140
|
-
});
|
|
141
|
-
let devices = await this.loadDevices(options.filters);
|
|
142
|
-
devices = devices.filter(device => this.filterDevice(device, options.filters));
|
|
143
|
-
if (devices.length === 0) {
|
|
144
|
-
throw new NamedError('Failed to execute \'requestDevice\' on \'USB\': No device selected.', 'NotFoundError');
|
|
145
|
-
}
|
|
146
|
-
try {
|
|
147
|
-
// If no devicesFound function, select the first device found
|
|
148
|
-
const device = this.options.devicesFound ? await this.options.devicesFound(devices) : devices[0];
|
|
149
|
-
if (!device) {
|
|
150
|
-
throw new NamedError('Failed to execute \'requestDevice\' on \'USB\': No device selected.', 'NotFoundError');
|
|
151
|
-
}
|
|
152
|
-
this.authorisedDevices.add({
|
|
153
|
-
vendorId: device.vendorId,
|
|
154
|
-
productId: device.productId,
|
|
155
|
-
classCode: device.deviceClass,
|
|
156
|
-
subclassCode: device.deviceSubclass,
|
|
157
|
-
protocolCode: device.deviceProtocol,
|
|
158
|
-
serialNumber: device.serialNumber || undefined
|
|
159
|
-
});
|
|
160
|
-
return device;
|
|
161
|
-
}
|
|
162
|
-
catch (error) {
|
|
163
|
-
throw new NamedError('Failed to execute \'requestDevice\' on \'USB\': No device selected.', 'NotFoundError');
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Gets all allowed Web USB devices which are connected
|
|
168
|
-
* @returns Promise containing an array of devices
|
|
169
|
-
*/
|
|
170
|
-
async getDevices() {
|
|
171
|
-
const preFilters = this.options.allowAllDevices ? undefined : this.options.allowedDevices;
|
|
172
|
-
// Refresh devices and filter for allowed ones
|
|
173
|
-
const devices = await this.loadDevices(preFilters);
|
|
174
|
-
return devices.filter(device => this.isAuthorisedDevice(device));
|
|
175
|
-
}
|
|
176
|
-
async loadDevices(preFilters) {
|
|
177
|
-
let devices = usb.getDeviceList();
|
|
178
|
-
// Pre-filter devices
|
|
179
|
-
devices = this.quickFilter(devices, preFilters);
|
|
180
|
-
const refreshedKnownDevices = new Map();
|
|
181
|
-
for (const device of devices) {
|
|
182
|
-
const webDevice = await this.getWebDevice(device);
|
|
183
|
-
if (webDevice) {
|
|
184
|
-
refreshedKnownDevices.set(device, webDevice);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
// Refresh knownDevices to remove old devices from the map
|
|
188
|
-
this.knownDevices = refreshedKnownDevices;
|
|
189
|
-
return [...this.knownDevices.values()];
|
|
190
|
-
}
|
|
191
|
-
// Get a WebUSBDevice corresponding to underlying device.
|
|
192
|
-
// Returns undefined the device was not found and could not be created.
|
|
193
|
-
async getWebDevice(device) {
|
|
194
|
-
if (!this.knownDevices.has(device)) {
|
|
195
|
-
if (this.options.deviceTimeout) {
|
|
196
|
-
device.timeout = this.options.deviceTimeout;
|
|
197
|
-
}
|
|
198
|
-
try {
|
|
199
|
-
const webDevice = await webusb_device_1.WebUSBDevice.createInstance(device, this.options.autoDetachKernelDriver);
|
|
200
|
-
this.knownDevices.set(device, webDevice);
|
|
201
|
-
}
|
|
202
|
-
catch {
|
|
203
|
-
// Ignore creation issues as this may be a system device
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
return this.knownDevices.get(device);
|
|
207
|
-
}
|
|
208
|
-
// Undertake quick filter on devices before creating WebUSB devices if possible
|
|
209
|
-
quickFilter(devices, preFilters) {
|
|
210
|
-
if (!preFilters || !preFilters.length) {
|
|
211
|
-
return devices;
|
|
212
|
-
}
|
|
213
|
-
// Just pre-filter on vid/pid
|
|
214
|
-
return devices.filter(device => preFilters.some(filter => {
|
|
215
|
-
// Vendor
|
|
216
|
-
if (filter.vendorId && filter.vendorId !== device.deviceDescriptor.idVendor)
|
|
217
|
-
return false;
|
|
218
|
-
// Product
|
|
219
|
-
if (filter.productId && filter.productId !== device.deviceDescriptor.idProduct)
|
|
220
|
-
return false;
|
|
221
|
-
// Ignore Class, Subclass and Protocol as these need to check interfaces, too
|
|
222
|
-
// Ignore serial number for node-usb as it requires device connection
|
|
223
|
-
return true;
|
|
224
|
-
}));
|
|
225
|
-
}
|
|
226
|
-
// Filter WebUSB devices
|
|
227
|
-
filterDevice(device, filters) {
|
|
228
|
-
if (!filters || !filters.length) {
|
|
229
|
-
return true;
|
|
230
|
-
}
|
|
231
|
-
return filters.some(filter => {
|
|
232
|
-
// Vendor
|
|
233
|
-
if (filter.vendorId && filter.vendorId !== device.vendorId)
|
|
234
|
-
return false;
|
|
235
|
-
// Product
|
|
236
|
-
if (filter.productId && filter.productId !== device.productId)
|
|
237
|
-
return false;
|
|
238
|
-
// Class
|
|
239
|
-
if (filter.classCode) {
|
|
240
|
-
if (!device.configuration) {
|
|
241
|
-
return false;
|
|
242
|
-
}
|
|
243
|
-
// Interface Descriptors
|
|
244
|
-
const match = device.configuration.interfaces.some(iface => {
|
|
245
|
-
// Class
|
|
246
|
-
if (filter.classCode && filter.classCode !== iface.alternate.interfaceClass)
|
|
247
|
-
return false;
|
|
248
|
-
// Subclass
|
|
249
|
-
if (filter.subclassCode && filter.subclassCode !== iface.alternate.interfaceSubclass)
|
|
250
|
-
return false;
|
|
251
|
-
// Protocol
|
|
252
|
-
if (filter.protocolCode && filter.protocolCode !== iface.alternate.interfaceProtocol)
|
|
253
|
-
return false;
|
|
254
|
-
return true;
|
|
255
|
-
});
|
|
256
|
-
if (match) {
|
|
257
|
-
return true;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
// Class
|
|
261
|
-
if (filter.classCode && filter.classCode !== device.deviceClass)
|
|
262
|
-
return false;
|
|
263
|
-
// Subclass
|
|
264
|
-
if (filter.subclassCode && filter.subclassCode !== device.deviceSubclass)
|
|
265
|
-
return false;
|
|
266
|
-
// Protocol
|
|
267
|
-
if (filter.protocolCode && filter.protocolCode !== device.deviceProtocol)
|
|
268
|
-
return false;
|
|
269
|
-
// Serial
|
|
270
|
-
if (filter.serialNumber && filter.serialNumber !== device.serialNumber)
|
|
271
|
-
return false;
|
|
272
|
-
return true;
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
// Check whether a device is authorised
|
|
276
|
-
isAuthorisedDevice(device) {
|
|
277
|
-
// All devices are authorised
|
|
278
|
-
if (this.options.allowAllDevices) {
|
|
279
|
-
return true;
|
|
280
|
-
}
|
|
281
|
-
// Check any allowed device filters
|
|
282
|
-
if (this.options.allowedDevices && this.filterDevice(device, this.options.allowedDevices)) {
|
|
283
|
-
return true;
|
|
284
|
-
}
|
|
285
|
-
// Check authorised devices
|
|
286
|
-
return [...this.authorisedDevices.values()].some(authorised => authorised.vendorId === device.vendorId
|
|
287
|
-
&& authorised.productId === device.productId
|
|
288
|
-
&& authorised.classCode === device.deviceClass
|
|
289
|
-
&& authorised.subclassCode === device.deviceSubclass
|
|
290
|
-
&& authorised.protocolCode === device.deviceProtocol
|
|
291
|
-
&& authorised.serialNumber === device.serialNumber);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
exports.WebUSB = WebUSB;
|
|
295
|
-
//# sourceMappingURL=index.js.map
|
package/dist/webusb/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../tsc/webusb/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import * as usb from '../usb';
|
|
2
|
-
/**
|
|
3
|
-
* Wrapper to make a node-usb device look like a webusb device
|
|
4
|
-
*/
|
|
5
|
-
export declare class WebUSBDevice implements USBDevice {
|
|
6
|
-
private device;
|
|
7
|
-
private autoDetachKernelDriver;
|
|
8
|
-
static createInstance(device: usb.Device, autoDetachKernelDriver?: boolean): Promise<WebUSBDevice>;
|
|
9
|
-
readonly usbVersionMajor: number;
|
|
10
|
-
readonly usbVersionMinor: number;
|
|
11
|
-
readonly usbVersionSubminor: number;
|
|
12
|
-
readonly deviceClass: number;
|
|
13
|
-
readonly deviceSubclass: number;
|
|
14
|
-
readonly deviceProtocol: number;
|
|
15
|
-
readonly vendorId: number;
|
|
16
|
-
readonly productId: number;
|
|
17
|
-
readonly deviceVersionMajor: number;
|
|
18
|
-
readonly deviceVersionMinor: number;
|
|
19
|
-
readonly deviceVersionSubminor: number;
|
|
20
|
-
manufacturerName: string | null;
|
|
21
|
-
productName: string | null;
|
|
22
|
-
serialNumber: string | null;
|
|
23
|
-
configurations: USBConfiguration[];
|
|
24
|
-
private controlTransferAsync;
|
|
25
|
-
private setConfigurationAsync;
|
|
26
|
-
private resetAsync;
|
|
27
|
-
private getStringDescriptorAsync;
|
|
28
|
-
private constructor();
|
|
29
|
-
get configuration(): USBConfiguration | null;
|
|
30
|
-
get opened(): boolean;
|
|
31
|
-
open(): Promise<void>;
|
|
32
|
-
close(): Promise<void>;
|
|
33
|
-
selectConfiguration(configurationValue: number): Promise<void>;
|
|
34
|
-
claimInterface(interfaceNumber: number): Promise<void>;
|
|
35
|
-
releaseInterface(interfaceNumber: number): Promise<void>;
|
|
36
|
-
selectAlternateInterface(interfaceNumber: number, alternateSetting: number): Promise<void>;
|
|
37
|
-
controlTransferIn(setup: USBControlTransferParameters, length: number): Promise<USBInTransferResult>;
|
|
38
|
-
controlTransferOut(setup: USBControlTransferParameters, data?: ArrayBuffer): Promise<USBOutTransferResult>;
|
|
39
|
-
clearHalt(direction: USBDirection, endpointNumber: number): Promise<void>;
|
|
40
|
-
transferIn(endpointNumber: number, length: number): Promise<USBInTransferResult>;
|
|
41
|
-
transferOut(endpointNumber: number, data: ArrayBuffer): Promise<USBOutTransferResult>;
|
|
42
|
-
reset(): Promise<void>;
|
|
43
|
-
isochronousTransferIn(_endpointNumber: number, _packetLengths: number[]): Promise<USBIsochronousInTransferResult>;
|
|
44
|
-
isochronousTransferOut(_endpointNumber: number, _data: BufferSource, _packetLengths: number[]): Promise<USBIsochronousOutTransferResult>;
|
|
45
|
-
forget(): Promise<void>;
|
|
46
|
-
private initialize;
|
|
47
|
-
private decodeVersion;
|
|
48
|
-
private getStringDescriptor;
|
|
49
|
-
private getConfigurations;
|
|
50
|
-
private getEndpoint;
|
|
51
|
-
private controlTransferParamsToType;
|
|
52
|
-
private _releaseInterface;
|
|
53
|
-
private checkDeviceOpen;
|
|
54
|
-
}
|