webserial-core 1.0.10 → 1.0.11
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/Core.d.ts.map +1 -1
- package/dist/Dispatcher.d.ts.map +1 -1
- package/dist/webserial-core.js +178 -181
- package/dist/webserial-core.umd.cjs +2 -2
- package/package.json +3 -3
package/dist/Core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Core.d.ts","sourceRoot":"","sources":["../lib/Core.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Core.d.ts","sourceRoot":"","sources":["../lib/Core.ts"],"names":[],"mappings":"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"}
|
package/dist/Dispatcher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dispatcher.d.ts","sourceRoot":"","sources":["../lib/Dispatcher.ts"],"names":[],"mappings":"AAEA,KAAK,iBAAiB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAC9D,KAAK,kBAAkB,GAAG,iBAAiB,EAAE,CAAC;AAE9C,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;AAE1D,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAE9C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAEhD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAEjD,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpD,kBAAkB,EAAE,kBAAkB,CAAC;CACxC;AAED,UAAU,SAAS;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,UAAW,SAAQ,WAAY,YAAW,WAAW;IAChE,aAAa,EAAE,SAAS,CAEtB;IACF,SAAS,EAAE,OAAO,CAAS;IAE3B,sBAAsB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,kCAAkC,CAAA;KAAE,EAAE,CAAM;IAEtF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,QAAe;IAQ5C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,EAAE,SAAM;IAQjD,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kCAAkC;IAS7D,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kCAAkC;IAQ9D,+BAA+B,CAAC,IAAI,EAAE,MAAM;IAMnD,IAAI,kBAAkB,IAAI,kBAAkB,CAQ3C;IAEM,kBAAkB,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"Dispatcher.d.ts","sourceRoot":"","sources":["../lib/Dispatcher.ts"],"names":[],"mappings":"AAEA,KAAK,iBAAiB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAC9D,KAAK,kBAAkB,GAAG,iBAAiB,EAAE,CAAC;AAE9C,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;AAE1D,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAE9C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAEhD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAEjD,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpD,kBAAkB,EAAE,kBAAkB,CAAC;CACxC;AAED,UAAU,SAAS;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,UAAW,SAAQ,WAAY,YAAW,WAAW;IAChE,aAAa,EAAE,SAAS,CAEtB;IACF,SAAS,EAAE,OAAO,CAAS;IAE3B,sBAAsB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,kCAAkC,CAAA;KAAE,EAAE,CAAM;IAEtF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,QAAe;IAQ5C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,EAAE,SAAM;IAQjD,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kCAAkC;IAS7D,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kCAAkC;IAQ9D,+BAA+B,CAAC,IAAI,EAAE,MAAM;IAMnD,IAAI,kBAAkB,IAAI,kBAAkB,CAQ3C;IAEM,kBAAkB,IAAI,IAAI;CAalC"}
|
package/dist/webserial-core.js
CHANGED
|
@@ -1,40 +1,39 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
1
|
+
var J = Object.defineProperty;
|
|
2
|
+
var k = (l) => {
|
|
3
3
|
throw TypeError(l);
|
|
4
4
|
};
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
super(s, e);
|
|
5
|
+
var K = (l, i, e) => i in l ? J(l, i, { enumerable: !0, configurable: !0, writable: !0, value: e }) : l[i] = e;
|
|
6
|
+
var y = (l, i, e) => K(l, typeof i != "symbol" ? i + "" : i, e), T = (l, i, e) => i.has(l) || k("Cannot " + e);
|
|
7
|
+
var v = (l, i, e) => (T(l, i, "read from private field"), e ? e.call(l) : i.get(l)), S = (l, i, e) => i.has(l) ? k("Cannot add the same private member more than once") : i instanceof WeakSet ? i.add(l) : i.set(l, e), P = (l, i, e, t) => (T(l, i, "write to private field"), t ? t.call(l, e) : i.set(l, e), e), o = (l, i, e) => (T(l, i, "access private method"), e);
|
|
8
|
+
class B extends CustomEvent {
|
|
9
|
+
constructor(i, e) {
|
|
10
|
+
super(i, e);
|
|
12
11
|
}
|
|
13
12
|
}
|
|
14
|
-
class
|
|
13
|
+
class U extends EventTarget {
|
|
15
14
|
constructor() {
|
|
16
15
|
super(...arguments);
|
|
17
|
-
|
|
16
|
+
y(this, "__listeners__", {
|
|
18
17
|
debug: !1
|
|
19
18
|
});
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
y(this, "__debug__", !1);
|
|
20
|
+
y(this, "__listenersCallbacks__", []);
|
|
22
21
|
}
|
|
23
22
|
dispatch(e, t = null) {
|
|
24
|
-
const
|
|
25
|
-
this.dispatchEvent(
|
|
23
|
+
const n = new B(e, { detail: t });
|
|
24
|
+
this.dispatchEvent(n), this.__debug__ && this.dispatchEvent(new B("debug", { detail: { type: e, data: t } }));
|
|
26
25
|
}
|
|
27
|
-
dispatchAsync(e, t = null,
|
|
26
|
+
dispatchAsync(e, t = null, n = 100) {
|
|
28
27
|
const r = this;
|
|
29
28
|
setTimeout(() => {
|
|
30
29
|
r.dispatch(e, t);
|
|
31
|
-
},
|
|
30
|
+
}, n);
|
|
32
31
|
}
|
|
33
32
|
on(e, t) {
|
|
34
33
|
typeof this.__listeners__[e] < "u" && !this.__listeners__[e] && (this.__listeners__[e] = !0), this.__listenersCallbacks__.push({ key: e, callback: t }), this.addEventListener(e, t);
|
|
35
34
|
}
|
|
36
35
|
off(e, t) {
|
|
37
|
-
this.__listenersCallbacks__ = this.__listenersCallbacks__.filter((
|
|
36
|
+
this.__listenersCallbacks__ = this.__listenersCallbacks__.filter((n) => !(n.key === e && n.callback === t)), this.removeEventListener(e, t);
|
|
38
37
|
}
|
|
39
38
|
serialRegisterAvailableListener(e) {
|
|
40
39
|
this.__listeners__[e] || (this.__listeners__[e] = !1);
|
|
@@ -47,96 +46,95 @@ class k extends EventTarget {
|
|
|
47
46
|
}
|
|
48
47
|
removeAllListeners() {
|
|
49
48
|
for (const e of this.__listenersCallbacks__)
|
|
50
|
-
this.removeEventListener(e.key, e.callback);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
};
|
|
49
|
+
["internal:queue"].includes(e.key) || (this.__listenersCallbacks__ = this.__listenersCallbacks__.filter((t) => !(t.key === e.key && t.callback === e.callback)), this.removeEventListener(e.key, e.callback));
|
|
50
|
+
for (const e of Object.keys(this.__listeners__))
|
|
51
|
+
this.__listeners__[e] = !1;
|
|
54
52
|
}
|
|
55
53
|
}
|
|
56
|
-
const a = class a extends
|
|
54
|
+
const a = class a extends U {
|
|
57
55
|
constructor() {
|
|
58
56
|
super(), ["change"].forEach((e) => {
|
|
59
57
|
this.serialRegisterAvailableListener(e);
|
|
60
58
|
});
|
|
61
59
|
}
|
|
62
|
-
static $dispatchChange(
|
|
63
|
-
|
|
60
|
+
static $dispatchChange(i = null) {
|
|
61
|
+
i && i.$checkAndDispatchConnection(), a.instance.dispatch("change", { devices: a.devices, dispatcher: i });
|
|
64
62
|
}
|
|
65
|
-
static typeError(
|
|
63
|
+
static typeError(i) {
|
|
66
64
|
const e = new Error();
|
|
67
|
-
throw e.message = `Type ${
|
|
65
|
+
throw e.message = `Type ${i} is not supported`, e.name = "DeviceTypeError", e;
|
|
68
66
|
}
|
|
69
|
-
static registerType(
|
|
70
|
-
typeof a.devices[
|
|
67
|
+
static registerType(i) {
|
|
68
|
+
typeof a.devices[i] > "u" && (a.devices = { ...a.devices, [i]: {} });
|
|
71
69
|
}
|
|
72
|
-
static add(
|
|
73
|
-
const e =
|
|
70
|
+
static add(i) {
|
|
71
|
+
const e = i.typeDevice;
|
|
74
72
|
typeof a.devices[e] > "u" && a.registerType(e);
|
|
75
|
-
const t =
|
|
73
|
+
const t = i.uuid;
|
|
76
74
|
if (typeof a.devices[e] > "u" && a.typeError(e), a.devices[e][t])
|
|
77
75
|
throw new Error(`Device with id ${t} already exists`);
|
|
78
|
-
return a.devices[e][t] =
|
|
76
|
+
return a.devices[e][t] = i, a.$dispatchChange(i), Object.keys(a.devices[e]).indexOf(t);
|
|
79
77
|
}
|
|
80
|
-
static get(
|
|
81
|
-
return typeof a.devices[
|
|
78
|
+
static get(i, e) {
|
|
79
|
+
return typeof a.devices[i] > "u" && a.registerType(i), typeof a.devices[i] > "u" && a.typeError(i), a.devices[i][e];
|
|
82
80
|
}
|
|
83
|
-
static getAll(
|
|
84
|
-
return
|
|
81
|
+
static getAll(i = null) {
|
|
82
|
+
return i === null ? a.devices : (typeof a.devices[i] > "u" && a.typeError(i), a.devices[i]);
|
|
85
83
|
}
|
|
86
84
|
static getList() {
|
|
87
85
|
return Object.values(a.devices).map((e) => Object.values(e)).flat();
|
|
88
86
|
}
|
|
89
|
-
static getByNumber(
|
|
90
|
-
return typeof a.devices[
|
|
87
|
+
static getByNumber(i, e) {
|
|
88
|
+
return typeof a.devices[i] > "u" && a.typeError(i), Object.values(a.devices[i]).find((n) => n.deviceNumber === e) ?? null;
|
|
91
89
|
}
|
|
92
|
-
static getCustom(
|
|
93
|
-
return typeof a.devices[
|
|
90
|
+
static getCustom(i, e = 1) {
|
|
91
|
+
return typeof a.devices[i] > "u" && a.typeError(i), Object.values(a.devices[i]).find((n) => n.deviceNumber === e) ?? null;
|
|
94
92
|
}
|
|
95
93
|
static async connectToAll() {
|
|
96
|
-
const
|
|
97
|
-
for (const e of
|
|
94
|
+
const i = a.getList();
|
|
95
|
+
for (const e of i)
|
|
98
96
|
e.isConnected || await e.connect().catch(console.warn);
|
|
99
97
|
return Promise.resolve(a.areAllConnected());
|
|
100
98
|
}
|
|
101
99
|
static async disconnectAll() {
|
|
102
|
-
const
|
|
103
|
-
for (const e of
|
|
100
|
+
const i = a.getList();
|
|
101
|
+
for (const e of i)
|
|
104
102
|
e.isDisconnected || await e.disconnect().catch(console.warn);
|
|
105
103
|
return Promise.resolve(a.areAllDisconnected());
|
|
106
104
|
}
|
|
107
105
|
static async areAllConnected() {
|
|
108
|
-
const
|
|
109
|
-
for (const e of
|
|
106
|
+
const i = a.getList();
|
|
107
|
+
for (const e of i)
|
|
110
108
|
if (!e.isConnected) return Promise.resolve(!1);
|
|
111
109
|
return Promise.resolve(!0);
|
|
112
110
|
}
|
|
113
111
|
static async areAllDisconnected() {
|
|
114
|
-
const
|
|
115
|
-
for (const e of
|
|
112
|
+
const i = a.getList();
|
|
113
|
+
for (const e of i)
|
|
116
114
|
if (!e.isDisconnected) return Promise.resolve(!1);
|
|
117
115
|
return Promise.resolve(!0);
|
|
118
116
|
}
|
|
119
117
|
static async getAllConnected() {
|
|
120
|
-
const
|
|
121
|
-
return Promise.resolve(
|
|
118
|
+
const i = a.getList();
|
|
119
|
+
return Promise.resolve(i.filter((e) => e.isConnected));
|
|
122
120
|
}
|
|
123
121
|
static async getAllDisconnected() {
|
|
124
|
-
const
|
|
125
|
-
return Promise.resolve(
|
|
122
|
+
const i = a.getList();
|
|
123
|
+
return Promise.resolve(i.filter((e) => e.isDisconnected));
|
|
126
124
|
}
|
|
127
125
|
};
|
|
128
|
-
|
|
126
|
+
y(a, "instance"), y(a, "devices", {});
|
|
129
127
|
let h = a;
|
|
130
128
|
h.instance || (h.instance = new h());
|
|
131
|
-
function
|
|
129
|
+
function D(l = 100) {
|
|
132
130
|
return new Promise(
|
|
133
|
-
(
|
|
131
|
+
(i) => setTimeout(() => i(), l)
|
|
134
132
|
);
|
|
135
133
|
}
|
|
136
|
-
function
|
|
134
|
+
function X() {
|
|
137
135
|
return "serial" in navigator;
|
|
138
136
|
}
|
|
139
|
-
const
|
|
137
|
+
const E = {
|
|
140
138
|
baudRate: 9600,
|
|
141
139
|
dataBits: 8,
|
|
142
140
|
stopBits: 1,
|
|
@@ -144,24 +142,24 @@ const C = {
|
|
|
144
142
|
bufferSize: 32768,
|
|
145
143
|
flowControl: "none"
|
|
146
144
|
};
|
|
147
|
-
var
|
|
148
|
-
class
|
|
145
|
+
var p, s, m, C, I, A, $, f, R, M, q, N, O, F, b, H, j, W, Q, V, z, G;
|
|
146
|
+
class Z extends U {
|
|
149
147
|
constructor({
|
|
150
148
|
filters: e = null,
|
|
151
|
-
config_port: t =
|
|
152
|
-
no_device:
|
|
149
|
+
config_port: t = E,
|
|
150
|
+
no_device: n = 1,
|
|
153
151
|
device_listen_on_channel: r = 1,
|
|
154
152
|
bypassSerialBytesConnection: _ = !1
|
|
155
153
|
} = {
|
|
156
154
|
filters: null,
|
|
157
|
-
config_port:
|
|
155
|
+
config_port: E,
|
|
158
156
|
no_device: 1,
|
|
159
157
|
device_listen_on_channel: 1,
|
|
160
158
|
bypassSerialBytesConnection: !1
|
|
161
159
|
}) {
|
|
162
160
|
super();
|
|
163
|
-
|
|
164
|
-
|
|
161
|
+
S(this, s);
|
|
162
|
+
y(this, "__internal__", {
|
|
165
163
|
bypassSerialBytesConnection: !1,
|
|
166
164
|
auto_response: !1,
|
|
167
165
|
device_number: 1,
|
|
@@ -198,7 +196,7 @@ class K extends k {
|
|
|
198
196
|
delay_first_connection: 200,
|
|
199
197
|
bytes_connection: null,
|
|
200
198
|
filters: [],
|
|
201
|
-
config_port:
|
|
199
|
+
config_port: E,
|
|
202
200
|
queue: [],
|
|
203
201
|
auto_response: ["DD", "DD"],
|
|
204
202
|
free_timeout_ms: 50,
|
|
@@ -222,9 +220,10 @@ class K extends k {
|
|
|
222
220
|
reconnection: 0
|
|
223
221
|
}
|
|
224
222
|
});
|
|
223
|
+
S(this, p, null);
|
|
225
224
|
if (!("serial" in navigator))
|
|
226
225
|
throw new Error("Web Serial not supported");
|
|
227
|
-
e && (this.serialFilters = e), t && (this.serialConfigPort = t), _ && (this.__internal__.bypassSerialBytesConnection = _),
|
|
226
|
+
e && (this.serialFilters = e), t && (this.serialConfigPort = t), _ && (this.__internal__.bypassSerialBytesConnection = _), n && o(this, s, z).call(this, n), r && ["number", "string"].includes(typeof r) && (this.listenOnChannel = r), o(this, s, j).call(this), o(this, s, W).call(this);
|
|
228
227
|
}
|
|
229
228
|
set listenOnChannel(e) {
|
|
230
229
|
if (typeof e == "string" && (e = parseInt(e)), isNaN(e) || e < 1 || e > 255)
|
|
@@ -258,15 +257,15 @@ class K extends k {
|
|
|
258
257
|
this.__internal__.serial.useRTSCTS = e;
|
|
259
258
|
}
|
|
260
259
|
get isConnected() {
|
|
261
|
-
const e = this.__internal__.serial.connected, t = o(this,
|
|
262
|
-
return e && !t && o(this,
|
|
260
|
+
const e = this.__internal__.serial.connected, t = o(this, s, m).call(this, this.__internal__.serial.port);
|
|
261
|
+
return e && !t && o(this, s, C).call(this, { error: "Port is closed, not readable or writable." }), this.__internal__.serial.connected = t, this.__internal__.serial.connected;
|
|
263
262
|
}
|
|
264
263
|
get isConnecting() {
|
|
265
264
|
return this.__internal__.serial.connecting;
|
|
266
265
|
}
|
|
267
266
|
get isDisconnected() {
|
|
268
|
-
const e = this.__internal__.serial.connected, t = o(this,
|
|
269
|
-
return !e && t && (this.dispatch("serial:connected"), o(this,
|
|
267
|
+
const e = this.__internal__.serial.connected, t = o(this, s, m).call(this, this.__internal__.serial.port);
|
|
268
|
+
return !e && t && (this.dispatch("serial:connected"), o(this, s, b).call(this, !1), h.$dispatchChange(this)), this.__internal__.serial.connected = t, !this.__internal__.serial.connected;
|
|
270
269
|
}
|
|
271
270
|
get deviceNumber() {
|
|
272
271
|
return this.__internal__.device_number;
|
|
@@ -344,15 +343,13 @@ class K extends k {
|
|
|
344
343
|
});
|
|
345
344
|
}
|
|
346
345
|
async disconnect(e = null) {
|
|
347
|
-
await this.serialDisconnect(), o(this,
|
|
346
|
+
await this.serialDisconnect(), o(this, s, C).call(this, e);
|
|
348
347
|
}
|
|
349
348
|
async connect() {
|
|
350
349
|
return this.isConnected ? !0 : (this.__internal__.serial.aux_connecting = "idle", new Promise((e, t) => {
|
|
351
|
-
|
|
352
|
-
const
|
|
353
|
-
|
|
354
|
-
const r = setInterval(() => {
|
|
355
|
-
this.__internal__.serial.aux_connecting === "finished" ? (clearInterval(r), this.__internal__.serial.aux_connecting = "idle", this.off("serial:connecting", i), this.isConnected ? e(!0) : t(`${this.typeDevice} device ${this.deviceNumber} not connected`)) : this.__internal__.serial.aux_connecting === "connecting" && (this.__internal__.serial.aux_connecting = "idle", this.dispatch("serial:connecting", { active: !0 }));
|
|
350
|
+
X() || t("Web Serial not supported"), v(this, p) || P(this, p, o(this, s, I).bind(this)), this.on("internal:connecting", v(this, p));
|
|
351
|
+
const n = setInterval(() => {
|
|
352
|
+
this.__internal__.serial.aux_connecting === "finished" ? (clearInterval(n), this.__internal__.serial.aux_connecting = "idle", v(this, p) !== null && this.off("internal:connecting", v(this, p)), this.isConnected ? e(!0) : t(`${this.typeDevice} device ${this.deviceNumber} not connected`)) : this.__internal__.serial.aux_connecting === "connecting" && (this.__internal__.serial.aux_connecting = "idle", this.dispatch("internal:connecting", { active: !0 }), this.dispatch("serial:connecting", { active: !0 }));
|
|
356
353
|
}, 100);
|
|
357
354
|
this.serialConnect();
|
|
358
355
|
}));
|
|
@@ -382,8 +379,8 @@ class K extends k {
|
|
|
382
379
|
async serialPortsSaved(e) {
|
|
383
380
|
const t = this.serialFilters;
|
|
384
381
|
if (this.__internal__.aux_port_connector < e.length) {
|
|
385
|
-
const
|
|
386
|
-
this.__internal__.serial.port = e[
|
|
382
|
+
const n = this.__internal__.aux_port_connector;
|
|
383
|
+
this.__internal__.serial.port = e[n];
|
|
387
384
|
} else
|
|
388
385
|
this.__internal__.aux_port_connector = 0, this.__internal__.serial.port = await navigator.serial.requestPort({
|
|
389
386
|
filters: t
|
|
@@ -440,8 +437,8 @@ class K extends k {
|
|
|
440
437
|
}
|
|
441
438
|
async serialConnect() {
|
|
442
439
|
try {
|
|
443
|
-
o(this,
|
|
444
|
-
const e = await o(this,
|
|
440
|
+
o(this, s, b).call(this, !0);
|
|
441
|
+
const e = await o(this, s, R).call(this);
|
|
445
442
|
if (e.length > 0)
|
|
446
443
|
await this.serialPortsSaved(e);
|
|
447
444
|
else {
|
|
@@ -454,24 +451,24 @@ class K extends k {
|
|
|
454
451
|
if (!t)
|
|
455
452
|
throw new Error("No port selected by the user");
|
|
456
453
|
await t.open(this.serialConfigPort);
|
|
457
|
-
const
|
|
454
|
+
const n = this;
|
|
458
455
|
t.onconnect = (r) => {
|
|
459
456
|
var _;
|
|
460
|
-
|
|
457
|
+
n.dispatch("serial:connected", r), o(_ = n, s, b).call(_, !1), h.$dispatchChange(this), n.__internal__.serial.queue.length > 0 && n.dispatch("internal:queue", {});
|
|
461
458
|
}, t.ondisconnect = async () => {
|
|
462
|
-
await
|
|
463
|
-
}, await
|
|
464
|
-
await
|
|
465
|
-
}, this.__internal__.time.response_connection), this.__internal__.serial.last_action = "connect", await o(this,
|
|
459
|
+
await n.disconnect();
|
|
460
|
+
}, await D(this.__internal__.serial.delay_first_connection), this.__internal__.timeout.until_response = setTimeout(async () => {
|
|
461
|
+
await n.timeout(n.__internal__.serial.bytes_connection ?? [], "connection:start");
|
|
462
|
+
}, this.__internal__.time.response_connection), this.__internal__.serial.last_action = "connect", await o(this, s, A).call(this, this.__internal__.serial.bytes_connection ?? []), this.dispatch("serial:sent", {
|
|
466
463
|
action: "connect",
|
|
467
464
|
bytes: this.__internal__.serial.bytes_connection
|
|
468
|
-
}), this.__internal__.auto_response && o(this,
|
|
465
|
+
}), this.__internal__.auto_response && o(this, s, f).call(this, this.__internal__.serial.auto_response), await o(this, s, F).call(this);
|
|
469
466
|
} catch (e) {
|
|
470
|
-
o(this,
|
|
467
|
+
o(this, s, b).call(this, !1), this.serialErrors(e);
|
|
471
468
|
}
|
|
472
469
|
}
|
|
473
470
|
async serialForget() {
|
|
474
|
-
return await o(this,
|
|
471
|
+
return await o(this, s, H).call(this);
|
|
475
472
|
}
|
|
476
473
|
decToHex(e) {
|
|
477
474
|
return typeof e == "string" && (e = parseInt(e, 10)), e.toString(16);
|
|
@@ -484,8 +481,8 @@ class K extends k {
|
|
|
484
481
|
}
|
|
485
482
|
add0x(e) {
|
|
486
483
|
const t = [];
|
|
487
|
-
return e.forEach((
|
|
488
|
-
t[r] = "0x" +
|
|
484
|
+
return e.forEach((n, r) => {
|
|
485
|
+
t[r] = "0x" + n;
|
|
489
486
|
}), t;
|
|
490
487
|
}
|
|
491
488
|
bytesToHex(e) {
|
|
@@ -506,13 +503,13 @@ class K extends k {
|
|
|
506
503
|
return t;
|
|
507
504
|
}
|
|
508
505
|
async appendToQueue(e, t) {
|
|
509
|
-
const
|
|
506
|
+
const n = this.validateBytes(e);
|
|
510
507
|
if (["connect", "connection:start"].includes(t)) {
|
|
511
508
|
if (this.__internal__.serial.connected) return;
|
|
512
509
|
await this.serialConnect();
|
|
513
510
|
return;
|
|
514
511
|
}
|
|
515
|
-
this.__internal__.serial.queue.push({ bytes:
|
|
512
|
+
this.__internal__.serial.queue.push({ bytes: n, action: t }), this.dispatch("internal:queue", {});
|
|
516
513
|
}
|
|
517
514
|
serialSetConnectionConstant(e = 1) {
|
|
518
515
|
if (this.__internal__.bypassSerialBytesConnection) return this.__internal__.serial.bytes_connection;
|
|
@@ -529,8 +526,8 @@ class K extends k {
|
|
|
529
526
|
}
|
|
530
527
|
sumHex(e) {
|
|
531
528
|
let t = 0;
|
|
532
|
-
return e.forEach((
|
|
533
|
-
t += parseInt(
|
|
529
|
+
return e.forEach((n) => {
|
|
530
|
+
t += parseInt(n, 16);
|
|
534
531
|
}), t.toString(16);
|
|
535
532
|
}
|
|
536
533
|
toString() {
|
|
@@ -543,7 +540,7 @@ class K extends k {
|
|
|
543
540
|
});
|
|
544
541
|
}
|
|
545
542
|
softReload() {
|
|
546
|
-
o(this,
|
|
543
|
+
o(this, s, G).call(this), this.dispatch("serial:soft-reload", {});
|
|
547
544
|
}
|
|
548
545
|
async sendConnect() {
|
|
549
546
|
if (!this.__internal__.serial.bytes_connection)
|
|
@@ -564,13 +561,13 @@ class K extends k {
|
|
|
564
561
|
}
|
|
565
562
|
parseStringToTextEncoder(e = "", t = `
|
|
566
563
|
`) {
|
|
567
|
-
const
|
|
568
|
-
return e += t,
|
|
564
|
+
const n = new TextEncoder();
|
|
565
|
+
return e += t, n.encode(e);
|
|
569
566
|
}
|
|
570
567
|
parseStringToBytes(e = "", t = `
|
|
571
568
|
`) {
|
|
572
|
-
const
|
|
573
|
-
return Array.from(
|
|
569
|
+
const n = this.parseStringToTextEncoder(e, t);
|
|
570
|
+
return Array.from(n).map((r) => r.toString(16));
|
|
574
571
|
}
|
|
575
572
|
parseUint8ToHex(e) {
|
|
576
573
|
return Array.from(e).map((t) => t.toString(16));
|
|
@@ -580,28 +577,28 @@ class K extends k {
|
|
|
580
577
|
}
|
|
581
578
|
stringArrayToUint8Array(e) {
|
|
582
579
|
const t = [];
|
|
583
|
-
return typeof e == "string" ? this.parseStringToTextEncoder(e).buffer : (e.forEach((
|
|
584
|
-
const r =
|
|
580
|
+
return typeof e == "string" ? this.parseStringToTextEncoder(e).buffer : (e.forEach((n) => {
|
|
581
|
+
const r = n.replace("0x", "");
|
|
585
582
|
t.push(parseInt(r, 16));
|
|
586
583
|
}), new Uint8Array(t));
|
|
587
584
|
}
|
|
588
585
|
parseUint8ArrayToString(e) {
|
|
589
586
|
let t = new Uint8Array(0);
|
|
590
587
|
e instanceof Uint8Array ? t = e : t = this.stringArrayToUint8Array(e), e = this.parseUint8ToHex(t);
|
|
591
|
-
const
|
|
592
|
-
return this.__internal__.serial.response.replacer ? String.fromCharCode(...
|
|
588
|
+
const n = e.map((r) => parseInt(r, 16));
|
|
589
|
+
return this.__internal__.serial.response.replacer ? String.fromCharCode(...n).replace(this.__internal__.serial.response.replacer, "") : String.fromCharCode(...n);
|
|
593
590
|
}
|
|
594
591
|
hexToAscii(e) {
|
|
595
592
|
const t = e.toString();
|
|
596
|
-
let
|
|
593
|
+
let n = "";
|
|
597
594
|
for (let r = 0; r < t.length; r += 2)
|
|
598
|
-
|
|
599
|
-
return
|
|
595
|
+
n += String.fromCharCode(parseInt(t.substring(r, 2), 16));
|
|
596
|
+
return n;
|
|
600
597
|
}
|
|
601
598
|
asciiToHex(e) {
|
|
602
599
|
const t = [];
|
|
603
|
-
for (let
|
|
604
|
-
const _ = Number(e.charCodeAt(
|
|
600
|
+
for (let n = 0, r = e.length; n < r; n++) {
|
|
601
|
+
const _ = Number(e.charCodeAt(n)).toString(16);
|
|
605
602
|
t.push(_);
|
|
606
603
|
}
|
|
607
604
|
return t.join("");
|
|
@@ -610,33 +607,33 @@ class K extends k {
|
|
|
610
607
|
return this.isConnected;
|
|
611
608
|
}
|
|
612
609
|
}
|
|
613
|
-
|
|
610
|
+
p = new WeakMap(), s = new WeakSet(), m = function(e) {
|
|
614
611
|
return !!(e && e.readable && e.writable);
|
|
615
|
-
},
|
|
612
|
+
}, C = function(e = null) {
|
|
616
613
|
this.__internal__.serial.connected = !1, this.__internal__.aux_port_connector = 0, this.dispatch("serial:disconnected", e), h.$dispatchChange(this);
|
|
617
|
-
},
|
|
614
|
+
}, I = function(e) {
|
|
618
615
|
this.__internal__.serial.aux_connecting = e.detail.active ? "connecting" : "finished";
|
|
619
|
-
},
|
|
616
|
+
}, A = async function(e) {
|
|
620
617
|
const t = this.__internal__.serial.port;
|
|
621
618
|
if (!t || t && (!t.readable || !t.writable))
|
|
622
|
-
throw o(this,
|
|
623
|
-
const
|
|
624
|
-
if (this.useRTSCTS && await o(this,
|
|
619
|
+
throw o(this, s, C).call(this, { error: "Port is closed, not readable or writable." }), new Error("The port is closed or is not readable/writable");
|
|
620
|
+
const n = this.validateBytes(e);
|
|
621
|
+
if (this.useRTSCTS && await o(this, s, $).call(this, t, 5e3), t.writable === null) return;
|
|
625
622
|
const r = t.writable.getWriter();
|
|
626
|
-
await r.write(
|
|
627
|
-
},
|
|
628
|
-
const
|
|
623
|
+
await r.write(n), r.releaseLock();
|
|
624
|
+
}, $ = async function(e, t = 5e3) {
|
|
625
|
+
const n = Date.now();
|
|
629
626
|
for (; ; ) {
|
|
630
|
-
if (Date.now() -
|
|
627
|
+
if (Date.now() - n > t)
|
|
631
628
|
throw new Error("Timeout waiting for clearToSend signal");
|
|
632
629
|
const { clearToSend: r } = await e.getSignals();
|
|
633
630
|
if (r) return;
|
|
634
|
-
await
|
|
631
|
+
await D(100);
|
|
635
632
|
}
|
|
636
633
|
}, f = function(e = new Uint8Array([]), t = !1) {
|
|
637
634
|
if (e && e.length > 0) {
|
|
638
|
-
const
|
|
639
|
-
if (this.__internal__.serial.connected = o(this,
|
|
635
|
+
const n = this.__internal__.serial.connected;
|
|
636
|
+
if (this.__internal__.serial.connected = o(this, s, m).call(this, this.__internal__.serial.port), h.$dispatchChange(this), !n && this.__internal__.serial.connected && (this.dispatch("serial:connected"), o(this, s, b).call(this, !1)), this.__internal__.interval.reconnection && (clearInterval(this.__internal__.interval.reconnection), this.__internal__.interval.reconnection = 0), this.__internal__.timeout.until_response && (clearTimeout(this.__internal__.timeout.until_response), this.__internal__.timeout.until_response = 0), this.__internal__.serial.response.as === "hex")
|
|
640
637
|
t ? this.serialCorruptMessage(this.parseUint8ToHex(e)) : this.serialMessage(this.parseUint8ToHex(e));
|
|
641
638
|
else if (this.__internal__.serial.response.as === "uint8")
|
|
642
639
|
t ? this.serialCorruptMessage(e) : this.serialMessage(e);
|
|
@@ -654,38 +651,38 @@ n = new WeakSet(), y = function(e) {
|
|
|
654
651
|
}
|
|
655
652
|
}
|
|
656
653
|
this.__internal__.serial.queue.length !== 0 && this.dispatch("internal:queue", {});
|
|
657
|
-
},
|
|
654
|
+
}, R = async function() {
|
|
658
655
|
const e = this.serialFilters, t = await navigator.serial.getPorts({ filters: e });
|
|
659
656
|
return e.length === 0 ? t : t.filter((r) => {
|
|
660
657
|
const _ = r.getInfo();
|
|
661
658
|
return e.some((c) => _.usbProductId === c.usbProductId && _.usbVendorId === c.usbVendorId);
|
|
662
|
-
}).filter((r) => !o(this,
|
|
663
|
-
},
|
|
659
|
+
}).filter((r) => !o(this, s, m).call(this, r));
|
|
660
|
+
}, M = function(e) {
|
|
664
661
|
if (e) {
|
|
665
|
-
const t = this.__internal__.serial.response.buffer,
|
|
666
|
-
|
|
662
|
+
const t = this.__internal__.serial.response.buffer, n = new Uint8Array(t.length + e.byteLength);
|
|
663
|
+
n.set(t, 0), n.set(new Uint8Array(e), t.length), this.__internal__.serial.response.buffer = n;
|
|
667
664
|
}
|
|
668
|
-
},
|
|
665
|
+
}, q = async function() {
|
|
669
666
|
this.__internal__.serial.time_until_send_bytes && (clearTimeout(this.__internal__.serial.time_until_send_bytes), this.__internal__.serial.time_until_send_bytes = 0), this.__internal__.serial.time_until_send_bytes = setTimeout(() => {
|
|
670
|
-
this.__internal__.serial.response.buffer && o(this,
|
|
667
|
+
this.__internal__.serial.response.buffer && o(this, s, f).call(this, this.__internal__.serial.response.buffer), this.__internal__.serial.response.buffer = new Uint8Array(0);
|
|
671
668
|
}, this.__internal__.serial.free_timeout_ms || 50);
|
|
672
|
-
},
|
|
669
|
+
}, N = async function() {
|
|
673
670
|
const e = this.__internal__.serial.response.length;
|
|
674
671
|
let t = this.__internal__.serial.response.buffer;
|
|
675
672
|
if (this.__internal__.serial.time_until_send_bytes && (clearTimeout(this.__internal__.serial.time_until_send_bytes), this.__internal__.serial.time_until_send_bytes = 0), !(e === null || !t || t.length === 0)) {
|
|
676
673
|
for (; t.length >= e; ) {
|
|
677
|
-
const
|
|
678
|
-
o(this,
|
|
674
|
+
const n = t.slice(0, e);
|
|
675
|
+
o(this, s, f).call(this, n), t = t.slice(e);
|
|
679
676
|
}
|
|
680
677
|
this.__internal__.serial.response.buffer = t, t.length > 0 && (this.__internal__.serial.time_until_send_bytes = setTimeout(() => {
|
|
681
|
-
o(this,
|
|
678
|
+
o(this, s, f).call(this, this.__internal__.serial.response.buffer, !0);
|
|
682
679
|
}, this.__internal__.serial.free_timeout_ms || 50));
|
|
683
680
|
}
|
|
684
|
-
},
|
|
681
|
+
}, O = async function() {
|
|
685
682
|
const {
|
|
686
683
|
limiter: e,
|
|
687
684
|
prefixLimiter: t = !1,
|
|
688
|
-
sufixLimiter:
|
|
685
|
+
sufixLimiter: n = !0
|
|
689
686
|
} = this.__internal__.serial.response;
|
|
690
687
|
if (!e)
|
|
691
688
|
throw new Error("No limiter defined for delimited serial response");
|
|
@@ -693,68 +690,68 @@ n = new WeakSet(), y = function(e) {
|
|
|
693
690
|
if (!e || !r || r.length === 0) return;
|
|
694
691
|
this.__internal__.serial.time_until_send_bytes && (clearTimeout(this.__internal__.serial.time_until_send_bytes), this.__internal__.serial.time_until_send_bytes = 0);
|
|
695
692
|
let c = new TextDecoder().decode(r);
|
|
696
|
-
const
|
|
693
|
+
const w = [];
|
|
697
694
|
if (typeof e == "string") {
|
|
698
695
|
let u;
|
|
699
|
-
if (t &&
|
|
696
|
+
if (t && n)
|
|
700
697
|
u = new RegExp(`${e}([^${e}]+)${e}`, "g");
|
|
701
698
|
else if (t)
|
|
702
699
|
u = new RegExp(`${e}([^${e}]*)`, "g");
|
|
703
|
-
else if (
|
|
700
|
+
else if (n)
|
|
704
701
|
u = new RegExp(`([^${e}]+)${e}`, "g");
|
|
705
702
|
else
|
|
706
703
|
return;
|
|
707
|
-
let
|
|
708
|
-
for (; (
|
|
709
|
-
|
|
704
|
+
let g, d = 0;
|
|
705
|
+
for (; (g = u.exec(c)) !== null; )
|
|
706
|
+
w.push(new TextEncoder().encode(g[1])), d = u.lastIndex;
|
|
710
707
|
c = c.slice(d);
|
|
711
708
|
} else if (e instanceof RegExp) {
|
|
712
|
-
let u,
|
|
713
|
-
if (t &&
|
|
709
|
+
let u, g = 0;
|
|
710
|
+
if (t && n) {
|
|
714
711
|
const d = new RegExp(`${e.source}(.*?)${e.source}`, "g");
|
|
715
712
|
for (; (u = d.exec(c)) !== null; )
|
|
716
|
-
|
|
717
|
-
} else if (
|
|
713
|
+
w.push(new TextEncoder().encode(u[1])), g = d.lastIndex;
|
|
714
|
+
} else if (n)
|
|
718
715
|
for (; (u = e.exec(c)) !== null; ) {
|
|
719
|
-
const d = u.index,
|
|
720
|
-
|
|
716
|
+
const d = u.index, x = c.slice(g, d);
|
|
717
|
+
w.push(new TextEncoder().encode(x)), g = e.lastIndex;
|
|
721
718
|
}
|
|
722
719
|
else if (t) {
|
|
723
720
|
const d = c.split(e);
|
|
724
721
|
d.shift();
|
|
725
|
-
for (const
|
|
726
|
-
|
|
722
|
+
for (const x of d)
|
|
723
|
+
w.push(new TextEncoder().encode(x));
|
|
727
724
|
c = "";
|
|
728
725
|
}
|
|
729
|
-
c = c.slice(
|
|
726
|
+
c = c.slice(g);
|
|
730
727
|
}
|
|
731
|
-
for (const u of
|
|
732
|
-
o(this,
|
|
733
|
-
const
|
|
734
|
-
this.__internal__.serial.response.buffer =
|
|
735
|
-
o(this,
|
|
728
|
+
for (const u of w)
|
|
729
|
+
o(this, s, f).call(this, u);
|
|
730
|
+
const L = new TextEncoder().encode(c);
|
|
731
|
+
this.__internal__.serial.response.buffer = L, L.length > 0 && (this.__internal__.serial.time_until_send_bytes = setTimeout(() => {
|
|
732
|
+
o(this, s, f).call(this, this.__internal__.serial.response.buffer, !0), this.__internal__.serial.response.buffer = new Uint8Array(0);
|
|
736
733
|
}, this.__internal__.serial.free_timeout_ms ?? 50));
|
|
737
|
-
},
|
|
734
|
+
}, F = async function() {
|
|
738
735
|
const e = this.__internal__.serial.port;
|
|
739
736
|
if (!e || !e.readable) throw new Error("Port is not readable");
|
|
740
737
|
const t = e.readable.getReader();
|
|
741
738
|
this.__internal__.serial.reader = t;
|
|
742
739
|
try {
|
|
743
740
|
for (; this.__internal__.serial.keep_reading; ) {
|
|
744
|
-
const { value:
|
|
741
|
+
const { value: n, done: r } = await t.read();
|
|
745
742
|
if (r) break;
|
|
746
|
-
o(this,
|
|
743
|
+
o(this, s, M).call(this, n), this.__internal__.serial.response.delimited ? await o(this, s, O).call(this) : this.__internal__.serial.response.length === null ? await o(this, s, q).call(this) : await o(this, s, N).call(this);
|
|
747
744
|
}
|
|
748
|
-
} catch (
|
|
749
|
-
this.serialErrors(
|
|
745
|
+
} catch (n) {
|
|
746
|
+
this.serialErrors(n);
|
|
750
747
|
} finally {
|
|
751
748
|
t.releaseLock(), this.__internal__.serial.keep_reading = !0, this.__internal__.serial.port && await this.__internal__.serial.port.close();
|
|
752
749
|
}
|
|
753
|
-
},
|
|
754
|
-
e !== this.__internal__.serial.connecting && (this.__internal__.serial.connecting = e,
|
|
755
|
-
},
|
|
750
|
+
}, b = function(e) {
|
|
751
|
+
e !== this.__internal__.serial.connecting && (this.__internal__.serial.connecting = e, this.dispatch("serial:connecting", { active: e }), this.dispatch("internal:connecting", { active: e }));
|
|
752
|
+
}, H = async function() {
|
|
756
753
|
return typeof window > "u" ? !1 : "serial" in navigator && "forget" in SerialPort.prototype && this.__internal__.serial.port ? (await this.__internal__.serial.port.forget(), !0) : !1;
|
|
757
|
-
},
|
|
754
|
+
}, j = function() {
|
|
758
755
|
[
|
|
759
756
|
"serial:connected",
|
|
760
757
|
"serial:connecting",
|
|
@@ -774,21 +771,21 @@ n = new WeakSet(), y = function(e) {
|
|
|
774
771
|
].forEach((t) => {
|
|
775
772
|
this.serialRegisterAvailableListener(t);
|
|
776
773
|
});
|
|
777
|
-
},
|
|
774
|
+
}, W = function() {
|
|
778
775
|
const e = this;
|
|
779
776
|
this.on("internal:queue", async () => {
|
|
780
777
|
var t;
|
|
781
|
-
await o(t = e,
|
|
782
|
-
}), o(this,
|
|
783
|
-
},
|
|
778
|
+
await o(t = e, s, V).call(t);
|
|
779
|
+
}), o(this, s, Q).call(this);
|
|
780
|
+
}, Q = function() {
|
|
784
781
|
const e = this;
|
|
785
782
|
navigator.serial.addEventListener("connect", async () => {
|
|
786
783
|
e.isDisconnected && await e.serialConnect().catch(() => {
|
|
787
784
|
});
|
|
788
785
|
});
|
|
789
|
-
},
|
|
790
|
-
if (!o(this,
|
|
791
|
-
o(this,
|
|
786
|
+
}, V = async function() {
|
|
787
|
+
if (!o(this, s, m).call(this, this.__internal__.serial.port)) {
|
|
788
|
+
o(this, s, C).call(this, { error: "Port is closed, not readable or writable." }), await this.serialConnect();
|
|
792
789
|
return;
|
|
793
790
|
}
|
|
794
791
|
if (this.__internal__.timeout.until_response || this.__internal__.serial.queue.length === 0) return;
|
|
@@ -796,7 +793,7 @@ n = new WeakSet(), y = function(e) {
|
|
|
796
793
|
let t = this.__internal__.time.response_general;
|
|
797
794
|
if (e.action === "connect" && (t = this.__internal__.time.response_connection), this.__internal__.timeout.until_response = setTimeout(async () => {
|
|
798
795
|
await this.timeout(e.bytes, e.action);
|
|
799
|
-
}, t), this.__internal__.serial.last_action = e.action ?? "unknown", await o(this,
|
|
796
|
+
}, t), this.__internal__.serial.last_action = e.action ?? "unknown", await o(this, s, A).call(this, e.bytes), this.dispatch("serial:sent", {
|
|
800
797
|
action: e.action,
|
|
801
798
|
bytes: e.bytes
|
|
802
799
|
}), this.__internal__.auto_response) {
|
|
@@ -806,13 +803,13 @@ n = new WeakSet(), y = function(e) {
|
|
|
806
803
|
} catch (_) {
|
|
807
804
|
this.serialErrors(_);
|
|
808
805
|
}
|
|
809
|
-
o(this,
|
|
806
|
+
o(this, s, f).call(this, r);
|
|
810
807
|
}
|
|
811
|
-
const
|
|
812
|
-
this.__internal__.serial.queue =
|
|
813
|
-
},
|
|
808
|
+
const n = [...this.__internal__.serial.queue];
|
|
809
|
+
this.__internal__.serial.queue = n.splice(1);
|
|
810
|
+
}, z = function(e = 1) {
|
|
814
811
|
this.__internal__.device_number = e, !this.__internal__.bypassSerialBytesConnection && (this.__internal__.serial.bytes_connection = this.serialSetConnectionConstant(e));
|
|
815
|
-
},
|
|
812
|
+
}, G = function() {
|
|
816
813
|
this.__internal__.last_error = {
|
|
817
814
|
message: null,
|
|
818
815
|
action: null,
|
|
@@ -821,7 +818,7 @@ n = new WeakSet(), y = function(e) {
|
|
|
821
818
|
};
|
|
822
819
|
};
|
|
823
820
|
export {
|
|
824
|
-
|
|
821
|
+
Z as Core,
|
|
825
822
|
h as Devices,
|
|
826
|
-
|
|
823
|
+
U as Dispatcher
|
|
827
824
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(l,_){typeof exports=="object"&&typeof module<"u"?_(exports):typeof define=="function"&&define.amd?define(["exports"],_):(l=typeof globalThis<"u"?globalThis:l||self,_(l.WebSerialCore={}))})(this,function(l){"use strict";var G=Object.defineProperty;var k=l=>{throw TypeError(l)};var J=(l,_,d)=>_ in l?G(l,_,{enumerable:!0,configurable:!0,writable:!0,value:d}):l[_]=d;var m=(l,_,d)=>J(l,typeof _!="symbol"?_+"":_,d),K=(l,_,d)=>_.has(l)||k("Cannot "+d);var P=(l,_,d)=>_.has(l)?k("Cannot add the same private member more than once"):_ instanceof WeakSet?_.add(l):_.set(l,d);var o=(l,_,d)=>(K(l,_,"access private method"),d);var n,b,C,D,E,B,g,U,I,$,R,M,q,w,N,O,F,H,j,W,Q;class _ extends CustomEvent{constructor(s,e){super(s,e)}}class d extends EventTarget{constructor(){super(...arguments);m(this,"__listeners__",{debug:!1});m(this,"__debug__",!1);m(this,"__listenersCallbacks__",[])}dispatch(e,t=null){const i=new _(e,{detail:t});this.dispatchEvent(i),this.__debug__&&this.dispatchEvent(new _("debug",{detail:{type:e,data:t}}))}dispatchAsync(e,t=null,i=100){const r=this;setTimeout(()=>{r.dispatch(e,t)},i)}on(e,t){typeof this.__listeners__[e]<"u"&&!this.__listeners__[e]&&(this.__listeners__[e]=!0),this.__listenersCallbacks__.push({key:e,callback:t}),this.addEventListener(e,t)}off(e,t){this.__listenersCallbacks__=this.__listenersCallbacks__.filter(i=>!(i.key===e&&i.callback===t)),this.removeEventListener(e,t)}serialRegisterAvailableListener(e){this.__listeners__[e]||(this.__listeners__[e]=!1)}get availableListeners(){return Object.keys(this.__listeners__).sort().map(t=>({type:t,listening:this.__listeners__[t]}))}removeAllListeners(){for(const e of this.__listenersCallbacks__)this.removeEventListener(e.key,e.callback);this.__listenersCallbacks__=[],this.__listeners__={debug:!1}}}const a=class a extends d{constructor(){super(),["change"].forEach(e=>{this.serialRegisterAvailableListener(e)})}static $dispatchChange(s=null){s&&s.$checkAndDispatchConnection(),a.instance.dispatch("change",{devices:a.devices,dispatcher:s})}static typeError(s){const e=new Error;throw e.message=`Type ${s} is not supported`,e.name="DeviceTypeError",e}static registerType(s){typeof a.devices[s]>"u"&&(a.devices={...a.devices,[s]:{}})}static add(s){const e=s.typeDevice;typeof a.devices[e]>"u"&&a.registerType(e);const t=s.uuid;if(typeof a.devices[e]>"u"&&a.typeError(e),a.devices[e][t])throw new Error(`Device with id ${t} already exists`);return a.devices[e][t]=s,a.$dispatchChange(s),Object.keys(a.devices[e]).indexOf(t)}static get(s,e){return typeof a.devices[s]>"u"&&a.registerType(s),typeof a.devices[s]>"u"&&a.typeError(s),a.devices[s][e]}static getAll(s=null){return s===null?a.devices:(typeof a.devices[s]>"u"&&a.typeError(s),a.devices[s])}static getList(){return Object.values(a.devices).map(e=>Object.values(e)).flat()}static getByNumber(s,e){return typeof a.devices[s]>"u"&&a.typeError(s),Object.values(a.devices[s]).find(i=>i.deviceNumber===e)??null}static getCustom(s,e=1){return typeof a.devices[s]>"u"&&a.typeError(s),Object.values(a.devices[s]).find(i=>i.deviceNumber===e)??null}static async connectToAll(){const s=a.getList();for(const e of s)e.isConnected||await e.connect().catch(console.warn);return Promise.resolve(a.areAllConnected())}static async disconnectAll(){const s=a.getList();for(const e of s)e.isDisconnected||await e.disconnect().catch(console.warn);return Promise.resolve(a.areAllDisconnected())}static async areAllConnected(){const s=a.getList();for(const e of s)if(!e.isConnected)return Promise.resolve(!1);return Promise.resolve(!0)}static async areAllDisconnected(){const s=a.getList();for(const e of s)if(!e.isDisconnected)return Promise.resolve(!1);return Promise.resolve(!0)}static async getAllConnected(){const s=a.getList();return Promise.resolve(s.filter(e=>e.isConnected))}static async getAllDisconnected(){const s=a.getList();return Promise.resolve(s.filter(e=>e.isDisconnected))}};m(a,"instance"),m(a,"devices",{});let u=a;u.instance||(u.instance=new u);function A(x=100){return new Promise(s=>setTimeout(()=>s(),x))}function V(){return"serial"in navigator}const T={baudRate:9600,dataBits:8,stopBits:1,parity:"none",bufferSize:32768,flowControl:"none"};class z extends d{constructor({filters:e=null,config_port:t=T,no_device:i=1,device_listen_on_channel:r=1,bypassSerialBytesConnection:c=!1}={filters:null,config_port:T,no_device:1,device_listen_on_channel:1,bypassSerialBytesConnection:!1}){super();P(this,n);m(this,"__internal__",{bypassSerialBytesConnection:!1,auto_response:!1,device_number:1,aux_port_connector:0,last_error:{message:null,action:null,code:null,no_code:0},serial:{aux_connecting:"idle",connecting:!1,connected:!1,port:null,last_action:null,response:{length:null,buffer:new Uint8Array([]),as:"uint8",replacer:/[\n\r]+/g,limiter:null,prefixLimiter:!1,sufixLimiter:!0,delimited:!1},reader:null,input_done:null,output_done:null,input_stream:null,output_stream:null,keep_reading:!0,time_until_send_bytes:void 0,delay_first_connection:200,bytes_connection:null,filters:[],config_port:T,queue:[],auto_response:["DD","DD"],free_timeout_ms:50,useRTSCTS:!1},device:{type:"unknown",id:window.crypto.randomUUID(),listen_on_port:null},time:{response_connection:500,response_general:2e3},timeout:{until_response:0},interval:{reconnection:0}});if(!("serial"in navigator))throw new Error("Web Serial not supported");e&&(this.serialFilters=e),t&&(this.serialConfigPort=t),c&&(this.__internal__.bypassSerialBytesConnection=c),i&&o(this,n,W).call(this,i),r&&["number","string"].includes(typeof r)&&(this.listenOnChannel=r),o(this,n,O).call(this),o(this,n,F).call(this)}set listenOnChannel(e){if(typeof e=="string"&&(e=parseInt(e)),isNaN(e)||e<1||e>255)throw new Error("Invalid port number");this.__internal__.device.listen_on_port=e,!this.__internal__.bypassSerialBytesConnection&&(this.__internal__.serial.bytes_connection=this.serialSetConnectionConstant(e))}get lastAction(){return this.__internal__.serial.last_action}get listenOnChannel(){return this.__internal__.device.listen_on_port??1}set serialFilters(e){if(this.isConnected)throw new Error("Cannot change serial filters while connected");this.__internal__.serial.filters=e}get serialFilters(){return this.__internal__.serial.filters}set serialConfigPort(e){if(this.isConnected)throw new Error("Cannot change serial filters while connected");this.__internal__.serial.config_port=e}get serialConfigPort(){return this.__internal__.serial.config_port}get useRTSCTS(){return this.__internal__.serial.useRTSCTS}set useRTSCTS(e){this.__internal__.serial.useRTSCTS=e}get isConnected(){const e=this.__internal__.serial.connected,t=o(this,n,b).call(this,this.__internal__.serial.port);return e&&!t&&o(this,n,C).call(this,{error:"Port is closed, not readable or writable."}),this.__internal__.serial.connected=t,this.__internal__.serial.connected}get isConnecting(){return this.__internal__.serial.connecting}get isDisconnected(){const e=this.__internal__.serial.connected,t=o(this,n,b).call(this,this.__internal__.serial.port);return!e&&t&&(this.dispatch("serial:connected"),o(this,n,w).call(this,!1),u.$dispatchChange(this)),this.__internal__.serial.connected=t,!this.__internal__.serial.connected}get deviceNumber(){return this.__internal__.device_number}get uuid(){return this.__internal__.device.id}get typeDevice(){return this.__internal__.device.type}get queue(){return this.__internal__.serial.queue}get responseDelimited(){return this.__internal__.serial.response.delimited}set responseDelimited(e){if(typeof e!="boolean")throw new Error("responseDelimited must be a boolean");this.__internal__.serial.response.delimited=e}get responsePrefixLimited(){return this.__internal__.serial.response.prefixLimiter}set responsePrefixLimited(e){if(typeof e!="boolean")throw new Error("responsePrefixLimited must be a boolean");this.__internal__.serial.response.prefixLimiter=e}get responseSufixLimited(){return this.__internal__.serial.response.sufixLimiter}set responseSufixLimited(e){if(typeof e!="boolean")throw new Error("responseSufixLimited must be a boolean");this.__internal__.serial.response.sufixLimiter=e}get responseLimiter(){return this.__internal__.serial.response.limiter}set responseLimiter(e){if(typeof e!="string"&&!(e instanceof RegExp))throw new Error("responseLimiter must be a string or a RegExp");this.__internal__.serial.response.limiter=e}get fixedBytesMessage(){return this.__internal__.serial.response.length}set fixedBytesMessage(e){if(e!==null&&(typeof e!="number"||e<1))throw new Error("Invalid length for fixed bytes message");this.__internal__.serial.response.length=e}get timeoutBeforeResponseBytes(){return this.__internal__.serial.free_timeout_ms||50}set timeoutBeforeResponseBytes(e){if(e!==void 0&&(typeof e!="number"||e<1))throw new Error("Invalid timeout for response bytes");this.__internal__.serial.free_timeout_ms=e??50}get bypassSerialBytesConnection(){return this.__internal__.bypassSerialBytesConnection}set bypassSerialBytesConnection(e){if(typeof e!="boolean")throw new Error("bypassSerialBytesConnection must be a boolean");this.__internal__.bypassSerialBytesConnection=e}async timeout(e,t){this.__internal__.last_error.message="Operation response timed out.",this.__internal__.last_error.action=t,this.__internal__.last_error.code=e,this.__internal__.timeout.until_response&&(clearTimeout(this.__internal__.timeout.until_response),this.__internal__.timeout.until_response=0),t==="connect"?(this.__internal__.serial.connected=!1,this.dispatch("serial:reconnect",{}),u.$dispatchChange(this)):t==="connection:start"&&(await this.serialDisconnect(),this.__internal__.serial.connected=!1,this.__internal__.aux_port_connector+=1,u.$dispatchChange(this),await this.serialConnect()),this.dispatch("serial:timeout",{...this.__internal__.last_error,bytes:e,action:t})}async disconnect(e=null){await this.serialDisconnect(),o(this,n,C).call(this,e)}async connect(){return this.isConnected?!0:(this.__internal__.serial.aux_connecting="idle",new Promise((e,t)=>{V()||t("Web Serial not supported");const i=o(this,n,D).bind(this);this.on("serial:connecting",i);const r=setInterval(()=>{this.__internal__.serial.aux_connecting==="finished"?(clearInterval(r),this.__internal__.serial.aux_connecting="idle",this.off("serial:connecting",i),this.isConnected?e(!0):t(`${this.typeDevice} device ${this.deviceNumber} not connected`)):this.__internal__.serial.aux_connecting==="connecting"&&(this.__internal__.serial.aux_connecting="idle",this.dispatch("serial:connecting",{active:!0}))},100);this.serialConnect()}))}async serialDisconnect(){try{const e=this.__internal__.serial.reader,t=this.__internal__.serial.output_stream;e&&(await e.cancel().catch(r=>this.serialErrors(r)),await this.__internal__.serial.input_done),t&&(await t.getWriter().close(),await this.__internal__.serial.output_done),this.__internal__.serial.connected&&this.__internal__.serial&&this.__internal__.serial.port&&await this.__internal__.serial.port.close()}catch(e){this.serialErrors(e)}finally{this.__internal__.serial.reader=null,this.__internal__.serial.input_done=null,this.__internal__.serial.output_stream=null,this.__internal__.serial.output_done=null,this.__internal__.serial.connected=!1,this.__internal__.serial.port=null,u.$dispatchChange(this)}}getResponseAsArrayBuffer(){this.__internal__.serial.response.as="arraybuffer"}getResponseAsArrayHex(){this.__internal__.serial.response.as="hex"}getResponseAsUint8Array(){this.__internal__.serial.response.as="uint8"}getResponseAsString(){this.__internal__.serial.response.as="string"}async serialPortsSaved(e){const t=this.serialFilters;if(this.__internal__.aux_port_connector<e.length){const i=this.__internal__.aux_port_connector;this.__internal__.serial.port=e[i]}else this.__internal__.aux_port_connector=0,this.__internal__.serial.port=await navigator.serial.requestPort({filters:t});if(!this.__internal__.serial.port)throw new Error("Select another port please")}serialErrors(e){const t=e.toString().toLowerCase();switch(!0){case t.includes("must be handling a user gesture to show a permission request"):case t.includes("the port is closed."):case t.includes("the port is closed or is not writable"):case t.includes("the port is closed or is not readable"):case t.includes("the port is closed or is not readable/writable"):case t.includes("select another port please"):case t.includes("no port selected by the user"):case t.includes("this readable stream reader has been released and cannot be used to cancel its previous owner stream"):this.dispatch("serial:need-permission",{}),u.$dispatchChange(this);break;case t.includes("the port is already open."):case t.includes("failed to open serial port"):this.serialDisconnect().then(async()=>{this.__internal__.aux_port_connector+=1,await this.serialConnect()});break;case t.includes("cannot read properties of undefined (reading 'writable')"):case t.includes("cannot read properties of null (reading 'writable')"):case t.includes("cannot read property 'writable' of null"):case t.includes("cannot read property 'writable' of undefined"):this.serialDisconnect().then(async()=>{await this.serialConnect()});break;case t.includes("'close' on 'serialport': a call to close() is already in progress."):break;case t.includes("failed to execute 'open' on 'serialport': a call to open() is already in progress."):break;case t.includes("the port is already closed."):break;case t.includes("the device has been lost"):this.dispatch("serial:lost",{}),u.$dispatchChange(this);break;case t.includes("navigator.serial is undefined"):this.dispatch("serial:unsupported",{});break;default:console.error(e);break}this.dispatch("serial:error",e)}async serialConnect(){try{o(this,n,w).call(this,!0);const e=await o(this,n,U).call(this);if(e.length>0)await this.serialPortsSaved(e);else{const r=this.serialFilters;this.__internal__.serial.port=await navigator.serial.requestPort({filters:r})}const t=this.__internal__.serial.port;if(!t)throw new Error("No port selected by the user");await t.open(this.serialConfigPort);const i=this;t.onconnect=r=>{var c;i.dispatch("serial:connected",r),o(c=i,n,w).call(c,!1),u.$dispatchChange(this),i.__internal__.serial.queue.length>0&&i.dispatch("internal:queue",{})},t.ondisconnect=async()=>{await i.disconnect()},await A(this.__internal__.serial.delay_first_connection),this.__internal__.timeout.until_response=setTimeout(async()=>{await i.timeout(i.__internal__.serial.bytes_connection??[],"connection:start")},this.__internal__.time.response_connection),this.__internal__.serial.last_action="connect",await o(this,n,E).call(this,this.__internal__.serial.bytes_connection??[]),this.dispatch("serial:sent",{action:"connect",bytes:this.__internal__.serial.bytes_connection}),this.__internal__.auto_response&&o(this,n,g).call(this,this.__internal__.serial.auto_response),await o(this,n,q).call(this)}catch(e){o(this,n,w).call(this,!1),this.serialErrors(e)}}async serialForget(){return await o(this,n,N).call(this)}decToHex(e){return typeof e=="string"&&(e=parseInt(e,10)),e.toString(16)}hexToDec(e){return parseInt(e,16)}hexMaker(e="00",t=2){return e.toString().padStart(t,"0").toLowerCase()}add0x(e){const t=[];return e.forEach((i,r)=>{t[r]="0x"+i}),t}bytesToHex(e){return this.add0x(Array.from(e,t=>this.hexMaker(t)))}validateBytes(e){let t=new Uint8Array(0);if(e instanceof Uint8Array)t=e;else if(typeof e=="string")t=this.parseStringToTextEncoder(e);else if(Array.isArray(e)&&typeof e[0]=="string")t=this.stringArrayToUint8Array(e);else if(Array.isArray(e)&&typeof e[0]=="number")t=new Uint8Array(e);else throw new Error("Invalid data type");return t}async appendToQueue(e,t){const i=this.validateBytes(e);if(["connect","connection:start"].includes(t)){if(this.__internal__.serial.connected)return;await this.serialConnect();return}this.__internal__.serial.queue.push({bytes:i,action:t}),this.dispatch("internal:queue",{})}serialSetConnectionConstant(e=1){if(this.__internal__.bypassSerialBytesConnection)return this.__internal__.serial.bytes_connection;throw new Error(`Method not implemented 'serialSetConnectionConstant' to listen on channel ${e}`)}serialMessage(e){throw console.log(e),this.dispatch("serial:message",{code:e}),new Error("Method not implemented 'serialMessage'")}serialCorruptMessage(e){throw console.log(e),this.dispatch("serial:corrupt-message",{code:e}),new Error("Method not implemented 'serialCorruptMessage'")}clearSerialQueue(){this.__internal__.serial.queue=[]}sumHex(e){let t=0;return e.forEach(i=>{t+=parseInt(i,16)}),t.toString(16)}toString(){return JSON.stringify({__class:this.typeDevice,device_number:this.deviceNumber,uuid:this.uuid,connected:this.isConnected,connection:this.__internal__.serial.bytes_connection})}softReload(){o(this,n,Q).call(this),this.dispatch("serial:soft-reload",{})}async sendConnect(){if(!this.__internal__.serial.bytes_connection)throw new Error("No connection bytes defined");await this.appendToQueue(this.__internal__.serial.bytes_connection,"connect")}async sendCustomCode({code:e=[]}={code:[]}){if(!e)throw new Error("No data to send");this.__internal__.bypassSerialBytesConnection&&(this.__internal__.serial.bytes_connection=this.validateBytes(e)),await this.appendToQueue(e,"custom")}stringToArrayHex(e){return Array.from(e).map(t=>t.charCodeAt(0).toString(16))}stringToArrayBuffer(e,t=`
|
|
1
|
+
(function(l,_){typeof exports=="object"&&typeof module<"u"?_(exports):typeof define=="function"&&define.amd?define(["exports"],_):(l=typeof globalThis<"u"?globalThis:l||self,_(l.WebSerialCore={}))})(this,function(l){"use strict";var Y=Object.defineProperty;var U=l=>{throw TypeError(l)};var Z=(l,_,c)=>_ in l?Y(l,_,{enumerable:!0,configurable:!0,writable:!0,value:c}):l[_]=c;var b=(l,_,c)=>Z(l,typeof _!="symbol"?_+"":_,c),L=(l,_,c)=>_.has(l)||U("Cannot "+c);var x=(l,_,c)=>(L(l,_,"read from private field"),c?c.call(l):_.get(l)),k=(l,_,c)=>_.has(l)?U("Cannot add the same private member more than once"):_ instanceof WeakSet?_.add(l):_.set(l,c),I=(l,_,c,h)=>(L(l,_,"write to private field"),h?h.call(l,c):_.set(l,c),c),o=(l,_,c)=>(L(l,_,"access private method"),c);var g,n,w,T,$,P,R,y,M,q,O,N,F,H,v,j,W,Q,V,z,G,J;class _ extends CustomEvent{constructor(s,e){super(s,e)}}class c extends EventTarget{constructor(){super(...arguments);b(this,"__listeners__",{debug:!1});b(this,"__debug__",!1);b(this,"__listenersCallbacks__",[])}dispatch(e,t=null){const i=new _(e,{detail:t});this.dispatchEvent(i),this.__debug__&&this.dispatchEvent(new _("debug",{detail:{type:e,data:t}}))}dispatchAsync(e,t=null,i=100){const r=this;setTimeout(()=>{r.dispatch(e,t)},i)}on(e,t){typeof this.__listeners__[e]<"u"&&!this.__listeners__[e]&&(this.__listeners__[e]=!0),this.__listenersCallbacks__.push({key:e,callback:t}),this.addEventListener(e,t)}off(e,t){this.__listenersCallbacks__=this.__listenersCallbacks__.filter(i=>!(i.key===e&&i.callback===t)),this.removeEventListener(e,t)}serialRegisterAvailableListener(e){this.__listeners__[e]||(this.__listeners__[e]=!1)}get availableListeners(){return Object.keys(this.__listeners__).sort().map(t=>({type:t,listening:this.__listeners__[t]}))}removeAllListeners(){for(const e of this.__listenersCallbacks__)["internal:queue"].includes(e.key)||(this.__listenersCallbacks__=this.__listenersCallbacks__.filter(t=>!(t.key===e.key&&t.callback===e.callback)),this.removeEventListener(e.key,e.callback));for(const e of Object.keys(this.__listeners__))this.__listeners__[e]=!1}}const a=class a extends c{constructor(){super(),["change"].forEach(e=>{this.serialRegisterAvailableListener(e)})}static $dispatchChange(s=null){s&&s.$checkAndDispatchConnection(),a.instance.dispatch("change",{devices:a.devices,dispatcher:s})}static typeError(s){const e=new Error;throw e.message=`Type ${s} is not supported`,e.name="DeviceTypeError",e}static registerType(s){typeof a.devices[s]>"u"&&(a.devices={...a.devices,[s]:{}})}static add(s){const e=s.typeDevice;typeof a.devices[e]>"u"&&a.registerType(e);const t=s.uuid;if(typeof a.devices[e]>"u"&&a.typeError(e),a.devices[e][t])throw new Error(`Device with id ${t} already exists`);return a.devices[e][t]=s,a.$dispatchChange(s),Object.keys(a.devices[e]).indexOf(t)}static get(s,e){return typeof a.devices[s]>"u"&&a.registerType(s),typeof a.devices[s]>"u"&&a.typeError(s),a.devices[s][e]}static getAll(s=null){return s===null?a.devices:(typeof a.devices[s]>"u"&&a.typeError(s),a.devices[s])}static getList(){return Object.values(a.devices).map(e=>Object.values(e)).flat()}static getByNumber(s,e){return typeof a.devices[s]>"u"&&a.typeError(s),Object.values(a.devices[s]).find(i=>i.deviceNumber===e)??null}static getCustom(s,e=1){return typeof a.devices[s]>"u"&&a.typeError(s),Object.values(a.devices[s]).find(i=>i.deviceNumber===e)??null}static async connectToAll(){const s=a.getList();for(const e of s)e.isConnected||await e.connect().catch(console.warn);return Promise.resolve(a.areAllConnected())}static async disconnectAll(){const s=a.getList();for(const e of s)e.isDisconnected||await e.disconnect().catch(console.warn);return Promise.resolve(a.areAllDisconnected())}static async areAllConnected(){const s=a.getList();for(const e of s)if(!e.isConnected)return Promise.resolve(!1);return Promise.resolve(!0)}static async areAllDisconnected(){const s=a.getList();for(const e of s)if(!e.isDisconnected)return Promise.resolve(!1);return Promise.resolve(!0)}static async getAllConnected(){const s=a.getList();return Promise.resolve(s.filter(e=>e.isConnected))}static async getAllDisconnected(){const s=a.getList();return Promise.resolve(s.filter(e=>e.isDisconnected))}};b(a,"instance"),b(a,"devices",{});let h=a;h.instance||(h.instance=new h);function D(S=100){return new Promise(s=>setTimeout(()=>s(),S))}function K(){return"serial"in navigator}const E={baudRate:9600,dataBits:8,stopBits:1,parity:"none",bufferSize:32768,flowControl:"none"};class X extends c{constructor({filters:e=null,config_port:t=E,no_device:i=1,device_listen_on_channel:r=1,bypassSerialBytesConnection:u=!1}={filters:null,config_port:E,no_device:1,device_listen_on_channel:1,bypassSerialBytesConnection:!1}){super();k(this,n);b(this,"__internal__",{bypassSerialBytesConnection:!1,auto_response:!1,device_number:1,aux_port_connector:0,last_error:{message:null,action:null,code:null,no_code:0},serial:{aux_connecting:"idle",connecting:!1,connected:!1,port:null,last_action:null,response:{length:null,buffer:new Uint8Array([]),as:"uint8",replacer:/[\n\r]+/g,limiter:null,prefixLimiter:!1,sufixLimiter:!0,delimited:!1},reader:null,input_done:null,output_done:null,input_stream:null,output_stream:null,keep_reading:!0,time_until_send_bytes:void 0,delay_first_connection:200,bytes_connection:null,filters:[],config_port:E,queue:[],auto_response:["DD","DD"],free_timeout_ms:50,useRTSCTS:!1},device:{type:"unknown",id:window.crypto.randomUUID(),listen_on_port:null},time:{response_connection:500,response_general:2e3},timeout:{until_response:0},interval:{reconnection:0}});k(this,g,null);if(!("serial"in navigator))throw new Error("Web Serial not supported");e&&(this.serialFilters=e),t&&(this.serialConfigPort=t),u&&(this.__internal__.bypassSerialBytesConnection=u),i&&o(this,n,G).call(this,i),r&&["number","string"].includes(typeof r)&&(this.listenOnChannel=r),o(this,n,W).call(this),o(this,n,Q).call(this)}set listenOnChannel(e){if(typeof e=="string"&&(e=parseInt(e)),isNaN(e)||e<1||e>255)throw new Error("Invalid port number");this.__internal__.device.listen_on_port=e,!this.__internal__.bypassSerialBytesConnection&&(this.__internal__.serial.bytes_connection=this.serialSetConnectionConstant(e))}get lastAction(){return this.__internal__.serial.last_action}get listenOnChannel(){return this.__internal__.device.listen_on_port??1}set serialFilters(e){if(this.isConnected)throw new Error("Cannot change serial filters while connected");this.__internal__.serial.filters=e}get serialFilters(){return this.__internal__.serial.filters}set serialConfigPort(e){if(this.isConnected)throw new Error("Cannot change serial filters while connected");this.__internal__.serial.config_port=e}get serialConfigPort(){return this.__internal__.serial.config_port}get useRTSCTS(){return this.__internal__.serial.useRTSCTS}set useRTSCTS(e){this.__internal__.serial.useRTSCTS=e}get isConnected(){const e=this.__internal__.serial.connected,t=o(this,n,w).call(this,this.__internal__.serial.port);return e&&!t&&o(this,n,T).call(this,{error:"Port is closed, not readable or writable."}),this.__internal__.serial.connected=t,this.__internal__.serial.connected}get isConnecting(){return this.__internal__.serial.connecting}get isDisconnected(){const e=this.__internal__.serial.connected,t=o(this,n,w).call(this,this.__internal__.serial.port);return!e&&t&&(this.dispatch("serial:connected"),o(this,n,v).call(this,!1),h.$dispatchChange(this)),this.__internal__.serial.connected=t,!this.__internal__.serial.connected}get deviceNumber(){return this.__internal__.device_number}get uuid(){return this.__internal__.device.id}get typeDevice(){return this.__internal__.device.type}get queue(){return this.__internal__.serial.queue}get responseDelimited(){return this.__internal__.serial.response.delimited}set responseDelimited(e){if(typeof e!="boolean")throw new Error("responseDelimited must be a boolean");this.__internal__.serial.response.delimited=e}get responsePrefixLimited(){return this.__internal__.serial.response.prefixLimiter}set responsePrefixLimited(e){if(typeof e!="boolean")throw new Error("responsePrefixLimited must be a boolean");this.__internal__.serial.response.prefixLimiter=e}get responseSufixLimited(){return this.__internal__.serial.response.sufixLimiter}set responseSufixLimited(e){if(typeof e!="boolean")throw new Error("responseSufixLimited must be a boolean");this.__internal__.serial.response.sufixLimiter=e}get responseLimiter(){return this.__internal__.serial.response.limiter}set responseLimiter(e){if(typeof e!="string"&&!(e instanceof RegExp))throw new Error("responseLimiter must be a string or a RegExp");this.__internal__.serial.response.limiter=e}get fixedBytesMessage(){return this.__internal__.serial.response.length}set fixedBytesMessage(e){if(e!==null&&(typeof e!="number"||e<1))throw new Error("Invalid length for fixed bytes message");this.__internal__.serial.response.length=e}get timeoutBeforeResponseBytes(){return this.__internal__.serial.free_timeout_ms||50}set timeoutBeforeResponseBytes(e){if(e!==void 0&&(typeof e!="number"||e<1))throw new Error("Invalid timeout for response bytes");this.__internal__.serial.free_timeout_ms=e??50}get bypassSerialBytesConnection(){return this.__internal__.bypassSerialBytesConnection}set bypassSerialBytesConnection(e){if(typeof e!="boolean")throw new Error("bypassSerialBytesConnection must be a boolean");this.__internal__.bypassSerialBytesConnection=e}async timeout(e,t){this.__internal__.last_error.message="Operation response timed out.",this.__internal__.last_error.action=t,this.__internal__.last_error.code=e,this.__internal__.timeout.until_response&&(clearTimeout(this.__internal__.timeout.until_response),this.__internal__.timeout.until_response=0),t==="connect"?(this.__internal__.serial.connected=!1,this.dispatch("serial:reconnect",{}),h.$dispatchChange(this)):t==="connection:start"&&(await this.serialDisconnect(),this.__internal__.serial.connected=!1,this.__internal__.aux_port_connector+=1,h.$dispatchChange(this),await this.serialConnect()),this.dispatch("serial:timeout",{...this.__internal__.last_error,bytes:e,action:t})}async disconnect(e=null){await this.serialDisconnect(),o(this,n,T).call(this,e)}async connect(){return this.isConnected?!0:(this.__internal__.serial.aux_connecting="idle",new Promise((e,t)=>{K()||t("Web Serial not supported"),x(this,g)||I(this,g,o(this,n,$).bind(this)),this.on("internal:connecting",x(this,g));const i=setInterval(()=>{this.__internal__.serial.aux_connecting==="finished"?(clearInterval(i),this.__internal__.serial.aux_connecting="idle",x(this,g)!==null&&this.off("internal:connecting",x(this,g)),this.isConnected?e(!0):t(`${this.typeDevice} device ${this.deviceNumber} not connected`)):this.__internal__.serial.aux_connecting==="connecting"&&(this.__internal__.serial.aux_connecting="idle",this.dispatch("internal:connecting",{active:!0}),this.dispatch("serial:connecting",{active:!0}))},100);this.serialConnect()}))}async serialDisconnect(){try{const e=this.__internal__.serial.reader,t=this.__internal__.serial.output_stream;e&&(await e.cancel().catch(r=>this.serialErrors(r)),await this.__internal__.serial.input_done),t&&(await t.getWriter().close(),await this.__internal__.serial.output_done),this.__internal__.serial.connected&&this.__internal__.serial&&this.__internal__.serial.port&&await this.__internal__.serial.port.close()}catch(e){this.serialErrors(e)}finally{this.__internal__.serial.reader=null,this.__internal__.serial.input_done=null,this.__internal__.serial.output_stream=null,this.__internal__.serial.output_done=null,this.__internal__.serial.connected=!1,this.__internal__.serial.port=null,h.$dispatchChange(this)}}getResponseAsArrayBuffer(){this.__internal__.serial.response.as="arraybuffer"}getResponseAsArrayHex(){this.__internal__.serial.response.as="hex"}getResponseAsUint8Array(){this.__internal__.serial.response.as="uint8"}getResponseAsString(){this.__internal__.serial.response.as="string"}async serialPortsSaved(e){const t=this.serialFilters;if(this.__internal__.aux_port_connector<e.length){const i=this.__internal__.aux_port_connector;this.__internal__.serial.port=e[i]}else this.__internal__.aux_port_connector=0,this.__internal__.serial.port=await navigator.serial.requestPort({filters:t});if(!this.__internal__.serial.port)throw new Error("Select another port please")}serialErrors(e){const t=e.toString().toLowerCase();switch(!0){case t.includes("must be handling a user gesture to show a permission request"):case t.includes("the port is closed."):case t.includes("the port is closed or is not writable"):case t.includes("the port is closed or is not readable"):case t.includes("the port is closed or is not readable/writable"):case t.includes("select another port please"):case t.includes("no port selected by the user"):case t.includes("this readable stream reader has been released and cannot be used to cancel its previous owner stream"):this.dispatch("serial:need-permission",{}),h.$dispatchChange(this);break;case t.includes("the port is already open."):case t.includes("failed to open serial port"):this.serialDisconnect().then(async()=>{this.__internal__.aux_port_connector+=1,await this.serialConnect()});break;case t.includes("cannot read properties of undefined (reading 'writable')"):case t.includes("cannot read properties of null (reading 'writable')"):case t.includes("cannot read property 'writable' of null"):case t.includes("cannot read property 'writable' of undefined"):this.serialDisconnect().then(async()=>{await this.serialConnect()});break;case t.includes("'close' on 'serialport': a call to close() is already in progress."):break;case t.includes("failed to execute 'open' on 'serialport': a call to open() is already in progress."):break;case t.includes("the port is already closed."):break;case t.includes("the device has been lost"):this.dispatch("serial:lost",{}),h.$dispatchChange(this);break;case t.includes("navigator.serial is undefined"):this.dispatch("serial:unsupported",{});break;default:console.error(e);break}this.dispatch("serial:error",e)}async serialConnect(){try{o(this,n,v).call(this,!0);const e=await o(this,n,M).call(this);if(e.length>0)await this.serialPortsSaved(e);else{const r=this.serialFilters;this.__internal__.serial.port=await navigator.serial.requestPort({filters:r})}const t=this.__internal__.serial.port;if(!t)throw new Error("No port selected by the user");await t.open(this.serialConfigPort);const i=this;t.onconnect=r=>{var u;i.dispatch("serial:connected",r),o(u=i,n,v).call(u,!1),h.$dispatchChange(this),i.__internal__.serial.queue.length>0&&i.dispatch("internal:queue",{})},t.ondisconnect=async()=>{await i.disconnect()},await D(this.__internal__.serial.delay_first_connection),this.__internal__.timeout.until_response=setTimeout(async()=>{await i.timeout(i.__internal__.serial.bytes_connection??[],"connection:start")},this.__internal__.time.response_connection),this.__internal__.serial.last_action="connect",await o(this,n,P).call(this,this.__internal__.serial.bytes_connection??[]),this.dispatch("serial:sent",{action:"connect",bytes:this.__internal__.serial.bytes_connection}),this.__internal__.auto_response&&o(this,n,y).call(this,this.__internal__.serial.auto_response),await o(this,n,H).call(this)}catch(e){o(this,n,v).call(this,!1),this.serialErrors(e)}}async serialForget(){return await o(this,n,j).call(this)}decToHex(e){return typeof e=="string"&&(e=parseInt(e,10)),e.toString(16)}hexToDec(e){return parseInt(e,16)}hexMaker(e="00",t=2){return e.toString().padStart(t,"0").toLowerCase()}add0x(e){const t=[];return e.forEach((i,r)=>{t[r]="0x"+i}),t}bytesToHex(e){return this.add0x(Array.from(e,t=>this.hexMaker(t)))}validateBytes(e){let t=new Uint8Array(0);if(e instanceof Uint8Array)t=e;else if(typeof e=="string")t=this.parseStringToTextEncoder(e);else if(Array.isArray(e)&&typeof e[0]=="string")t=this.stringArrayToUint8Array(e);else if(Array.isArray(e)&&typeof e[0]=="number")t=new Uint8Array(e);else throw new Error("Invalid data type");return t}async appendToQueue(e,t){const i=this.validateBytes(e);if(["connect","connection:start"].includes(t)){if(this.__internal__.serial.connected)return;await this.serialConnect();return}this.__internal__.serial.queue.push({bytes:i,action:t}),this.dispatch("internal:queue",{})}serialSetConnectionConstant(e=1){if(this.__internal__.bypassSerialBytesConnection)return this.__internal__.serial.bytes_connection;throw new Error(`Method not implemented 'serialSetConnectionConstant' to listen on channel ${e}`)}serialMessage(e){throw console.log(e),this.dispatch("serial:message",{code:e}),new Error("Method not implemented 'serialMessage'")}serialCorruptMessage(e){throw console.log(e),this.dispatch("serial:corrupt-message",{code:e}),new Error("Method not implemented 'serialCorruptMessage'")}clearSerialQueue(){this.__internal__.serial.queue=[]}sumHex(e){let t=0;return e.forEach(i=>{t+=parseInt(i,16)}),t.toString(16)}toString(){return JSON.stringify({__class:this.typeDevice,device_number:this.deviceNumber,uuid:this.uuid,connected:this.isConnected,connection:this.__internal__.serial.bytes_connection})}softReload(){o(this,n,J).call(this),this.dispatch("serial:soft-reload",{})}async sendConnect(){if(!this.__internal__.serial.bytes_connection)throw new Error("No connection bytes defined");await this.appendToQueue(this.__internal__.serial.bytes_connection,"connect")}async sendCustomCode({code:e=[]}={code:[]}){if(!e)throw new Error("No data to send");this.__internal__.bypassSerialBytesConnection&&(this.__internal__.serial.bytes_connection=this.validateBytes(e)),await this.appendToQueue(e,"custom")}stringToArrayHex(e){return Array.from(e).map(t=>t.charCodeAt(0).toString(16))}stringToArrayBuffer(e,t=`
|
|
2
2
|
`){return this.parseStringToTextEncoder(e,t).buffer}parseStringToTextEncoder(e="",t=`
|
|
3
3
|
`){const i=new TextEncoder;return e+=t,i.encode(e)}parseStringToBytes(e="",t=`
|
|
4
|
-
`){const i=this.parseStringToTextEncoder(e,t);return Array.from(i).map(r=>r.toString(16))}parseUint8ToHex(e){return Array.from(e).map(t=>t.toString(16))}parseHexToUint8(e){return new Uint8Array(e.map(t=>parseInt(t,16)))}stringArrayToUint8Array(e){const t=[];return typeof e=="string"?this.parseStringToTextEncoder(e).buffer:(e.forEach(i=>{const r=i.replace("0x","");t.push(parseInt(r,16))}),new Uint8Array(t))}parseUint8ArrayToString(e){let t=new Uint8Array(0);e instanceof Uint8Array?t=e:t=this.stringArrayToUint8Array(e),e=this.parseUint8ToHex(t);const i=e.map(r=>parseInt(r,16));return this.__internal__.serial.response.replacer?String.fromCharCode(...i).replace(this.__internal__.serial.response.replacer,""):String.fromCharCode(...i)}hexToAscii(e){const t=e.toString();let i="";for(let r=0;r<t.length;r+=2)i+=String.fromCharCode(parseInt(t.substring(r,2),16));return i}asciiToHex(e){const t=[];for(let i=0,r=e.length;i<r;i++){const
|
|
4
|
+
`){const i=this.parseStringToTextEncoder(e,t);return Array.from(i).map(r=>r.toString(16))}parseUint8ToHex(e){return Array.from(e).map(t=>t.toString(16))}parseHexToUint8(e){return new Uint8Array(e.map(t=>parseInt(t,16)))}stringArrayToUint8Array(e){const t=[];return typeof e=="string"?this.parseStringToTextEncoder(e).buffer:(e.forEach(i=>{const r=i.replace("0x","");t.push(parseInt(r,16))}),new Uint8Array(t))}parseUint8ArrayToString(e){let t=new Uint8Array(0);e instanceof Uint8Array?t=e:t=this.stringArrayToUint8Array(e),e=this.parseUint8ToHex(t);const i=e.map(r=>parseInt(r,16));return this.__internal__.serial.response.replacer?String.fromCharCode(...i).replace(this.__internal__.serial.response.replacer,""):String.fromCharCode(...i)}hexToAscii(e){const t=e.toString();let i="";for(let r=0;r<t.length;r+=2)i+=String.fromCharCode(parseInt(t.substring(r,2),16));return i}asciiToHex(e){const t=[];for(let i=0,r=e.length;i<r;i++){const u=Number(e.charCodeAt(i)).toString(16);t.push(u)}return t.join("")}$checkAndDispatchConnection(){return this.isConnected}}g=new WeakMap,n=new WeakSet,w=function(e){return!!(e&&e.readable&&e.writable)},T=function(e=null){this.__internal__.serial.connected=!1,this.__internal__.aux_port_connector=0,this.dispatch("serial:disconnected",e),h.$dispatchChange(this)},$=function(e){this.__internal__.serial.aux_connecting=e.detail.active?"connecting":"finished"},P=async function(e){const t=this.__internal__.serial.port;if(!t||t&&(!t.readable||!t.writable))throw o(this,n,T).call(this,{error:"Port is closed, not readable or writable."}),new Error("The port is closed or is not readable/writable");const i=this.validateBytes(e);if(this.useRTSCTS&&await o(this,n,R).call(this,t,5e3),t.writable===null)return;const r=t.writable.getWriter();await r.write(i),r.releaseLock()},R=async function(e,t=5e3){const i=Date.now();for(;;){if(Date.now()-i>t)throw new Error("Timeout waiting for clearToSend signal");const{clearToSend:r}=await e.getSignals();if(r)return;await D(100)}},y=function(e=new Uint8Array([]),t=!1){if(e&&e.length>0){const i=this.__internal__.serial.connected;if(this.__internal__.serial.connected=o(this,n,w).call(this,this.__internal__.serial.port),h.$dispatchChange(this),!i&&this.__internal__.serial.connected&&(this.dispatch("serial:connected"),o(this,n,v).call(this,!1)),this.__internal__.interval.reconnection&&(clearInterval(this.__internal__.interval.reconnection),this.__internal__.interval.reconnection=0),this.__internal__.timeout.until_response&&(clearTimeout(this.__internal__.timeout.until_response),this.__internal__.timeout.until_response=0),this.__internal__.serial.response.as==="hex")t?this.serialCorruptMessage(this.parseUint8ToHex(e)):this.serialMessage(this.parseUint8ToHex(e));else if(this.__internal__.serial.response.as==="uint8")t?this.serialCorruptMessage(e):this.serialMessage(e);else if(this.__internal__.serial.response.as==="string"){const r=this.parseUint8ArrayToString(e);if(this.__internal__.serial.response.limiter!==null){const u=r.split(this.__internal__.serial.response.limiter);for(const d in u)u[d]&&(t?this.serialCorruptMessage(u[d]):this.serialMessage(u[d]))}else t?this.serialCorruptMessage(r):this.serialMessage(r)}else{const r=this.stringToArrayBuffer(this.parseUint8ArrayToString(e));t?this.serialCorruptMessage(r):this.serialMessage(r)}}this.__internal__.serial.queue.length!==0&&this.dispatch("internal:queue",{})},M=async function(){const e=this.serialFilters,t=await navigator.serial.getPorts({filters:e});return e.length===0?t:t.filter(r=>{const u=r.getInfo();return e.some(d=>u.usbProductId===d.usbProductId&&u.usbVendorId===d.usbVendorId)}).filter(r=>!o(this,n,w).call(this,r))},q=function(e){if(e){const t=this.__internal__.serial.response.buffer,i=new Uint8Array(t.length+e.byteLength);i.set(t,0),i.set(new Uint8Array(e),t.length),this.__internal__.serial.response.buffer=i}},O=async function(){this.__internal__.serial.time_until_send_bytes&&(clearTimeout(this.__internal__.serial.time_until_send_bytes),this.__internal__.serial.time_until_send_bytes=0),this.__internal__.serial.time_until_send_bytes=setTimeout(()=>{this.__internal__.serial.response.buffer&&o(this,n,y).call(this,this.__internal__.serial.response.buffer),this.__internal__.serial.response.buffer=new Uint8Array(0)},this.__internal__.serial.free_timeout_ms||50)},N=async function(){const e=this.__internal__.serial.response.length;let t=this.__internal__.serial.response.buffer;if(this.__internal__.serial.time_until_send_bytes&&(clearTimeout(this.__internal__.serial.time_until_send_bytes),this.__internal__.serial.time_until_send_bytes=0),!(e===null||!t||t.length===0)){for(;t.length>=e;){const i=t.slice(0,e);o(this,n,y).call(this,i),t=t.slice(e)}this.__internal__.serial.response.buffer=t,t.length>0&&(this.__internal__.serial.time_until_send_bytes=setTimeout(()=>{o(this,n,y).call(this,this.__internal__.serial.response.buffer,!0)},this.__internal__.serial.free_timeout_ms||50))}},F=async function(){const{limiter:e,prefixLimiter:t=!1,sufixLimiter:i=!0}=this.__internal__.serial.response;if(!e)throw new Error("No limiter defined for delimited serial response");const r=this.__internal__.serial.response.buffer;if(!e||!r||r.length===0)return;this.__internal__.serial.time_until_send_bytes&&(clearTimeout(this.__internal__.serial.time_until_send_bytes),this.__internal__.serial.time_until_send_bytes=0);let d=new TextDecoder().decode(r);const C=[];if(typeof e=="string"){let f;if(t&&i)f=new RegExp(`${e}([^${e}]+)${e}`,"g");else if(t)f=new RegExp(`${e}([^${e}]*)`,"g");else if(i)f=new RegExp(`([^${e}]+)${e}`,"g");else return;let m,p=0;for(;(m=f.exec(d))!==null;)C.push(new TextEncoder().encode(m[1])),p=f.lastIndex;d=d.slice(p)}else if(e instanceof RegExp){let f,m=0;if(t&&i){const p=new RegExp(`${e.source}(.*?)${e.source}`,"g");for(;(f=p.exec(d))!==null;)C.push(new TextEncoder().encode(f[1])),m=p.lastIndex}else if(i)for(;(f=e.exec(d))!==null;){const p=f.index,A=d.slice(m,p);C.push(new TextEncoder().encode(A)),m=e.lastIndex}else if(t){const p=d.split(e);p.shift();for(const A of p)C.push(new TextEncoder().encode(A));d=""}d=d.slice(m)}for(const f of C)o(this,n,y).call(this,f);const B=new TextEncoder().encode(d);this.__internal__.serial.response.buffer=B,B.length>0&&(this.__internal__.serial.time_until_send_bytes=setTimeout(()=>{o(this,n,y).call(this,this.__internal__.serial.response.buffer,!0),this.__internal__.serial.response.buffer=new Uint8Array(0)},this.__internal__.serial.free_timeout_ms??50))},H=async function(){const e=this.__internal__.serial.port;if(!e||!e.readable)throw new Error("Port is not readable");const t=e.readable.getReader();this.__internal__.serial.reader=t;try{for(;this.__internal__.serial.keep_reading;){const{value:i,done:r}=await t.read();if(r)break;o(this,n,q).call(this,i),this.__internal__.serial.response.delimited?await o(this,n,F).call(this):this.__internal__.serial.response.length===null?await o(this,n,O).call(this):await o(this,n,N).call(this)}}catch(i){this.serialErrors(i)}finally{t.releaseLock(),this.__internal__.serial.keep_reading=!0,this.__internal__.serial.port&&await this.__internal__.serial.port.close()}},v=function(e){e!==this.__internal__.serial.connecting&&(this.__internal__.serial.connecting=e,this.dispatch("serial:connecting",{active:e}),this.dispatch("internal:connecting",{active:e}))},j=async function(){return typeof window>"u"?!1:"serial"in navigator&&"forget"in SerialPort.prototype&&this.__internal__.serial.port?(await this.__internal__.serial.port.forget(),!0):!1},W=function(){["serial:connected","serial:connecting","serial:reconnect","serial:timeout","serial:disconnected","serial:sent","serial:soft-reload","serial:message","serial:corrupt-message","unknown","serial:need-permission","serial:lost","serial:unsupported","serial:error","debug"].forEach(t=>{this.serialRegisterAvailableListener(t)})},Q=function(){const e=this;this.on("internal:queue",async()=>{var t;await o(t=e,n,z).call(t)}),o(this,n,V).call(this)},V=function(){const e=this;navigator.serial.addEventListener("connect",async()=>{e.isDisconnected&&await e.serialConnect().catch(()=>{})})},z=async function(){if(!o(this,n,w).call(this,this.__internal__.serial.port)){o(this,n,T).call(this,{error:"Port is closed, not readable or writable."}),await this.serialConnect();return}if(this.__internal__.timeout.until_response||this.__internal__.serial.queue.length===0)return;const e=this.__internal__.serial.queue[0];let t=this.__internal__.time.response_general;if(e.action==="connect"&&(t=this.__internal__.time.response_connection),this.__internal__.timeout.until_response=setTimeout(async()=>{await this.timeout(e.bytes,e.action)},t),this.__internal__.serial.last_action=e.action??"unknown",await o(this,n,P).call(this,e.bytes),this.dispatch("serial:sent",{action:e.action,bytes:e.bytes}),this.__internal__.auto_response){let r=new Uint8Array(0);try{r=this.validateBytes(this.__internal__.serial.auto_response)}catch(u){this.serialErrors(u)}o(this,n,y).call(this,r)}const i=[...this.__internal__.serial.queue];this.__internal__.serial.queue=i.splice(1)},G=function(e=1){this.__internal__.device_number=e,!this.__internal__.bypassSerialBytesConnection&&(this.__internal__.serial.bytes_connection=this.serialSetConnectionConstant(e))},J=function(){this.__internal__.last_error={message:null,action:null,code:null,no_code:0}},l.Core=X,l.Devices=h,l.Dispatcher=c,Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webserial-core",
|
|
3
3
|
"description": "Webserial Core to easy connections with serial devices",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.11",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "danidoble",
|
|
@@ -45,9 +45,9 @@
|
|
|
45
45
|
"format": "prettier --write ./lib/**/*.ts"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@eslint/js": "^9.
|
|
48
|
+
"@eslint/js": "^9.30.0",
|
|
49
49
|
"@types/w3c-web-serial": "^1.0.8",
|
|
50
|
-
"eslint": "^9.
|
|
50
|
+
"eslint": "^9.30.0",
|
|
51
51
|
"globals": "^15.15.0",
|
|
52
52
|
"prettier": "3.4.2",
|
|
53
53
|
"typescript": "~5.7.3",
|