@myshkouski/web-serial-polyfill 2.0.0 → 2.0.2
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/dist/serial.d.ts +0 -3
- package/dist/serial.js +67 -38
- package/dist/serial.js.map +1 -1
- package/package.json +6 -6
- package/serial.ts +46 -26
- package/tsconfig.json +3 -3
package/dist/serial.d.ts
CHANGED
package/dist/serial.js
CHANGED
|
@@ -79,6 +79,10 @@ function findEndpoint(iface, direction) {
|
|
|
79
79
|
* [1]: https://streams.spec.whatwg.org/#underlying-source-api
|
|
80
80
|
*/
|
|
81
81
|
class UsbEndpointUnderlyingSource {
|
|
82
|
+
device_;
|
|
83
|
+
endpoint_;
|
|
84
|
+
onError_;
|
|
85
|
+
type;
|
|
82
86
|
/**
|
|
83
87
|
* Constructs a new UnderlyingSource that will pull data from the specified
|
|
84
88
|
* endpoint on the given USB device.
|
|
@@ -98,33 +102,30 @@ class UsbEndpointUnderlyingSource {
|
|
|
98
102
|
*
|
|
99
103
|
* @param {ReadableByteStreamController} controller
|
|
100
104
|
*/
|
|
101
|
-
pull(controller) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
if (result.status != 'ok') {
|
|
115
|
-
controller.error(`USB error: ${result.status}`);
|
|
116
|
-
this.onError_();
|
|
117
|
-
}
|
|
118
|
-
if ((_a = result.data) === null || _a === void 0 ? void 0 : _a.buffer) {
|
|
119
|
-
const chunk = new Uint8Array(result.data.buffer, result.data.byteOffset, result.data.byteLength);
|
|
120
|
-
controller.enqueue(chunk);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
controller.error(error.toString());
|
|
105
|
+
async pull(controller) {
|
|
106
|
+
let chunkSize;
|
|
107
|
+
if (controller.desiredSize) {
|
|
108
|
+
const d = controller.desiredSize / this.endpoint_.packetSize;
|
|
109
|
+
chunkSize = Math.ceil(d) * this.endpoint_.packetSize;
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
chunkSize = this.endpoint_.packetSize;
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const result = await this.device_.transferIn(this.endpoint_.endpointNumber, chunkSize);
|
|
116
|
+
if (result.status != 'ok') {
|
|
117
|
+
controller.error(`USB error: ${result.status}`);
|
|
125
118
|
this.onError_();
|
|
126
119
|
}
|
|
127
|
-
|
|
120
|
+
if (result.data?.buffer) {
|
|
121
|
+
const chunk = new Uint8Array(toArrayBuffer(result.data.buffer), result.data.byteOffset, result.data.byteLength);
|
|
122
|
+
controller.enqueue(chunk);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
controller.error(error.toString());
|
|
127
|
+
this.onError_();
|
|
128
|
+
}
|
|
128
129
|
}
|
|
129
130
|
}
|
|
130
131
|
/**
|
|
@@ -134,6 +135,9 @@ class UsbEndpointUnderlyingSource {
|
|
|
134
135
|
* [2]: https://streams.spec.whatwg.org/#underlying-sink-api
|
|
135
136
|
*/
|
|
136
137
|
class UsbEndpointUnderlyingSink {
|
|
138
|
+
device_;
|
|
139
|
+
endpoint_;
|
|
140
|
+
onError_;
|
|
137
141
|
/**
|
|
138
142
|
* Constructs a new UnderlyingSink that will write data to the specified
|
|
139
143
|
* endpoint on the given USB device.
|
|
@@ -169,6 +173,16 @@ class UsbEndpointUnderlyingSink {
|
|
|
169
173
|
}
|
|
170
174
|
/** a class used to control serial devices over WebUSB */
|
|
171
175
|
export class SerialPort {
|
|
176
|
+
polyfillOptions_;
|
|
177
|
+
device_;
|
|
178
|
+
controlInterface_;
|
|
179
|
+
transferInterface_;
|
|
180
|
+
inEndpoint_;
|
|
181
|
+
outEndpoint_;
|
|
182
|
+
serialOptions_;
|
|
183
|
+
readable_;
|
|
184
|
+
writable_;
|
|
185
|
+
outputSignals_;
|
|
172
186
|
/**
|
|
173
187
|
* constructor taking a WebUSB device that creates a SerialPort instance.
|
|
174
188
|
* @param {USBDevice} device A device acquired from the WebUSB API
|
|
@@ -176,7 +190,7 @@ export class SerialPort {
|
|
|
176
190
|
* configure the polyfill.
|
|
177
191
|
*/
|
|
178
192
|
constructor(device, polyfillOptions) {
|
|
179
|
-
this.polyfillOptions_ =
|
|
193
|
+
this.polyfillOptions_ = { ...kDefaultPolyfillOptions, ...polyfillOptions };
|
|
180
194
|
this.outputSignals_ = {
|
|
181
195
|
dataTerminalReady: false,
|
|
182
196
|
requestToSend: false,
|
|
@@ -194,12 +208,11 @@ export class SerialPort {
|
|
|
194
208
|
* @return {ReadableStream} the current readable stream
|
|
195
209
|
*/
|
|
196
210
|
get readable() {
|
|
197
|
-
var _a;
|
|
198
211
|
if (!this.readable_ && this.device_.opened) {
|
|
199
212
|
this.readable_ = new ReadableStream(new UsbEndpointUnderlyingSource(this.device_, this.inEndpoint_, () => {
|
|
200
213
|
this.readable_ = null;
|
|
201
214
|
}), {
|
|
202
|
-
highWaterMark:
|
|
215
|
+
highWaterMark: this.serialOptions_.bufferSize ?? kDefaultBufferSize,
|
|
203
216
|
});
|
|
204
217
|
}
|
|
205
218
|
return this.readable_;
|
|
@@ -210,12 +223,11 @@ export class SerialPort {
|
|
|
210
223
|
* @return {WritableStream} the current writable stream
|
|
211
224
|
*/
|
|
212
225
|
get writable() {
|
|
213
|
-
var _a;
|
|
214
226
|
if (!this.writable_ && this.device_.opened) {
|
|
215
227
|
this.writable_ = new WritableStream(new UsbEndpointUnderlyingSink(this.device_, this.outEndpoint_, () => {
|
|
216
228
|
this.writable_ = null;
|
|
217
229
|
}), new ByteLengthQueuingStrategy({
|
|
218
|
-
highWaterMark:
|
|
230
|
+
highWaterMark: this.serialOptions_.bufferSize ?? kDefaultBufferSize,
|
|
219
231
|
}));
|
|
220
232
|
}
|
|
221
233
|
return this.writable_;
|
|
@@ -268,6 +280,9 @@ export class SerialPort {
|
|
|
268
280
|
this.writable_ = null;
|
|
269
281
|
if (this.device_.opened) {
|
|
270
282
|
await this.setSignals({ dataTerminalReady: false, requestToSend: false });
|
|
283
|
+
if (this.transferInterface_.claimed) {
|
|
284
|
+
await this.device_.releaseInterface(this.transferInterface_.interfaceNumber);
|
|
285
|
+
}
|
|
271
286
|
await this.device_.close();
|
|
272
287
|
}
|
|
273
288
|
}
|
|
@@ -297,7 +312,7 @@ export class SerialPort {
|
|
|
297
312
|
* set
|
|
298
313
|
*/
|
|
299
314
|
reconfigure(options) {
|
|
300
|
-
this.serialOptions_ =
|
|
315
|
+
this.serialOptions_ = { ...this.serialOptions_, ...options };
|
|
301
316
|
this.validateOptions();
|
|
302
317
|
return this.setLineCoding();
|
|
303
318
|
}
|
|
@@ -308,7 +323,7 @@ export class SerialPort {
|
|
|
308
323
|
* has been changed.
|
|
309
324
|
*/
|
|
310
325
|
async setSignals(signals) {
|
|
311
|
-
this.outputSignals_ =
|
|
326
|
+
this.outputSignals_ = { ...this.outputSignals_, ...signals };
|
|
312
327
|
if (signals.dataTerminalReady !== undefined ||
|
|
313
328
|
signals.requestToSend !== undefined) {
|
|
314
329
|
// The Set_Control_Line_State command expects a bitmap containing the
|
|
@@ -407,14 +422,13 @@ export class SerialPort {
|
|
|
407
422
|
* @return {Promise} a promise that will resolve when the options are set
|
|
408
423
|
*/
|
|
409
424
|
async setLineCoding() {
|
|
410
|
-
var _a, _b, _c;
|
|
411
425
|
// Ref: USB CDC specification version 1.1 §6.2.12.
|
|
412
426
|
const buffer = new ArrayBuffer(7);
|
|
413
427
|
const view = new DataView(buffer);
|
|
414
428
|
view.setUint32(0, this.serialOptions_.baudRate, true);
|
|
415
|
-
view.setUint8(4, kStopBitsIndexMapping.indexOf(
|
|
416
|
-
view.setUint8(5, kParityIndexMapping.indexOf(
|
|
417
|
-
view.setUint8(6,
|
|
429
|
+
view.setUint8(4, kStopBitsIndexMapping.indexOf(this.serialOptions_.stopBits ?? kDefaultStopBits));
|
|
430
|
+
view.setUint8(5, kParityIndexMapping.indexOf(this.serialOptions_.parity ?? kDefaultParity));
|
|
431
|
+
view.setUint8(6, this.serialOptions_.dataBits ?? kDefaultDataBits);
|
|
418
432
|
const result = await this.device_.controlTransferOut({
|
|
419
433
|
'requestType': 'class',
|
|
420
434
|
'recipient': 'interface',
|
|
@@ -429,6 +443,7 @@ export class SerialPort {
|
|
|
429
443
|
}
|
|
430
444
|
/** generic implementation of navigator.serial object */
|
|
431
445
|
export class BaseSerial {
|
|
446
|
+
usb;
|
|
432
447
|
/**
|
|
433
448
|
* @param {USB} usb Instance of navigator.usb object
|
|
434
449
|
*/
|
|
@@ -443,7 +458,7 @@ export class BaseSerial {
|
|
|
443
458
|
* @return {Promise<SerialPort>}
|
|
444
459
|
*/
|
|
445
460
|
async requestPort(options, polyfillOptions) {
|
|
446
|
-
polyfillOptions =
|
|
461
|
+
polyfillOptions = { ...kDefaultPolyfillOptions, ...polyfillOptions };
|
|
447
462
|
const usbFilters = [];
|
|
448
463
|
if (options && options.filters) {
|
|
449
464
|
for (const filter of options.filters) {
|
|
@@ -477,7 +492,7 @@ export class BaseSerial {
|
|
|
477
492
|
* ports.
|
|
478
493
|
*/
|
|
479
494
|
async getPorts(polyfillOptions) {
|
|
480
|
-
polyfillOptions =
|
|
495
|
+
polyfillOptions = { ...kDefaultPolyfillOptions, ...polyfillOptions };
|
|
481
496
|
const devices = await this.usb.getDevices();
|
|
482
497
|
const ports = [];
|
|
483
498
|
devices.forEach((device) => {
|
|
@@ -503,4 +518,18 @@ export class Serial extends BaseSerial {
|
|
|
503
518
|
return new SerialPort(device, options);
|
|
504
519
|
}
|
|
505
520
|
}
|
|
521
|
+
function toArrayBuffer(buffer) {
|
|
522
|
+
if (buffer instanceof ArrayBuffer) {
|
|
523
|
+
// Return buffer when it's already an ArrayBuffer
|
|
524
|
+
return buffer;
|
|
525
|
+
}
|
|
526
|
+
// Create a new ArrayBuffer with the same byte length
|
|
527
|
+
const arrayBuffer = new ArrayBuffer(buffer.byteLength);
|
|
528
|
+
// Create views for both buffers
|
|
529
|
+
const sharedArrayBufferView = new Uint8Array(buffer);
|
|
530
|
+
const arrayBufferView = new Uint8Array(arrayBuffer);
|
|
531
|
+
// Copy the contents
|
|
532
|
+
arrayBufferView.set(sharedArrayBufferView);
|
|
533
|
+
return arrayBuffer;
|
|
534
|
+
}
|
|
506
535
|
//# sourceMappingURL=serial.js.map
|
package/dist/serial.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serial.js","sourceRoot":"","sources":["../serial.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"serial.js","sourceRoot":"","sources":["../serial.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@myshkouski/web-serial-polyfill",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "An implementation of the [Serial API](https://wicg.github.io/serial) on top of the [WebUSB API](https://wicg.github.io/webusb) for use with USB-to-serial adapters. Use of this library is limited to hardware and platforms where the device is accessible via the WebUSB API because it has not been claimed by a built-in device driver. This project will be used to prototype the design of the Serial API.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/serial.js",
|
|
@@ -12,18 +12,18 @@
|
|
|
12
12
|
},
|
|
13
13
|
"repository": {
|
|
14
14
|
"type": "git",
|
|
15
|
-
"url": "https://github.com/
|
|
15
|
+
"url": "https://github.com/myshkouski/web-serial-polyfill.git"
|
|
16
16
|
},
|
|
17
17
|
"author": "James C Hollyer",
|
|
18
18
|
"license": "Apache",
|
|
19
19
|
"devDependencies": {
|
|
20
|
-
"@types/w3c-web-serial": "^1.0.
|
|
21
|
-
"@types/w3c-web-usb": "^1.0.
|
|
22
|
-
"@types/web": "^0.0.
|
|
20
|
+
"@types/w3c-web-serial": "^1.0.8",
|
|
21
|
+
"@types/w3c-web-usb": "^1.0.10",
|
|
22
|
+
"@types/web": "^0.0.243",
|
|
23
23
|
"@typescript-eslint/eslint-plugin": "^5.33.0",
|
|
24
24
|
"@typescript-eslint/parser": "^5.33.0",
|
|
25
25
|
"eslint": "^8.21.0",
|
|
26
26
|
"eslint-config-google": "^0.14.0",
|
|
27
|
-
"typescript": "^
|
|
27
|
+
"typescript": "^5.8.3"
|
|
28
28
|
}
|
|
29
29
|
}
|
package/serial.ts
CHANGED
|
@@ -121,34 +121,32 @@ class UsbEndpointUnderlyingSource implements UnderlyingByteSource {
|
|
|
121
121
|
*
|
|
122
122
|
* @param {ReadableByteStreamController} controller
|
|
123
123
|
*/
|
|
124
|
-
pull(controller: ReadableByteStreamController): void {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
124
|
+
async pull(controller: ReadableByteStreamController): Promise<void> {
|
|
125
|
+
let chunkSize;
|
|
126
|
+
if (controller.desiredSize) {
|
|
127
|
+
const d = controller.desiredSize / this.endpoint_.packetSize;
|
|
128
|
+
chunkSize = Math.ceil(d) * this.endpoint_.packetSize;
|
|
129
|
+
} else {
|
|
130
|
+
chunkSize = this.endpoint_.packetSize;
|
|
131
|
+
}
|
|
133
132
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
this.onError_();
|
|
140
|
-
}
|
|
141
|
-
if (result.data?.buffer) {
|
|
142
|
-
const chunk = new Uint8Array(
|
|
143
|
-
result.data.buffer, result.data.byteOffset,
|
|
144
|
-
result.data.byteLength);
|
|
145
|
-
controller.enqueue(chunk);
|
|
146
|
-
}
|
|
147
|
-
} catch (error) {
|
|
148
|
-
controller.error(error.toString());
|
|
133
|
+
try {
|
|
134
|
+
const result = await this.device_.transferIn(
|
|
135
|
+
this.endpoint_.endpointNumber, chunkSize);
|
|
136
|
+
if (result.status != 'ok') {
|
|
137
|
+
controller.error(`USB error: ${result.status}`);
|
|
149
138
|
this.onError_();
|
|
150
139
|
}
|
|
151
|
-
|
|
140
|
+
if (result.data?.buffer) {
|
|
141
|
+
const chunk = new Uint8Array(
|
|
142
|
+
toArrayBuffer(result.data.buffer), result.data.byteOffset,
|
|
143
|
+
result.data.byteLength);
|
|
144
|
+
controller.enqueue(chunk);
|
|
145
|
+
}
|
|
146
|
+
} catch (error) {
|
|
147
|
+
controller.error(error.toString());
|
|
148
|
+
this.onError_();
|
|
149
|
+
}
|
|
152
150
|
}
|
|
153
151
|
}
|
|
154
152
|
|
|
@@ -184,7 +182,7 @@ class UsbEndpointUnderlyingSink implements UnderlyingSink<Uint8Array> {
|
|
|
184
182
|
* @param {WritableStreamDefaultController} controller
|
|
185
183
|
*/
|
|
186
184
|
async write(
|
|
187
|
-
chunk: Uint8Array
|
|
185
|
+
chunk: Uint8Array<ArrayBuffer>,
|
|
188
186
|
controller: WritableStreamDefaultController): Promise<void> {
|
|
189
187
|
try {
|
|
190
188
|
const result =
|
|
@@ -331,6 +329,9 @@ export class SerialPort {
|
|
|
331
329
|
this.writable_ = null;
|
|
332
330
|
if (this.device_.opened) {
|
|
333
331
|
await this.setSignals({dataTerminalReady: false, requestToSend: false});
|
|
332
|
+
if (this.transferInterface_.claimed) {
|
|
333
|
+
await this.device_.releaseInterface(this.transferInterface_.interfaceNumber);
|
|
334
|
+
}
|
|
334
335
|
await this.device_.close();
|
|
335
336
|
}
|
|
336
337
|
}
|
|
@@ -600,3 +601,22 @@ export class Serial extends BaseSerial<SerialPort> {
|
|
|
600
601
|
return new SerialPort(device, options);
|
|
601
602
|
}
|
|
602
603
|
}
|
|
604
|
+
|
|
605
|
+
function toArrayBuffer(buffer: ArrayBufferLike) {
|
|
606
|
+
if (buffer instanceof ArrayBuffer) {
|
|
607
|
+
// Return buffer when it's already an ArrayBuffer
|
|
608
|
+
return buffer
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
// Create a new ArrayBuffer with the same byte length
|
|
612
|
+
const arrayBuffer = new ArrayBuffer(buffer.byteLength);
|
|
613
|
+
|
|
614
|
+
// Create views for both buffers
|
|
615
|
+
const sharedArrayBufferView = new Uint8Array(buffer);
|
|
616
|
+
const arrayBufferView = new Uint8Array(arrayBuffer);
|
|
617
|
+
|
|
618
|
+
// Copy the contents
|
|
619
|
+
arrayBufferView.set(sharedArrayBufferView);
|
|
620
|
+
|
|
621
|
+
return arrayBuffer;
|
|
622
|
+
}
|
package/tsconfig.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
|
-
"module": "
|
|
4
|
-
"lib": ["
|
|
3
|
+
"module": "esnext",
|
|
4
|
+
"lib": ["esnext", "DOM.AsyncIterable"],
|
|
5
5
|
"outDir": "./dist/",
|
|
6
6
|
"sourceMap": true,
|
|
7
7
|
"noImplicitAny": true,
|
|
8
8
|
"strictNullChecks": true,
|
|
9
|
-
"target": "
|
|
9
|
+
"target": "esnext",
|
|
10
10
|
"declaration": true
|
|
11
11
|
}
|
|
12
12
|
}
|