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.
Files changed (120) hide show
  1. package/README.md +23 -0
  2. package/TESTING.md +301 -0
  3. package/android/build.gradle +2 -2
  4. package/android/src/main/java/dev/webserialapi/NativeUsbSerialModule.java +7 -1
  5. package/lib/commonjs/UsbSerial.js +58 -26
  6. package/lib/commonjs/UsbSerial.js.map +1 -1
  7. package/lib/commonjs/WebSerial.js +169 -57
  8. package/lib/commonjs/WebSerial.js.map +1 -1
  9. package/lib/commonjs/index.js +13 -1
  10. package/lib/commonjs/index.js.map +1 -1
  11. package/lib/commonjs/lib/dom-exception.js +176 -0
  12. package/lib/commonjs/lib/dom-exception.js.map +1 -0
  13. package/lib/commonjs/lib/event-target.js +138 -0
  14. package/lib/commonjs/lib/event-target.js.map +1 -0
  15. package/lib/commonjs/lib/promise.js +23 -0
  16. package/lib/commonjs/lib/promise.js.map +1 -0
  17. package/lib/commonjs/testing/index.js +70 -0
  18. package/lib/commonjs/testing/index.js.map +1 -0
  19. package/lib/commonjs/testing/install.js +54 -0
  20. package/lib/commonjs/testing/install.js.map +1 -0
  21. package/lib/commonjs/testing/serial-device.js +164 -0
  22. package/lib/commonjs/testing/serial-device.js.map +1 -0
  23. package/lib/commonjs/testing/virtual-serial.js +615 -0
  24. package/lib/commonjs/testing/virtual-serial.js.map +1 -0
  25. package/lib/commonjs/transport.js +61 -0
  26. package/lib/commonjs/transport.js.map +1 -0
  27. package/lib/typescript/src/UsbSerial.d.ts +24 -67
  28. package/lib/typescript/src/UsbSerial.d.ts.map +1 -1
  29. package/lib/typescript/src/WebSerial.d.ts +11 -2
  30. package/lib/typescript/src/WebSerial.d.ts.map +1 -1
  31. package/lib/typescript/src/index.d.ts +2 -0
  32. package/lib/typescript/src/index.d.ts.map +1 -1
  33. package/lib/typescript/src/lib/dom-exception.d.ts +100 -0
  34. package/lib/typescript/src/lib/dom-exception.d.ts.map +1 -0
  35. package/lib/typescript/src/lib/event-target.d.ts +53 -0
  36. package/lib/typescript/src/lib/event-target.d.ts.map +1 -0
  37. package/lib/typescript/src/lib/promise.d.ts +11 -0
  38. package/lib/typescript/src/lib/promise.d.ts.map +1 -0
  39. package/lib/typescript/src/testing/index.d.ts +23 -0
  40. package/lib/typescript/src/testing/index.d.ts.map +1 -0
  41. package/lib/typescript/src/testing/install.d.ts +25 -0
  42. package/lib/typescript/src/testing/install.d.ts.map +1 -0
  43. package/lib/typescript/src/testing/serial-device.d.ts +127 -0
  44. package/lib/typescript/src/testing/serial-device.d.ts.map +1 -0
  45. package/lib/typescript/src/testing/virtual-serial.d.ts +205 -0
  46. package/lib/typescript/src/testing/virtual-serial.d.ts.map +1 -0
  47. package/lib/typescript/src/transport.d.ts +131 -0
  48. package/lib/typescript/src/transport.d.ts.map +1 -0
  49. package/package.json +38 -2
  50. package/src/UsbSerial.ts +65 -90
  51. package/src/WebSerial.ts +227 -88
  52. package/src/index.ts +2 -7
  53. package/src/lib/dom-exception.ts +129 -60
  54. package/src/lib/event-target.ts +46 -21
  55. package/src/lib/promise.ts +7 -7
  56. package/src/testing/index.ts +42 -0
  57. package/src/testing/install.ts +65 -0
  58. package/src/testing/serial-device.ts +193 -0
  59. package/src/testing/virtual-serial.ts +801 -0
  60. package/src/transport.ts +200 -0
  61. package/babel.config.js +0 -3
  62. package/biome.json +0 -35
  63. package/example/.watchmanconfig +0 -1
  64. package/example/App.tsx +0 -71
  65. package/example/__tests__/App.test.tsx +0 -16
  66. package/example/__tests__/connectEvents.test.tsx +0 -81
  67. package/example/__tests__/getPorts.test.tsx +0 -140
  68. package/example/android/app/build.gradle +0 -120
  69. package/example/android/app/debug.keystore +0 -0
  70. package/example/android/app/proguard-rules.pro +0 -10
  71. package/example/android/app/src/debug/AndroidManifest.xml +0 -9
  72. package/example/android/app/src/main/AndroidManifest.xml +0 -38
  73. package/example/android/app/src/main/java/dev/uzlopak/MainActivity.kt +0 -22
  74. package/example/android/app/src/main/java/dev/uzlopak/MainApplication.kt +0 -41
  75. package/example/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -37
  76. package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  77. package/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  78. package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  79. package/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  80. package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  81. package/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  82. package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  83. package/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  84. package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  85. package/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  86. package/example/android/app/src/main/res/values/strings.xml +0 -3
  87. package/example/android/app/src/main/res/values/styles.xml +0 -9
  88. package/example/android/build.gradle +0 -22
  89. package/example/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  90. package/example/android/gradle/wrapper/gradle-wrapper.properties +0 -7
  91. package/example/android/gradle.properties +0 -47
  92. package/example/android/gradlew +0 -252
  93. package/example/android/gradlew.bat +0 -94
  94. package/example/android/settings.gradle +0 -6
  95. package/example/app.json +0 -4
  96. package/example/babel.config.js +0 -21
  97. package/example/biome.json +0 -47
  98. package/example/deploy.sh +0 -11
  99. package/example/index.html +0 -26
  100. package/example/index.js +0 -9
  101. package/example/index.web.js +0 -8
  102. package/example/jest.config.js +0 -12
  103. package/example/metro.config.js +0 -58
  104. package/example/package-lock.json +0 -14510
  105. package/example/package.json +0 -48
  106. package/example/react-native.config.js +0 -17
  107. package/example/src/components/AppBar.tsx +0 -73
  108. package/example/src/components/Menu.tsx +0 -90
  109. package/example/src/components/SingleChoiceDialog.tsx +0 -120
  110. package/example/src/screens/ConnectScreen.tsx +0 -195
  111. package/example/src/screens/DevicesScreen.tsx +0 -248
  112. package/example/src/screens/TerminalScreen.tsx +0 -564
  113. package/example/src/settings.ts +0 -43
  114. package/example/src/theme.ts +0 -19
  115. package/example/src/util/TextUtil.ts +0 -129
  116. package/example/tsconfig.json +0 -10
  117. package/example/vite.config.mjs +0 -55
  118. package/scripts/deploy-release.sh +0 -127
  119. package/tsconfig.build.json +0 -7
  120. 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 === 'hardware' ? 'RTS_CTS' : 'NONE';
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
- getDeviceId: () => this.#deviceId,
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
- // Tear down read/write streams without invoking the OS on the dead device.
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
- // No active reader is required for cancel(); errors are non-fatal here.
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.#writable.abort().catch(() => {});
199
+ this.#writableController?.error(lost);
167
200
  } catch {}
