react-native-web-serial-api 0.0.2 → 0.1.0
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 +23 -0
- package/TESTING.md +301 -0
- package/android/build.gradle +2 -2
- package/android/src/main/java/dev/webserialapi/NativeUsbSerialModule.java +7 -1
- package/lib/commonjs/UsbSerial.js +58 -26
- package/lib/commonjs/UsbSerial.js.map +1 -1
- package/lib/commonjs/WebSerial.js +169 -57
- package/lib/commonjs/WebSerial.js.map +1 -1
- package/lib/commonjs/index.js +13 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/lib/dom-exception.js +176 -0
- package/lib/commonjs/lib/dom-exception.js.map +1 -0
- package/lib/commonjs/lib/event-target.js +138 -0
- package/lib/commonjs/lib/event-target.js.map +1 -0
- package/lib/commonjs/lib/promise.js +23 -0
- package/lib/commonjs/lib/promise.js.map +1 -0
- package/lib/commonjs/testing/index.js +70 -0
- package/lib/commonjs/testing/index.js.map +1 -0
- package/lib/commonjs/testing/install.js +54 -0
- package/lib/commonjs/testing/install.js.map +1 -0
- package/lib/commonjs/testing/serial-device.js +164 -0
- package/lib/commonjs/testing/serial-device.js.map +1 -0
- package/lib/commonjs/testing/virtual-serial.js +615 -0
- package/lib/commonjs/testing/virtual-serial.js.map +1 -0
- package/lib/commonjs/transport.js +61 -0
- package/lib/commonjs/transport.js.map +1 -0
- package/lib/typescript/src/UsbSerial.d.ts +24 -67
- package/lib/typescript/src/UsbSerial.d.ts.map +1 -1
- package/lib/typescript/src/WebSerial.d.ts +11 -2
- package/lib/typescript/src/WebSerial.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/lib/dom-exception.d.ts +100 -0
- package/lib/typescript/src/lib/dom-exception.d.ts.map +1 -0
- package/lib/typescript/src/lib/event-target.d.ts +53 -0
- package/lib/typescript/src/lib/event-target.d.ts.map +1 -0
- package/lib/typescript/src/lib/promise.d.ts +11 -0
- package/lib/typescript/src/lib/promise.d.ts.map +1 -0
- package/lib/typescript/src/testing/index.d.ts +23 -0
- package/lib/typescript/src/testing/index.d.ts.map +1 -0
- package/lib/typescript/src/testing/install.d.ts +25 -0
- package/lib/typescript/src/testing/install.d.ts.map +1 -0
- package/lib/typescript/src/testing/serial-device.d.ts +127 -0
- package/lib/typescript/src/testing/serial-device.d.ts.map +1 -0
- package/lib/typescript/src/testing/virtual-serial.d.ts +205 -0
- package/lib/typescript/src/testing/virtual-serial.d.ts.map +1 -0
- package/lib/typescript/src/transport.d.ts +131 -0
- package/lib/typescript/src/transport.d.ts.map +1 -0
- package/package.json +38 -2
- package/src/UsbSerial.ts +65 -90
- package/src/WebSerial.ts +227 -88
- package/src/index.ts +2 -7
- package/src/lib/dom-exception.ts +129 -60
- package/src/lib/event-target.ts +46 -21
- package/src/lib/promise.ts +7 -7
- package/src/testing/index.ts +42 -0
- package/src/testing/install.ts +65 -0
- package/src/testing/serial-device.ts +193 -0
- package/src/testing/virtual-serial.ts +801 -0
- package/src/transport.ts +200 -0
- package/babel.config.js +0 -3
- package/biome.json +0 -35
- package/example/.watchmanconfig +0 -1
- package/example/App.tsx +0 -71
- package/example/__tests__/App.test.tsx +0 -16
- package/example/__tests__/connectEvents.test.tsx +0 -81
- package/example/__tests__/getPorts.test.tsx +0 -140
- package/example/android/app/build.gradle +0 -120
- package/example/android/app/debug.keystore +0 -0
- package/example/android/app/proguard-rules.pro +0 -10
- package/example/android/app/src/debug/AndroidManifest.xml +0 -9
- package/example/android/app/src/main/AndroidManifest.xml +0 -38
- package/example/android/app/src/main/java/dev/uzlopak/MainActivity.kt +0 -22
- package/example/android/app/src/main/java/dev/uzlopak/MainApplication.kt +0 -41
- package/example/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -37
- package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/example/android/app/src/main/res/values/strings.xml +0 -3
- package/example/android/app/src/main/res/values/styles.xml +0 -9
- package/example/android/build.gradle +0 -22
- package/example/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/example/android/gradle/wrapper/gradle-wrapper.properties +0 -7
- package/example/android/gradle.properties +0 -47
- package/example/android/gradlew +0 -252
- package/example/android/gradlew.bat +0 -94
- package/example/android/settings.gradle +0 -6
- package/example/app.json +0 -4
- package/example/babel.config.js +0 -21
- package/example/biome.json +0 -47
- package/example/deploy.sh +0 -11
- package/example/index.html +0 -26
- package/example/index.js +0 -9
- package/example/index.web.js +0 -8
- package/example/jest.config.js +0 -12
- package/example/metro.config.js +0 -58
- package/example/package-lock.json +0 -14510
- package/example/package.json +0 -48
- package/example/react-native.config.js +0 -17
- package/example/src/components/AppBar.tsx +0 -73
- package/example/src/components/Menu.tsx +0 -90
- package/example/src/components/SingleChoiceDialog.tsx +0 -120
- package/example/src/screens/ConnectScreen.tsx +0 -195
- package/example/src/screens/DevicesScreen.tsx +0 -248
- package/example/src/screens/TerminalScreen.tsx +0 -564
- package/example/src/settings.ts +0 -43
- package/example/src/theme.ts +0 -19
- package/example/src/util/TextUtil.ts +0 -129
- package/example/tsconfig.json +0 -10
- package/example/vite.config.mjs +0 -55
- package/scripts/deploy-release.sh +0 -127
- package/tsconfig.build.json +0 -7
- package/tsconfig.json +0 -20
|
@@ -65,6 +65,7 @@ const kDefaultFlowControl = 'none';
|
|
|
65
65
|
const kAcceptableDataBits = [7, 8];
|
|
66
66
|
const kAcceptableStopBits = [1, 2];
|
|
67
67
|
const kAcceptableParity = ['none', 'even', 'odd'];
|
|
68
|
+
const kAcceptableFlowControl = ['none', 'hardware'];
|
|
68
69
|
function parityToNative(parity) {
|
|
69
70
|
switch (parity) {
|
|
70
71
|
case 'odd':
|
|
@@ -75,8 +76,12 @@ function parityToNative(parity) {
|
|
|
75
76
|
return 0;
|
|
76
77
|
}
|
|
77
78
|
}
|
|
79
|
+
const FLOW_CONTROL_NATIVE = {
|
|
80
|
+
none: 'NONE',
|
|
81
|
+
hardware: 'RTS_CTS'
|
|
82
|
+
};
|
|
78
83
|
function flowControlToNative(flowControl) {
|
|
79
|
-
return flowControl
|
|
84
|
+
return FLOW_CONTROL_NATIVE[flowControl];
|
|
80
85
|
}
|
|
81
86
|
|
|
82
87
|
/**
|
|
@@ -122,6 +127,29 @@ class SerialPort extends _eventTarget.EventTarget {
|
|
|
122
127
|
};
|
|
123
128
|
#dataSubscription = null;
|
|
124
129
|
#errorSubscription = null;
|
|
130
|
+
|
|
131
|
+
// The live stream controllers, captured in the readable/writable getters, so
|
|
132
|
+
// a device loss can error the in-flight read/write with a "NetworkError".
|
|
133
|
+
#readableController = null;
|
|
134
|
+
#writableController = null;
|
|
135
|
+
#forgetRequested = false;
|
|
136
|
+
#resetToClosedState(state = 'closed') {
|
|
137
|
+
this.#dataSubscription?.remove();
|
|
138
|
+
this.#errorSubscription?.remove();
|
|
139
|
+
this.#dataSubscription = null;
|
|
140
|
+
this.#errorSubscription = null;
|
|
141
|
+
this.#readableController = null;
|
|
142
|
+
this.#writableController = null;
|
|
143
|
+
this.#readable = null;
|
|
144
|
+
this.#writable = null;
|
|
145
|
+
this.#readFatal = false;
|
|
146
|
+
this.#writeFatal = false;
|
|
147
|
+
this.#pendingClosePromise = null;
|
|
148
|
+
this.#bufferSize = undefined;
|
|
149
|
+
this.#state = state;
|
|
150
|
+
this.#connected = false;
|
|
151
|
+
this.#forgetRequested = state === 'forgotten';
|
|
152
|
+
}
|
|
125
153
|
constructor(usb, deviceId, portNumber, usbVendorId, usbProductId) {
|
|
126
154
|
super();
|
|
127
155
|
this.#usb = usb;
|
|
@@ -136,7 +164,7 @@ class SerialPort extends _eventTarget.EventTarget {
|
|
|
136
164
|
getVid: () => this.#usbVendorId,
|
|
137
165
|
getPid: () => this.#usbProductId,
|
|
138
166
|
getPortNumber: () => this.#portNumber,
|
|
139
|
-
|
|
167
|
+
isForgotten: () => this.#state === 'forgotten',
|
|
140
168
|
setDeviceId: id => {
|
|
141
169
|
this.#deviceId = id;
|
|
142
170
|
serialPortDeviceIds.set(this, id);
|
|
@@ -152,32 +180,26 @@ class SerialPort extends _eventTarget.EventTarget {
|
|
|
152
180
|
* After this, a later open() (e.g. when the device is re-attached) succeeds.
|
|
153
181
|
*/
|
|
154
182
|
#handleDeviceLost() {
|
|
155
|
-
|
|
183
|
+
const wasForgotten = this.#state === 'forgotten';
|
|
184
|
+
|
|
185
|
+
// Reject any in-flight read/write with a "NetworkError" (per spec), erroring
|
|
186
|
+
// the stream controllers directly. We must NOT cancel()/abort() the streams:
|
|
187
|
+
// cancel() rejects on a reader-locked stream (leaving the read orphaned) and
|
|
188
|
+
// both would try to invoke the OS on the now-gone device.
|
|
189
|
+
const lost = new _domException.DOMException('The device has been lost.', 'NetworkError');
|
|
156
190
|
if (this.#readable) {
|
|
157
191
|
this.#readFatal = true;
|
|
158
192
|
try {
|
|
159
|
-
|
|
160
|
-
this.#readable.cancel().catch(() => {});
|
|
193
|
+
this.#readableController?.error(lost);
|
|
161
194
|
} catch {}
|
|
162
195
|
}
|
|
163
196
|
if (this.#writable) {
|
|
164
197
|
this.#writeFatal = true;
|
|
165
198
|
try {
|
|
166
|
-
this.#
|
|
199
|
+
this.#writableController?.error(lost);
|
|
167
200
|
} catch {}
|
|
168
201
|
}
|
|
169
|
-
this.#
|
|
170
|
-
this.#errorSubscription?.remove();
|
|
171
|
-
this.#dataSubscription = null;
|
|
172
|
-
this.#errorSubscription = null;
|
|
173
|
-
this.#readable = null;
|
|
174
|
-
this.#writable = null;
|
|
175
|
-
this.#readFatal = false;
|
|
176
|
-
this.#writeFatal = false;
|
|
177
|
-
this.#pendingClosePromise = null;
|
|
178
|
-
this.#bufferSize = undefined;
|
|
179
|
-
this.#state = 'closed';
|
|
180
|
-
this.#connected = false;
|
|
202
|
+
this.#resetToClosedState(wasForgotten ? 'forgotten' : 'closed');
|
|
181
203
|
this.dispatchEvent(new _eventTarget.Event('disconnect'));
|
|
182
204
|
}
|
|
183
205
|
|
|
@@ -249,6 +271,7 @@ class SerialPort extends _eventTarget.EventTarget {
|
|
|
249
271
|
const bufferSize = this.#bufferSize;
|
|
250
272
|
const stream = new _webStreamsPolyfill.ReadableStream({
|
|
251
273
|
start(controller) {
|
|
274
|
+
self.#readableController = controller;
|
|
252
275
|
self.#dataSubscription = self.#usb.onData(event => {
|
|
253
276
|
if (event.deviceId === deviceId && event.portNumber === portNumber) {
|
|
254
277
|
controller.enqueue(new Uint8Array(event.data));
|
|
@@ -257,7 +280,10 @@ class SerialPort extends _eventTarget.EventTarget {
|
|
|
257
280
|
self.#errorSubscription = self.#usb.onError(event => {
|
|
258
281
|
if (event.deviceId === deviceId && event.portNumber === portNumber) {
|
|
259
282
|
self.#readFatal = true; // Set this.[[readFatal]] to true.
|
|
260
|
-
|
|
283
|
+
// Surface the spec error type (BreakError, BufferOverrunError,
|
|
284
|
+
// FramingError, ParityError, …) when the transport reports one;
|
|
285
|
+
// fall back to NetworkError otherwise.
|
|
286
|
+
controller.error(new _domException.DOMException(event.error, event.errorName ?? 'NetworkError'));
|
|
261
287
|
self.#handleClosingReadableStream();
|
|
262
288
|
}
|
|
263
289
|
});
|
|
@@ -300,6 +326,9 @@ class SerialPort extends _eventTarget.EventTarget {
|
|
|
300
326
|
const portNumber = this.#portNumber;
|
|
301
327
|
const bufferSize = this.#bufferSize;
|
|
302
328
|
const stream = new _webStreamsPolyfill.WritableStream({
|
|
329
|
+
start(controller) {
|
|
330
|
+
self.#writableController = controller;
|
|
331
|
+
},
|
|
303
332
|
async write(chunk) {
|
|
304
333
|
try {
|
|
305
334
|
await self.#usb.write(deviceId, portNumber, Array.from(chunk));
|
|
@@ -380,7 +409,7 @@ class SerialPort extends _eventTarget.EventTarget {
|
|
|
380
409
|
|
|
381
410
|
// 3. If options["baudRate"] is 0, reject promise with a TypeError and
|
|
382
411
|
// return promise.
|
|
383
|
-
if (options.baudRate
|
|
412
|
+
if (!Number.isFinite(options.baudRate) || options.baudRate <= 0) {
|
|
384
413
|
throw new TypeError('baudRate must be a positive, non-zero value.');
|
|
385
414
|
}
|
|
386
415
|
|
|
@@ -401,7 +430,7 @@ class SerialPort extends _eventTarget.EventTarget {
|
|
|
401
430
|
// 6. If options["bufferSize"] is 0, reject promise with a TypeError and
|
|
402
431
|
// return promise.
|
|
403
432
|
const bufferSize = options.bufferSize ?? kDefaultBufferSize;
|
|
404
|
-
if (bufferSize
|
|
433
|
+
if (!Number.isFinite(bufferSize) || bufferSize <= 0) {
|
|
405
434
|
throw new TypeError('bufferSize must be a positive, non-zero value.');
|
|
406
435
|
}
|
|
407
436
|
const parity = options.parity ?? kDefaultParity;
|
|
@@ -409,6 +438,9 @@ class SerialPort extends _eventTarget.EventTarget {
|
|
|
409
438
|
throw new TypeError(`parity must be one of: ${kAcceptableParity.join(', ')}.`);
|
|
410
439
|
}
|
|
411
440
|
const flowControl = options.flowControl ?? kDefaultFlowControl;
|
|
441
|
+
if (!kAcceptableFlowControl.includes(flowControl)) {
|
|
442
|
+
throw new TypeError(`flowControl must be one of: ${kAcceptableFlowControl.join(', ')}.`);
|
|
443
|
+
}
|
|
412
444
|
|
|
413
445
|
// 8. Set this.[[state]] to "opening".
|
|
414
446
|
this.#state = 'opening';
|
|
@@ -429,14 +461,41 @@ class SerialPort extends _eventTarget.EventTarget {
|
|
|
429
461
|
this.#state = 'closed';
|
|
430
462
|
throw new _domException.DOMException(`Failed to open serial port: ${e.message}`, 'NetworkError');
|
|
431
463
|
}
|
|
432
|
-
|
|
433
|
-
|
|
464
|
+
try {
|
|
465
|
+
if (flowControl !== 'none') {
|
|
466
|
+
await this.#usb.setFlowControl(this.#deviceId, this.#portNumber, flowControlToNative(flowControl));
|
|
467
|
+
}
|
|
468
|
+
await this.#usb.startReading(this.#deviceId, this.#portNumber);
|
|
469
|
+
} catch (e) {
|
|
470
|
+
// If post-open setup fails (flow-control/read pump), best-effort close
|
|
471
|
+
// and reset local state so a subsequent open() can succeed cleanly.
|
|
472
|
+
try {
|
|
473
|
+
await this.#usb.close(this.#deviceId, this.#portNumber);
|
|
474
|
+
} catch {
|
|
475
|
+
// ignore
|
|
476
|
+
}
|
|
477
|
+
this.#resetToClosedState(this.#forgetRequested ? 'forgotten' : 'closed');
|
|
478
|
+
throw new _domException.DOMException(`Failed to open serial port: ${e.message}`, 'NetworkError');
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
// Guard against lifecycle races (e.g. forget() called while open() is
|
|
482
|
+
// still awaiting native setup). Do not revive a forgotten/changed state.
|
|
483
|
+
if (this.#state !== 'opening') {
|
|
484
|
+
try {
|
|
485
|
+
await this.#usb.close(this.#deviceId, this.#portNumber);
|
|
486
|
+
} catch {
|
|
487
|
+
// ignore
|
|
488
|
+
}
|
|
489
|
+
if (this.#state === 'forgotten' || this.#state === 'forgetting') {
|
|
490
|
+
this.#resetToClosedState('forgotten');
|
|
491
|
+
throw new _domException.DOMException('The port has been forgotten while opening.', 'InvalidStateError');
|
|
492
|
+
}
|
|
493
|
+
this.#resetToClosedState();
|
|
494
|
+
throw new _domException.DOMException('Failed to open serial port: state changed while opening.', 'NetworkError');
|
|
434
495
|
}
|
|
435
496
|
this.#state = 'opened'; // 9.3. Set this.[[state]] to "opened".
|
|
436
497
|
this.#bufferSize = bufferSize; // 9.4. Set this.[[bufferSize]] to options["bufferSize"].
|
|
437
498
|
|
|
438
|
-
await this.#usb.startReading(this.#deviceId, this.#portNumber);
|
|
439
|
-
|
|
440
499
|
// When the port becomes logically connected:
|
|
441
500
|
this.#connected = true; // 2. Set port.[[connected]] to true.
|
|
442
501
|
// NOTE: the port-level "connect"/"disconnect" events represent physical
|
|
@@ -492,17 +551,11 @@ class SerialPort extends _eventTarget.EventTarget {
|
|
|
492
551
|
} catch {
|
|
493
552
|
// ignore
|
|
494
553
|
}
|
|
495
|
-
this.#dataSubscription?.remove();
|
|
496
|
-
this.#errorSubscription?.remove();
|
|
497
|
-
this.#dataSubscription = null;
|
|
498
|
-
this.#errorSubscription = null;
|
|
499
|
-
this.#state = 'closed'; // 10.1.2. Set this.[[state]] to "closed".
|
|
500
|
-
this.#readFatal = false; // 10.1.3. Set this.[[readFatal]] and this.[[writeFatal]] to false.
|
|
501
|
-
this.#writeFatal = false; // 10.1.3. (continued)
|
|
502
|
-
this.#pendingClosePromise = null; // 10.1.4. Set this.[[pendingClosePromise]] to null.
|
|
503
554
|
|
|
504
|
-
//
|
|
505
|
-
|
|
555
|
+
// 10.1.2-10.1.4 and logical disconnect bookkeeping.
|
|
556
|
+
// If forget() was requested while close() was in flight, preserve
|
|
557
|
+
// forgotten semantics instead of reviving the port to "closed".
|
|
558
|
+
this.#resetToClosedState(this.#forgetRequested ? 'forgotten' : 'closed');
|
|
506
559
|
// (No port-level "disconnect" dispatch here — that event signals physical
|
|
507
560
|
// detach, fired by Serial from the native USB state events. See open().)
|
|
508
561
|
}
|
|
@@ -513,6 +566,14 @@ class SerialPort extends _eventTarget.EventTarget {
|
|
|
513
566
|
async forget() {
|
|
514
567
|
// The forget() method steps are:
|
|
515
568
|
|
|
569
|
+
this.#forgetRequested = true;
|
|
570
|
+
|
|
571
|
+
// Forgetting an open port must not leave active streams/native resources
|
|
572
|
+
// behind. Close first so the instance becomes cleanly unusable afterwards.
|
|
573
|
+
if (this.#state === 'opened') {
|
|
574
|
+
await this.close();
|
|
575
|
+
}
|
|
576
|
+
|
|
516
577
|
// 2.1. Set this.[[state]] to "forgetting".
|
|
517
578
|
this.#state = 'forgetting';
|
|
518
579
|
// 2.2. Remove this from the sequence of serial ports on the system which
|
|
@@ -618,6 +679,17 @@ class SerialPort extends _eventTarget.EventTarget {
|
|
|
618
679
|
#handleClosingReadableStream() {
|
|
619
680
|
// To handle closing the readable stream perform the following steps:
|
|
620
681
|
|
|
682
|
+
// Drop the native data/error subscription tied to this readable. Without
|
|
683
|
+
// this a later readable (after cancel() + re-acquire) would coexist with the
|
|
684
|
+
// old subscription, which then enqueues into the cancelled controller and
|
|
685
|
+
// throws. close()/handleDeviceLost() also clear these; doing it here covers
|
|
686
|
+
// a standalone readable.cancel().
|
|
687
|
+
this.#dataSubscription?.remove();
|
|
688
|
+
this.#errorSubscription?.remove();
|
|
689
|
+
this.#dataSubscription = null;
|
|
690
|
+
this.#errorSubscription = null;
|
|
691
|
+
this.#readableController = null;
|
|
692
|
+
|
|
621
693
|
// 1. Set this.[[readable]] to null.
|
|
622
694
|
this.#readable = null;
|
|
623
695
|
|
|
@@ -634,6 +706,8 @@ class SerialPort extends _eventTarget.EventTarget {
|
|
|
634
706
|
#handleClosingWritableStream() {
|
|
635
707
|
// To handle closing the writable stream perform the following steps:
|
|
636
708
|
|
|
709
|
+
this.#writableController = null;
|
|
710
|
+
|
|
637
711
|
// 1. Set this.[[writable]] to null.
|
|
638
712
|
this.#writable = null;
|
|
639
713
|
|
|
@@ -657,6 +731,20 @@ class Serial extends _eventTarget.EventTarget {
|
|
|
657
731
|
#usb = null;
|
|
658
732
|
#knownPorts = new Map();
|
|
659
733
|
#initialized = false;
|
|
734
|
+
#injected;
|
|
735
|
+
|
|
736
|
+
/**
|
|
737
|
+
* @param transport Optional transport override. When provided, this `Serial`
|
|
738
|
+
* talks to it instead of the global native module — the seam used by tests
|
|
739
|
+
* and the virtual-device harness (`new Serial(new VirtualSerialTransport())`).
|
|
740
|
+
* Omit it for the normal native-backed instance; the singleton `serial`
|
|
741
|
+
* export is created this way and can still be redirected globally via
|
|
742
|
+
* `setUsbSerial()`.
|
|
743
|
+
*/
|
|
744
|
+
constructor(transport) {
|
|
745
|
+
super();
|
|
746
|
+
this.#injected = transport ?? null;
|
|
747
|
+
}
|
|
660
748
|
|
|
661
749
|
/**
|
|
662
750
|
* Subscribing to "connect"/"disconnect" must wire up the native USB state
|
|
@@ -678,32 +766,39 @@ class Serial extends _eventTarget.EventTarget {
|
|
|
678
766
|
if (this.#initialized) return this.#usb;
|
|
679
767
|
this.#initialized = true;
|
|
680
768
|
try {
|
|
681
|
-
this.#usb = (0, _UsbSerial.getUsbSerial)();
|
|
769
|
+
this.#usb = this.#injected ?? (0, _UsbSerial.getUsbSerial)();
|
|
682
770
|
|
|
683
771
|
// A USB device was attached. Android assigns a NEW deviceId on every
|
|
684
772
|
// attach, so match previously-known ports of the same physical device by
|
|
685
773
|
// VID/PID, update their deviceId, re-key them, and fire "connect" on the
|
|
686
774
|
// same SerialPort instance (W3C spec model: the port is reused).
|
|
687
775
|
this.#usb.onConnect(event => {
|
|
688
|
-
|
|
689
|
-
|
|
776
|
+
// Native connect events expose VID/PID but not a stable unique
|
|
777
|
+
// identifier. To avoid mis-associating identical devices, remap only
|
|
778
|
+
// when there is exactly one disconnected candidate.
|
|
779
|
+
const candidates = Array.from(this.#knownPorts.entries()).filter(([, port]) => {
|
|
690
780
|
const internals = portInternals.get(port);
|
|
691
|
-
if (
|
|
692
|
-
if (internals.
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
781
|
+
if (internals.getVid() !== event.usbVendorId) return false;
|
|
782
|
+
if (internals.getPid() !== event.usbProductId) return false;
|
|
783
|
+
if (internals.isForgotten()) return false;
|
|
784
|
+
return !port.connected;
|
|
785
|
+
});
|
|
786
|
+
if (candidates.length === 1) {
|
|
787
|
+
const [key, port] = candidates[0];
|
|
788
|
+
const internals = portInternals.get(port);
|
|
789
|
+
internals.setDeviceId(event.deviceId);
|
|
790
|
+
const newKey = this.#portKey(event.deviceId, internals.getPortNumber());
|
|
791
|
+
this.#knownPorts.delete(key);
|
|
792
|
+
this.#knownPorts.set(newKey, port);
|
|
793
|
+
// Dispatched on the port; it bubbles to this Serial (event.target
|
|
794
|
+
// stays the port, per spec — see setEventParent below).
|
|
795
|
+
port.dispatchEvent(new _eventTarget.Event('connect'));
|
|
796
|
+
return;
|
|
702
797
|
}
|
|
798
|
+
|
|
799
|
+
// No known port matched (or matching is ambiguous): fire a Serial-level
|
|
800
|
+
// "connect" so listeners refresh; getPorts() surfaces the new port.
|
|
703
801
|
this.dispatchEvent(new _eventTarget.Event('connect'));
|
|
704
|
-
// If we matched no known port this is a brand-new device; getPorts()
|
|
705
|
-
// will surface it on the next refresh.
|
|
706
|
-
void matched;
|
|
707
802
|
});
|
|
708
803
|
|
|
709
804
|
// A USB device was detached. Reset the matching port(s) to a closed,
|
|
@@ -712,12 +807,18 @@ class Serial extends _eventTarget.EventTarget {
|
|
|
712
807
|
// dispatches "disconnect" on the port.
|
|
713
808
|
this.#usb.onDisconnect(event => {
|
|
714
809
|
const prefix = `${event.deviceId}:`;
|
|
810
|
+
let matched = false;
|
|
715
811
|
for (const [key, port] of [...this.#knownPorts.entries()]) {
|
|
716
812
|
if (key.startsWith(prefix)) {
|
|
813
|
+
// handleDeviceLost() dispatches "disconnect" on the port, which
|
|
814
|
+
// bubbles here with event.target === the port (per spec).
|
|
717
815
|
portInternals.get(port)?.handleDeviceLost();
|
|
816
|
+
matched = true;
|
|
718
817
|
}
|
|
719
818
|
}
|
|
720
|
-
|
|
819
|
+
// No known port matched (e.g. a device never opened): fire a
|
|
820
|
+
// Serial-level "disconnect" so listeners can still refresh.
|
|
821
|
+
if (!matched) this.dispatchEvent(new _eventTarget.Event('disconnect'));
|
|
721
822
|
});
|
|
722
823
|
} catch {
|
|
723
824
|
this.#usb = null;
|
|
@@ -792,8 +893,12 @@ class Serial extends _eventTarget.EventTarget {
|
|
|
792
893
|
} of portIds) {
|
|
793
894
|
if (!hasPermission) continue;
|
|
794
895
|
const key = this.#portKey(deviceId, portNumber);
|
|
795
|
-
|
|
796
|
-
|
|
896
|
+
const known = this.#knownPorts.get(key);
|
|
897
|
+
if (!known || portInternals.get(known)?.isForgotten()) {
|
|
898
|
+
const port = new SerialPort(usb, deviceId, portNumber, usbVendorId, usbProductId);
|
|
899
|
+
// The port's connect/disconnect events bubble to this Serial.
|
|
900
|
+
(0, _eventTarget.setEventParent)(port, this);
|
|
901
|
+
this.#knownPorts.set(key, port);
|
|
797
902
|
}
|
|
798
903
|
ports.push(this.#knownPorts.get(key));
|
|
799
904
|
}
|
|
@@ -812,6 +917,9 @@ class Serial extends _eventTarget.EventTarget {
|
|
|
812
917
|
if (!usb) {
|
|
813
918
|
throw new _domException.DOMException('NativeUsbSerial is not available.', 'NotFoundError');
|
|
814
919
|
}
|
|
920
|
+
if ((options.allowedBluetoothServiceClassIds?.length ?? 0) > 0) {
|
|
921
|
+
throw new TypeError('allowedBluetoothServiceClassIds is not supported in Android USB mode.');
|
|
922
|
+
}
|
|
815
923
|
|
|
816
924
|
// 4. If options["filters"] is present, then for each filter in
|
|
817
925
|
// options["filters"] run the following steps:
|
|
@@ -854,8 +962,12 @@ class Serial extends _eventTarget.EventTarget {
|
|
|
854
962
|
|
|
855
963
|
// 5.6. Let port be a SerialPort representing the port chosen by the user.
|
|
856
964
|
const key = `${portId.deviceId}:${portId.portNumber}`;
|
|
857
|
-
|
|
858
|
-
|
|
965
|
+
const known = this.#knownPorts.get(key);
|
|
966
|
+
if (!known || portInternals.get(known)?.isForgotten()) {
|
|
967
|
+
const port = new SerialPort(usb, portId.deviceId, portId.portNumber, portId.usbVendorId, portId.usbProductId);
|
|
968
|
+
// The port's connect/disconnect events bubble to this Serial.
|
|
969
|
+
(0, _eventTarget.setEventParent)(port, this);
|
|
970
|
+
this.#knownPorts.set(key, port);
|
|
859
971
|
}
|
|
860
972
|
|
|
861
973
|
// 5.7. Resolve promise with port.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_webStreamsPolyfill","require","_domException","_eventTarget","_promise","_UsbSerial","serialPortDeviceIds","WeakMap","portInternals","kDefaultDataBits","kDefaultStopBits","kDefaultParity","kDefaultBufferSize","kDefaultFlowControl","kAcceptableDataBits","kAcceptableStopBits","kAcceptableParity","parityToNative","parity","flowControlToNative","flowControl","SerialPort","EventTarget","events","connect","disconnect","state","bufferSize","undefined","connected","readable","readFatal","writable","writeFatal","pendingClosePromise","usb","deviceId","portNumber","usbVendorId","usbProductId","outputSignals","dataTerminalReady","requestToSend","break","dataSubscription","errorSubscription","constructor","set","getVid","getPid","getPortNumber","getDeviceId","setDeviceId","id","handleDeviceLost","#handleDeviceLost","cancel","catch","abort","remove","dispatchEvent","Event","onconnect","fn","removeEventListener","addEventListener","ondisconnect","self","stream","ReadableStream","start","controller","onData","event","enqueue","Uint8Array","data","onError","error","DOMException","handleClosingReadableStream","purgeHwBuffers","ByteLengthQueuingStrategy","highWaterMark","WritableStream","write","chunk","Array","from","e","handleClosingWritableStream","message","close","getInfo","info","Object","create","open","options","baudRate","TypeError","dataBits","includes","stopBits","join","nativeOptions","setFlowControl","startReading","cancelPromise","Promise","resolve","abortPromise","createDeferredPromise","all","promise","forget","setSignals","signals","promises","push","setDTR","setRTS","setBreak","getSignals","dcd","cts","ri","dsr","getCD","getCTS","getRI","getDSR","dataCarrierDetect","clearToSend","ringIndicator","dataSetReady","#handleClosingReadableStream","#handleClosingWritableStream","exports","Serial","knownPorts","Map","initialized","args","ensureInit","#ensureInit","getUsbSerial","onConnect","matched","key","port","entries","internals","get","newKey","portKey","delete","onDisconnect","prefix","startsWith","#portKey","getPorts","portIds","findAllDrivers","ports","hasPermission","has","requestPort","filters","filter","bluetoothServiceClassId","nativeFilters","f","map","portId","showPortPicker","serial"],"sourceRoot":"../../src","sources":["WebSerial.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_webStreamsPolyfill","require","_domException","_eventTarget","_promise","_UsbSerial","serialPortDeviceIds","WeakMap","portInternals","kDefaultDataBits","kDefaultStopBits","kDefaultParity","kDefaultBufferSize","kDefaultFlowControl","kAcceptableDataBits","kAcceptableStopBits","kAcceptableParity","kAcceptableFlowControl","parityToNative","parity","FLOW_CONTROL_NATIVE","none","hardware","flowControlToNative","flowControl","SerialPort","EventTarget","events","connect","disconnect","state","bufferSize","undefined","connected","readable","readFatal","writable","writeFatal","pendingClosePromise","usb","deviceId","portNumber","usbVendorId","usbProductId","outputSignals","dataTerminalReady","requestToSend","break","dataSubscription","errorSubscription","readableController","writableController","forgetRequested","resetToClosedState","#resetToClosedState","remove","constructor","set","getVid","getPid","getPortNumber","isForgotten","setDeviceId","id","handleDeviceLost","#handleDeviceLost","wasForgotten","lost","DOMException","error","dispatchEvent","Event","onconnect","fn","removeEventListener","addEventListener","ondisconnect","self","stream","ReadableStream","start","controller","onData","event","enqueue","Uint8Array","data","onError","errorName","handleClosingReadableStream","cancel","purgeHwBuffers","catch","ByteLengthQueuingStrategy","highWaterMark","WritableStream","write","chunk","Array","from","e","handleClosingWritableStream","message","abort","close","getInfo","info","Object","create","open","options","Number","isFinite","baudRate","TypeError","dataBits","includes","stopBits","join","nativeOptions","setFlowControl","startReading","cancelPromise","Promise","resolve","abortPromise","createDeferredPromise","all","promise","forget","setSignals","signals","promises","push","setDTR","setRTS","setBreak","getSignals","dcd","cts","ri","dsr","getCD","getCTS","getRI","getDSR","dataCarrierDetect","clearToSend","ringIndicator","dataSetReady","#handleClosingReadableStream","#handleClosingWritableStream","exports","Serial","knownPorts","Map","initialized","injected","transport","args","ensureInit","#ensureInit","getUsbSerial","onConnect","candidates","entries","filter","port","internals","get","length","key","newKey","portKey","delete","onDisconnect","prefix","matched","startsWith","#portKey","getPorts","portIds","findAllDrivers","ports","hasPermission","known","setEventParent","requestPort","allowedBluetoothServiceClassIds","filters","bluetoothServiceClassId","nativeFilters","f","map","portId","showPortPicker","serial"],"sourceRoot":"../../src","sources":["WebSerial.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -28,16 +28,28 @@ Object.defineProperty(exports, "SerialPort", {
|
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
30
|
exports.UsbSerial = void 0;
|
|
31
|
+
Object.defineProperty(exports, "resetUsbSerial", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () {
|
|
34
|
+
return UsbSerial.resetUsbSerial;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
31
37
|
Object.defineProperty(exports, "serial", {
|
|
32
38
|
enumerable: true,
|
|
33
39
|
get: function () {
|
|
34
40
|
return _serial.default;
|
|
35
41
|
}
|
|
36
42
|
});
|
|
43
|
+
Object.defineProperty(exports, "setUsbSerial", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return UsbSerial.setUsbSerial;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
37
49
|
var _serial = _interopRequireDefault(require("./serial"));
|
|
38
|
-
var _WebSerial = require("./WebSerial");
|
|
39
50
|
var UsbSerial = _interopRequireWildcard(require("./UsbSerial"));
|
|
40
51
|
exports.UsbSerial = UsbSerial;
|
|
52
|
+
var _WebSerial = require("./WebSerial");
|
|
41
53
|
var _eventTarget = require("./lib/event-target");
|
|
42
54
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
43
55
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_serial","_interopRequireDefault","require","
|
|
1
|
+
{"version":3,"names":["_serial","_interopRequireDefault","require","UsbSerial","_interopRequireWildcard","exports","_WebSerial","_eventTarget","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAC,uBAAA,CAAAF,OAAA;AAAyDG,OAAA,CAAAF,SAAA,GAAAA,SAAA;AAUzD,IAAAG,UAAA,GAAAJ,OAAA;AAIA,IAAAK,YAAA,GAAAL,OAAA;AAAsD,SAAAE,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAR,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA","ignoreList":[]}
|