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.
- package/README.md +188 -117
- package/TESTING.md +417 -176
- package/android/build.gradle +14 -0
- package/android/src/main/java/dev/webserialapi/NativeUsbSerialModule.java +74 -11
- package/android/src/main/java/dev/webserialapi/PortPickerActivity.java +61 -59
- package/bin/expose-serial.js +205 -0
- package/lib/commonjs/UsbSerial.js +1 -1
- package/lib/commonjs/WebSerial.js +110 -26
- package/lib/commonjs/WebSerial.js.map +1 -1
- package/lib/commonjs/index.js +2 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/lib/event-target.js +3 -1
- package/lib/commonjs/lib/event-target.js.map +1 -1
- package/lib/commonjs/lib/web-streams.js +42 -0
- package/lib/commonjs/lib/web-streams.js.map +1 -0
- package/lib/commonjs/testing/device-fixture.js +70 -0
- package/lib/commonjs/testing/device-fixture.js.map +1 -0
- package/lib/commonjs/testing/expose.js +91 -0
- package/lib/commonjs/testing/expose.js.map +1 -0
- package/lib/commonjs/testing/harness.js +98 -0
- package/lib/commonjs/testing/harness.js.map +1 -0
- package/lib/commonjs/testing/{virtual-serial.js → in-memory-serial-transport.js} +66 -28
- package/lib/commonjs/testing/in-memory-serial-transport.js.map +1 -0
- package/lib/commonjs/testing/index.js +100 -17
- package/lib/commonjs/testing/index.js.map +1 -1
- package/lib/commonjs/testing/install-in-memory-serial-transport.js +54 -0
- package/lib/commonjs/testing/install-in-memory-serial-transport.js.map +1 -0
- package/lib/commonjs/testing/serial-client.js +277 -0
- package/lib/commonjs/testing/serial-client.js.map +1 -0
- package/lib/commonjs/testing/{serial-device.js → simulated-device.js} +17 -17
- package/lib/commonjs/testing/simulated-device.js.map +1 -0
- package/lib/commonjs/testing/test-suite.js +142 -0
- package/lib/commonjs/testing/test-suite.js.map +1 -0
- package/lib/commonjs/transport.js +3 -3
- package/lib/commonjs/websocket/WebSocketSerialTransport.js +659 -0
- package/lib/commonjs/websocket/WebSocketSerialTransport.js.map +1 -0
- package/lib/commonjs/websocket/bridge.js +234 -0
- package/lib/commonjs/websocket/bridge.js.map +1 -0
- package/lib/commonjs/websocket/index.js +33 -0
- package/lib/commonjs/websocket/index.js.map +1 -0
- package/lib/commonjs/websocket/protocol.js +55 -0
- package/lib/commonjs/websocket/protocol.js.map +1 -0
- package/lib/commonjs/websocket/serial-device-bridge.js +130 -0
- package/lib/commonjs/websocket/serial-device-bridge.js.map +1 -0
- package/lib/typescript/src/UsbSerial.d.ts +1 -1
- package/lib/typescript/src/WebSerial.d.ts +7 -7
- package/lib/typescript/src/WebSerial.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/lib/event-target.d.ts +2 -0
- package/lib/typescript/src/lib/event-target.d.ts.map +1 -1
- package/lib/typescript/src/lib/web-streams.d.ts +9 -0
- package/lib/typescript/src/lib/web-streams.d.ts.map +1 -0
- package/lib/typescript/src/testing/device-fixture.d.ts +70 -0
- package/lib/typescript/src/testing/device-fixture.d.ts.map +1 -0
- package/lib/typescript/src/testing/expose.d.ts +71 -0
- package/lib/typescript/src/testing/expose.d.ts.map +1 -0
- package/lib/typescript/src/testing/harness.d.ts +34 -0
- package/lib/typescript/src/testing/harness.d.ts.map +1 -0
- package/lib/typescript/src/testing/{virtual-serial.d.ts → in-memory-serial-transport.d.ts} +37 -26
- package/lib/typescript/src/testing/in-memory-serial-transport.d.ts.map +1 -0
- package/lib/typescript/src/testing/index.d.ts +18 -8
- package/lib/typescript/src/testing/index.d.ts.map +1 -1
- package/lib/typescript/src/testing/install-in-memory-serial-transport.d.ts +25 -0
- package/lib/typescript/src/testing/install-in-memory-serial-transport.d.ts.map +1 -0
- package/lib/typescript/src/testing/serial-client.d.ts +62 -0
- package/lib/typescript/src/testing/serial-client.d.ts.map +1 -0
- package/lib/typescript/src/testing/{serial-device.d.ts → simulated-device.d.ts} +23 -23
- package/lib/typescript/src/testing/simulated-device.d.ts.map +1 -0
- package/lib/typescript/src/testing/test-suite.d.ts +75 -0
- package/lib/typescript/src/testing/test-suite.d.ts.map +1 -0
- package/lib/typescript/src/transport.d.ts +3 -3
- package/lib/typescript/src/websocket/WebSocketSerialTransport.d.ts +111 -0
- package/lib/typescript/src/websocket/WebSocketSerialTransport.d.ts.map +1 -0
- package/lib/typescript/src/websocket/bridge.d.ts +66 -0
- package/lib/typescript/src/websocket/bridge.d.ts.map +1 -0
- package/lib/typescript/src/websocket/index.d.ts +19 -0
- package/lib/typescript/src/websocket/index.d.ts.map +1 -0
- package/lib/typescript/src/websocket/protocol.d.ts +64 -0
- package/lib/typescript/src/websocket/protocol.d.ts.map +1 -0
- package/lib/typescript/src/websocket/serial-device-bridge.d.ts +32 -0
- package/lib/typescript/src/websocket/serial-device-bridge.d.ts.map +1 -0
- package/package.json +21 -3
- package/src/UsbSerial.ts +1 -1
- package/src/WebSerial.ts +134 -35
- package/src/index.ts +4 -1
- package/src/lib/event-target.ts +12 -0
- package/src/lib/web-streams.ts +43 -0
- package/src/testing/device-fixture.ts +150 -0
- package/src/testing/expose.ts +147 -0
- package/src/testing/harness.ts +124 -0
- package/src/testing/{virtual-serial.ts → in-memory-serial-transport.ts} +95 -56
- package/src/testing/index.ts +69 -21
- package/src/testing/install-in-memory-serial-transport.ts +65 -0
- package/src/testing/serial-client.ts +313 -0
- package/src/testing/{serial-device.ts → simulated-device.ts} +23 -23
- package/src/testing/test-suite.ts +186 -0
- package/src/transport.ts +3 -3
- package/src/websocket/WebSocketSerialTransport.ts +796 -0
- package/src/websocket/bridge.ts +299 -0
- package/src/websocket/index.ts +38 -0
- package/src/websocket/protocol.ts +101 -0
- package/src/websocket/serial-device-bridge.ts +160 -0
- package/lib/commonjs/testing/install.js +0 -54
- package/lib/commonjs/testing/install.js.map +0 -1
- package/lib/commonjs/testing/serial-device.js.map +0 -1
- package/lib/commonjs/testing/virtual-serial.js.map +0 -1
- package/lib/typescript/src/testing/install.d.ts +0 -25
- package/lib/typescript/src/testing/install.d.ts.map +0 -1
- package/lib/typescript/src/testing/serial-device.d.ts.map +0 -1
- package/lib/typescript/src/testing/virtual-serial.d.ts.map +0 -1
- package/src/testing/install.ts +0 -65
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.exposeSimulatedDevice = exposeSimulatedDevice;
|
|
7
|
+
var _websocket = require("../websocket");
|
|
8
|
+
var _inMemorySerialTransport = require("./in-memory-serial-transport");
|
|
9
|
+
/**
|
|
10
|
+
* `exposeSimulatedDevice` — run a {@link SimulatedDevice} simulator behind a WebSocket
|
|
11
|
+
* server so a real app (on a device/emulator) can connect to it with
|
|
12
|
+
* `new Serial(new WebSocketSerialTransport(url))` and drive the *same* simulated
|
|
13
|
+
* peripheral your Jest tests drive. The test process keeps the
|
|
14
|
+
* {@link DeviceHandle} handle, so it can inject frames / move the GPS and
|
|
15
|
+
* `await whenOpened()` for the app to connect — turning an in-memory device
|
|
16
|
+
* suite into an on-device E2E without changing the device code.
|
|
17
|
+
*
|
|
18
|
+
* `ws` is an *optional* dependency: it is loaded lazily (and only in Node), via
|
|
19
|
+
* an indirect require so app bundlers never pull it into a mobile bundle. Pass
|
|
20
|
+
* `options.WebSocketServer` to inject your own (e.g. `import {WebSocketServer}
|
|
21
|
+
* from 'ws'`) and skip the lazy load entirely.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* import {WebSocketServer} from 'ws';
|
|
25
|
+
* const ex = exposeSimulatedDevice(new WMBusGateway('iU891A-XL'), {
|
|
26
|
+
* port: 8090,
|
|
27
|
+
* WebSocketServer,
|
|
28
|
+
* });
|
|
29
|
+
* // …app connects to ex.url…
|
|
30
|
+
* await ex.whenOpened();
|
|
31
|
+
* ex.simulatedDevice.addMeter(meter);
|
|
32
|
+
* meter.sendTelegram(); // the app receives the 0x20 telegram event
|
|
33
|
+
* await ex.close();
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
/** The `ws` WebSocketServer surface this helper uses. */
|
|
37
|
+
|
|
38
|
+
/** A `ws`-compatible `WebSocketServer` constructor. */
|
|
39
|
+
|
|
40
|
+
/** Resolve a `ws` WebSocketServer lazily, in Node only, invisibly to bundlers. */
|
|
41
|
+
function loadWebSocketServer() {
|
|
42
|
+
const specifier = 'ws';
|
|
43
|
+
const nodeRequire =
|
|
44
|
+
// @ts-ignore
|
|
45
|
+
typeof module !== 'undefined' &&
|
|
46
|
+
// @ts-ignore
|
|
47
|
+
typeof module.require === 'function' ?
|
|
48
|
+
// @ts-ignore
|
|
49
|
+
module.require.bind(module) : /* istanbul ignore next */undefined;
|
|
50
|
+
/* istanbul ignore next — only reachable in non-Node bundled environments */
|
|
51
|
+
if (!nodeRequire) {
|
|
52
|
+
throw new Error("exposeSimulatedDevice could not load 'ws'. Pass options.WebSocketServer, " + 'or run it in a Node process with the optional `ws` package installed.');
|
|
53
|
+
}
|
|
54
|
+
const ws = nodeRequire(specifier);
|
|
55
|
+
const Ctor = ws.WebSocketServer ?? ws.Server;
|
|
56
|
+
if (!Ctor) {
|
|
57
|
+
throw new Error("the 'ws' package did not export a WebSocketServer.");
|
|
58
|
+
}
|
|
59
|
+
return Ctor;
|
|
60
|
+
}
|
|
61
|
+
function exposeSimulatedDevice(simulatedDevice, options) {
|
|
62
|
+
const transport = new _inMemorySerialTransport.InMemorySerialTransport();
|
|
63
|
+
const device = transport.addDevice(simulatedDevice, {
|
|
64
|
+
hasPermission: true,
|
|
65
|
+
...options.device
|
|
66
|
+
});
|
|
67
|
+
const Ctor = options.WebSocketServer ?? loadWebSocketServer();
|
|
68
|
+
const server = new Ctor({
|
|
69
|
+
port: options.port,
|
|
70
|
+
host: options.host
|
|
71
|
+
});
|
|
72
|
+
server.on('connection', socket => {
|
|
73
|
+
const serial = (0, _websocket.SimulatedDeviceToSerialLike)(transport, device);
|
|
74
|
+
(0, _websocket.attachBridge)(serial, socket, {
|
|
75
|
+
portInfo: (0, _websocket.portInfoFromDevice)(device),
|
|
76
|
+
readingByDefault: options.readingByDefault,
|
|
77
|
+
log: options.log
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
const host = options.host ?? 'localhost';
|
|
81
|
+
return {
|
|
82
|
+
url: `ws://${host}:${options.port}`,
|
|
83
|
+
transport,
|
|
84
|
+
device,
|
|
85
|
+
simulatedDevice,
|
|
86
|
+
whenOpened: () => device.whenOpened(),
|
|
87
|
+
whenClosed: () => device.whenClosed(),
|
|
88
|
+
close: () => new Promise(resolve => server.close(() => resolve()))
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=expose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_websocket","require","_inMemorySerialTransport","loadWebSocketServer","specifier","nodeRequire","module","bind","undefined","Error","ws","Ctor","WebSocketServer","Server","exposeSimulatedDevice","simulatedDevice","options","transport","InMemorySerialTransport","device","addDevice","hasPermission","server","port","host","on","socket","serial","SimulatedDeviceToSerialLike","attachBridge","portInfo","portInfoFromDevice","readingByDefault","log","url","whenOpened","whenClosed","close","Promise","resolve"],"sourceRoot":"../../../src","sources":["testing/expose.ts"],"mappings":";;;;;;AA2BA,IAAAA,UAAA,GAAAC,OAAA;AAOA,IAAAC,wBAAA,GAAAD,OAAA;AAlCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAkBA;;AAMA;;AAqCA;AACA,SAASE,mBAAmBA,CAAA,EAAwB;EAClD,MAAMC,SAAS,GAAG,IAAI;EACtB,MAAMC,WAAW;EACf;EACA,OAAOC,MAAM,KAAK,WAAW;EAC7B;EACA,OAAQA,MAAM,CAAyBL,OAAO,KAAK,UAAU;EACzD;EACCK,MAAM,CAAwCL,OAAO,CAACM,IAAI,CAACD,MAAM,CAAC,GACnE,0BAA2BE,SAAS;EAC1C;EACA,IAAI,CAACH,WAAW,EAAE;IAChB,MAAM,IAAII,KAAK,CACb,2EAA2E,GACzE,uEACJ,CAAC;EACH;EACA,MAAMC,EAAE,GAAGL,WAAW,CAACD,SAAS,CAG/B;EACD,MAAMO,IAAI,GAAGD,EAAE,CAACE,eAAe,IAAIF,EAAE,CAACG,MAAM;EAC5C,IAAI,CAACF,IAAI,EAAE;IACT,MAAM,IAAIF,KAAK,CAAC,oDAAoD,CAAC;EACvE;EACA,OAAOE,IAAI;AACb;AAEO,SAASG,qBAAqBA,CACnCC,eAAkB,EAClBC,OAAqC,EACnB;EAClB,MAAMC,SAAS,GAAG,IAAIC,gDAAuB,CAAC,CAAC;EAC/C,MAAMC,MAAM,GAAGF,SAAS,CAACG,SAAS,CAACL,eAAe,EAAE;IAClDM,aAAa,EAAE,IAAI;IACnB,GAAGL,OAAO,CAACG;EACb,CAAC,CAAC;EAEF,MAAMR,IAAI,GAAGK,OAAO,CAACJ,eAAe,IAAIT,mBAAmB,CAAC,CAAC;EAC7D,MAAMmB,MAAM,GAAG,IAAIX,IAAI,CAAC;IAACY,IAAI,EAAEP,OAAO,CAACO,IAAI;IAAEC,IAAI,EAAER,OAAO,CAACQ;EAAI,CAAC,CAAC;EACjEF,MAAM,CAACG,EAAE,CAAC,YAAY,EAAEC,MAAM,IAAI;IAChC,MAAMC,MAAM,GAAG,IAAAC,sCAA2B,EAACX,SAAS,EAAEE,MAAM,CAAC;IAC7D,IAAAU,uBAAY,EAACF,MAAM,EAAED,MAAM,EAAE;MAC3BI,QAAQ,EAAE,IAAAC,6BAAkB,EAACZ,MAAM,CAAC;MACpCa,gBAAgB,EAAEhB,OAAO,CAACgB,gBAAgB;MAC1CC,GAAG,EAAEjB,OAAO,CAACiB;IACf,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMT,IAAI,GAAGR,OAAO,CAACQ,IAAI,IAAI,WAAW;EACxC,OAAO;IACLU,GAAG,EAAE,QAAQV,IAAI,IAAIR,OAAO,CAACO,IAAI,EAAE;IACnCN,SAAS;IACTE,MAAM;IACNJ,eAAe;IACfoB,UAAU,EAAEA,CAAA,KAAMhB,MAAM,CAACgB,UAAU,CAAC,CAAC;IACrCC,UAAU,EAAEA,CAAA,KAAMjB,MAAM,CAACiB,UAAU,CAAC,CAAC;IACrCC,KAAK,EAAEA,CAAA,KAAM,IAAIC,OAAO,CAAOC,OAAO,IAAIjB,MAAM,CAACe,KAAK,CAAC,MAAME,OAAO,CAAC,CAAC,CAAC;EACzE,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.assert = assert;
|
|
7
|
+
exports.assertEqual = assertEqual;
|
|
8
|
+
exports.assertRejects = assertRejects;
|
|
9
|
+
exports.bytesEqual = bytesEqual;
|
|
10
|
+
exports.errorMessage = errorMessage;
|
|
11
|
+
exports.readBytes = readBytes;
|
|
12
|
+
exports.withTimeout = withTimeout;
|
|
13
|
+
/**
|
|
14
|
+
* Tiny, dependency-free test helpers for driving serial devices — shared by the
|
|
15
|
+
* library's own conformance suite, the {@link SerialClient}, and consumers' app
|
|
16
|
+
* tests. Free of `jest` and `react-native`, so they run under any test runner
|
|
17
|
+
* and on a real device (e.g. an on-device Self-Test screen).
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/** Throw `message` if `condition` is falsy. */
|
|
21
|
+
function assert(condition, message) {
|
|
22
|
+
if (!condition) throw new Error(message);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** Throw if `actual !== expected`, including both values in the message. */
|
|
26
|
+
function assertEqual(actual, expected, message) {
|
|
27
|
+
if (actual !== expected) {
|
|
28
|
+
throw new Error(`${message} (expected ${String(expected)}, got ${String(actual)})`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** Byte-for-byte equality of two sequences. */
|
|
33
|
+
function bytesEqual(a, b) {
|
|
34
|
+
if (a.length !== b.length) return false;
|
|
35
|
+
for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false;
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** What {@link assertRejects} may additionally check about the thrown error. */
|
|
40
|
+
|
|
41
|
+
/** Assert `fn()` rejects (optionally matching the error name/type/message). */
|
|
42
|
+
async function assertRejects(fn, message, expected) {
|
|
43
|
+
try {
|
|
44
|
+
await fn();
|
|
45
|
+
} catch (e) {
|
|
46
|
+
const err = e;
|
|
47
|
+
if (expected?.name && err.name !== expected.name) {
|
|
48
|
+
throw new Error(`${message}: expected error "${expected.name}" but got "${err.name}"`);
|
|
49
|
+
}
|
|
50
|
+
if (expected?.type && !(err instanceof expected.type)) {
|
|
51
|
+
throw new Error(`${message}: expected a ${expected.type.name}`);
|
|
52
|
+
}
|
|
53
|
+
if (expected?.message !== undefined) {
|
|
54
|
+
const ok = expected.message instanceof RegExp ? expected.message.test(err.message) : err.message.includes(expected.message);
|
|
55
|
+
if (!ok) {
|
|
56
|
+
throw new Error(`${message}: expected the error message to match ${String(expected.message)}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
throw new Error(`${message}: expected a rejection but none occurred`);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** Normalise any thrown value into a `"Name: message"` string. */
|
|
65
|
+
function errorMessage(e) {
|
|
66
|
+
return e instanceof Error ? `${e.name}: ${e.message}` : String(e);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** Reject if `promise` doesn't settle within `ms`; `label` names it on timeout. */
|
|
70
|
+
function withTimeout(promise, ms, label) {
|
|
71
|
+
return new Promise((resolve, reject) => {
|
|
72
|
+
const timer = setTimeout(() => reject(new Error(`timed out: ${label}`)), ms);
|
|
73
|
+
promise.then(v => {
|
|
74
|
+
clearTimeout(timer);
|
|
75
|
+
resolve(v);
|
|
76
|
+
}, e => {
|
|
77
|
+
clearTimeout(timer);
|
|
78
|
+
reject(e);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** The slice of `ReadableStreamDefaultReader` the helpers need. */
|
|
84
|
+
|
|
85
|
+
/** Read exactly `count` bytes from a reader (accumulating chunks), with a timeout. */
|
|
86
|
+
async function readBytes(reader, count, timeoutMs = 2000) {
|
|
87
|
+
const out = [];
|
|
88
|
+
while (out.length < count) {
|
|
89
|
+
const {
|
|
90
|
+
done,
|
|
91
|
+
value
|
|
92
|
+
} = await withTimeout(reader.read(), timeoutMs, `reading ${count} bytes (got ${out.length})`);
|
|
93
|
+
if (done) break;
|
|
94
|
+
if (value) out.push(...value);
|
|
95
|
+
}
|
|
96
|
+
return out;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=harness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["assert","condition","message","Error","assertEqual","actual","expected","String","bytesEqual","a","b","length","i","assertRejects","fn","e","err","name","type","undefined","ok","RegExp","test","includes","errorMessage","withTimeout","promise","ms","label","Promise","resolve","reject","timer","setTimeout","then","v","clearTimeout","readBytes","reader","count","timeoutMs","out","done","value","read","push"],"sourceRoot":"../../../src","sources":["testing/harness.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.InMemorySerialTransport = exports.DeviceHandle = void 0;
|
|
7
7
|
var _transport = require("../transport");
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* InMemorySerialTransport — an in-memory {@link SerialTransport} for tests and
|
|
10
10
|
* on-device demos.
|
|
11
11
|
*
|
|
12
12
|
* It implements the exact same interface the production `UsbSerialModule` does,
|
|
@@ -20,15 +20,15 @@ var _transport = require("../transport");
|
|
|
20
20
|
* Inject it via `new Serial(transport)` or globally with `setUsbSerial(transport)`.
|
|
21
21
|
*
|
|
22
22
|
* @example
|
|
23
|
-
* const transport = new
|
|
24
|
-
* transport.addDevice(new
|
|
23
|
+
* const transport = new InMemorySerialTransport();
|
|
24
|
+
* transport.addDevice(new LoopbackDevice(), {hasPermission: true});
|
|
25
25
|
* const serial = new Serial(transport);
|
|
26
26
|
* const [port] = await serial.getPorts();
|
|
27
27
|
* await port.open({baudRate: 115200});
|
|
28
28
|
* // writes to port.writable now come back on port.readable (echo)
|
|
29
29
|
*/
|
|
30
30
|
|
|
31
|
-
/** Transport-side knobs when registering a {@link
|
|
31
|
+
/** Transport-side knobs when registering a {@link SimulatedDevice}. */
|
|
32
32
|
|
|
33
33
|
/** Operations whose next invocation can be made to fail (error injection). */
|
|
34
34
|
|
|
@@ -47,11 +47,11 @@ function mapInputSignals(s) {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
/**
|
|
50
|
-
* A simulated USB-serial device. Returned by {@link
|
|
50
|
+
* A simulated USB-serial device. Returned by {@link InMemorySerialTransport.addDevice}.
|
|
51
51
|
* The mutable fields and the helper methods let a test or demo drive the device
|
|
52
52
|
* the way physical hardware (and a human plugging cables) otherwise would.
|
|
53
53
|
*/
|
|
54
|
-
class
|
|
54
|
+
class DeviceHandle {
|
|
55
55
|
/** Reassigned on every (re)attach, mirroring Android's behaviour. */
|
|
56
56
|
|
|
57
57
|
attached = true;
|
|
@@ -91,7 +91,7 @@ class VirtualDevice {
|
|
|
91
91
|
constructor(transport, deviceId, device, options) {
|
|
92
92
|
this.#transport = transport;
|
|
93
93
|
this.deviceId = deviceId;
|
|
94
|
-
this.
|
|
94
|
+
this.simulatedDevice = device;
|
|
95
95
|
this.usbVendorId = device.usbVendorId;
|
|
96
96
|
this.usbProductId = device.usbProductId;
|
|
97
97
|
this.portNumber = options.portNumber ?? 0;
|
|
@@ -160,12 +160,45 @@ class VirtualDevice {
|
|
|
160
160
|
loseDevice() {
|
|
161
161
|
this.#transport.loseDevice(this);
|
|
162
162
|
}
|
|
163
|
+
#openWaiters = new Set();
|
|
164
|
+
#closeWaiters = new Set();
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Resolve when the host opens this port (immediately if already open). Lets a
|
|
168
|
+
* test `await` the app connecting before driving the device.
|
|
169
|
+
*/
|
|
170
|
+
whenOpened() {
|
|
171
|
+
if (this.isOpen && this.openOptions) {
|
|
172
|
+
return Promise.resolve(this.openOptions);
|
|
173
|
+
}
|
|
174
|
+
return new Promise(resolve => this.#openWaiters.add(resolve));
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/** Resolve when the host closes this port (immediately if not open). */
|
|
178
|
+
whenClosed() {
|
|
179
|
+
if (!this.isOpen) {
|
|
180
|
+
return Promise.resolve();
|
|
181
|
+
}
|
|
182
|
+
return new Promise(resolve => this.#closeWaiters.add(resolve));
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/** @internal The transport calls this right after the port opens. */
|
|
186
|
+
_notifyOpen(options) {
|
|
187
|
+
for (const waiter of [...this.#openWaiters]) waiter(options);
|
|
188
|
+
this.#openWaiters.clear();
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/** @internal The transport calls this right after the port closes/detaches. */
|
|
192
|
+
_notifyClose() {
|
|
193
|
+
for (const waiter of [...this.#closeWaiters]) waiter();
|
|
194
|
+
this.#closeWaiters.clear();
|
|
195
|
+
}
|
|
163
196
|
}
|
|
164
|
-
exports.
|
|
197
|
+
exports.DeviceHandle = DeviceHandle;
|
|
165
198
|
/**
|
|
166
|
-
* In-memory transport backing one or more {@link
|
|
199
|
+
* In-memory transport backing one or more {@link DeviceHandle}s.
|
|
167
200
|
*/
|
|
168
|
-
class
|
|
201
|
+
class InMemorySerialTransport {
|
|
169
202
|
#devices = [];
|
|
170
203
|
#latencyMs;
|
|
171
204
|
#autoGrant;
|
|
@@ -193,18 +226,18 @@ class VirtualSerialTransport {
|
|
|
193
226
|
}
|
|
194
227
|
|
|
195
228
|
/**
|
|
196
|
-
* Register a {@link
|
|
229
|
+
* Register a {@link SimulatedDevice}. It starts attached but does not fire
|
|
197
230
|
* "connect"; its identity (usbVendorId/usbProductId/serialNumber) is read from
|
|
198
231
|
* the device, and `options` carries the transport-side knobs.
|
|
199
232
|
*/
|
|
200
|
-
addDevice(
|
|
201
|
-
const device = new
|
|
202
|
-
|
|
233
|
+
addDevice(simulatedDevice, options = {}) {
|
|
234
|
+
const device = new DeviceHandle(this, this.#nextDeviceId++, simulatedDevice, options);
|
|
235
|
+
simulatedDevice._bind(this.#hostFor(device));
|
|
203
236
|
this.#devices.push(device);
|
|
204
237
|
return device;
|
|
205
238
|
}
|
|
206
239
|
|
|
207
|
-
/** The handle a hosted {@link
|
|
240
|
+
/** The handle a hosted {@link SimulatedDevice} uses to talk back to the host. */
|
|
208
241
|
#hostFor(device) {
|
|
209
242
|
return {
|
|
210
243
|
get deviceId() {
|
|
@@ -231,11 +264,11 @@ class VirtualSerialTransport {
|
|
|
231
264
|
const result = fn();
|
|
232
265
|
if (result && typeof result.then === 'function') {
|
|
233
266
|
result.catch(err => {
|
|
234
|
-
console.error('
|
|
267
|
+
console.error('SimulatedDevice hook rejected:', err);
|
|
235
268
|
});
|
|
236
269
|
}
|
|
237
270
|
} catch (err) {
|
|
238
|
-
console.error('
|
|
271
|
+
console.error('SimulatedDevice hook threw:', err);
|
|
239
272
|
}
|
|
240
273
|
}
|
|
241
274
|
|
|
@@ -258,26 +291,29 @@ class VirtualSerialTransport {
|
|
|
258
291
|
}
|
|
259
292
|
|
|
260
293
|
/** Detach a device and fire "disconnect"; any open port becomes closed. */
|
|
261
|
-
detach(device) {
|
|
294
|
+
detach(device, lost = false) {
|
|
262
295
|
const {
|
|
263
296
|
deviceId,
|
|
264
297
|
usbVendorId,
|
|
265
298
|
usbProductId
|
|
266
299
|
} = device;
|
|
300
|
+
const wasOpen = device.isOpen;
|
|
267
301
|
device.attached = false;
|
|
268
302
|
device.isOpen = false;
|
|
269
303
|
device.reading = false;
|
|
304
|
+
if (wasOpen) device._notifyClose();
|
|
270
305
|
this.#emit(this.#disconnectListeners, {
|
|
271
306
|
deviceId,
|
|
272
307
|
usbVendorId,
|
|
273
|
-
usbProductId
|
|
308
|
+
usbProductId,
|
|
309
|
+
lost
|
|
274
310
|
});
|
|
275
311
|
}
|
|
276
312
|
|
|
277
313
|
/** Simulate an unplug while open: error the stream first, then disconnect. */
|
|
278
314
|
loseDevice(device) {
|
|
279
315
|
if (device.isOpen) this._error(device, 'Device disconnected');
|
|
280
|
-
this.detach(device);
|
|
316
|
+
this.detach(device, true);
|
|
281
317
|
}
|
|
282
318
|
|
|
283
319
|
/** Script the next showPortPicker() resolution (a device or a predicate). */
|
|
@@ -290,7 +326,7 @@ class VirtualSerialTransport {
|
|
|
290
326
|
this.#pendingPick = 'reject';
|
|
291
327
|
}
|
|
292
328
|
|
|
293
|
-
// ── Internal event helpers (called by
|
|
329
|
+
// ── Internal event helpers (called by DeviceHandle) ──────────────────────────────
|
|
294
330
|
|
|
295
331
|
/** @internal deliver inbound bytes to the host's readable stream. */
|
|
296
332
|
_deliver(device, data) {
|
|
@@ -387,7 +423,8 @@ class VirtualSerialTransport {
|
|
|
387
423
|
...options
|
|
388
424
|
};
|
|
389
425
|
device._hwWritten = 0;
|
|
390
|
-
this.#invokeHook(() => device.
|
|
426
|
+
this.#invokeHook(() => device.simulatedDevice.onOpen(device.openOptions));
|
|
427
|
+
device._notifyOpen(device.openOptions);
|
|
391
428
|
return this.#resolve();
|
|
392
429
|
}
|
|
393
430
|
close(deviceId, portNumber) {
|
|
@@ -398,7 +435,8 @@ class VirtualSerialTransport {
|
|
|
398
435
|
if (device) {
|
|
399
436
|
device.isOpen = false;
|
|
400
437
|
device.reading = false;
|
|
401
|
-
this.#invokeHook(() => device.
|
|
438
|
+
this.#invokeHook(() => device.simulatedDevice.onClose());
|
|
439
|
+
device._notifyClose();
|
|
402
440
|
}
|
|
403
441
|
return this.#resolve();
|
|
404
442
|
}
|
|
@@ -419,7 +457,7 @@ class VirtualSerialTransport {
|
|
|
419
457
|
const bytes = data.map(toByte);
|
|
420
458
|
device.written.push(bytes);
|
|
421
459
|
if (device.flowControl === 'RTS_CTS') device._hwWritten += bytes.length;
|
|
422
|
-
this.#invokeHook(() => device.
|
|
460
|
+
this.#invokeHook(() => device.simulatedDevice.onData(Uint8Array.from(bytes)));
|
|
423
461
|
return this.#resolve();
|
|
424
462
|
}
|
|
425
463
|
startReading(deviceId, portNumber) {
|
|
@@ -556,7 +594,7 @@ class VirtualSerialTransport {
|
|
|
556
594
|
device.input.cts = value;
|
|
557
595
|
}
|
|
558
596
|
}
|
|
559
|
-
this.#invokeHook(() => device.
|
|
597
|
+
this.#invokeHook(() => device.simulatedDevice.onHostSignals({
|
|
560
598
|
dataTerminalReady: device.output.dtr,
|
|
561
599
|
requestToSend: device.output.rts,
|
|
562
600
|
break: device.output.brk
|
|
@@ -611,5 +649,5 @@ class VirtualSerialTransport {
|
|
|
611
649
|
return Promise.reject(error);
|
|
612
650
|
}
|
|
613
651
|
}
|
|
614
|
-
exports.
|
|
615
|
-
//# sourceMappingURL=
|
|
652
|
+
exports.InMemorySerialTransport = InMemorySerialTransport;
|
|
653
|
+
//# sourceMappingURL=in-memory-serial-transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_transport","require","toByte","n","mapInputSignals","s","out","dataCarrierDetect","undefined","dcd","clearToSend","cts","ringIndicator","ri","dataSetReady","dsr","DeviceHandle","attached","isOpen","reading","flowControl","openOptions","overrunLimit","_rxDelivered","_overran","_hwWritten","output","dtr","rts","brk","input","written","fails","Set","transport","constructor","deviceId","device","options","simulatedDevice","usbVendorId","usbProductId","portNumber","serialNumber","toString","hasPermission","loopbackSignals","flowControlThreshold","push","bytes","_deliver","map","emitError","message","name","_error","overrunAfter","failNext","op","add","_consumeFail","has","delete","setInputSignals","signals","Object","assign","attach","detach","loseDevice","openWaiters","closeWaiters","whenOpened","Promise","resolve","whenClosed","_notifyOpen","waiter","clear","_notifyClose","exports","InMemorySerialTransport","devices","latencyMs","autoGrant","chunkSize","nextDeviceId","dataListeners","errorListeners","connectListeners","disconnectListeners","pendingPick","autoGrantPermission","addDevice","_bind","hostFor","#hostFor","send","raiseError","setSignals","invokeHook","#invokeHook","fn","result","then","catch","err","console","error","removeDevice","i","indexOf","splice","emit","lost","wasOpen","selectNextPort","target","rejectNextPortPicker","data","remaining","length","head","slice","Math","max","emitData","event","errorName","schedule","#emitData","emitOne","chunk","findAllDrivers","ports","filter","d","toPortId","showPortPicker","_labels","pick","reject","Error","candidates","matchesFilters","chosen","find","includes","requestPermission","open","DEFAULT_OPEN_OPTIONS","onOpen","close","onClose","write","_timeout","onData","Uint8Array","from","startReading","stopReading","setParameters","setDTR","value","setOutput","setRTS","setBreak","getDTR","getRTS","getCD","getCTS","getRI","getDSR","getControlLines","lines","getSupportedControlLines","_deviceId","_portNumber","setFlowControl","getFlowControl","getSupportedFlowControl","purgeHwBuffers","_purgeWriteBuffers","_purgeReadBuffers","getSerial","listener","subscribe","onError","onConnect","onDisconnect","#setOutput","key","onHostSignals","dataTerminalReady","requestToSend","break","#matchesFilters","filters","some","f","#find","#subscribe","set","remove","#emit","#schedule","setTimeout","queueMicrotask","#resolve","r","#reject","_"],"sourceRoot":"../../../src","sources":["testing/in-memory-serial-transport.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,40 +3,100 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "
|
|
6
|
+
Object.defineProperty(exports, "DeviceHandle", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function () {
|
|
9
|
-
return
|
|
9
|
+
return _inMemorySerialTransport.DeviceHandle;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "
|
|
12
|
+
Object.defineProperty(exports, "InMemorySerialTransport", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
get: function () {
|
|
15
|
-
return
|
|
15
|
+
return _inMemorySerialTransport.InMemorySerialTransport;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
Object.defineProperty(exports, "
|
|
18
|
+
Object.defineProperty(exports, "LineBufferedDevice", {
|
|
19
19
|
enumerable: true,
|
|
20
20
|
get: function () {
|
|
21
|
-
return
|
|
21
|
+
return _simulatedDevice.LineBufferedDevice;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
-
Object.defineProperty(exports, "
|
|
24
|
+
Object.defineProperty(exports, "LoopbackDevice", {
|
|
25
25
|
enumerable: true,
|
|
26
26
|
get: function () {
|
|
27
|
-
return
|
|
27
|
+
return _simulatedDevice.LoopbackDevice;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
-
Object.defineProperty(exports, "
|
|
30
|
+
Object.defineProperty(exports, "SerialClient", {
|
|
31
31
|
enumerable: true,
|
|
32
32
|
get: function () {
|
|
33
|
-
return
|
|
33
|
+
return _serialClient.SerialClient;
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
|
-
Object.defineProperty(exports, "
|
|
36
|
+
Object.defineProperty(exports, "SimulatedDevice", {
|
|
37
37
|
enumerable: true,
|
|
38
38
|
get: function () {
|
|
39
|
-
return
|
|
39
|
+
return _simulatedDevice.SimulatedDevice;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "SinkDevice", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _simulatedDevice.SinkDevice;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "assert", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _harness.assert;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "assertEqual", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _harness.assertEqual;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(exports, "assertRejects", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function () {
|
|
63
|
+
return _harness.assertRejects;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(exports, "bytesEqual", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function () {
|
|
69
|
+
return _harness.bytesEqual;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(exports, "compareTestResults", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function () {
|
|
75
|
+
return _testSuite.compareTestResults;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
Object.defineProperty(exports, "createDeviceFixture", {
|
|
79
|
+
enumerable: true,
|
|
80
|
+
get: function () {
|
|
81
|
+
return _deviceFixture.createDeviceFixture;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
Object.defineProperty(exports, "createSerialClient", {
|
|
85
|
+
enumerable: true,
|
|
86
|
+
get: function () {
|
|
87
|
+
return _serialClient.createSerialClient;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
Object.defineProperty(exports, "errorMessage", {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
get: function () {
|
|
93
|
+
return _harness.errorMessage;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
Object.defineProperty(exports, "exposeSimulatedDevice", {
|
|
97
|
+
enumerable: true,
|
|
98
|
+
get: function () {
|
|
99
|
+
return _expose.exposeSimulatedDevice;
|
|
40
100
|
}
|
|
41
101
|
});
|
|
42
102
|
Object.defineProperty(exports, "getUsbSerial", {
|
|
@@ -45,10 +105,16 @@ Object.defineProperty(exports, "getUsbSerial", {
|
|
|
45
105
|
return _UsbSerial.getUsbSerial;
|
|
46
106
|
}
|
|
47
107
|
});
|
|
48
|
-
Object.defineProperty(exports, "
|
|
108
|
+
Object.defineProperty(exports, "installInMemorySerialTransport", {
|
|
49
109
|
enumerable: true,
|
|
50
110
|
get: function () {
|
|
51
|
-
return
|
|
111
|
+
return _installInMemorySerialTransport.installInMemorySerialTransport;
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
Object.defineProperty(exports, "readBytes", {
|
|
115
|
+
enumerable: true,
|
|
116
|
+
get: function () {
|
|
117
|
+
return _harness.readBytes;
|
|
52
118
|
}
|
|
53
119
|
});
|
|
54
120
|
Object.defineProperty(exports, "resetUsbSerial", {
|
|
@@ -57,14 +123,31 @@ Object.defineProperty(exports, "resetUsbSerial", {
|
|
|
57
123
|
return _UsbSerial.resetUsbSerial;
|
|
58
124
|
}
|
|
59
125
|
});
|
|
126
|
+
Object.defineProperty(exports, "runTestSuite", {
|
|
127
|
+
enumerable: true,
|
|
128
|
+
get: function () {
|
|
129
|
+
return _testSuite.runTestSuite;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
60
132
|
Object.defineProperty(exports, "setUsbSerial", {
|
|
61
133
|
enumerable: true,
|
|
62
134
|
get: function () {
|
|
63
135
|
return _UsbSerial.setUsbSerial;
|
|
64
136
|
}
|
|
65
137
|
});
|
|
138
|
+
Object.defineProperty(exports, "withTimeout", {
|
|
139
|
+
enumerable: true,
|
|
140
|
+
get: function () {
|
|
141
|
+
return _harness.withTimeout;
|
|
142
|
+
}
|
|
143
|
+
});
|
|
66
144
|
var _UsbSerial = require("../UsbSerial");
|
|
67
|
-
var
|
|
68
|
-
var
|
|
69
|
-
var
|
|
145
|
+
var _deviceFixture = require("./device-fixture");
|
|
146
|
+
var _expose = require("./expose");
|
|
147
|
+
var _harness = require("./harness");
|
|
148
|
+
var _inMemorySerialTransport = require("./in-memory-serial-transport");
|
|
149
|
+
var _installInMemorySerialTransport = require("./install-in-memory-serial-transport");
|
|
150
|
+
var _serialClient = require("./serial-client");
|
|
151
|
+
var _simulatedDevice = require("./simulated-device");
|
|
152
|
+
var _testSuite = require("./test-suite");
|
|
70
153
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_UsbSerial","require","
|
|
1
|
+
{"version":3,"names":["_UsbSerial","require","_deviceFixture","_expose","_harness","_inMemorySerialTransport","_installInMemorySerialTransport","_serialClient","_simulatedDevice","_testSuite"],"sourceRoot":"../../../src","sources":["testing/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,IAAAA,UAAA,GAAAC,OAAA;AAOA,IAAAC,cAAA,GAAAD,OAAA;AASA,IAAAE,OAAA,GAAAF,OAAA;AAGA,IAAAG,QAAA,GAAAH,OAAA;AAcA,IAAAI,wBAAA,GAAAJ,OAAA;AASA,IAAAK,+BAAA,GAAAL,OAAA;AAGA,IAAAM,aAAA,GAAAN,OAAA;AAYA,IAAAO,gBAAA,GAAAP,OAAA;AAcA,IAAAQ,UAAA,GAAAR,OAAA","ignoreList":[]}
|