168
201
  }
169
- this.#dataSubscription?.remove();
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
- controller.error(new _domException.DOMException(event.error, 'NetworkError'));
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 === 0) {
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 === 0) {
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
- if (flowControl !== 'none') {
433
- await this.#usb.setFlowControl(this.#deviceId, this.#portNumber, flowControlToNative(flowControl));
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
- // When the port is no longer logically connected:
505
- this.#connected = false; // 2. Set port.[[connected]] to false.
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
- let matched = false;
689
- for (const [key, port] of [...this.#knownPorts.entries()]) {
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 (!internals) continue;
692
- if (internals.getVid() === event.usbVendorId && internals.getPid() === event.usbProductId) {
693
- internals.setDeviceId(event.deviceId);
694
- const newKey = this.#portKey(event.deviceId, internals.getPortNumber());
695
- if (newKey !== key) {
696
- this.#knownPorts.delete(key);
697
- this.#knownPorts.set(newKey, port);
698
- }
699
- port.dispatchEvent(new _eventTarget.Event('connect'));
700
- matched = true;
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
- this.dispatchEvent(new _eventTarget.Event('disconnect'));
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
- if (!this.#knownPorts.has(key)) {
796
- this.#knownPorts.set(key, new SerialPort(usb, deviceId, portNumber, usbVendorId, usbProductId));
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
- if (!this.#knownPorts.has(key)) {
858
- this.#knownPorts.set(key, new SerialPort(usb, portId.deviceId, portId.portNumber, portId.usbVendorId, portId.usbProductId));
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":[]}
@@ -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","_WebSerial","UsbSerial","_interopRequireWildcard","exports","_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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAUA,IAAAC,UAAA,GAAAD,OAAA;AAKA,IAAAE,SAAA,GAAAC,uBAAA,CAAAH,OAAA;AAAyCI,OAAA,CAAAF,SAAA,GAAAA,SAAA;AAGzC,IAAAG,YAAA,GAAAL,OAAA;AAAsD,SAAAG,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,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":[]}
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":[]}