react-native-web-serial-api 0.1.0 → 0.2.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 (112) hide show
  1. package/README.md +188 -117
  2. package/TESTING.md +417 -176
  3. package/android/build.gradle +14 -0
  4. package/android/src/main/java/dev/webserialapi/NativeUsbSerialModule.java +74 -11
  5. package/android/src/main/java/dev/webserialapi/PortPickerActivity.java +61 -59
  6. package/bin/expose-serial.js +205 -0
  7. package/lib/commonjs/UsbSerial.js +1 -1
  8. package/lib/commonjs/WebSerial.js +110 -26
  9. package/lib/commonjs/WebSerial.js.map +1 -1
  10. package/lib/commonjs/index.js +2 -2
  11. package/lib/commonjs/index.js.map +1 -1
  12. package/lib/commonjs/lib/event-target.js +3 -1
  13. package/lib/commonjs/lib/event-target.js.map +1 -1
  14. package/lib/commonjs/lib/web-streams.js +42 -0
  15. package/lib/commonjs/lib/web-streams.js.map +1 -0
  16. package/lib/commonjs/testing/device-fixture.js +70 -0
  17. package/lib/commonjs/testing/device-fixture.js.map +1 -0
  18. package/lib/commonjs/testing/expose.js +91 -0
  19. package/lib/commonjs/testing/expose.js.map +1 -0
  20. package/lib/commonjs/testing/harness.js +98 -0
  21. package/lib/commonjs/testing/harness.js.map +1 -0
  22. package/lib/commonjs/testing/{virtual-serial.js → in-memory-serial-transport.js} +66 -28
  23. package/lib/commonjs/testing/in-memory-serial-transport.js.map +1 -0
  24. package/lib/commonjs/testing/index.js +100 -17
  25. package/lib/commonjs/testing/index.js.map +1 -1
  26. package/lib/commonjs/testing/install-in-memory-serial-transport.js +54 -0
  27. package/lib/commonjs/testing/install-in-memory-serial-transport.js.map +1 -0
  28. package/lib/commonjs/testing/serial-client.js +277 -0
  29. package/lib/commonjs/testing/serial-client.js.map +1 -0
  30. package/lib/commonjs/testing/{serial-device.js → simulated-device.js} +17 -17
  31. package/lib/commonjs/testing/simulated-device.js.map +1 -0
  32. package/lib/commonjs/testing/test-suite.js +142 -0
  33. package/lib/commonjs/testing/test-suite.js.map +1 -0
  34. package/lib/commonjs/transport.js +3 -3
  35. package/lib/commonjs/websocket/WebSocketSerialTransport.js +659 -0
  36. package/lib/commonjs/websocket/WebSocketSerialTransport.js.map +1 -0
  37. package/lib/commonjs/websocket/bridge.js +234 -0
  38. package/lib/commonjs/websocket/bridge.js.map +1 -0
  39. package/lib/commonjs/websocket/index.js +33 -0
  40. package/lib/commonjs/websocket/index.js.map +1 -0
  41. package/lib/commonjs/websocket/protocol.js +55 -0
  42. package/lib/commonjs/websocket/protocol.js.map +1 -0
  43. package/lib/commonjs/websocket/serial-device-bridge.js +130 -0
  44. package/lib/commonjs/websocket/serial-device-bridge.js.map +1 -0
  45. package/lib/typescript/src/UsbSerial.d.ts +1 -1
  46. package/lib/typescript/src/WebSerial.d.ts +7 -7
  47. package/lib/typescript/src/WebSerial.d.ts.map +1 -1
  48. package/lib/typescript/src/index.d.ts +1 -1
  49. package/lib/typescript/src/index.d.ts.map +1 -1
  50. package/lib/typescript/src/lib/event-target.d.ts +2 -0
  51. package/lib/typescript/src/lib/event-target.d.ts.map +1 -1
  52. package/lib/typescript/src/lib/web-streams.d.ts +9 -0
  53. package/lib/typescript/src/lib/web-streams.d.ts.map +1 -0
  54. package/lib/typescript/src/testing/device-fixture.d.ts +70 -0
  55. package/lib/typescript/src/testing/device-fixture.d.ts.map +1 -0
  56. package/lib/typescript/src/testing/expose.d.ts +71 -0
  57. package/lib/typescript/src/testing/expose.d.ts.map +1 -0
  58. package/lib/typescript/src/testing/harness.d.ts +34 -0
  59. package/lib/typescript/src/testing/harness.d.ts.map +1 -0
  60. package/lib/typescript/src/testing/{virtual-serial.d.ts → in-memory-serial-transport.d.ts} +37 -26
  61. package/lib/typescript/src/testing/in-memory-serial-transport.d.ts.map +1 -0
  62. package/lib/typescript/src/testing/index.d.ts +18 -8
  63. package/lib/typescript/src/testing/index.d.ts.map +1 -1
  64. package/lib/typescript/src/testing/install-in-memory-serial-transport.d.ts +25 -0
  65. package/lib/typescript/src/testing/install-in-memory-serial-transport.d.ts.map +1 -0
  66. package/lib/typescript/src/testing/serial-client.d.ts +62 -0
  67. package/lib/typescript/src/testing/serial-client.d.ts.map +1 -0
  68. package/lib/typescript/src/testing/{serial-device.d.ts → simulated-device.d.ts} +23 -23
  69. package/lib/typescript/src/testing/simulated-device.d.ts.map +1 -0
  70. package/lib/typescript/src/testing/test-suite.d.ts +75 -0
  71. package/lib/typescript/src/testing/test-suite.d.ts.map +1 -0
  72. package/lib/typescript/src/transport.d.ts +3 -3
  73. package/lib/typescript/src/websocket/WebSocketSerialTransport.d.ts +111 -0
  74. package/lib/typescript/src/websocket/WebSocketSerialTransport.d.ts.map +1 -0
  75. package/lib/typescript/src/websocket/bridge.d.ts +66 -0
  76. package/lib/typescript/src/websocket/bridge.d.ts.map +1 -0
  77. package/lib/typescript/src/websocket/index.d.ts +19 -0
  78. package/lib/typescript/src/websocket/index.d.ts.map +1 -0
  79. package/lib/typescript/src/websocket/protocol.d.ts +64 -0
  80. package/lib/typescript/src/websocket/protocol.d.ts.map +1 -0
  81. package/lib/typescript/src/websocket/serial-device-bridge.d.ts +32 -0
  82. package/lib/typescript/src/websocket/serial-device-bridge.d.ts.map +1 -0
  83. package/package.json +21 -3
  84. package/src/UsbSerial.ts +1 -1
  85. package/src/WebSerial.ts +134 -35
  86. package/src/index.ts +4 -1
  87. package/src/lib/event-target.ts +12 -0
  88. package/src/lib/web-streams.ts +43 -0
  89. package/src/testing/device-fixture.ts +150 -0
  90. package/src/testing/expose.ts +147 -0
  91. package/src/testing/harness.ts +124 -0
  92. package/src/testing/{virtual-serial.ts → in-memory-serial-transport.ts} +95 -56
  93. package/src/testing/index.ts +69 -21
  94. package/src/testing/install-in-memory-serial-transport.ts +65 -0
  95. package/src/testing/serial-client.ts +313 -0
  96. package/src/testing/{serial-device.ts → simulated-device.ts} +23 -23
  97. package/src/testing/test-suite.ts +186 -0
  98. package/src/transport.ts +3 -3
  99. package/src/websocket/WebSocketSerialTransport.ts +796 -0
  100. package/src/websocket/bridge.ts +299 -0
  101. package/src/websocket/index.ts +38 -0
  102. package/src/websocket/protocol.ts +101 -0
  103. package/src/websocket/serial-device-bridge.ts +160 -0
  104. package/lib/commonjs/testing/install.js +0 -54
  105. package/lib/commonjs/testing/install.js.map +0 -1
  106. package/lib/commonjs/testing/serial-device.js.map +0 -1
  107. package/lib/commonjs/testing/virtual-serial.js.map +0 -1
  108. package/lib/typescript/src/testing/install.d.ts +0 -25
  109. package/lib/typescript/src/testing/install.d.ts.map +0 -1
  110. package/lib/typescript/src/testing/serial-device.d.ts.map +0 -1
  111. package/lib/typescript/src/testing/virtual-serial.d.ts.map +0 -1
  112. package/src/testing/install.ts +0 -65
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_protocol","require","PARITY","WebSocketSerialTransport","deviceId","portNumber","usbVendorId","usbProductId","serialNumber","url","Ctor","reconnectEnabled","initialDelay","maxDelay","maxAttempts","connectTimeout","commandTimeout","options","ws","state","everConnected","reconnectAttempts","reconnectTimer","metadataLoaded","portOpen","reading","lastLineCoding","nextId","dtr","rts","pending","Map","connectWaiters","Set","dataListeners","errorListeners","connectListeners","disconnectListeners","constructor","WebSocket","globalThis","Error","reconnect","reconnectInitialDelayMs","reconnectMaxDelayMs","maxReconnectAttempts","Number","POSITIVE_INFINITY","connectTimeoutMs","commandTimeoutMs","connect","connectionState","#connect","handleSocketDown","binaryType","dead","onDown","addEventListener","onOpen","event","onMessage","data","#onOpen","reconnected","restoreSession","loadPortInfo","emit","connectEvent","onConnected","releaseWaiters","#restoreSession","sendCommand","#loadPortInfo","info","probeAlive","#probeAlive","error","#handleSocketDown","failAll","scheduleReconnect","terminate","#scheduleReconnect","attempt","delay","Math","min","jittered","round","random","onReconnecting","setTimeout","undefined","#terminate","reason","clearTimeout","rejectWaiters","onClosed","suspend","#suspend","close","whenConnected","#whenConnected","Promise","resolve","reject","timer","delete","waiter","e","add","#releaseWaiters","clear","#rejectWaiters","#onMessage","ArrayBuffer","Array","from","Uint8Array","msg","parseControlMessage","type","get","id","result","#failAll","#connectEvent","#sendCommand","command","args","set","value","send","JSON","stringify","String","#command","subscribe","#subscribe","listener","remove","#emit","findAllDrivers","hasPermission","showPortPicker","_filter","_labels","port","requestPermission","_deviceId","lineCoding","#lineCoding","baudRate","dataBits","stopBits","parity","open","_portNumber","catch","isOpen","write","_timeout","startReading","stopReading","setParameters","setDTR","_d","_p","setRTS","getDTR","getRTS","signals","#signals","s","cts","dsr","dcd","ri","getCD","getCTS","getDSR","getRI","getControlLines","lines","push","getSupportedControlLines","setFlowControl","_flowControl","getFlowControl","getSupportedFlowControl","setBreak","brk","purgeHwBuffers","_purgeWrite","_purgeRead","getSerial","onData","onError","onConnect","onDisconnect","disconnect","alreadyClosed","exports"],"sourceRoot":"../../../src","sources":["websocket/WebSocketSerialTransport.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.USAGE = void 0;
7
+ exports.attachBridge = attachBridge;
8
+ exports.parseBridgeArgs = parseBridgeArgs;
9
+ var _protocol = require("./protocol");
10
+ /**
11
+ * Server-side core of the WebSocket serial bridge — deliberately free of any
12
+ * `serialport`/`ws`/Node imports so it is unit-testable with fakes. The thin
13
+ * `bin/expose-serial.js` wrapper supplies the real `serialport` port and `ws`
14
+ * socket objects and calls {@link attachBridge} for each connection.
15
+ */
16
+
17
+ /** The subset of a `serialport` SerialPort that the bridge uses (callback API). */
18
+
19
+ /** The subset of a `ws` WebSocket that the bridge uses. */
20
+
21
+ /** Normalise any binary payload (Buffer/ArrayBuffer/typed array) to bytes. */
22
+ function toBytes(data) {
23
+ if (data instanceof Uint8Array) {
24
+ return data;
25
+ }
26
+ if (data instanceof ArrayBuffer) {
27
+ return new Uint8Array(data);
28
+ }
29
+ if (ArrayBuffer.isView(data)) {
30
+ return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
31
+ }
32
+ if (Array.isArray(data)) {
33
+ return Uint8Array.from(data);
34
+ }
35
+ return new Uint8Array(0);
36
+ }
37
+ const errMessage = e => e instanceof Error ? e.message : String(e);
38
+
39
+ /**
40
+ * Wire a single WebSocket connection to a single serial port: binary frames are
41
+ * piped both ways, JSON control frames invoke the corresponding serial method
42
+ * and get a response, and the port's data/error/close are surfaced as frames.
43
+ * Returns a teardown function that detaches the serial listeners.
44
+ */
45
+ function attachBridge(serial, ws, options = {}) {
46
+ let reading = options.readingByDefault ?? true;
47
+ const onData = data => {
48
+ if (reading) {
49
+ ws.send(toBytes(data));
50
+ }
51
+ };
52
+ const sendEvent = (event, error) => ws.send(JSON.stringify({
53
+ type: 'event',
54
+ event,
55
+ ...(error ? {
56
+ error
57
+ } : {})
58
+ }));
59
+ const onError = err => sendEvent('error', err.message);
60
+ const onOpen = () => sendEvent('open');
61
+ const onClose = () => sendEvent('close');
62
+ serial.on('data', onData);
63
+ serial.on('error', onError);
64
+ serial.on('open', onOpen);
65
+ serial.on('close', onClose);
66
+ const reply = (id, error, result = null) => ws.send(JSON.stringify({
67
+ type: 'response',
68
+ id,
69
+ error: error ? errMessage(error) : null,
70
+ result
71
+ }));
72
+ const handleCommand = msg => {
73
+ const {
74
+ id,
75
+ command
76
+ } = msg;
77
+ const args = msg.args ?? {};
78
+ switch (command) {
79
+ // Note: serialport can change the baud rate live; data-bits/parity/stop-bits
80
+ // are fixed at the rate the bridge process was started with.
81
+ case 'setLineCoding':
82
+ case 'setBaudRate':
83
+ serial.update({
84
+ baudRate: Number(args.baudRate)
85
+ }, e => reply(id, e));
86
+ break;
87
+ case 'setSignals':
88
+ {
89
+ const set = {};
90
+ if (typeof args.dtr === 'boolean') set.dtr = args.dtr;
91
+ if (typeof args.rts === 'boolean') set.rts = args.rts;
92
+ if (typeof args.brk === 'boolean') set.brk = args.brk;
93
+ serial.set(set, e => reply(id, e));
94
+ break;
95
+ }
96
+ case 'getSignals':
97
+ serial.get((e, s) => reply(id, e, s ? {
98
+ cts: !!s.cts,
99
+ dsr: !!s.dsr,
100
+ dcd: !!s.dcd,
101
+ ri: !!s.ri
102
+ } : {
103
+ cts: false,
104
+ dsr: false,
105
+ dcd: false,
106
+ ri: false
107
+ }));
108
+ break;
109
+ case 'getPortInfo':
110
+ {
111
+ const info = typeof options.portInfo === 'function' ? options.portInfo() : options.portInfo;
112
+ reply(id, null, info ? {
113
+ usbVendorId: info.usbVendorId,
114
+ usbProductId: info.usbProductId,
115
+ serialNumber: info.serialNumber
116
+ } : null);
117
+ break;
118
+ }
119
+ case 'startReading':
120
+ reading = true;
121
+ reply(id, null);
122
+ break;
123
+ case 'stopReading':
124
+ reading = false;
125
+ reply(id, null);
126
+ break;
127
+ case 'flush':
128
+ serial.flush(e => reply(id, e));
129
+ break;
130
+ case 'drain':
131
+ serial.drain(e => reply(id, e));
132
+ break;
133
+ case 'break':
134
+ serial.set({
135
+ brk: true
136
+ }, () => setTimeout(() => serial.set({
137
+ brk: false
138
+ }, e => reply(id, e)), Number(args.duration ?? 100)));
139
+ break;
140
+ case 'close':
141
+ serial.close(e => reply(id, e));
142
+ break;
143
+ default:
144
+ reply(id, new Error(`unknown command: ${command}`));
145
+ }
146
+ };
147
+ ws.on('message', (data, isBinary) => {
148
+ if (isBinary) {
149
+ serial.write(toBytes(data), err => {
150
+ if (err) {
151
+ options.log?.(`serial write failed: ${errMessage(err)}`);
152
+ }
153
+ });
154
+ return;
155
+ }
156
+ const text = typeof data === 'string' ? data : new TextDecoder().decode(toBytes(data));
157
+ const msg = (0, _protocol.parseControlMessage)(text);
158
+ if (msg?.type === 'command') {
159
+ handleCommand(msg);
160
+ }
161
+ });
162
+ const teardown = () => {
163
+ serial.removeListener('data', onData);
164
+ serial.removeListener('error', onError);
165
+ serial.removeListener('open', onOpen);
166
+ serial.removeListener('close', onClose);
167
+ };
168
+ ws.on('close', teardown);
169
+ ws.on('error', err => options.log?.(`ws error: ${errMessage(err)}`));
170
+ return teardown;
171
+ }
172
+
173
+ // ── CLI argument parsing (pure, testable) ────────────────────────────────────
174
+
175
+ /** Parse `expose-serial` CLI args + env into a normalised options object. */
176
+ function parseBridgeArgs(argv, env = {}) {
177
+ const args = {};
178
+ for (let i = 0; i < argv.length; i++) {
179
+ const a = argv[i];
180
+ const take = () => argv[++i];
181
+ switch (a) {
182
+ case '-p':
183
+ case '--port':
184
+ args.port = take();
185
+ break;
186
+ case '-b':
187
+ case '--baudrate':
188
+ args.baudRate = take();
189
+ break;
190
+ case '-w':
191
+ case '--ws-port':
192
+ args.wsPort = take();
193
+ break;
194
+ case '--host':
195
+ args.host = take();
196
+ break;
197
+ case '--allow-remote':
198
+ args.allowRemote = true;
199
+ break;
200
+ case '-h':
201
+ case '--help':
202
+ args.help = true;
203
+ break;
204
+ }
205
+ }
206
+ const allowRemote = args.allowRemote === true;
207
+ const host = args.host ?? env.HOST ?? (allowRemote ? '0.0.0.0' : '127.0.0.1');
208
+ return {
209
+ port: args.port ?? env.SERIAL_PORT,
210
+ baudRate: Number(args.baudRate ?? env.BAUD_RATE ?? 115200),
211
+ wsPort: Number(args.wsPort ?? env.WS_PORT ?? 8080),
212
+ host,
213
+ allowRemote,
214
+ help: args.help === true
215
+ };
216
+ }
217
+ const USAGE = exports.USAGE = `expose-serial-websocket — bridge a serial port to a WebSocket
218
+
219
+ Usage:
220
+ expose-serial-websocket --port <path> [--baudrate 115200] [--ws-port 8080]
221
+ [--host 127.0.0.1] [--allow-remote]
222
+
223
+ Options:
224
+ -p, --port <path> Serial device (e.g. /dev/ttyUSB0, COM3) [env SERIAL_PORT]
225
+ -b, --baudrate <n> Baud rate (default 115200) [env BAUD_RATE]
226
+ -w, --ws-port <n> WebSocket port (default 8080) [env WS_PORT]
227
+ --host <addr> Listen address (default 127.0.0.1) [env HOST]
228
+ --allow-remote Bind 0.0.0.0 (exposes the port to the network!)
229
+ -h, --help Show this help
230
+
231
+ Connect from the app with:
232
+ new Serial(new WebSocketSerialTransport('ws://localhost:8080'))
233
+ `;
234
+ //# sourceMappingURL=bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_protocol","require","toBytes","data","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","Array","isArray","from","errMessage","e","Error","message","String","attachBridge","serial","ws","options","reading","readingByDefault","onData","send","sendEvent","event","error","JSON","stringify","type","onError","err","onOpen","onClose","on","reply","id","result","handleCommand","msg","command","args","update","baudRate","Number","set","dtr","rts","brk","get","s","cts","dsr","dcd","ri","info","portInfo","usbVendorId","usbProductId","serialNumber","flush","drain","setTimeout","duration","close","isBinary","write","log","text","TextDecoder","decode","parseControlMessage","teardown","removeListener","parseBridgeArgs","argv","env","i","length","a","take","port","wsPort","host","allowRemote","help","HOST","SERIAL_PORT","BAUD_RATE","WS_PORT","USAGE","exports"],"sourceRoot":"../../../src","sources":["websocket/bridge.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "SimulatedDeviceToSerialLike", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _serialDeviceBridge.SimulatedDeviceToSerialLike;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "WebSocketSerialTransport", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _WebSocketSerialTransport.WebSocketSerialTransport;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "attachBridge", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _bridge.attachBridge;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "portInfoFromDevice", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _serialDeviceBridge.portInfoFromDevice;
28
+ }
29
+ });
30
+ var _bridge = require("./bridge");
31
+ var _serialDeviceBridge = require("./serial-device-bridge");
32
+ var _WebSocketSerialTransport = require("./WebSocketSerialTransport");
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_bridge","require","_serialDeviceBridge","_WebSocketSerialTransport"],"sourceRoot":"../../../src","sources":["websocket/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,IAAAA,OAAA,GAAAC,OAAA;AAYA,IAAAC,mBAAA,GAAAD,OAAA;AASA,IAAAE,yBAAA,GAAAF,OAAA","ignoreList":[]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.parseControlMessage = parseControlMessage;
7
+ /**
8
+ * Wire protocol shared by the WebSocket serial bridge (Node, see
9
+ * {@link ./bridge}) and the client transport ({@link ./WebSocketSerialTransport}).
10
+ *
11
+ * A single WebSocket carries two kinds of frame:
12
+ * - **binary** frames are raw serial bytes (client→bridge = data to write to the
13
+ * port; bridge→client = data read from the port), and
14
+ * - **text** frames are JSON control messages (this module).
15
+ *
16
+ * Control flow is request/response: the client tags each {@link CommandMessage}
17
+ * with an incrementing `id` and the bridge replies with a {@link ResponseMessage}
18
+ * carrying the same `id`. The bridge may also push unsolicited
19
+ * {@link EventMessage}s (port open/close/error).
20
+ */
21
+
22
+ /** Connection parameters for `setLineCoding`. */
23
+
24
+ /** Input control-signal state returned by `getSignals`. */
25
+
26
+ /** Optional serial-port metadata returned by `getPortInfo`. */
27
+
28
+ /** Every control command the bridge understands. */
29
+
30
+ /** client → bridge */
31
+
32
+ /** bridge → client, answering a {@link CommandMessage} with the same `id`. */
33
+
34
+ /** An unsolicited port lifecycle event the bridge emits to the client. */
35
+
36
+ /** bridge → client */
37
+
38
+ /** Parse a text frame into a {@link ControlMessage}, or null if it isn't one. */
39
+ function parseControlMessage(text) {
40
+ let value;
41
+ try {
42
+ value = JSON.parse(text);
43
+ } catch {
44
+ return null;
45
+ }
46
+ if (typeof value !== 'object' || value === null) {
47
+ return null;
48
+ }
49
+ const type = value.type;
50
+ if (type === 'command' || type === 'response' || type === 'event') {
51
+ return value;
52
+ }
53
+ return null;
54
+ }
55
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["parseControlMessage","text","value","JSON","parse","type"],"sourceRoot":"../../../src","sources":["websocket/protocol.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;;AAQA;;AAQA;;AAOA;;AAcA;;AAQA;;AAQA;;AAGA;;AASA;AACO,SAASA,mBAAmBA,CAACC,IAAY,EAAyB;EACvE,IAAIC,KAAc;EAClB,IAAI;IACFA,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;EAC1B,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;EACA,IAAI,OAAOC,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAE;IAC/C,OAAO,IAAI;EACb;EACA,MAAMG,IAAI,GAAIH,KAAK,CAAsBG,IAAI;EAC7C,IAAIA,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,UAAU,IAAIA,IAAI,KAAK,OAAO,EAAE;IACjE,OAAOH,KAAK;EACd;EACA,OAAO,IAAI;AACb","ignoreList":[]}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SimulatedDeviceToSerialLike = SimulatedDeviceToSerialLike;
7
+ exports.portInfoFromDevice = portInfoFromDevice;
8
+ /**
9
+ * Adapt an in-memory {@link DeviceHandle} simulator to the
10
+ * `serialport`-style {@link SerialLike} that {@link attachBridge} consumes, so a
11
+ * test can expose a *simulated* device over a WebSocket and have a real app
12
+ * connect to it with `new WebSocketSerialTransport(url)`. This is what makes the
13
+ * *same* device-driving test run in Jest (in-memory) and on a device/emulator
14
+ * (over the socket).
15
+ *
16
+ * Pure — no `ws`/`serialport`/Node imports — so it unit-tests with the same
17
+ * `FakeWs` + `attachBridge` fakes the bridge core uses. The lazy-`ws` server
18
+ * wrapper lives in `react-native-web-serial-api/testing` (`exposeSimulatedDevice`).
19
+ *
20
+ * Mapping (host app ⇄ simulator):
21
+ * - client binary frame → `write` → `device.onData`,
22
+ * - `setLineCoding`/`setBaudRate` → `update` → opens the sim + starts reading,
23
+ * - `setSignals` → `set` → `device.onHostSignals`,
24
+ * - `getSignals` → `get` → the device's asserted input signals,
25
+ * - `device.send(...)` → `'data'` → client binary frame,
26
+ * - `getPortInfo` → {@link portInfoFromDevice}.
27
+ */
28
+
29
+ /** The bridge's `getPortInfo` metadata, taken from the device's USB identity. */
30
+ function portInfoFromDevice(device) {
31
+ return {
32
+ usbVendorId: device.usbVendorId,
33
+ usbProductId: device.usbProductId,
34
+ serialNumber: device.serialNumber
35
+ };
36
+ }
37
+
38
+ /**
39
+ * Build a {@link SerialLike} backed by `device` (already registered on
40
+ * `transport` via `addDevice`). One adapter per WebSocket connection; its
41
+ * transport subscriptions are released when the bridge tears down its listeners.
42
+ */
43
+ function SimulatedDeviceToSerialLike(transport, device) {
44
+ const dataListeners = new Set();
45
+ const errorListeners = new Set();
46
+ const openListeners = new Set();
47
+ const closeListeners = new Set();
48
+
49
+ // The device's `send(...)` surfaces here as a transport data event; forward
50
+ // the bytes of *this* device to the bridge's 'data' listener.
51
+ const dataSub = transport.onData(e => {
52
+ if (e.deviceId !== device.deviceId) return;
53
+ const bytes = Uint8Array.from(e.data);
54
+ for (const l of dataListeners) l(bytes);
55
+ });
56
+ const errorSub = transport.onError(e => {
57
+ if (e.deviceId !== device.deviceId) return;
58
+ const err = new Error(e.error);
59
+ err.name = e.errorName ?? err.name;
60
+ for (const l of errorListeners) l(err);
61
+ });
62
+ const id = () => device.deviceId;
63
+ const port = () => device.portNumber;
64
+
65
+ /** Open the sim on first use (the app's open handshake), else just re-baud. */
66
+ const ensureOpen = async baudRate => {
67
+ if (device.isOpen) {
68
+ await transport.setParameters(id(), port(), {
69
+ baudRate
70
+ });
71
+ return;
72
+ }
73
+ await transport.open(id(), port(), {
74
+ baudRate
75
+ });
76
+ // The device only forwards `send(...)` while "reading"; the bridge's own
77
+ // startReading toggles client forwarding, not the device, so enable it here.
78
+ await transport.startReading(id(), port());
79
+ for (const l of openListeners) l();
80
+ };
81
+ const cleanupIfIdle = () => {
82
+ if (dataListeners.size === 0 && errorListeners.size === 0) {
83
+ dataSub.remove();
84
+ errorSub.remove();
85
+ }
86
+ };
87
+ return {
88
+ write(data, cb) {
89
+ transport.write(id(), port(), Array.from(data)).then(() => cb?.(null), err => cb?.(err));
90
+ },
91
+ set(opts, cb) {
92
+ const ops = [];
93
+ if (opts.dtr !== undefined) ops.push(transport.setDTR(id(), port(), opts.dtr));
94
+ if (opts.rts !== undefined) ops.push(transport.setRTS(id(), port(), opts.rts));
95
+ if (opts.brk !== undefined) ops.push(transport.setBreak(id(), port(), opts.brk));
96
+ Promise.all(ops).then(() => cb?.(null), err => cb?.(err));
97
+ },
98
+ get(cb) {
99
+ Promise.all([transport.getCTS(id(), port()), transport.getDSR(id(), port()), transport.getCD(id(), port()), transport.getRI(id(), port())]).then(([cts, dsr, dcd, ri]) => cb(null, {
100
+ cts,
101
+ dsr,
102
+ dcd,
103
+ ri
104
+ }), err => cb(err));
105
+ },
106
+ update(opts, cb) {
107
+ ensureOpen(opts.baudRate).then(() => cb?.(null), err => cb?.(err));
108
+ },
109
+ flush(cb) {
110
+ cb?.(null);
111
+ },
112
+ drain(cb) {
113
+ cb?.(null);
114
+ },
115
+ close(cb) {
116
+ transport.close(id(), port()).then(() => {
117
+ for (const l of closeListeners) l();
118
+ cb?.(null);
119
+ }, err => cb?.(err));
120
+ },
121
+ on(event, listener) {
122
+ if (event === 'data') dataListeners.add(listener);else if (event === 'error') errorListeners.add(listener);else if (event === 'open') openListeners.add(listener);else if (event === 'close') closeListeners.add(listener);
123
+ },
124
+ removeListener(event, listener) {
125
+ if (event === 'data') dataListeners.delete(listener);else if (event === 'error') errorListeners.delete(listener);else if (event === 'open') openListeners.delete(listener);else if (event === 'close') closeListeners.delete(listener);
126
+ cleanupIfIdle();
127
+ }
128
+ };
129
+ }
130
+ //# sourceMappingURL=serial-device-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["portInfoFromDevice","device","usbVendorId","usbProductId","serialNumber","SimulatedDeviceToSerialLike","transport","dataListeners","Set","errorListeners","openListeners","closeListeners","dataSub","onData","e","deviceId","bytes","Uint8Array","from","data","l","errorSub","onError","err","Error","error","name","errorName","id","port","portNumber","ensureOpen","baudRate","isOpen","setParameters","open","startReading","cleanupIfIdle","size","remove","write","cb","Array","then","set","opts","ops","dtr","undefined","push","setDTR","rts","setRTS","brk","setBreak","Promise","all","get","getCTS","getDSR","getCD","getRI","cts","dsr","dcd","ri","update","flush","drain","close","on","event","listener","add","removeListener","delete"],"sourceRoot":"../../../src","sources":["websocket/serial-device-bridge.ts"],"mappings":"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","ignoreList":[]}
@@ -45,7 +45,7 @@ export declare class UsbSerialModule implements SerialTransport {
45
45
  export declare function getUsbSerial(): SerialTransport;
46
46
  /**
47
47
  * Override the transport returned by {@link getUsbSerial}. Pass a
48
- * {@link SerialTransport} (e.g. a `VirtualSerialTransport`) to make the
48
+ * {@link SerialTransport} (e.g. an `InMemorySerialTransport`) to make the
49
49
  * singleton `serial` instance — and any `new Serial()` created without an
50
50
  * explicit transport — talk to it instead of real hardware. Pass `null` to
51
51
  * clear the override.
@@ -1,5 +1,5 @@
1
- import { ReadableStream, WritableStream } from 'web-streams-polyfill';
2
1
  import { Event, EventTarget } from './lib/event-target';
2
+ import { ReadableStreamImpl as ReadableStream, WritableStreamImpl as WritableStream } from './lib/web-streams';
3
3
  import type { SerialTransport } from './transport';
4
4
  /**
5
5
  * @see https://wicg.github.io/serial/#dom-paritytype
@@ -8,13 +8,13 @@ import type { SerialTransport } from './transport';
8
8
  * even - Data word plus parity bit has even parity.
9
9
  * odd - Data word plus parity bit has odd parity.
10
10
  */
11
- type ParityType = 'none' | 'even' | 'odd';
11
+ export type Parity = 'none' | 'even' | 'odd';
12
12
  /**
13
13
  * @see https://wicg.github.io/serial/#dom-flowcontroltype
14
14
  * none - No flow control is enabled.
15
15
  * hardware - Hardware flow control using the RTS and CTS signals is enabled.
16
16
  */
17
- type FlowControlType = 'none' | 'hardware';
17
+ type FlowControl = 'none' | 'hardware';
18
18
  /**
19
19
  * @see https://wicg.github.io/serial/#dom-serialoptions
20
20
  */
@@ -43,7 +43,7 @@ export type SerialOptions = {
43
43
  /**
44
44
  * The parity mode.
45
45
  */
46
- parity?: ParityType;
46
+ parity?: Parity;
47
47
  /**
48
48
  * A positive, non-zero value indicating the size of the read and write
49
49
  * buffers that should be created.
@@ -52,7 +52,7 @@ export type SerialOptions = {
52
52
  /**
53
53
  * The flow control mode.
54
54
  */
55
- flowControl?: FlowControlType;
55
+ flowControl?: FlowControl;
56
56
  };
57
57
  /**
58
58
  * @see https://wicg.github.io/serial/#dom-serialoutputsignals
@@ -214,8 +214,8 @@ export declare class Serial extends EventTarget {
214
214
  #private;
215
215
  /**
216
216
  * @param transport Optional transport override. When provided, this `Serial`
217
- * talks to it instead of the global native module — the seam used by tests
218
- * and the virtual-device harness (`new Serial(new VirtualSerialTransport())`).
217
+ * talks to it instead of the global native module — the transport override used by tests
218
+ * and the virtual serial device harness (`new Serial(new InMemorySerialTransport())`).
219
219
  * Omit it for the normal native-backed instance; the singleton `serial`
220
220
  * export is created this way and can still be redirected globally via
221
221
  * `setUsbSerial()`.
@@ -1 +1 @@
1
- {"version":3,"file":"WebSerial.d.ts","sourceRoot":"","sources":["../../../src/WebSerial.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebSerial.d.ts","sourceRoot":"","sources":["../../../src/WebSerial.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,6 @@ export { resetUsbSerial, setUsbSerial } from './UsbSerial';
4
4
  export type { SerialInputSignals, SerialOptions, SerialOutputSignals, SerialPortFilter, SerialPortInfo, SerialPortRequestOptions, } from './WebSerial';
5
5
  export { Serial, SerialPort } from './WebSerial';
6
6
  import * as UsbSerial from './UsbSerial';
7
- export { Event, EventTarget } from './lib/event-target';
7
+ export { EventImpl as Event, EventTargetImpl as EventTarget, } from './lib/event-target';
8
8
  export { UsbSerial };
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,UAAU,CAAC;AAC3C,YAAY,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AACjD,OAAO,EAAC,cAAc,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AACzD,YAAY,EACV,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAC,KAAK,EAAE,WAAW,EAAC,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAC,SAAS,EAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,UAAU,CAAC;AAC3C,YAAY,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AACjD,OAAO,EAAC,cAAc,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AACzD,YAAY,EACV,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAEzC,OAAO,EACL,SAAS,IAAI,KAAK,EAClB,eAAe,IAAI,WAAW,GAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,SAAS,EAAC,CAAC"}
@@ -49,5 +49,7 @@ export declare class EventTarget {
49
49
  dispatchEvent(event: Event): boolean;
50
50
  removeEventListener(type: string, listener: EventListenerOrEventListenerObject, _options?: ListenerOptions): void;
51
51
  }
52
+ export declare const EventImpl: typeof Event;
53
+ export declare const EventTargetImpl: typeof EventTarget;
52
54
  export {};
53
55
  //# sourceMappingURL=event-target.d.ts.map