@yume-chan/adb-daemon-webusb 0.0.20 → 0.0.22

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.json CHANGED
@@ -1,6 +1,30 @@
1
1
  {
2
2
  "name": "@yume-chan/adb-daemon-webusb",
3
3
  "entries": [
4
+ {
5
+ "version": "0.0.22",
6
+ "tag": "@yume-chan/adb-daemon-webusb_v0.0.22",
7
+ "date": "Wed, 13 Dec 2023 05:57:27 GMT",
8
+ "comments": {
9
+ "none": [
10
+ {
11
+ "comment": "Check incoming packet size to prevent Chrome from crashing"
12
+ },
13
+ {
14
+ "comment": "Add `exclusionFilters` option to `AdbDaemonWebUsbDeviceManager#requestDevice` method"
15
+ },
16
+ {
17
+ "comment": "`AdbDaemonWebUsbDevice` will generate a fake serial number from vid and pid if the device serial number is empty"
18
+ }
19
+ ]
20
+ }
21
+ },
22
+ {
23
+ "version": "0.0.21",
24
+ "tag": "@yume-chan/adb-daemon-webusb_v0.0.21",
25
+ "date": "Fri, 25 Aug 2023 14:05:18 GMT",
26
+ "comments": {}
27
+ },
4
28
  {
5
29
  "version": "0.0.20",
6
30
  "tag": "@yume-chan/adb-daemon-webusb_v0.0.20",
package/CHANGELOG.md CHANGED
@@ -1,6 +1,20 @@
1
1
  # Change Log - @yume-chan/adb-daemon-webusb
2
2
 
3
- This log was last generated on Mon, 05 Jun 2023 02:51:41 GMT and should not be manually modified.
3
+ This log was last generated on Wed, 13 Dec 2023 05:57:27 GMT and should not be manually modified.
4
+
5
+ ## 0.0.22
6
+ Wed, 13 Dec 2023 05:57:27 GMT
7
+
8
+ ### Updates
9
+
10
+ - Check incoming packet size to prevent Chrome from crashing
11
+ - Add `exclusionFilters` option to `AdbDaemonWebUsbDeviceManager#requestDevice` method
12
+ - `AdbDaemonWebUsbDevice` will generate a fake serial number from vid and pid if the device serial number is empty
13
+
14
+ ## 0.0.21
15
+ Fri, 25 Aug 2023 14:05:18 GMT
16
+
17
+ _Version update only_
4
18
 
5
19
  ## 0.0.20
6
20
  Mon, 05 Jun 2023 02:51:41 GMT
package/README.md CHANGED
@@ -1,130 +1,46 @@
1
- # @yume-chan/adb-daemon-webusb
2
-
3
- ADB daemon transport device for `@yume-chan/adb` using WebUSB ([MDN](https://developer.mozilla.org/en-US/docs/Web/API/USB), [Spec](https://wicg.github.io/webusb)) API.
4
-
5
- - [Use in browser](#use-in-browser)
6
- - [Use in Node.js](#use-in-nodejs)
7
- - [`AdbDaemonWebUsbDevice`](#adbdaemonwebusbdevice)
8
- - [constructor](#constructor)
9
- - [`raw`](#raw)
10
- - [`connect`](#connect)
11
- - [`AdbDaemonWebUsbDeviceManager`](#adbdaemonwebusbdevicemanager)
12
- - [`BROWSER`](#browser)
13
- - [constructor](#constructor-1)
14
- - [`requestDevice`](#requestdevice)
15
- - [`getDevices`](#getdevices)
16
- - [Note on secure context](#note-on-secure-context)
17
-
18
- ## Use in browser
19
-
20
- | Chrome | Edge | Firefox | Internet Explorer | Safari |
21
- | -------------- | -------------- | ------- | ----------------- | ------ |
22
- | 61<sup>1</sup> | 79<sup>1</sup> | No | No | No |
23
-
24
- <sup>1</sup>: Chrome for Android is supported, Chrome for iOS is NOT supported.
25
-
26
- ## Use in Node.js
27
-
28
- | Node.js | `usb` NPM Package |
29
- | ------- | ----------------- |
30
- | 10.5 | 2.8.1 |
31
-
32
- Node.js doesn't have native support for WebUSB API, but the [`usb`](https://www.npmjs.com/package/usb) NPM package provides a WebUSB compatible API.
33
-
34
- To use a custom WebUSB API implementation, pass it to the constructor of `AdbDaemonWebUsbDevice`, `AdbDaemonWebUsbDeviceManager` and `AdbDaemonWebUsbConnectionWatcher` via the `usbManager` parameter.
35
-
36
- ## `AdbDaemonWebUsbDevice`
37
-
38
- ### constructor
39
-
40
- ```ts
41
- public constructor(
42
- device: USBDevice,
43
- filters: AdbDeviceFilter[] = [ADB_DEFAULT_DEVICE_FILTER]
44
- usbManager: USB
45
- );
46
- ```
47
-
48
- Create a new instance of `AdbDaemonWebUsbDevice` using a specified `USBDevice` instance.
49
-
50
- `USBDevice` and `USB` types are from WebUSB API.
51
-
52
- The `filters` parameter specifies the `classCode`, `subclassCode` and `protocolCode` to use when searching for ADB interface. The default value is `[{ classCode: 0xff, subclassCode: 0x42, protocolCode: 0x1 }]`, defined by Google.
53
-
54
- ### `raw`
55
-
56
- ```ts
57
- public get raw(): USBDevice;
58
- ```
59
-
60
- Gets the raw `USBDevice` from the device. Allow sending/receiving USB packets to other interfaces/endpoints. For example can be used with `@yume-chan/aoa` package.
61
-
62
- ### `connect`
63
-
64
- ```ts
65
- public async connect(): Promise<
66
- ReadableWritablePair<AdbPacketData, Consumable<AdbPacketInit>>
67
- >
68
- ```
69
-
70
- Claim the device and create a pair of `AdbPacket` streams to the ADB interface.
71
-
72
- ## `AdbDaemonWebUsbDeviceManager`
73
-
74
- A helper class that wraps the WebUSB API.
75
-
76
- ### `BROWSER`
77
-
78
- ```ts
79
- public static readonly BROWSER: AdbDaemonWebUsbDeviceManager | undefined;
80
- ```
81
-
82
- Gets the instance of `AdbDaemonWebUsbDeviceManager` using browser WebUSB implementation.
83
-
84
- May be `undefined` if the browser does not support WebUSB.
85
-
86
- ### constructor
87
-
88
- ```ts
89
- public constructor(usbManager: USB);
90
- ```
91
-
92
- Create a new instance of `AdbDaemonWebUsbDeviceManager` using the specified WebUSB API implementation.
93
-
94
- ### `requestDevice`
95
-
96
- ```ts
97
- public async requestDevice(
98
- filters: AdbDeviceFilter[] = [ADB_DEFAULT_DEVICE_FILTER]
99
- ): Promise<AdbDaemonWebUsbDevice | undefined>
100
- ```
101
-
102
- Request access to a connected device.
103
- This is a convince method for `usb.requestDevice()`.
104
-
105
- The `filters` parameter must have `classCode`, `subclassCode` and `protocolCode` fields for selecting the ADB interface. It can also have `vendorId`, `productId` or `serialNumber` fields to limit the displayed device list.
106
-
107
- Returns an `AdbDaemonWebUsbDevice` instance, or `undefined` if the user cancelled the picker.
108
-
109
- ### `getDevices`
110
-
111
- ```ts
112
- public async getDevices(
113
- filters: AdbDeviceFilter[] = [ADB_DEFAULT_DEVICE_FILTER]
114
- ): Promise<AdbDaemonWebUsbDevice[]>
115
- ```
116
-
117
- Get all connected and authenticated devices.
118
-
119
- This is a convince method for `usb.getDevices()`.
120
-
121
- ## Note on secure context
122
-
123
- WebUSB requires a [secure context](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts) (HTTPS).
124
-
125
- `localhost` is considered secure, so local development works. But to access a self-hosted server running on another machine, either add a certificate, or add the domain name to the allowlist on each client machine:
126
-
127
- 1. Open `chrome://flags/#unsafely-treat-insecure-origin-as-secure`
128
- 2. Add the protocol and domain part of your url (e.g. `http://192.168.0.100:9000`) to the input box
129
- 3. Choose `Enable` from the dropdown menu
130
- 4. Restart browser
1
+ <p align="center">
2
+ <img alt="Tango" src="https://raw.githubusercontent.com/yume-chan/ya-webadb/main/.github/logo.svg" width="200">
3
+ </p>
4
+
5
+ <h1 align="center">@yume-chan/adb-daemon-webusb</h1>
6
+
7
+ <p align="center">
8
+ Adb daemon transport connection for `@yume-chan/adb` using WebUSB API.
9
+ </p>
10
+
11
+ <p align="center">
12
+ <a href="https://github.com/yume-chan/ya-webadb/blob/main/LICENSE">
13
+ <img alt="MIT License" src="https://img.shields.io/github/license/yume-chan/ya-webadb">
14
+ </a>
15
+ <a href="https://github.com/yume-chan/ya-webadb/releases">
16
+ <img alt="GitHub release" src="https://img.shields.io/github/v/release/yume-chan/ya-webadb?logo=github">
17
+ </a>
18
+ <a href="https://www.npmjs.com/package/@yume-chan/adb">
19
+ <img alt="npm" src="https://img.shields.io/npm/dm/%40yume-chan/adb?logo=npm">
20
+ </a>
21
+ <a href="https://discord.gg/26k3ttC2PN">
22
+ <img alt="Discord" src="https://img.shields.io/discord/1120215514732564502?logo=discord&logoColor=%23ffffff&label=Discord">
23
+ </a>
24
+ </p>
25
+
26
+ This package is part of [Tango ADB](https://github.com/yume-chan/ya-webadb). Generally you need multiple packages to build a complete ADB client that can run on Web browsers and Node.js. Read the documentation for more information.
27
+
28
+ ## Documentation
29
+
30
+ Check the latest documentation at https://tango-adb.github.io/docs/
31
+
32
+ ## Sponsors
33
+
34
+ [Become a backer](https://opencollective.com/ya-webadb) and get your image on our README on Github with a link to your site.
35
+
36
+ <a href="https://opencollective.com/ya-webadb/backer/0/website?requireActive=false" target="_blank"><img src="https://opencollective.com/ya-webadb/backer/0/avatar.svg?requireActive=false"></a>
37
+ <a href="https://opencollective.com/ya-webadb/backer/1/website?requireActive=false" target="_blank"><img src="https://opencollective.com/ya-webadb/backer/1/avatar.svg?requireActive=false"></a>
38
+ <a href="https://opencollective.com/ya-webadb/backer/2/website?requireActive=false" target="_blank"><img src="https://opencollective.com/ya-webadb/backer/2/avatar.svg?requireActive=false"></a>
39
+ <a href="https://opencollective.com/ya-webadb/backer/3/website?requireActive=false" target="_blank"><img src="https://opencollective.com/ya-webadb/backer/3/avatar.svg?requireActive=false"></a>
40
+ <a href="https://opencollective.com/ya-webadb/backer/4/website?requireActive=false" target="_blank"><img src="https://opencollective.com/ya-webadb/backer/4/avatar.svg?requireActive=false"></a>
41
+ <a href="https://opencollective.com/ya-webadb/backer/5/website?requireActive=false" target="_blank"><img src="https://opencollective.com/ya-webadb/backer/5/avatar.svg?requireActive=false"></a>
42
+ <a href="https://opencollective.com/ya-webadb/backer/6/website?requireActive=false" target="_blank"><img src="https://opencollective.com/ya-webadb/backer/6/avatar.svg?requireActive=false"></a>
43
+ <a href="https://opencollective.com/ya-webadb/backer/7/website?requireActive=false" target="_blank"><img src="https://opencollective.com/ya-webadb/backer/7/avatar.svg?requireActive=false"></a>
44
+ <a href="https://opencollective.com/ya-webadb/backer/8/website?requireActive=false" target="_blank"><img src="https://opencollective.com/ya-webadb/backer/8/avatar.svg?requireActive=false"></a>
45
+ <a href="https://opencollective.com/ya-webadb/backer/9/website?requireActive=false" target="_blank"><img src="https://opencollective.com/ya-webadb/backer/9/avatar.svg?requireActive=false"></a>
46
+ <a href="https://opencollective.com/ya-webadb/backer/10/website?requireActive=false" target="_blank"><img src="https://opencollective.com/ya-webadb/backer/10/avatar.svg?requireActive=false"></a>
package/esm/device.d.ts CHANGED
@@ -13,6 +13,9 @@ export declare const ADB_DEFAULT_DEVICE_FILTER: {
13
13
  };
14
14
  export declare class AdbDaemonWebUsbConnection implements ReadableWritablePair<AdbPacketData, Consumable<AdbPacketInit>> {
15
15
  #private;
16
+ get device(): AdbDaemonWebUsbDevice;
17
+ get inEndpoint(): USBEndpoint;
18
+ get outEndpoint(): USBEndpoint;
16
19
  get readable(): ReadableStream<AdbPacketData>;
17
20
  get writable(): WritableStream<Consumable<{
18
21
  command: number;
@@ -22,7 +25,7 @@ export declare class AdbDaemonWebUsbConnection implements ReadableWritablePair<A
22
25
  magic: number;
23
26
  payload: Uint8Array;
24
27
  }>>;
25
- constructor(device: USBDevice, inEndpoint: USBEndpoint, outEndpoint: USBEndpoint, usbManager: USB);
28
+ constructor(device: AdbDaemonWebUsbDevice, inEndpoint: USBEndpoint, outEndpoint: USBEndpoint, usbManager: USB);
26
29
  }
27
30
  export declare class AdbDaemonWebUsbDevice implements AdbDaemonDevice {
28
31
  #private;
@@ -40,6 +43,6 @@ export declare class AdbDaemonWebUsbDevice implements AdbDaemonDevice {
40
43
  * Claim the device and create a pair of `AdbPacket` streams to the ADB interface.
41
44
  * @returns The pair of `AdbPacket` streams.
42
45
  */
43
- connect(): Promise<ReadableWritablePair<AdbPacketData, Consumable<AdbPacketInit>>>;
46
+ connect(): Promise<AdbDaemonWebUsbConnection>;
44
47
  }
45
48
  //# sourceMappingURL=device.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EACR,eAAe,EACf,aAAa,EACb,aAAa,EAChB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,KAAK,EACR,UAAU,EACV,oBAAoB,EACpB,cAAc,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAGH,cAAc,EAEjB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;CAIF,CAAC;AAgErC,qBAAa,yBACT,YAAW,oBAAoB,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;;IAGzE,IAAW,QAAQ,kCAElB;IAGD,IAAW,QAAQ;;;;;;;QAElB;gBAGG,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,WAAW,EACvB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,GAAG;CAiItB;AAED,qBAAa,qBAAsB,YAAW,eAAe;;IAKzD,IAAW,GAAG,cAEb;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;;;;OAKG;gBAEC,MAAM,EAAE,SAAS,EACjB,OAAO,+BAAiD,EACxD,UAAU,EAAE,GAAG;IAOnB;;;OAGG;IACU,OAAO,IAAI,OAAO,CAC3B,oBAAoB,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CACjE;CA0CJ"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EACR,eAAe,EACf,aAAa,EACb,aAAa,EAChB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,KAAK,EACR,UAAU,EACV,oBAAoB,EACpB,cAAc,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAGH,cAAc,EAEjB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;CAIF,CAAC;AAgErC,qBAAa,yBACT,YAAW,oBAAoB,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;;IAGzE,IAAI,MAAM,0BAET;IAGD,IAAI,UAAU,gBAEb;IAGD,IAAI,WAAW,gBAEd;IAGD,IAAI,QAAQ,kCAEX;IAGD,IAAI,QAAQ;;;;;;;QAEX;gBAGG,MAAM,EAAE,qBAAqB,EAC7B,UAAU,EAAE,WAAW,EACvB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,GAAG;CAsJtB;AAED,qBAAa,qBAAsB,YAAW,eAAe;;IAKzD,IAAI,GAAG,cAEN;IAGD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;OAKG;gBAEC,MAAM,EAAE,SAAS,EACjB,OAAO,+BAAiD,EACxD,UAAU,EAAE,GAAG;IAqDnB;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,yBAAyB,CAAC;CAStD"}
package/esm/device.js CHANGED
@@ -62,6 +62,18 @@ class Uint8ArrayExactReadable {
62
62
  }
63
63
  }
64
64
  export class AdbDaemonWebUsbConnection {
65
+ #device;
66
+ get device() {
67
+ return this.#device;
68
+ }
69
+ #inEndpoint;
70
+ get inEndpoint() {
71
+ return this.#inEndpoint;
72
+ }
73
+ #outEndpoint;
74
+ get outEndpoint() {
75
+ return this.#outEndpoint;
76
+ }
65
77
  #readable;
66
78
  get readable() {
67
79
  return this.#readable;
@@ -71,12 +83,15 @@ export class AdbDaemonWebUsbConnection {
71
83
  return this.#writable;
72
84
  }
73
85
  constructor(device, inEndpoint, outEndpoint, usbManager) {
86
+ this.#device = device;
87
+ this.#inEndpoint = inEndpoint;
88
+ this.#outEndpoint = outEndpoint;
74
89
  let closed = false;
75
90
  const duplex = new DuplexStreamFactory({
76
91
  close: async () => {
77
92
  try {
78
93
  closed = true;
79
- await device.close();
94
+ await device.raw.close();
80
95
  }
81
96
  catch {
82
97
  /* device may have already disconnected */
@@ -88,67 +103,34 @@ export class AdbDaemonWebUsbConnection {
88
103
  },
89
104
  });
90
105
  function handleUsbDisconnect(e) {
91
- if (e.device === device) {
106
+ if (e.device === device.raw) {
92
107
  duplex.dispose().catch(unreachable);
93
108
  }
94
109
  }
95
110
  usbManager.addEventListener("disconnect", handleUsbDisconnect);
96
111
  this.#readable = duplex.wrapReadable(new ReadableStream({
97
- async pull(controller) {
98
- try {
99
- // The `length` argument in `transferIn` must not be smaller than what the device sent,
100
- // otherwise it will return `babble` status without any data.
101
- // ADB daemon sends each packet in two parts, the 24-byte header and the payload.
102
- const result = await device.transferIn(inEndpoint.endpointNumber, 24);
103
- // TODO: webusb: handle `babble` by discarding the data and receive again
104
- // Per spec, the `result.data` always covers the whole `buffer`.
105
- const buffer = new Uint8Array(result.data.buffer);
106
- const stream = new Uint8ArrayExactReadable(buffer);
107
- // Add `payload` field to its type, it's assigned below.
108
- const packet = AdbPacketHeader.deserialize(stream);
109
- if (packet.payloadLength !== 0) {
110
- const result = await device.transferIn(inEndpoint.endpointNumber, packet.payloadLength);
111
- packet.payload = new Uint8Array(result.data.buffer);
112
- }
113
- else {
114
- packet.payload = EMPTY_UINT8_ARRAY;
115
- }
112
+ pull: async (controller) => {
113
+ const packet = await this.#transferIn();
114
+ if (packet) {
116
115
  controller.enqueue(packet);
117
116
  }
118
- catch (e) {
119
- // On Windows, disconnecting the device will cause `NetworkError` to be thrown,
120
- // even before the `disconnect` event is fired.
121
- // We need to wait a little bit and check if the device is still connected.
122
- // https://github.com/WICG/webusb/issues/219
123
- if (isErrorName(e, "NetworkError")) {
124
- await new Promise((resolve) => {
125
- setTimeout(() => {
126
- resolve();
127
- }, 100);
128
- });
129
- if (closed) {
130
- controller.close();
131
- }
132
- else {
133
- throw e;
134
- }
135
- }
136
- throw e;
117
+ else {
118
+ controller.close();
137
119
  }
138
120
  },
139
- }));
121
+ }, { highWaterMark: 0 }));
140
122
  const zeroMask = outEndpoint.packetSize - 1;
141
123
  this.#writable = pipeFrom(duplex.createWritable(new ConsumableWritableStream({
142
124
  write: async (chunk) => {
143
125
  try {
144
- await device.transferOut(outEndpoint.endpointNumber, chunk);
126
+ await device.raw.transferOut(outEndpoint.endpointNumber, chunk);
145
127
  // In USB protocol, a not-full packet indicates the end of a transfer.
146
128
  // If the payload size is a multiple of the packet size,
147
129
  // we need to send an empty packet to indicate the end,
148
130
  // so the OS will send it to the device immediately.
149
131
  if (zeroMask &&
150
132
  (chunk.byteLength & zeroMask) === 0) {
151
- await device.transferOut(outEndpoint.endpointNumber, EMPTY_UINT8_ARRAY);
133
+ await device.raw.transferOut(outEndpoint.endpointNumber, EMPTY_UINT8_ARRAY);
152
134
  }
153
135
  }
154
136
  catch (e) {
@@ -160,6 +142,53 @@ export class AdbDaemonWebUsbConnection {
160
142
  },
161
143
  })), new AdbPacketSerializeStream());
162
144
  }
145
+ async #transferIn() {
146
+ try {
147
+ while (true) {
148
+ // ADB daemon sends each packet in two parts, the 24-byte header and the payload.
149
+ const result = await this.#device.raw.transferIn(this.#inEndpoint.endpointNumber, this.#inEndpoint.packetSize);
150
+ if (result.data.byteLength !== 24) {
151
+ continue;
152
+ }
153
+ // Per spec, the `result.data` always covers the whole `buffer`.
154
+ const buffer = new Uint8Array(result.data.buffer);
155
+ const stream = new Uint8ArrayExactReadable(buffer);
156
+ // Add `payload` field to its type, it's assigned below.
157
+ const packet = AdbPacketHeader.deserialize(stream);
158
+ if (packet.magic !== (packet.command ^ 0xffffffff)) {
159
+ continue;
160
+ }
161
+ if (packet.payloadLength !== 0) {
162
+ const result = await this.#device.raw.transferIn(this.#inEndpoint.endpointNumber, packet.payloadLength);
163
+ packet.payload = new Uint8Array(result.data.buffer);
164
+ }
165
+ else {
166
+ packet.payload = EMPTY_UINT8_ARRAY;
167
+ }
168
+ return packet;
169
+ }
170
+ }
171
+ catch (e) {
172
+ // On Windows, disconnecting the device will cause `NetworkError` to be thrown,
173
+ // even before the `disconnect` event is fired.
174
+ // We need to wait a little bit and check if the device is still connected.
175
+ // https://github.com/WICG/webusb/issues/219
176
+ if (isErrorName(e, "NetworkError")) {
177
+ await new Promise((resolve) => {
178
+ setTimeout(() => {
179
+ resolve();
180
+ }, 100);
181
+ });
182
+ if (closed) {
183
+ return undefined;
184
+ }
185
+ else {
186
+ throw e;
187
+ }
188
+ }
189
+ throw e;
190
+ }
191
+ }
163
192
  }
164
193
  export class AdbDaemonWebUsbDevice {
165
194
  #filters;
@@ -168,8 +197,9 @@ export class AdbDaemonWebUsbDevice {
168
197
  get raw() {
169
198
  return this.#raw;
170
199
  }
200
+ #serial;
171
201
  get serial() {
172
- return this.#raw.serialNumber;
202
+ return this.#serial;
173
203
  }
174
204
  get name() {
175
205
  return this.#raw.productName;
@@ -182,14 +212,19 @@ export class AdbDaemonWebUsbDevice {
182
212
  */
183
213
  constructor(device, filters = [ADB_DEFAULT_DEVICE_FILTER], usbManager) {
184
214
  this.#raw = device;
215
+ if (device.serialNumber) {
216
+ this.#serial = device.serialNumber;
217
+ }
218
+ else {
219
+ this.#serial =
220
+ device.vendorId.toString(16).padStart(4, "0") +
221
+ "x" +
222
+ device.productId.toString(16).padStart(4, "0");
223
+ }
185
224
  this.#filters = filters;
186
225
  this.#usbManager = usbManager;
187
226
  }
188
- /**
189
- * Claim the device and create a pair of `AdbPacket` streams to the ADB interface.
190
- * @returns The pair of `AdbPacket` streams.
191
- */
192
- async connect() {
227
+ async #claimInterface() {
193
228
  if (!this.#raw.opened) {
194
229
  await this.#raw.open();
195
230
  }
@@ -207,7 +242,15 @@ export class AdbDaemonWebUsbDevice {
207
242
  await this.#raw.selectAlternateInterface(interface_.interfaceNumber, alternate.alternateSetting);
208
243
  }
209
244
  const { inEndpoint, outEndpoint } = findUsbEndpoints(alternate.endpoints);
210
- return new AdbDaemonWebUsbConnection(this.#raw, inEndpoint, outEndpoint, this.#usbManager);
245
+ return [inEndpoint, outEndpoint];
246
+ }
247
+ /**
248
+ * Claim the device and create a pair of `AdbPacket` streams to the ADB interface.
249
+ * @returns The pair of `AdbPacket` streams.
250
+ */
251
+ async connect() {
252
+ const [inEndpoint, outEndpoint] = await this.#claimInterface();
253
+ return new AdbDaemonWebUsbConnection(this, inEndpoint, outEndpoint, this.#usbManager);
211
254
  }
212
255
  }
213
256
  //# sourceMappingURL=device.js.map
package/esm/device.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"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"}
package/esm/manager.d.ts CHANGED
@@ -1,6 +1,12 @@
1
1
  /// <reference types="w3c-web-usb" />
2
2
  import { AdbDaemonWebUsbDevice } from "./device.js";
3
3
  import type { AdbDeviceFilter } from "./utils.js";
4
+ export declare namespace AdbDaemonWebUsbDeviceManager {
5
+ interface RequestDeviceOptions {
6
+ filters?: AdbDeviceFilter[] | undefined;
7
+ exclusionFilters?: USBDeviceFilter[] | undefined;
8
+ }
9
+ }
4
10
  export declare class AdbDaemonWebUsbDeviceManager {
5
11
  #private;
6
12
  /**
@@ -27,7 +33,7 @@ export declare class AdbDaemonWebUsbDeviceManager {
27
33
  * @returns An {@link AdbDaemonWebUsbDevice} instance if the user selected a device,
28
34
  * or `undefined` if the user cancelled the device picker.
29
35
  */
30
- requestDevice(filters?: AdbDeviceFilter[]): Promise<AdbDaemonWebUsbDevice | undefined>;
36
+ requestDevice(options?: AdbDaemonWebUsbDeviceManager.RequestDeviceOptions): Promise<AdbDaemonWebUsbDevice | undefined>;
31
37
  /**
32
38
  * Get all connected and authenticated devices.
33
39
  * This is a convince method for `usb.getDevices()`.
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":";AAAA,OAAO,EAA6B,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,qBAAa,4BAA4B;;IACrC;;;;OAIG;IACH,gBAAuB,OAAO,2CAIV;IAIpB;;;OAGG;gBACgB,UAAU,EAAE,GAAG;IAIlC;;;;;;;;;;;;OAYG;IACU,aAAa,CACtB,OAAO,GAAE,eAAe,EAAgC,GACzD,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAgB7C;;;;;;;;;;;OAWG;IACU,UAAU,CACnB,OAAO,GAAE,eAAe,EAAgC,GACzD,OAAO,CAAC,qBAAqB,EAAE,CAAC;CAsCtC"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":";AAAA,OAAO,EAA6B,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,yBAAiB,4BAA4B,CAAC;IAC1C,UAAiB,oBAAoB;QACjC,OAAO,CAAC,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;QACxC,gBAAgB,CAAC,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;KACpD;CACJ;AAED,qBAAa,4BAA4B;;IACrC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,2CAIH;IAIpB;;;OAGG;gBACS,UAAU,EAAE,GAAG;IAI3B;;;;;;;;;;;;OAYG;IACG,aAAa,CACf,OAAO,GAAE,4BAA4B,CAAC,oBAAyB,GAChE,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IA0B7C;;;;;;;;;;;OAWG;IACG,UAAU,CACZ,OAAO,GAAE,eAAe,EAAgC,GACzD,OAAO,CAAC,qBAAqB,EAAE,CAAC;CA8CtC"}
package/esm/manager.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ADB_DEFAULT_DEVICE_FILTER, AdbDaemonWebUsbDevice } from "./device.js";
2
2
  import { findUsbAlternateInterface, isErrorName } from "./utils.js";
3
- class AdbDaemonWebUsbDeviceManager {
3
+ export class AdbDaemonWebUsbDeviceManager {
4
4
  /**
5
5
  * Gets the instance of {@link AdbDaemonWebUsbDeviceManager} using browser WebUSB implementation.
6
6
  *
@@ -31,12 +31,16 @@ class AdbDaemonWebUsbDeviceManager {
31
31
  * @returns An {@link AdbDaemonWebUsbDevice} instance if the user selected a device,
32
32
  * or `undefined` if the user cancelled the device picker.
33
33
  */
34
- async requestDevice(filters = [ADB_DEFAULT_DEVICE_FILTER]) {
34
+ async requestDevice(options = {}) {
35
+ if (!options.filters) {
36
+ options.filters = [ADB_DEFAULT_DEVICE_FILTER];
37
+ }
38
+ else if (options.filters.length === 0) {
39
+ throw new TypeError("filters must not be empty");
40
+ }
35
41
  try {
36
- const device = await this.#usbManager.requestDevice({
37
- filters,
38
- });
39
- return new AdbDaemonWebUsbDevice(device, filters, this.#usbManager);
42
+ const device = await this.#usbManager.requestDevice(options);
43
+ return new AdbDaemonWebUsbDevice(device, options.filters, this.#usbManager);
40
44
  }
41
45
  catch (e) {
42
46
  // No device selected
@@ -59,6 +63,9 @@ class AdbDaemonWebUsbDeviceManager {
59
63
  * @returns An array of {@link AdbDaemonWebUsbDevice} instances for all connected and authenticated devices.
60
64
  */
61
65
  async getDevices(filters = [ADB_DEFAULT_DEVICE_FILTER]) {
66
+ if (filters.length === 0) {
67
+ throw new TypeError("filters must not be empty");
68
+ }
62
69
  const devices = await this.#usbManager.getDevices();
63
70
  return devices
64
71
  .filter((device) => {
@@ -88,5 +95,4 @@ class AdbDaemonWebUsbDeviceManager {
88
95
  .map((device) => new AdbDaemonWebUsbDevice(device, filters, this.#usbManager));
89
96
  }
90
97
  }
91
- export { AdbDaemonWebUsbDeviceManager };
92
98
  //# sourceMappingURL=manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAa,4BAA4B;IACrC;;;;OAIG;IACI,MAAM,CAAU,OAAO,GAC1B,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW;QAC3C,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG;QACtB,CAAC,CAAC,IAAI,4BAA4B,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAC;IAEpB,WAAW,CAAM;IAEjB;;;OAGG;IACH,YAAmB,UAAe;QAC9B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,aAAa,CACtB,UAA6B,CAAC,yBAAyB,CAAC;QAExD,IAAI;YACA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;gBAChD,OAAO;aACV,CAAC,CAAC;YACH,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SACvE;QAAC,OAAO,CAAC,EAAE;YACR,qBAAqB;YACrB,IAAI,WAAW,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE;gBACjC,OAAO,SAAS,CAAC;aACpB;YAED,MAAM,CAAC,CAAC;SACX;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,UAAU,CACnB,UAA6B,CAAC,yBAAyB,CAAC;QAExD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QACpD,OAAO,OAAO;aACT,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC1B,IACI,UAAU,IAAI,MAAM;oBACpB,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EACrC;oBACE,SAAS;iBACZ;gBACD,IACI,WAAW,IAAI,MAAM;oBACrB,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EACvC;oBACE,SAAS;iBACZ;gBACD,IACI,cAAc,IAAI,MAAM;oBACxB,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY,EAC7C;oBACE,SAAS;iBACZ;gBAED,IAAI;oBACA,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC3C,OAAO,IAAI,CAAC;iBACf;gBAAC,MAAM;oBACJ,SAAS;iBACZ;aACJ;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;aACD,GAAG,CACA,CAAC,MAAM,EAAE,EAAE,CACP,IAAI,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CACnE,CAAC;IACV,CAAC;;SAxGQ,4BAA4B"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AASpE,MAAM,OAAO,4BAA4B;IACrC;;;;OAIG;IACH,MAAM,CAAU,OAAO,GACnB,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW;QAC3C,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG;QACtB,CAAC,CAAC,IAAI,4BAA4B,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAC;IAEpB,WAAW,CAAM;IAEjB;;;OAGG;IACH,YAAY,UAAe;QACvB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,aAAa,CACf,UAA6D,EAAE;QAE/D,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,OAAO,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAC/C,OAAkC,CACrC,CAAC;YACF,OAAO,IAAI,qBAAqB,CAC5B,MAAM,EACN,OAAO,CAAC,OAAO,EACf,IAAI,CAAC,WAAW,CACnB,CAAC;QACN,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,qBAAqB;YACrB,IAAI,WAAW,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC;gBAClC,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,UAAU,CACZ,UAA6B,CAAC,yBAAyB,CAAC;QAExD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QACpD,OAAO,OAAO;aACT,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC3B,IACI,UAAU,IAAI,MAAM;oBACpB,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EACrC,CAAC;oBACC,SAAS;gBACb,CAAC;gBACD,IACI,WAAW,IAAI,MAAM;oBACrB,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EACvC,CAAC;oBACC,SAAS;gBACb,CAAC;gBACD,IACI,cAAc,IAAI,MAAM;oBACxB,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY,EAC7C,CAAC;oBACC,SAAS;gBACb,CAAC;gBAED,IAAI,CAAC;oBACD,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC3C,OAAO,IAAI,CAAC;gBAChB,CAAC;gBAAC,MAAM,CAAC;oBACL,SAAS;gBACb,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;aACD,GAAG,CACA,CAAC,MAAM,EAAE,EAAE,CACP,IAAI,qBAAqB,CACrB,MAAM,EACN,OAAO,EACP,IAAI,CAAC,WAAW,CACnB,CACR,CAAC;IACV,CAAC"}
package/esm/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,CAAU,EAAE,IAAY;IAChD,+CAA+C;IAC/C,wBAAwB;IACxB,kDAAkD;IAClD,OAAO,CACH,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CACxE,CAAC;AACN,CAAC;AAWD,SAAS,sBAAsB,CAC3B,SAAgC,EAChC,OAA0B;IAE1B,OAAO,OAAO,CAAC,IAAI,CACf,CAAC,MAAM,EAAE,EAAE,CACP,SAAS,CAAC,cAAc,KAAK,MAAM,CAAC,SAAS;QAC7C,SAAS,CAAC,iBAAiB,KAAK,MAAM,CAAC,YAAY;QACnD,SAAS,CAAC,iBAAiB,KAAK,MAAM,CAAC,YAAY,CAC1D,CAAC;AACN,CAAC;AAED,MAAM,UAAU,yBAAyB,CACrC,MAAiB,EACjB,OAA0B;IAE1B,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,cAAc,EAAE;QAC/C,KAAK,MAAM,UAAU,IAAI,aAAa,CAAC,UAAU,EAAE;YAC/C,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE;gBAC3C,IAAI,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;oBAC5C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;iBACnD;aACJ;SACJ;KACJ;IAED,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,CAAU,EAAE,IAAY;IAChD,+CAA+C;IAC/C,wBAAwB;IACxB,kDAAkD;IAClD,OAAO,CACH,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CACxE,CAAC;AACN,CAAC;AAWD,SAAS,sBAAsB,CAC3B,SAAgC,EAChC,OAA0B;IAE1B,OAAO,OAAO,CAAC,IAAI,CACf,CAAC,MAAM,EAAE,EAAE,CACP,SAAS,CAAC,cAAc,KAAK,MAAM,CAAC,SAAS;QAC7C,SAAS,CAAC,iBAAiB,KAAK,MAAM,CAAC,YAAY;QACnD,SAAS,CAAC,iBAAiB,KAAK,MAAM,CAAC,YAAY,CAC1D,CAAC;AACN,CAAC;AAED,MAAM,UAAU,yBAAyB,CACrC,MAAiB,EACjB,OAA0B;IAE1B,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAChD,KAAK,MAAM,UAAU,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;YAChD,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;gBAC5C,IAAI,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;oBAC7C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;gBACpD,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;AAC5D,CAAC"}
package/esm/watcher.d.ts CHANGED
@@ -3,7 +3,5 @@ export declare class AdbDaemonWebUsbDeviceWatcher {
3
3
  #private;
4
4
  constructor(callback: (newDeviceSerial?: string) => void, usb: USB);
5
5
  dispose(): void;
6
- private handleConnect;
7
- private handleDisconnect;
8
6
  }
9
7
  //# sourceMappingURL=watcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":";AAAA,qBAAa,4BAA4B;;gBAIlB,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG;IAQlE,OAAO,IAAI,IAAI;IAQtB,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,gBAAgB,CAEtB;CACL"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":";AAAA,qBAAa,4BAA4B;;gBAIzB,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG;IAQlE,OAAO,IAAI,IAAI;CAelB"}