@esp-vision/device-cli 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/DEVICE_CORE_NOTICE.md +13 -0
  2. package/README.md +5 -1
  3. package/THIRD_PARTY_NOTICES.md +25 -5
  4. package/dist/device-cli.mjs +20044 -7795
  5. package/dist/native/LICENSE +21 -0
  6. package/dist/native/bindings.cjs +1860 -0
  7. package/dist/native/koffi/LICENSE.txt +22 -0
  8. package/dist/native/koffi/build/koffi/linux_arm64/koffi.node +0 -0
  9. package/dist/native/koffi/build/koffi/linux_armhf/koffi.node +0 -0
  10. package/dist/native/koffi/build/koffi/linux_ia32/koffi.node +0 -0
  11. package/dist/native/koffi/build/koffi/linux_loong64/koffi.node +0 -0
  12. package/dist/native/koffi/build/koffi/linux_riscv64d/koffi.node +0 -0
  13. package/dist/native/koffi/build/koffi/linux_x64/koffi.node +0 -0
  14. package/dist/native/koffi/build/koffi/musl_arm64/koffi.node +0 -0
  15. package/dist/native/koffi/build/koffi/musl_x64/koffi.node +0 -0
  16. package/dist/native/koffi/index.js +634 -0
  17. package/dist/native/koffi/package.json +38 -0
  18. package/dist/native/koffi/src/cnoke/LICENSE.txt +22 -0
  19. package/dist/native/koffi/vendor/node-addon-api/LICENSE.md +9 -0
  20. package/dist/native/koffi/vendor/node-api-headers/LICENSE +21 -0
  21. package/dist/native/package.json +1 -0
  22. package/dist/native/prebuilds/android-arm/@serialport+bindings-cpp.armv7.node +0 -0
  23. package/dist/native/prebuilds/android-arm64/@serialport+bindings-cpp.armv8.node +0 -0
  24. package/dist/native/prebuilds/darwin-x64+arm64/@serialport+bindings-cpp.node +0 -0
  25. package/dist/native/prebuilds/linux-arm/@serialport+bindings-cpp.armv6.glibc.node +0 -0
  26. package/dist/native/prebuilds/linux-arm/@serialport+bindings-cpp.armv7.glibc.node +0 -0
  27. package/dist/native/prebuilds/linux-arm/@serialport+bindings-cpp.armv7.musl.node +0 -0
  28. package/dist/native/prebuilds/linux-arm64/@serialport+bindings-cpp.armv8.glibc.node +0 -0
  29. package/dist/native/prebuilds/linux-arm64/@serialport+bindings-cpp.armv8.musl.node +0 -0
  30. package/dist/native/prebuilds/linux-x64/@serialport+bindings-cpp.glibc.node +0 -0
  31. package/dist/native/prebuilds/linux-x64/@serialport+bindings-cpp.musl.node +0 -0
  32. package/dist/native/prebuilds/win32-arm64/@serialport+bindings-cpp.armv8.node +0 -0
  33. package/dist/native/prebuilds/win32-ia32/@serialport+bindings-cpp.node +0 -0
  34. package/dist/native/prebuilds/win32-x64/@serialport+bindings-cpp.node +0 -0
  35. package/licenses/atob-lite-LICENSE.md +18 -0
  36. package/licenses/debug-LICENSE +20 -0
  37. package/licenses/esptool-js-LICENSE +202 -0
  38. package/licenses/koffi-LICENSE.txt +22 -0
  39. package/licenses/ms-license.md +21 -0
  40. package/licenses/node-addon-api-LICENSE.md +9 -0
  41. package/licenses/node-gyp-build-LICENSE +21 -0
  42. package/licenses/pako-LICENSE +21 -0
  43. package/licenses/serialport__bindings-cpp-LICENSE +21 -0
  44. package/licenses/serialport__bindings-interface-LICENSE +21 -0
  45. package/licenses/serialport__parser-delimiter-LICENSE +21 -0
  46. package/licenses/serialport__parser-readline-LICENSE +21 -0
  47. package/package.json +5 -5
  48. package/dist/node_rom.py +0 -64
  49. package/dist/node_serial.py +0 -77
@@ -0,0 +1,1860 @@
1
+ "use strict";
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __commonJS = (cb, mod) => function __require() {
4
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
5
+ };
6
+
7
+ // node_modules/ms/index.js
8
+ var require_ms = __commonJS({
9
+ "node_modules/ms/index.js"(exports2, module2) {
10
+ var s = 1e3;
11
+ var m = s * 60;
12
+ var h = m * 60;
13
+ var d = h * 24;
14
+ var w = d * 7;
15
+ var y = d * 365.25;
16
+ module2.exports = function(val, options) {
17
+ options = options || {};
18
+ var type = typeof val;
19
+ if (type === "string" && val.length > 0) {
20
+ return parse(val);
21
+ } else if (type === "number" && isFinite(val)) {
22
+ return options.long ? fmtLong(val) : fmtShort(val);
23
+ }
24
+ throw new Error(
25
+ "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
26
+ );
27
+ };
28
+ function parse(str) {
29
+ str = String(str);
30
+ if (str.length > 100) {
31
+ return;
32
+ }
33
+ var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
34
+ str
35
+ );
36
+ if (!match) {
37
+ return;
38
+ }
39
+ var n = parseFloat(match[1]);
40
+ var type = (match[2] || "ms").toLowerCase();
41
+ switch (type) {
42
+ case "years":
43
+ case "year":
44
+ case "yrs":
45
+ case "yr":
46
+ case "y":
47
+ return n * y;
48
+ case "weeks":
49
+ case "week":
50
+ case "w":
51
+ return n * w;
52
+ case "days":
53
+ case "day":
54
+ case "d":
55
+ return n * d;
56
+ case "hours":
57
+ case "hour":
58
+ case "hrs":
59
+ case "hr":
60
+ case "h":
61
+ return n * h;
62
+ case "minutes":
63
+ case "minute":
64
+ case "mins":
65
+ case "min":
66
+ case "m":
67
+ return n * m;
68
+ case "seconds":
69
+ case "second":
70
+ case "secs":
71
+ case "sec":
72
+ case "s":
73
+ return n * s;
74
+ case "milliseconds":
75
+ case "millisecond":
76
+ case "msecs":
77
+ case "msec":
78
+ case "ms":
79
+ return n;
80
+ default:
81
+ return void 0;
82
+ }
83
+ }
84
+ function fmtShort(ms) {
85
+ var msAbs = Math.abs(ms);
86
+ if (msAbs >= d) {
87
+ return Math.round(ms / d) + "d";
88
+ }
89
+ if (msAbs >= h) {
90
+ return Math.round(ms / h) + "h";
91
+ }
92
+ if (msAbs >= m) {
93
+ return Math.round(ms / m) + "m";
94
+ }
95
+ if (msAbs >= s) {
96
+ return Math.round(ms / s) + "s";
97
+ }
98
+ return ms + "ms";
99
+ }
100
+ function fmtLong(ms) {
101
+ var msAbs = Math.abs(ms);
102
+ if (msAbs >= d) {
103
+ return plural(ms, msAbs, d, "day");
104
+ }
105
+ if (msAbs >= h) {
106
+ return plural(ms, msAbs, h, "hour");
107
+ }
108
+ if (msAbs >= m) {
109
+ return plural(ms, msAbs, m, "minute");
110
+ }
111
+ if (msAbs >= s) {
112
+ return plural(ms, msAbs, s, "second");
113
+ }
114
+ return ms + " ms";
115
+ }
116
+ function plural(ms, msAbs, n, name) {
117
+ var isPlural = msAbs >= n * 1.5;
118
+ return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
119
+ }
120
+ }
121
+ });
122
+
123
+ // node_modules/debug/src/common.js
124
+ var require_common = __commonJS({
125
+ "node_modules/debug/src/common.js"(exports2, module2) {
126
+ function setup(env) {
127
+ createDebug.debug = createDebug;
128
+ createDebug.default = createDebug;
129
+ createDebug.coerce = coerce;
130
+ createDebug.disable = disable;
131
+ createDebug.enable = enable;
132
+ createDebug.enabled = enabled;
133
+ createDebug.humanize = require_ms();
134
+ createDebug.destroy = destroy;
135
+ Object.keys(env).forEach((key) => {
136
+ createDebug[key] = env[key];
137
+ });
138
+ createDebug.names = [];
139
+ createDebug.skips = [];
140
+ createDebug.formatters = {};
141
+ function selectColor(namespace) {
142
+ let hash = 0;
143
+ for (let i = 0; i < namespace.length; i++) {
144
+ hash = (hash << 5) - hash + namespace.charCodeAt(i);
145
+ hash |= 0;
146
+ }
147
+ return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
148
+ }
149
+ createDebug.selectColor = selectColor;
150
+ function createDebug(namespace) {
151
+ let prevTime;
152
+ let enableOverride = null;
153
+ let namespacesCache;
154
+ let enabledCache;
155
+ function debug(...args) {
156
+ if (!debug.enabled) {
157
+ return;
158
+ }
159
+ const self = debug;
160
+ const curr = Number(/* @__PURE__ */ new Date());
161
+ const ms = curr - (prevTime || curr);
162
+ self.diff = ms;
163
+ self.prev = prevTime;
164
+ self.curr = curr;
165
+ prevTime = curr;
166
+ args[0] = createDebug.coerce(args[0]);
167
+ if (typeof args[0] !== "string") {
168
+ args.unshift("%O");
169
+ }
170
+ let index = 0;
171
+ args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
172
+ if (match === "%%") {
173
+ return "%";
174
+ }
175
+ index++;
176
+ const formatter = createDebug.formatters[format];
177
+ if (typeof formatter === "function") {
178
+ const val = args[index];
179
+ match = formatter.call(self, val);
180
+ args.splice(index, 1);
181
+ index--;
182
+ }
183
+ return match;
184
+ });
185
+ createDebug.formatArgs.call(self, args);
186
+ const logFn = self.log || createDebug.log;
187
+ logFn.apply(self, args);
188
+ }
189
+ debug.namespace = namespace;
190
+ debug.useColors = createDebug.useColors();
191
+ debug.color = createDebug.selectColor(namespace);
192
+ debug.extend = extend;
193
+ debug.destroy = createDebug.destroy;
194
+ Object.defineProperty(debug, "enabled", {
195
+ enumerable: true,
196
+ configurable: false,
197
+ get: () => {
198
+ if (enableOverride !== null) {
199
+ return enableOverride;
200
+ }
201
+ if (namespacesCache !== createDebug.namespaces) {
202
+ namespacesCache = createDebug.namespaces;
203
+ enabledCache = createDebug.enabled(namespace);
204
+ }
205
+ return enabledCache;
206
+ },
207
+ set: (v) => {
208
+ enableOverride = v;
209
+ }
210
+ });
211
+ if (typeof createDebug.init === "function") {
212
+ createDebug.init(debug);
213
+ }
214
+ return debug;
215
+ }
216
+ function extend(namespace, delimiter) {
217
+ const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
218
+ newDebug.log = this.log;
219
+ return newDebug;
220
+ }
221
+ function enable(namespaces) {
222
+ createDebug.save(namespaces);
223
+ createDebug.namespaces = namespaces;
224
+ createDebug.names = [];
225
+ createDebug.skips = [];
226
+ const split = (typeof namespaces === "string" ? namespaces : "").trim().replace(" ", ",").split(",").filter(Boolean);
227
+ for (const ns of split) {
228
+ if (ns[0] === "-") {
229
+ createDebug.skips.push(ns.slice(1));
230
+ } else {
231
+ createDebug.names.push(ns);
232
+ }
233
+ }
234
+ }
235
+ function matchesTemplate(search, template) {
236
+ let searchIndex = 0;
237
+ let templateIndex = 0;
238
+ let starIndex = -1;
239
+ let matchIndex = 0;
240
+ while (searchIndex < search.length) {
241
+ if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) {
242
+ if (template[templateIndex] === "*") {
243
+ starIndex = templateIndex;
244
+ matchIndex = searchIndex;
245
+ templateIndex++;
246
+ } else {
247
+ searchIndex++;
248
+ templateIndex++;
249
+ }
250
+ } else if (starIndex !== -1) {
251
+ templateIndex = starIndex + 1;
252
+ matchIndex++;
253
+ searchIndex = matchIndex;
254
+ } else {
255
+ return false;
256
+ }
257
+ }
258
+ while (templateIndex < template.length && template[templateIndex] === "*") {
259
+ templateIndex++;
260
+ }
261
+ return templateIndex === template.length;
262
+ }
263
+ function disable() {
264
+ const namespaces = [
265
+ ...createDebug.names,
266
+ ...createDebug.skips.map((namespace) => "-" + namespace)
267
+ ].join(",");
268
+ createDebug.enable("");
269
+ return namespaces;
270
+ }
271
+ function enabled(name) {
272
+ for (const skip of createDebug.skips) {
273
+ if (matchesTemplate(name, skip)) {
274
+ return false;
275
+ }
276
+ }
277
+ for (const ns of createDebug.names) {
278
+ if (matchesTemplate(name, ns)) {
279
+ return true;
280
+ }
281
+ }
282
+ return false;
283
+ }
284
+ function coerce(val) {
285
+ if (val instanceof Error) {
286
+ return val.stack || val.message;
287
+ }
288
+ return val;
289
+ }
290
+ function destroy() {
291
+ console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
292
+ }
293
+ createDebug.enable(createDebug.load());
294
+ return createDebug;
295
+ }
296
+ module2.exports = setup;
297
+ }
298
+ });
299
+
300
+ // node_modules/debug/src/browser.js
301
+ var require_browser = __commonJS({
302
+ "node_modules/debug/src/browser.js"(exports2, module2) {
303
+ exports2.formatArgs = formatArgs;
304
+ exports2.save = save;
305
+ exports2.load = load;
306
+ exports2.useColors = useColors;
307
+ exports2.storage = localstorage();
308
+ exports2.destroy = /* @__PURE__ */ (() => {
309
+ let warned = false;
310
+ return () => {
311
+ if (!warned) {
312
+ warned = true;
313
+ console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
314
+ }
315
+ };
316
+ })();
317
+ exports2.colors = [
318
+ "#0000CC",
319
+ "#0000FF",
320
+ "#0033CC",
321
+ "#0033FF",
322
+ "#0066CC",
323
+ "#0066FF",
324
+ "#0099CC",
325
+ "#0099FF",
326
+ "#00CC00",
327
+ "#00CC33",
328
+ "#00CC66",
329
+ "#00CC99",
330
+ "#00CCCC",
331
+ "#00CCFF",
332
+ "#3300CC",
333
+ "#3300FF",
334
+ "#3333CC",
335
+ "#3333FF",
336
+ "#3366CC",
337
+ "#3366FF",
338
+ "#3399CC",
339
+ "#3399FF",
340
+ "#33CC00",
341
+ "#33CC33",
342
+ "#33CC66",
343
+ "#33CC99",
344
+ "#33CCCC",
345
+ "#33CCFF",
346
+ "#6600CC",
347
+ "#6600FF",
348
+ "#6633CC",
349
+ "#6633FF",
350
+ "#66CC00",
351
+ "#66CC33",
352
+ "#9900CC",
353
+ "#9900FF",
354
+ "#9933CC",
355
+ "#9933FF",
356
+ "#99CC00",
357
+ "#99CC33",
358
+ "#CC0000",
359
+ "#CC0033",
360
+ "#CC0066",
361
+ "#CC0099",
362
+ "#CC00CC",
363
+ "#CC00FF",
364
+ "#CC3300",
365
+ "#CC3333",
366
+ "#CC3366",
367
+ "#CC3399",
368
+ "#CC33CC",
369
+ "#CC33FF",
370
+ "#CC6600",
371
+ "#CC6633",
372
+ "#CC9900",
373
+ "#CC9933",
374
+ "#CCCC00",
375
+ "#CCCC33",
376
+ "#FF0000",
377
+ "#FF0033",
378
+ "#FF0066",
379
+ "#FF0099",
380
+ "#FF00CC",
381
+ "#FF00FF",
382
+ "#FF3300",
383
+ "#FF3333",
384
+ "#FF3366",
385
+ "#FF3399",
386
+ "#FF33CC",
387
+ "#FF33FF",
388
+ "#FF6600",
389
+ "#FF6633",
390
+ "#FF9900",
391
+ "#FF9933",
392
+ "#FFCC00",
393
+ "#FFCC33"
394
+ ];
395
+ function useColors() {
396
+ if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
397
+ return true;
398
+ }
399
+ if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
400
+ return false;
401
+ }
402
+ let m;
403
+ return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
404
+ typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
405
+ // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
406
+ typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
407
+ typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
408
+ }
409
+ function formatArgs(args) {
410
+ args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff);
411
+ if (!this.useColors) {
412
+ return;
413
+ }
414
+ const c = "color: " + this.color;
415
+ args.splice(1, 0, c, "color: inherit");
416
+ let index = 0;
417
+ let lastC = 0;
418
+ args[0].replace(/%[a-zA-Z%]/g, (match) => {
419
+ if (match === "%%") {
420
+ return;
421
+ }
422
+ index++;
423
+ if (match === "%c") {
424
+ lastC = index;
425
+ }
426
+ });
427
+ args.splice(lastC, 0, c);
428
+ }
429
+ exports2.log = console.debug || console.log || (() => {
430
+ });
431
+ function save(namespaces) {
432
+ try {
433
+ if (namespaces) {
434
+ exports2.storage.setItem("debug", namespaces);
435
+ } else {
436
+ exports2.storage.removeItem("debug");
437
+ }
438
+ } catch (error) {
439
+ }
440
+ }
441
+ function load() {
442
+ let r;
443
+ try {
444
+ r = exports2.storage.getItem("debug");
445
+ } catch (error) {
446
+ }
447
+ if (!r && typeof process !== "undefined" && "env" in process) {
448
+ r = process.env.DEBUG;
449
+ }
450
+ return r;
451
+ }
452
+ function localstorage() {
453
+ try {
454
+ return localStorage;
455
+ } catch (error) {
456
+ }
457
+ }
458
+ module2.exports = require_common()(exports2);
459
+ var { formatters } = module2.exports;
460
+ formatters.j = function(v) {
461
+ try {
462
+ return JSON.stringify(v);
463
+ } catch (error) {
464
+ return "[UnexpectedJSONParseError]: " + error.message;
465
+ }
466
+ };
467
+ }
468
+ });
469
+
470
+ // node_modules/debug/src/node.js
471
+ var require_node = __commonJS({
472
+ "node_modules/debug/src/node.js"(exports2, module2) {
473
+ var tty = require("tty");
474
+ var util = require("util");
475
+ exports2.init = init;
476
+ exports2.log = log;
477
+ exports2.formatArgs = formatArgs;
478
+ exports2.save = save;
479
+ exports2.load = load;
480
+ exports2.useColors = useColors;
481
+ exports2.destroy = util.deprecate(
482
+ () => {
483
+ },
484
+ "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."
485
+ );
486
+ exports2.colors = [6, 2, 3, 4, 5, 1];
487
+ try {
488
+ const supportsColor = require("supports-color");
489
+ if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
490
+ exports2.colors = [
491
+ 20,
492
+ 21,
493
+ 26,
494
+ 27,
495
+ 32,
496
+ 33,
497
+ 38,
498
+ 39,
499
+ 40,
500
+ 41,
501
+ 42,
502
+ 43,
503
+ 44,
504
+ 45,
505
+ 56,
506
+ 57,
507
+ 62,
508
+ 63,
509
+ 68,
510
+ 69,
511
+ 74,
512
+ 75,
513
+ 76,
514
+ 77,
515
+ 78,
516
+ 79,
517
+ 80,
518
+ 81,
519
+ 92,
520
+ 93,
521
+ 98,
522
+ 99,
523
+ 112,
524
+ 113,
525
+ 128,
526
+ 129,
527
+ 134,
528
+ 135,
529
+ 148,
530
+ 149,
531
+ 160,
532
+ 161,
533
+ 162,
534
+ 163,
535
+ 164,
536
+ 165,
537
+ 166,
538
+ 167,
539
+ 168,
540
+ 169,
541
+ 170,
542
+ 171,
543
+ 172,
544
+ 173,
545
+ 178,
546
+ 179,
547
+ 184,
548
+ 185,
549
+ 196,
550
+ 197,
551
+ 198,
552
+ 199,
553
+ 200,
554
+ 201,
555
+ 202,
556
+ 203,
557
+ 204,
558
+ 205,
559
+ 206,
560
+ 207,
561
+ 208,
562
+ 209,
563
+ 214,
564
+ 215,
565
+ 220,
566
+ 221
567
+ ];
568
+ }
569
+ } catch (error) {
570
+ }
571
+ exports2.inspectOpts = Object.keys(process.env).filter((key) => {
572
+ return /^debug_/i.test(key);
573
+ }).reduce((obj, key) => {
574
+ const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => {
575
+ return k.toUpperCase();
576
+ });
577
+ let val = process.env[key];
578
+ if (/^(yes|on|true|enabled)$/i.test(val)) {
579
+ val = true;
580
+ } else if (/^(no|off|false|disabled)$/i.test(val)) {
581
+ val = false;
582
+ } else if (val === "null") {
583
+ val = null;
584
+ } else {
585
+ val = Number(val);
586
+ }
587
+ obj[prop] = val;
588
+ return obj;
589
+ }, {});
590
+ function useColors() {
591
+ return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(process.stderr.fd);
592
+ }
593
+ function formatArgs(args) {
594
+ const { namespace: name, useColors: useColors2 } = this;
595
+ if (useColors2) {
596
+ const c = this.color;
597
+ const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c);
598
+ const prefix = ` ${colorCode};1m${name} \x1B[0m`;
599
+ args[0] = prefix + args[0].split("\n").join("\n" + prefix);
600
+ args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + "\x1B[0m");
601
+ } else {
602
+ args[0] = getDate() + name + " " + args[0];
603
+ }
604
+ }
605
+ function getDate() {
606
+ if (exports2.inspectOpts.hideDate) {
607
+ return "";
608
+ }
609
+ return (/* @__PURE__ */ new Date()).toISOString() + " ";
610
+ }
611
+ function log(...args) {
612
+ return process.stderr.write(util.formatWithOptions(exports2.inspectOpts, ...args) + "\n");
613
+ }
614
+ function save(namespaces) {
615
+ if (namespaces) {
616
+ process.env.DEBUG = namespaces;
617
+ } else {
618
+ delete process.env.DEBUG;
619
+ }
620
+ }
621
+ function load() {
622
+ return process.env.DEBUG;
623
+ }
624
+ function init(debug) {
625
+ debug.inspectOpts = {};
626
+ const keys = Object.keys(exports2.inspectOpts);
627
+ for (let i = 0; i < keys.length; i++) {
628
+ debug.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]];
629
+ }
630
+ }
631
+ module2.exports = require_common()(exports2);
632
+ var { formatters } = module2.exports;
633
+ formatters.o = function(v) {
634
+ this.inspectOpts.colors = this.useColors;
635
+ return util.inspect(v, this.inspectOpts).split("\n").map((str) => str.trim()).join(" ");
636
+ };
637
+ formatters.O = function(v) {
638
+ this.inspectOpts.colors = this.useColors;
639
+ return util.inspect(v, this.inspectOpts);
640
+ };
641
+ }
642
+ });
643
+
644
+ // node_modules/debug/src/index.js
645
+ var require_src = __commonJS({
646
+ "node_modules/debug/src/index.js"(exports2, module2) {
647
+ if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) {
648
+ module2.exports = require_browser();
649
+ } else {
650
+ module2.exports = require_node();
651
+ }
652
+ }
653
+ });
654
+
655
+ // node_modules/node-gyp-build/node-gyp-build.js
656
+ var require_node_gyp_build = __commonJS({
657
+ "node_modules/node-gyp-build/node-gyp-build.js"(exports2, module2) {
658
+ var fs = require("fs");
659
+ var path = require("path");
660
+ var os = require("os");
661
+ var runtimeRequire = typeof __webpack_require__ === "function" ? __non_webpack_require__ : require;
662
+ var vars = process.config && process.config.variables || {};
663
+ var prebuildsOnly = !!process.env.PREBUILDS_ONLY;
664
+ var abi = process.versions.modules;
665
+ var runtime = isElectron() ? "electron" : isNwjs() ? "node-webkit" : "node";
666
+ var arch = process.env.npm_config_arch || os.arch();
667
+ var platform = process.env.npm_config_platform || os.platform();
668
+ var libc = process.env.LIBC || (isAlpine(platform) ? "musl" : "glibc");
669
+ var armv = process.env.ARM_VERSION || (arch === "arm64" ? "8" : vars.arm_version) || "";
670
+ var uv = (process.versions.uv || "").split(".")[0];
671
+ module2.exports = load;
672
+ function load(dir) {
673
+ return runtimeRequire(load.resolve(dir));
674
+ }
675
+ load.resolve = load.path = function(dir) {
676
+ dir = path.resolve(dir || ".");
677
+ try {
678
+ var name = runtimeRequire(path.join(dir, "package.json")).name.toUpperCase().replace(/-/g, "_");
679
+ if (process.env[name + "_PREBUILD"]) dir = process.env[name + "_PREBUILD"];
680
+ } catch (err) {
681
+ }
682
+ if (!prebuildsOnly) {
683
+ var release = getFirst(path.join(dir, "build/Release"), matchBuild);
684
+ if (release) return release;
685
+ var debug = getFirst(path.join(dir, "build/Debug"), matchBuild);
686
+ if (debug) return debug;
687
+ }
688
+ var prebuild = resolve(dir);
689
+ if (prebuild) return prebuild;
690
+ var nearby = resolve(path.dirname(process.execPath));
691
+ if (nearby) return nearby;
692
+ var target = [
693
+ "platform=" + platform,
694
+ "arch=" + arch,
695
+ "runtime=" + runtime,
696
+ "abi=" + abi,
697
+ "uv=" + uv,
698
+ armv ? "armv=" + armv : "",
699
+ "libc=" + libc,
700
+ "node=" + process.versions.node,
701
+ process.versions.electron ? "electron=" + process.versions.electron : "",
702
+ typeof __webpack_require__ === "function" ? "webpack=true" : ""
703
+ // eslint-disable-line
704
+ ].filter(Boolean).join(" ");
705
+ throw new Error("No native build was found for " + target + "\n loaded from: " + dir + "\n");
706
+ function resolve(dir2) {
707
+ var tuples = readdirSync(path.join(dir2, "prebuilds")).map(parseTuple);
708
+ var tuple = tuples.filter(matchTuple(platform, arch)).sort(compareTuples)[0];
709
+ if (!tuple) return;
710
+ var prebuilds = path.join(dir2, "prebuilds", tuple.name);
711
+ var parsed = readdirSync(prebuilds).map(parseTags);
712
+ var candidates = parsed.filter(matchTags(runtime, abi));
713
+ var winner = candidates.sort(compareTags(runtime))[0];
714
+ if (winner) return path.join(prebuilds, winner.file);
715
+ }
716
+ };
717
+ function readdirSync(dir) {
718
+ try {
719
+ return fs.readdirSync(dir);
720
+ } catch (err) {
721
+ return [];
722
+ }
723
+ }
724
+ function getFirst(dir, filter) {
725
+ var files = readdirSync(dir).filter(filter);
726
+ return files[0] && path.join(dir, files[0]);
727
+ }
728
+ function matchBuild(name) {
729
+ return /\.node$/.test(name);
730
+ }
731
+ function parseTuple(name) {
732
+ var arr = name.split("-");
733
+ if (arr.length !== 2) return;
734
+ var platform2 = arr[0];
735
+ var architectures = arr[1].split("+");
736
+ if (!platform2) return;
737
+ if (!architectures.length) return;
738
+ if (!architectures.every(Boolean)) return;
739
+ return { name, platform: platform2, architectures };
740
+ }
741
+ function matchTuple(platform2, arch2) {
742
+ return function(tuple) {
743
+ if (tuple == null) return false;
744
+ if (tuple.platform !== platform2) return false;
745
+ return tuple.architectures.includes(arch2);
746
+ };
747
+ }
748
+ function compareTuples(a, b) {
749
+ return a.architectures.length - b.architectures.length;
750
+ }
751
+ function parseTags(file) {
752
+ var arr = file.split(".");
753
+ var extension = arr.pop();
754
+ var tags = { file, specificity: 0 };
755
+ if (extension !== "node") return;
756
+ for (var i = 0; i < arr.length; i++) {
757
+ var tag = arr[i];
758
+ if (tag === "node" || tag === "electron" || tag === "node-webkit") {
759
+ tags.runtime = tag;
760
+ } else if (tag === "napi") {
761
+ tags.napi = true;
762
+ } else if (tag.slice(0, 3) === "abi") {
763
+ tags.abi = tag.slice(3);
764
+ } else if (tag.slice(0, 2) === "uv") {
765
+ tags.uv = tag.slice(2);
766
+ } else if (tag.slice(0, 4) === "armv") {
767
+ tags.armv = tag.slice(4);
768
+ } else if (tag === "glibc" || tag === "musl") {
769
+ tags.libc = tag;
770
+ } else {
771
+ continue;
772
+ }
773
+ tags.specificity++;
774
+ }
775
+ return tags;
776
+ }
777
+ function matchTags(runtime2, abi2) {
778
+ return function(tags) {
779
+ if (tags == null) return false;
780
+ if (tags.runtime && tags.runtime !== runtime2 && !runtimeAgnostic(tags)) return false;
781
+ if (tags.abi && tags.abi !== abi2 && !tags.napi) return false;
782
+ if (tags.uv && tags.uv !== uv) return false;
783
+ if (tags.armv && tags.armv !== armv) return false;
784
+ if (tags.libc && tags.libc !== libc) return false;
785
+ return true;
786
+ };
787
+ }
788
+ function runtimeAgnostic(tags) {
789
+ return tags.runtime === "node" && tags.napi;
790
+ }
791
+ function compareTags(runtime2) {
792
+ return function(a, b) {
793
+ if (a.runtime !== b.runtime) {
794
+ return a.runtime === runtime2 ? -1 : 1;
795
+ } else if (a.abi !== b.abi) {
796
+ return a.abi ? -1 : 1;
797
+ } else if (a.specificity !== b.specificity) {
798
+ return a.specificity > b.specificity ? -1 : 1;
799
+ } else {
800
+ return 0;
801
+ }
802
+ };
803
+ }
804
+ function isNwjs() {
805
+ return !!(process.versions && process.versions.nw);
806
+ }
807
+ function isElectron() {
808
+ if (process.versions && process.versions.electron) return true;
809
+ if (process.env.ELECTRON_RUN_AS_NODE) return true;
810
+ return typeof window !== "undefined" && window.process && window.process.type === "renderer";
811
+ }
812
+ function isAlpine(platform2) {
813
+ return platform2 === "linux" && fs.existsSync("/etc/alpine-release");
814
+ }
815
+ load.parseTags = parseTags;
816
+ load.matchTags = matchTags;
817
+ load.compareTags = compareTags;
818
+ load.parseTuple = parseTuple;
819
+ load.matchTuple = matchTuple;
820
+ load.compareTuples = compareTuples;
821
+ }
822
+ });
823
+
824
+ // native-loader:loader
825
+ var require_loader = __commonJS({
826
+ "native-loader:loader"(exports2, module2) {
827
+ var load = require_node_gyp_build();
828
+ module2.exports = () => load(__dirname);
829
+ }
830
+ });
831
+
832
+ // node_modules/@serialport/bindings-cpp/dist/serialport-bindings.js
833
+ var require_serialport_bindings = __commonJS({
834
+ "node_modules/@serialport/bindings-cpp/dist/serialport-bindings.js"(exports2) {
835
+ "use strict";
836
+ var __importDefault = exports2 && exports2.__importDefault || function(mod) {
837
+ return mod && mod.__esModule ? mod : { "default": mod };
838
+ };
839
+ Object.defineProperty(exports2, "__esModule", { value: true });
840
+ exports2.binding = void 0;
841
+ var path_1 = require("path");
842
+ var node_gyp_build_1 = __importDefault(require_loader());
843
+ exports2.binding = (0, node_gyp_build_1.default)((0, path_1.join)(__dirname, "../"));
844
+ }
845
+ });
846
+
847
+ // node_modules/@serialport/bindings-cpp/dist/load-bindings.js
848
+ var require_load_bindings = __commonJS({
849
+ "node_modules/@serialport/bindings-cpp/dist/load-bindings.js"(exports2) {
850
+ "use strict";
851
+ Object.defineProperty(exports2, "__esModule", { value: true });
852
+ exports2.asyncWrite = exports2.asyncRead = exports2.asyncUpdate = exports2.asyncSet = exports2.asyncOpen = exports2.asyncList = exports2.asyncGetBaudRate = exports2.asyncGet = exports2.asyncFlush = exports2.asyncDrain = exports2.asyncClose = void 0;
853
+ var util_1 = require("util");
854
+ var serialport_bindings_1 = require_serialport_bindings();
855
+ exports2.asyncClose = serialport_bindings_1.binding.close ? (0, util_1.promisify)(serialport_bindings_1.binding.close) : async () => {
856
+ throw new Error('"binding.close" Method not implemented');
857
+ };
858
+ exports2.asyncDrain = serialport_bindings_1.binding.drain ? (0, util_1.promisify)(serialport_bindings_1.binding.drain) : async () => {
859
+ throw new Error('"binding.drain" Method not implemented');
860
+ };
861
+ exports2.asyncFlush = serialport_bindings_1.binding.flush ? (0, util_1.promisify)(serialport_bindings_1.binding.flush) : async () => {
862
+ throw new Error('"binding.flush" Method not implemented');
863
+ };
864
+ exports2.asyncGet = serialport_bindings_1.binding.get ? (0, util_1.promisify)(serialport_bindings_1.binding.get) : async () => {
865
+ throw new Error('"binding.get" Method not implemented');
866
+ };
867
+ exports2.asyncGetBaudRate = serialport_bindings_1.binding.getBaudRate ? (0, util_1.promisify)(serialport_bindings_1.binding.getBaudRate) : async () => {
868
+ throw new Error('"binding.getBaudRate" Method not implemented');
869
+ };
870
+ exports2.asyncList = serialport_bindings_1.binding.list ? (0, util_1.promisify)(serialport_bindings_1.binding.list) : async () => {
871
+ throw new Error('"binding.list" Method not implemented');
872
+ };
873
+ exports2.asyncOpen = serialport_bindings_1.binding.open ? (0, util_1.promisify)(serialport_bindings_1.binding.open) : async () => {
874
+ throw new Error('"binding.open" Method not implemented');
875
+ };
876
+ exports2.asyncSet = serialport_bindings_1.binding.set ? (0, util_1.promisify)(serialport_bindings_1.binding.set) : async () => {
877
+ throw new Error('"binding.set" Method not implemented');
878
+ };
879
+ exports2.asyncUpdate = serialport_bindings_1.binding.update ? (0, util_1.promisify)(serialport_bindings_1.binding.update) : async () => {
880
+ throw new Error('"binding.update" Method not implemented');
881
+ };
882
+ exports2.asyncRead = serialport_bindings_1.binding.read ? (0, util_1.promisify)(serialport_bindings_1.binding.read) : async () => {
883
+ throw new Error('"binding.read" Method not implemented');
884
+ };
885
+ exports2.asyncWrite = serialport_bindings_1.binding.write ? (0, util_1.promisify)(serialport_bindings_1.binding.write) : async () => {
886
+ throw new Error('"binding.write" Method not implemented');
887
+ };
888
+ }
889
+ });
890
+
891
+ // node_modules/@serialport/bindings-cpp/dist/errors.js
892
+ var require_errors = __commonJS({
893
+ "node_modules/@serialport/bindings-cpp/dist/errors.js"(exports2) {
894
+ "use strict";
895
+ Object.defineProperty(exports2, "__esModule", { value: true });
896
+ exports2.BindingsError = void 0;
897
+ var BindingsError = class extends Error {
898
+ constructor(message, { canceled = false } = {}) {
899
+ super(message);
900
+ this.canceled = canceled;
901
+ }
902
+ };
903
+ exports2.BindingsError = BindingsError;
904
+ }
905
+ });
906
+
907
+ // node_modules/@serialport/bindings-cpp/dist/poller.js
908
+ var require_poller = __commonJS({
909
+ "node_modules/@serialport/bindings-cpp/dist/poller.js"(exports2) {
910
+ "use strict";
911
+ var __importDefault = exports2 && exports2.__importDefault || function(mod) {
912
+ return mod && mod.__esModule ? mod : { "default": mod };
913
+ };
914
+ Object.defineProperty(exports2, "__esModule", { value: true });
915
+ exports2.Poller = exports2.EVENTS = void 0;
916
+ var debug_1 = __importDefault(require_src());
917
+ var events_1 = require("events");
918
+ var errors_1 = require_errors();
919
+ var serialport_bindings_1 = require_serialport_bindings();
920
+ var { Poller: PollerBindings } = serialport_bindings_1.binding;
921
+ var logger = (0, debug_1.default)("serialport/bindings-cpp/poller");
922
+ exports2.EVENTS = {
923
+ UV_READABLE: 1,
924
+ UV_WRITABLE: 2,
925
+ UV_DISCONNECT: 4
926
+ };
927
+ function handleEvent(error, eventFlag) {
928
+ if (error) {
929
+ logger("error", error);
930
+ this.emit("readable", error);
931
+ this.emit("writable", error);
932
+ this.emit("disconnect", error);
933
+ return;
934
+ }
935
+ if (eventFlag & exports2.EVENTS.UV_READABLE) {
936
+ logger('received "readable"');
937
+ this.emit("readable", null);
938
+ }
939
+ if (eventFlag & exports2.EVENTS.UV_WRITABLE) {
940
+ logger('received "writable"');
941
+ this.emit("writable", null);
942
+ }
943
+ if (eventFlag & exports2.EVENTS.UV_DISCONNECT) {
944
+ logger('received "disconnect"');
945
+ this.emit("disconnect", null);
946
+ }
947
+ }
948
+ var Poller = class extends events_1.EventEmitter {
949
+ constructor(fd, FDPoller = PollerBindings) {
950
+ logger("Creating poller");
951
+ super();
952
+ this.poller = new FDPoller(fd, handleEvent.bind(this));
953
+ }
954
+ /**
955
+ * Wait for the next event to occur
956
+ * @param {string} event ('readable'|'writable'|'disconnect')
957
+ * @returns {Poller} returns itself
958
+ */
959
+ once(event, callback) {
960
+ switch (event) {
961
+ case "readable":
962
+ this.poll(exports2.EVENTS.UV_READABLE);
963
+ break;
964
+ case "writable":
965
+ this.poll(exports2.EVENTS.UV_WRITABLE);
966
+ break;
967
+ case "disconnect":
968
+ this.poll(exports2.EVENTS.UV_DISCONNECT);
969
+ break;
970
+ }
971
+ return super.once(event, callback);
972
+ }
973
+ /**
974
+ * Ask the bindings to listen for an event, it is recommend to use `.once()` for easy use
975
+ * @param {EVENTS} eventFlag polls for an event or group of events based upon a flag.
976
+ */
977
+ poll(eventFlag = 0) {
978
+ if (eventFlag & exports2.EVENTS.UV_READABLE) {
979
+ logger('Polling for "readable"');
980
+ }
981
+ if (eventFlag & exports2.EVENTS.UV_WRITABLE) {
982
+ logger('Polling for "writable"');
983
+ }
984
+ if (eventFlag & exports2.EVENTS.UV_DISCONNECT) {
985
+ logger('Polling for "disconnect"');
986
+ }
987
+ this.poller.poll(eventFlag);
988
+ }
989
+ /**
990
+ * Stop listening for events and cancel all outstanding listening with an error
991
+ */
992
+ stop() {
993
+ logger("Stopping poller");
994
+ this.poller.stop();
995
+ this.emitCanceled();
996
+ }
997
+ destroy() {
998
+ logger("Destroying poller");
999
+ this.poller.destroy();
1000
+ this.emitCanceled();
1001
+ }
1002
+ emitCanceled() {
1003
+ const err = new errors_1.BindingsError("Canceled", { canceled: true });
1004
+ this.emit("readable", err);
1005
+ this.emit("writable", err);
1006
+ this.emit("disconnect", err);
1007
+ }
1008
+ };
1009
+ exports2.Poller = Poller;
1010
+ }
1011
+ });
1012
+
1013
+ // node_modules/@serialport/bindings-cpp/dist/unix-read.js
1014
+ var require_unix_read = __commonJS({
1015
+ "node_modules/@serialport/bindings-cpp/dist/unix-read.js"(exports2) {
1016
+ "use strict";
1017
+ var __importDefault = exports2 && exports2.__importDefault || function(mod) {
1018
+ return mod && mod.__esModule ? mod : { "default": mod };
1019
+ };
1020
+ Object.defineProperty(exports2, "__esModule", { value: true });
1021
+ exports2.unixRead = void 0;
1022
+ var util_1 = require("util");
1023
+ var fs_1 = require("fs");
1024
+ var errors_1 = require_errors();
1025
+ var debug_1 = __importDefault(require_src());
1026
+ var logger = (0, debug_1.default)("serialport/bindings-cpp/unixRead");
1027
+ var readAsync = (0, util_1.promisify)(fs_1.read);
1028
+ var readable = (binding) => {
1029
+ return new Promise((resolve, reject) => {
1030
+ if (!binding.poller) {
1031
+ throw new Error("No poller on bindings");
1032
+ }
1033
+ binding.poller.once("readable", (err) => err ? reject(err) : resolve());
1034
+ });
1035
+ };
1036
+ var unixRead = async ({ binding, buffer, offset, length, fsReadAsync = readAsync }) => {
1037
+ logger("Starting read");
1038
+ if (!binding.isOpen || !binding.fd) {
1039
+ throw new errors_1.BindingsError("Port is not open", { canceled: true });
1040
+ }
1041
+ try {
1042
+ const { bytesRead } = await fsReadAsync(binding.fd, buffer, offset, length, null);
1043
+ if (bytesRead === 0) {
1044
+ return (0, exports2.unixRead)({ binding, buffer, offset, length, fsReadAsync });
1045
+ }
1046
+ logger("Finished read", bytesRead, "bytes");
1047
+ return { bytesRead, buffer };
1048
+ } catch (err) {
1049
+ logger("read error", err);
1050
+ if (err.code === "EAGAIN" || err.code === "EWOULDBLOCK" || err.code === "EINTR") {
1051
+ if (!binding.isOpen) {
1052
+ throw new errors_1.BindingsError("Port is not open", { canceled: true });
1053
+ }
1054
+ logger("waiting for readable because of code:", err.code);
1055
+ await readable(binding);
1056
+ return (0, exports2.unixRead)({ binding, buffer, offset, length, fsReadAsync });
1057
+ }
1058
+ const disconnectError = err.code === "EBADF" || // Bad file number means we got closed
1059
+ err.code === "ENXIO" || // No such device or address probably usb disconnect
1060
+ err.code === "UNKNOWN" || err.errno === -1;
1061
+ if (disconnectError) {
1062
+ err.disconnect = true;
1063
+ logger("disconnecting", err);
1064
+ }
1065
+ throw err;
1066
+ }
1067
+ };
1068
+ exports2.unixRead = unixRead;
1069
+ }
1070
+ });
1071
+
1072
+ // node_modules/@serialport/bindings-cpp/dist/unix-write.js
1073
+ var require_unix_write = __commonJS({
1074
+ "node_modules/@serialport/bindings-cpp/dist/unix-write.js"(exports2) {
1075
+ "use strict";
1076
+ var __importDefault = exports2 && exports2.__importDefault || function(mod) {
1077
+ return mod && mod.__esModule ? mod : { "default": mod };
1078
+ };
1079
+ Object.defineProperty(exports2, "__esModule", { value: true });
1080
+ exports2.unixWrite = void 0;
1081
+ var fs_1 = require("fs");
1082
+ var debug_1 = __importDefault(require_src());
1083
+ var util_1 = require("util");
1084
+ var logger = (0, debug_1.default)("serialport/bindings-cpp/unixWrite");
1085
+ var writeAsync = (0, util_1.promisify)(fs_1.write);
1086
+ var writable = (binding) => {
1087
+ return new Promise((resolve, reject) => {
1088
+ binding.poller.once("writable", (err) => err ? reject(err) : resolve());
1089
+ });
1090
+ };
1091
+ var unixWrite = async ({ binding, buffer, offset = 0, fsWriteAsync = writeAsync }) => {
1092
+ const bytesToWrite = buffer.length - offset;
1093
+ logger("Starting write", buffer.length, "bytes offset", offset, "bytesToWrite", bytesToWrite);
1094
+ if (!binding.isOpen || !binding.fd) {
1095
+ throw new Error("Port is not open");
1096
+ }
1097
+ try {
1098
+ const { bytesWritten } = await fsWriteAsync(binding.fd, buffer, offset, bytesToWrite);
1099
+ logger("write returned: wrote", bytesWritten, "bytes");
1100
+ if (bytesWritten + offset < buffer.length) {
1101
+ if (!binding.isOpen) {
1102
+ throw new Error("Port is not open");
1103
+ }
1104
+ return (0, exports2.unixWrite)({ binding, buffer, offset: bytesWritten + offset, fsWriteAsync });
1105
+ }
1106
+ logger("Finished writing", bytesWritten + offset, "bytes");
1107
+ } catch (err) {
1108
+ logger("write errored", err);
1109
+ if (err.code === "EAGAIN" || err.code === "EWOULDBLOCK" || err.code === "EINTR") {
1110
+ if (!binding.isOpen) {
1111
+ throw new Error("Port is not open");
1112
+ }
1113
+ logger("waiting for writable because of code:", err.code);
1114
+ await writable(binding);
1115
+ return (0, exports2.unixWrite)({ binding, buffer, offset, fsWriteAsync });
1116
+ }
1117
+ const disconnectError = err.code === "EBADF" || // Bad file number means we got closed
1118
+ err.code === "ENXIO" || // No such device or address probably usb disconnect
1119
+ err.code === "UNKNOWN" || err.errno === -1;
1120
+ if (disconnectError) {
1121
+ err.disconnect = true;
1122
+ logger("disconnecting", err);
1123
+ }
1124
+ logger("error", err);
1125
+ throw err;
1126
+ }
1127
+ };
1128
+ exports2.unixWrite = unixWrite;
1129
+ }
1130
+ });
1131
+
1132
+ // node_modules/@serialport/bindings-cpp/dist/darwin.js
1133
+ var require_darwin = __commonJS({
1134
+ "node_modules/@serialport/bindings-cpp/dist/darwin.js"(exports2) {
1135
+ "use strict";
1136
+ var __importDefault = exports2 && exports2.__importDefault || function(mod) {
1137
+ return mod && mod.__esModule ? mod : { "default": mod };
1138
+ };
1139
+ Object.defineProperty(exports2, "__esModule", { value: true });
1140
+ exports2.DarwinPortBinding = exports2.DarwinBinding = void 0;
1141
+ var debug_1 = __importDefault(require_src());
1142
+ var load_bindings_1 = require_load_bindings();
1143
+ var poller_1 = require_poller();
1144
+ var unix_read_1 = require_unix_read();
1145
+ var unix_write_1 = require_unix_write();
1146
+ var debug = (0, debug_1.default)("serialport/bindings-cpp");
1147
+ exports2.DarwinBinding = {
1148
+ list() {
1149
+ debug("list");
1150
+ return (0, load_bindings_1.asyncList)();
1151
+ },
1152
+ async open(options) {
1153
+ if (!options || typeof options !== "object" || Array.isArray(options)) {
1154
+ throw new TypeError('"options" is not an object');
1155
+ }
1156
+ if (!options.path) {
1157
+ throw new TypeError('"path" is not a valid port');
1158
+ }
1159
+ if (!options.baudRate) {
1160
+ throw new TypeError('"baudRate" is not a valid baudRate');
1161
+ }
1162
+ debug("open");
1163
+ const openOptions = Object.assign({ vmin: 1, vtime: 0, dataBits: 8, lock: true, stopBits: 1, parity: "none", rtscts: false, xon: false, xoff: false, xany: false, hupcl: true }, options);
1164
+ const fd = await (0, load_bindings_1.asyncOpen)(openOptions.path, openOptions);
1165
+ return new DarwinPortBinding(fd, openOptions);
1166
+ }
1167
+ };
1168
+ var DarwinPortBinding = class {
1169
+ constructor(fd, options) {
1170
+ this.fd = fd;
1171
+ this.openOptions = options;
1172
+ this.poller = new poller_1.Poller(fd);
1173
+ this.writeOperation = null;
1174
+ }
1175
+ get isOpen() {
1176
+ return this.fd !== null;
1177
+ }
1178
+ async close() {
1179
+ debug("close");
1180
+ if (!this.isOpen) {
1181
+ throw new Error("Port is not open");
1182
+ }
1183
+ const fd = this.fd;
1184
+ this.poller.stop();
1185
+ this.poller.destroy();
1186
+ this.fd = null;
1187
+ await (0, load_bindings_1.asyncClose)(fd);
1188
+ }
1189
+ async read(buffer, offset, length) {
1190
+ if (!Buffer.isBuffer(buffer)) {
1191
+ throw new TypeError('"buffer" is not a Buffer');
1192
+ }
1193
+ if (typeof offset !== "number" || isNaN(offset)) {
1194
+ throw new TypeError(`"offset" is not an integer got "${isNaN(offset) ? "NaN" : typeof offset}"`);
1195
+ }
1196
+ if (typeof length !== "number" || isNaN(length)) {
1197
+ throw new TypeError(`"length" is not an integer got "${isNaN(length) ? "NaN" : typeof length}"`);
1198
+ }
1199
+ debug("read");
1200
+ if (buffer.length < offset + length) {
1201
+ throw new Error("buffer is too small");
1202
+ }
1203
+ if (!this.isOpen) {
1204
+ throw new Error("Port is not open");
1205
+ }
1206
+ return (0, unix_read_1.unixRead)({ binding: this, buffer, offset, length });
1207
+ }
1208
+ async write(buffer) {
1209
+ if (!Buffer.isBuffer(buffer)) {
1210
+ throw new TypeError('"buffer" is not a Buffer');
1211
+ }
1212
+ debug("write", buffer.length, "bytes");
1213
+ if (!this.isOpen) {
1214
+ debug("write", "error port is not open");
1215
+ throw new Error("Port is not open");
1216
+ }
1217
+ this.writeOperation = (async () => {
1218
+ if (buffer.length === 0) {
1219
+ return;
1220
+ }
1221
+ await (0, unix_write_1.unixWrite)({ binding: this, buffer });
1222
+ this.writeOperation = null;
1223
+ })();
1224
+ return this.writeOperation;
1225
+ }
1226
+ async update(options) {
1227
+ if (!options || typeof options !== "object" || Array.isArray(options)) {
1228
+ throw TypeError('"options" is not an object');
1229
+ }
1230
+ if (typeof options.baudRate !== "number") {
1231
+ throw new TypeError('"options.baudRate" is not a number');
1232
+ }
1233
+ debug("update");
1234
+ if (!this.isOpen) {
1235
+ throw new Error("Port is not open");
1236
+ }
1237
+ await (0, load_bindings_1.asyncUpdate)(this.fd, options);
1238
+ }
1239
+ async set(options) {
1240
+ if (!options || typeof options !== "object" || Array.isArray(options)) {
1241
+ throw new TypeError('"options" is not an object');
1242
+ }
1243
+ debug("set", options);
1244
+ if (!this.isOpen) {
1245
+ throw new Error("Port is not open");
1246
+ }
1247
+ await (0, load_bindings_1.asyncSet)(this.fd, options);
1248
+ }
1249
+ async get() {
1250
+ debug("get");
1251
+ if (!this.isOpen) {
1252
+ throw new Error("Port is not open");
1253
+ }
1254
+ return (0, load_bindings_1.asyncGet)(this.fd);
1255
+ }
1256
+ async getBaudRate() {
1257
+ debug("getBaudRate");
1258
+ if (!this.isOpen) {
1259
+ throw new Error("Port is not open");
1260
+ }
1261
+ throw new Error("getBaudRate is not implemented on darwin");
1262
+ }
1263
+ async flush() {
1264
+ debug("flush");
1265
+ if (!this.isOpen) {
1266
+ throw new Error("Port is not open");
1267
+ }
1268
+ await (0, load_bindings_1.asyncFlush)(this.fd);
1269
+ }
1270
+ async drain() {
1271
+ debug("drain");
1272
+ if (!this.isOpen) {
1273
+ throw new Error("Port is not open");
1274
+ }
1275
+ await this.writeOperation;
1276
+ await (0, load_bindings_1.asyncDrain)(this.fd);
1277
+ }
1278
+ };
1279
+ exports2.DarwinPortBinding = DarwinPortBinding;
1280
+ }
1281
+ });
1282
+
1283
+ // node_modules/@serialport/parser-delimiter/dist/index.js
1284
+ var require_dist = __commonJS({
1285
+ "node_modules/@serialport/parser-delimiter/dist/index.js"(exports2) {
1286
+ "use strict";
1287
+ Object.defineProperty(exports2, "__esModule", { value: true });
1288
+ exports2.DelimiterParser = void 0;
1289
+ var stream_1 = require("stream");
1290
+ var DelimiterParser = class extends stream_1.Transform {
1291
+ includeDelimiter;
1292
+ delimiter;
1293
+ buffer;
1294
+ constructor({ delimiter, includeDelimiter = false, ...options }) {
1295
+ super(options);
1296
+ if (delimiter === void 0) {
1297
+ throw new TypeError('"delimiter" is not a bufferable object');
1298
+ }
1299
+ if (delimiter.length === 0) {
1300
+ throw new TypeError('"delimiter" has a 0 or undefined length');
1301
+ }
1302
+ this.includeDelimiter = includeDelimiter;
1303
+ this.delimiter = Buffer.from(delimiter);
1304
+ this.buffer = Buffer.alloc(0);
1305
+ }
1306
+ _transform(chunk, encoding, cb) {
1307
+ let data = Buffer.concat([this.buffer, chunk]);
1308
+ let position;
1309
+ while ((position = data.indexOf(this.delimiter)) !== -1) {
1310
+ this.push(data.slice(0, position + (this.includeDelimiter ? this.delimiter.length : 0)));
1311
+ data = data.slice(position + this.delimiter.length);
1312
+ }
1313
+ this.buffer = data;
1314
+ cb();
1315
+ }
1316
+ _flush(cb) {
1317
+ this.push(this.buffer);
1318
+ this.buffer = Buffer.alloc(0);
1319
+ cb();
1320
+ }
1321
+ };
1322
+ exports2.DelimiterParser = DelimiterParser;
1323
+ }
1324
+ });
1325
+
1326
+ // node_modules/@serialport/parser-readline/dist/index.js
1327
+ var require_dist2 = __commonJS({
1328
+ "node_modules/@serialport/parser-readline/dist/index.js"(exports2) {
1329
+ "use strict";
1330
+ Object.defineProperty(exports2, "__esModule", { value: true });
1331
+ exports2.ReadlineParser = void 0;
1332
+ var parser_delimiter_1 = require_dist();
1333
+ var ReadlineParser = class extends parser_delimiter_1.DelimiterParser {
1334
+ constructor(options) {
1335
+ const opts = {
1336
+ delimiter: Buffer.from("\n", "utf8"),
1337
+ encoding: "utf8",
1338
+ ...options
1339
+ };
1340
+ if (typeof opts.delimiter === "string") {
1341
+ opts.delimiter = Buffer.from(opts.delimiter, opts.encoding);
1342
+ }
1343
+ super(opts);
1344
+ }
1345
+ };
1346
+ exports2.ReadlineParser = ReadlineParser;
1347
+ }
1348
+ });
1349
+
1350
+ // node_modules/@serialport/bindings-cpp/dist/linux-list.js
1351
+ var require_linux_list = __commonJS({
1352
+ "node_modules/@serialport/bindings-cpp/dist/linux-list.js"(exports2) {
1353
+ "use strict";
1354
+ Object.defineProperty(exports2, "__esModule", { value: true });
1355
+ exports2.linuxList = linuxList;
1356
+ var child_process_1 = require("child_process");
1357
+ var parser_readline_1 = require_dist2();
1358
+ function checkPathOfDevice(path) {
1359
+ return /(tty(S|WCH|ACM|USB|AMA|MFD|O|XRUSB)|rfcomm)/.test(path) && path;
1360
+ }
1361
+ function propName(name) {
1362
+ return {
1363
+ DEVNAME: "path",
1364
+ ID_VENDOR_ENC: "manufacturer",
1365
+ ID_SERIAL_SHORT: "serialNumber",
1366
+ ID_VENDOR_ID: "vendorId",
1367
+ ID_MODEL_ID: "productId",
1368
+ DEVLINKS: "pnpId",
1369
+ /**
1370
+ * Workaround for systemd defect
1371
+ * see https://github.com/serialport/bindings-cpp/issues/115
1372
+ */
1373
+ ID_USB_VENDOR_ENC: "manufacturer",
1374
+ ID_USB_SERIAL_SHORT: "serialNumber",
1375
+ ID_USB_VENDOR_ID: "vendorId",
1376
+ ID_USB_MODEL_ID: "productId"
1377
+ // End of workaround
1378
+ }[name.toUpperCase()];
1379
+ }
1380
+ function decodeHexEscape(str) {
1381
+ return str.replace(/\\x([a-fA-F0-9]{2})/g, (a, b) => {
1382
+ return String.fromCharCode(parseInt(b, 16));
1383
+ });
1384
+ }
1385
+ function propVal(name, val) {
1386
+ if (name === "pnpId") {
1387
+ const match = val.match(/\/by-id\/([^\s]+)/);
1388
+ return (match === null || match === void 0 ? void 0 : match[1]) || void 0;
1389
+ }
1390
+ if (name === "manufacturer") {
1391
+ return decodeHexEscape(val);
1392
+ }
1393
+ if (/^0x/.test(val)) {
1394
+ return val.substr(2);
1395
+ }
1396
+ return val;
1397
+ }
1398
+ function linuxList(spawnCmd = child_process_1.spawn) {
1399
+ const ports = [];
1400
+ const udevadm = spawnCmd("udevadm", ["info", "-e"]);
1401
+ const lines = udevadm.stdout.pipe(new parser_readline_1.ReadlineParser());
1402
+ let skipPort = false;
1403
+ let port = {
1404
+ path: "",
1405
+ manufacturer: void 0,
1406
+ serialNumber: void 0,
1407
+ pnpId: void 0,
1408
+ locationId: void 0,
1409
+ vendorId: void 0,
1410
+ productId: void 0
1411
+ };
1412
+ lines.on("data", (line) => {
1413
+ const lineType = line.slice(0, 1);
1414
+ const data = line.slice(3);
1415
+ if (lineType === "P") {
1416
+ port = {
1417
+ path: "",
1418
+ manufacturer: void 0,
1419
+ serialNumber: void 0,
1420
+ pnpId: void 0,
1421
+ locationId: void 0,
1422
+ vendorId: void 0,
1423
+ productId: void 0
1424
+ };
1425
+ skipPort = false;
1426
+ return;
1427
+ }
1428
+ if (skipPort) {
1429
+ return;
1430
+ }
1431
+ if (lineType === "N") {
1432
+ if (checkPathOfDevice(data)) {
1433
+ ports.push(port);
1434
+ } else {
1435
+ skipPort = true;
1436
+ }
1437
+ return;
1438
+ }
1439
+ if (lineType === "E") {
1440
+ const keyValue = data.match(/^(.+)=(.*)/);
1441
+ if (!keyValue) {
1442
+ return;
1443
+ }
1444
+ const key = propName(keyValue[1]);
1445
+ if (!key) {
1446
+ return;
1447
+ }
1448
+ port[key] = propVal(key, keyValue[2]);
1449
+ }
1450
+ });
1451
+ return new Promise((resolve, reject) => {
1452
+ udevadm.on("close", (code) => {
1453
+ if (code) {
1454
+ reject(new Error(`Error listing ports udevadm exited with error code: ${code}`));
1455
+ }
1456
+ });
1457
+ udevadm.on("error", reject);
1458
+ lines.on("error", reject);
1459
+ lines.on("finish", () => resolve(ports));
1460
+ });
1461
+ }
1462
+ }
1463
+ });
1464
+
1465
+ // node_modules/@serialport/bindings-cpp/dist/linux.js
1466
+ var require_linux = __commonJS({
1467
+ "node_modules/@serialport/bindings-cpp/dist/linux.js"(exports2) {
1468
+ "use strict";
1469
+ var __importDefault = exports2 && exports2.__importDefault || function(mod) {
1470
+ return mod && mod.__esModule ? mod : { "default": mod };
1471
+ };
1472
+ Object.defineProperty(exports2, "__esModule", { value: true });
1473
+ exports2.LinuxPortBinding = exports2.LinuxBinding = void 0;
1474
+ var debug_1 = __importDefault(require_src());
1475
+ var linux_list_1 = require_linux_list();
1476
+ var poller_1 = require_poller();
1477
+ var unix_read_1 = require_unix_read();
1478
+ var unix_write_1 = require_unix_write();
1479
+ var load_bindings_1 = require_load_bindings();
1480
+ var debug = (0, debug_1.default)("serialport/bindings-cpp");
1481
+ exports2.LinuxBinding = {
1482
+ list() {
1483
+ debug("list");
1484
+ return (0, linux_list_1.linuxList)();
1485
+ },
1486
+ async open(options) {
1487
+ if (!options || typeof options !== "object" || Array.isArray(options)) {
1488
+ throw new TypeError('"options" is not an object');
1489
+ }
1490
+ if (!options.path) {
1491
+ throw new TypeError('"path" is not a valid port');
1492
+ }
1493
+ if (!options.baudRate) {
1494
+ throw new TypeError('"baudRate" is not a valid baudRate');
1495
+ }
1496
+ debug("open");
1497
+ const openOptions = Object.assign({ vmin: 1, vtime: 0, dataBits: 8, lock: true, stopBits: 1, parity: "none", rtscts: false, xon: false, xoff: false, xany: false, hupcl: true }, options);
1498
+ const fd = await (0, load_bindings_1.asyncOpen)(openOptions.path, openOptions);
1499
+ this.fd = fd;
1500
+ return new LinuxPortBinding(fd, openOptions);
1501
+ }
1502
+ };
1503
+ var LinuxPortBinding = class {
1504
+ constructor(fd, openOptions) {
1505
+ this.fd = fd;
1506
+ this.openOptions = openOptions;
1507
+ this.poller = new poller_1.Poller(fd);
1508
+ this.writeOperation = null;
1509
+ }
1510
+ get isOpen() {
1511
+ return this.fd !== null;
1512
+ }
1513
+ async close() {
1514
+ debug("close");
1515
+ if (!this.isOpen) {
1516
+ throw new Error("Port is not open");
1517
+ }
1518
+ const fd = this.fd;
1519
+ this.poller.stop();
1520
+ this.poller.destroy();
1521
+ this.fd = null;
1522
+ await (0, load_bindings_1.asyncClose)(fd);
1523
+ }
1524
+ async read(buffer, offset, length) {
1525
+ if (!Buffer.isBuffer(buffer)) {
1526
+ throw new TypeError('"buffer" is not a Buffer');
1527
+ }
1528
+ if (typeof offset !== "number" || isNaN(offset)) {
1529
+ throw new TypeError(`"offset" is not an integer got "${isNaN(offset) ? "NaN" : typeof offset}"`);
1530
+ }
1531
+ if (typeof length !== "number" || isNaN(length)) {
1532
+ throw new TypeError(`"length" is not an integer got "${isNaN(length) ? "NaN" : typeof length}"`);
1533
+ }
1534
+ debug("read");
1535
+ if (buffer.length < offset + length) {
1536
+ throw new Error("buffer is too small");
1537
+ }
1538
+ if (!this.isOpen) {
1539
+ throw new Error("Port is not open");
1540
+ }
1541
+ return (0, unix_read_1.unixRead)({ binding: this, buffer, offset, length });
1542
+ }
1543
+ async write(buffer) {
1544
+ if (!Buffer.isBuffer(buffer)) {
1545
+ throw new TypeError('"buffer" is not a Buffer');
1546
+ }
1547
+ debug("write", buffer.length, "bytes");
1548
+ if (!this.isOpen) {
1549
+ debug("write", "error port is not open");
1550
+ throw new Error("Port is not open");
1551
+ }
1552
+ this.writeOperation = (async () => {
1553
+ if (buffer.length === 0) {
1554
+ return;
1555
+ }
1556
+ await (0, unix_write_1.unixWrite)({ binding: this, buffer });
1557
+ this.writeOperation = null;
1558
+ })();
1559
+ return this.writeOperation;
1560
+ }
1561
+ async update(options) {
1562
+ if (!options || typeof options !== "object" || Array.isArray(options)) {
1563
+ throw TypeError('"options" is not an object');
1564
+ }
1565
+ if (typeof options.baudRate !== "number") {
1566
+ throw new TypeError('"options.baudRate" is not a number');
1567
+ }
1568
+ debug("update");
1569
+ if (!this.isOpen) {
1570
+ throw new Error("Port is not open");
1571
+ }
1572
+ await (0, load_bindings_1.asyncUpdate)(this.fd, options);
1573
+ }
1574
+ async set(options) {
1575
+ if (!options || typeof options !== "object" || Array.isArray(options)) {
1576
+ throw new TypeError('"options" is not an object');
1577
+ }
1578
+ debug("set");
1579
+ if (!this.isOpen) {
1580
+ throw new Error("Port is not open");
1581
+ }
1582
+ await (0, load_bindings_1.asyncSet)(this.fd, options);
1583
+ }
1584
+ async get() {
1585
+ debug("get");
1586
+ if (!this.isOpen) {
1587
+ throw new Error("Port is not open");
1588
+ }
1589
+ return (0, load_bindings_1.asyncGet)(this.fd);
1590
+ }
1591
+ async getBaudRate() {
1592
+ debug("getBaudRate");
1593
+ if (!this.isOpen) {
1594
+ throw new Error("Port is not open");
1595
+ }
1596
+ return (0, load_bindings_1.asyncGetBaudRate)(this.fd);
1597
+ }
1598
+ async flush() {
1599
+ debug("flush");
1600
+ if (!this.isOpen) {
1601
+ throw new Error("Port is not open");
1602
+ }
1603
+ await (0, load_bindings_1.asyncFlush)(this.fd);
1604
+ }
1605
+ async drain() {
1606
+ debug("drain");
1607
+ if (!this.isOpen) {
1608
+ throw new Error("Port is not open");
1609
+ }
1610
+ await this.writeOperation;
1611
+ await (0, load_bindings_1.asyncDrain)(this.fd);
1612
+ }
1613
+ };
1614
+ exports2.LinuxPortBinding = LinuxPortBinding;
1615
+ }
1616
+ });
1617
+
1618
+ // node_modules/@serialport/bindings-cpp/dist/win32-sn-parser.js
1619
+ var require_win32_sn_parser = __commonJS({
1620
+ "node_modules/@serialport/bindings-cpp/dist/win32-sn-parser.js"(exports2) {
1621
+ "use strict";
1622
+ Object.defineProperty(exports2, "__esModule", { value: true });
1623
+ exports2.serialNumParser = void 0;
1624
+ var PARSERS = [/USB\\(?:.+)\\(.+)/, /FTDIBUS\\(?:.+)\+(.+?)A?\\.+/];
1625
+ var serialNumParser = (pnpId) => {
1626
+ if (!pnpId) {
1627
+ return null;
1628
+ }
1629
+ for (const parser of PARSERS) {
1630
+ const sn = pnpId.match(parser);
1631
+ if (sn) {
1632
+ return sn[1];
1633
+ }
1634
+ }
1635
+ return null;
1636
+ };
1637
+ exports2.serialNumParser = serialNumParser;
1638
+ }
1639
+ });
1640
+
1641
+ // node_modules/@serialport/bindings-cpp/dist/win32.js
1642
+ var require_win32 = __commonJS({
1643
+ "node_modules/@serialport/bindings-cpp/dist/win32.js"(exports2) {
1644
+ "use strict";
1645
+ var __importDefault = exports2 && exports2.__importDefault || function(mod) {
1646
+ return mod && mod.__esModule ? mod : { "default": mod };
1647
+ };
1648
+ Object.defineProperty(exports2, "__esModule", { value: true });
1649
+ exports2.WindowsPortBinding = exports2.WindowsBinding = void 0;
1650
+ var debug_1 = __importDefault(require_src());
1651
+ var _1 = require_index();
1652
+ var load_bindings_1 = require_load_bindings();
1653
+ var win32_sn_parser_1 = require_win32_sn_parser();
1654
+ var debug = (0, debug_1.default)("serialport/bindings-cpp");
1655
+ exports2.WindowsBinding = {
1656
+ async list() {
1657
+ const ports = await (0, load_bindings_1.asyncList)();
1658
+ return ports.map((port) => {
1659
+ if (port.pnpId && !port.serialNumber) {
1660
+ const serialNumber = (0, win32_sn_parser_1.serialNumParser)(port.pnpId);
1661
+ if (serialNumber) {
1662
+ return Object.assign(Object.assign({}, port), { serialNumber });
1663
+ }
1664
+ }
1665
+ return port;
1666
+ });
1667
+ },
1668
+ async open(options) {
1669
+ if (!options || typeof options !== "object" || Array.isArray(options)) {
1670
+ throw new TypeError('"options" is not an object');
1671
+ }
1672
+ if (!options.path) {
1673
+ throw new TypeError('"path" is not a valid port');
1674
+ }
1675
+ if (!options.baudRate) {
1676
+ throw new TypeError('"baudRate" is not a valid baudRate');
1677
+ }
1678
+ debug("open");
1679
+ const openOptions = Object.assign({ dataBits: 8, lock: true, stopBits: 1, parity: "none", rtscts: false, rtsMode: "handshake", xon: false, xoff: false, xany: false, hupcl: true }, options);
1680
+ const fd = await (0, load_bindings_1.asyncOpen)(openOptions.path, openOptions);
1681
+ return new WindowsPortBinding(fd, openOptions);
1682
+ }
1683
+ };
1684
+ var WindowsPortBinding = class {
1685
+ constructor(fd, options) {
1686
+ this.fd = fd;
1687
+ this.openOptions = options;
1688
+ this.writeOperation = null;
1689
+ }
1690
+ get isOpen() {
1691
+ return this.fd !== null;
1692
+ }
1693
+ async close() {
1694
+ debug("close");
1695
+ if (!this.isOpen) {
1696
+ throw new Error("Port is not open");
1697
+ }
1698
+ const fd = this.fd;
1699
+ this.fd = null;
1700
+ await (0, load_bindings_1.asyncClose)(fd);
1701
+ }
1702
+ async read(buffer, offset, length) {
1703
+ if (!Buffer.isBuffer(buffer)) {
1704
+ throw new TypeError('"buffer" is not a Buffer');
1705
+ }
1706
+ if (typeof offset !== "number" || isNaN(offset)) {
1707
+ throw new TypeError(`"offset" is not an integer got "${isNaN(offset) ? "NaN" : typeof offset}"`);
1708
+ }
1709
+ if (typeof length !== "number" || isNaN(length)) {
1710
+ throw new TypeError(`"length" is not an integer got "${isNaN(length) ? "NaN" : typeof length}"`);
1711
+ }
1712
+ debug("read");
1713
+ if (buffer.length < offset + length) {
1714
+ throw new Error("buffer is too small");
1715
+ }
1716
+ if (!this.isOpen) {
1717
+ throw new Error("Port is not open");
1718
+ }
1719
+ try {
1720
+ const bytesRead = await (0, load_bindings_1.asyncRead)(this.fd, buffer, offset, length);
1721
+ return { bytesRead, buffer };
1722
+ } catch (err) {
1723
+ if (!this.isOpen) {
1724
+ throw new _1.BindingsError(err.message, { canceled: true });
1725
+ }
1726
+ throw err;
1727
+ }
1728
+ }
1729
+ async write(buffer) {
1730
+ if (!Buffer.isBuffer(buffer)) {
1731
+ throw new TypeError('"buffer" is not a Buffer');
1732
+ }
1733
+ debug("write", buffer.length, "bytes");
1734
+ if (!this.isOpen) {
1735
+ debug("write", "error port is not open");
1736
+ throw new Error("Port is not open");
1737
+ }
1738
+ this.writeOperation = (async () => {
1739
+ if (buffer.length === 0) {
1740
+ return;
1741
+ }
1742
+ await (0, load_bindings_1.asyncWrite)(this.fd, buffer);
1743
+ this.writeOperation = null;
1744
+ })();
1745
+ return this.writeOperation;
1746
+ }
1747
+ async update(options) {
1748
+ if (!options || typeof options !== "object" || Array.isArray(options)) {
1749
+ throw TypeError('"options" is not an object');
1750
+ }
1751
+ if (typeof options.baudRate !== "number") {
1752
+ throw new TypeError('"options.baudRate" is not a number');
1753
+ }
1754
+ debug("update");
1755
+ if (!this.isOpen) {
1756
+ throw new Error("Port is not open");
1757
+ }
1758
+ await (0, load_bindings_1.asyncUpdate)(this.fd, options);
1759
+ }
1760
+ async set(options) {
1761
+ if (!options || typeof options !== "object" || Array.isArray(options)) {
1762
+ throw new TypeError('"options" is not an object');
1763
+ }
1764
+ debug("set", options);
1765
+ if (!this.isOpen) {
1766
+ throw new Error("Port is not open");
1767
+ }
1768
+ await (0, load_bindings_1.asyncSet)(this.fd, options);
1769
+ }
1770
+ async get() {
1771
+ debug("get");
1772
+ if (!this.isOpen) {
1773
+ throw new Error("Port is not open");
1774
+ }
1775
+ return (0, load_bindings_1.asyncGet)(this.fd);
1776
+ }
1777
+ async getBaudRate() {
1778
+ debug("getBaudRate");
1779
+ if (!this.isOpen) {
1780
+ throw new Error("Port is not open");
1781
+ }
1782
+ return (0, load_bindings_1.asyncGetBaudRate)(this.fd);
1783
+ }
1784
+ async flush() {
1785
+ debug("flush");
1786
+ if (!this.isOpen) {
1787
+ throw new Error("Port is not open");
1788
+ }
1789
+ await (0, load_bindings_1.asyncFlush)(this.fd);
1790
+ }
1791
+ async drain() {
1792
+ debug("drain");
1793
+ if (!this.isOpen) {
1794
+ throw new Error("Port is not open");
1795
+ }
1796
+ await this.writeOperation;
1797
+ await (0, load_bindings_1.asyncDrain)(this.fd);
1798
+ }
1799
+ };
1800
+ exports2.WindowsPortBinding = WindowsPortBinding;
1801
+ }
1802
+ });
1803
+
1804
+ // node_modules/@serialport/bindings-interface/dist/index.js
1805
+ var require_dist3 = __commonJS({
1806
+ "node_modules/@serialport/bindings-interface/dist/index.js"() {
1807
+ "use strict";
1808
+ }
1809
+ });
1810
+
1811
+ // node_modules/@serialport/bindings-cpp/dist/index.js
1812
+ var require_index = __commonJS({
1813
+ "node_modules/@serialport/bindings-cpp/dist/index.js"(exports2) {
1814
+ var __createBinding = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) {
1815
+ if (k2 === void 0) k2 = k;
1816
+ var desc = Object.getOwnPropertyDescriptor(m, k);
1817
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
1818
+ desc = { enumerable: true, get: function() {
1819
+ return m[k];
1820
+ } };
1821
+ }
1822
+ Object.defineProperty(o, k2, desc);
1823
+ }) : (function(o, m, k, k2) {
1824
+ if (k2 === void 0) k2 = k;
1825
+ o[k2] = m[k];
1826
+ }));
1827
+ var __exportStar = exports2 && exports2.__exportStar || function(m, exports3) {
1828
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p)) __createBinding(exports3, m, p);
1829
+ };
1830
+ var __importDefault = exports2 && exports2.__importDefault || function(mod) {
1831
+ return mod && mod.__esModule ? mod : { "default": mod };
1832
+ };
1833
+ Object.defineProperty(exports2, "__esModule", { value: true });
1834
+ exports2.autoDetect = autoDetect;
1835
+ var debug_1 = __importDefault(require_src());
1836
+ var darwin_1 = require_darwin();
1837
+ var linux_1 = require_linux();
1838
+ var win32_1 = require_win32();
1839
+ var debug = (0, debug_1.default)("serialport/bindings-cpp");
1840
+ __exportStar(require_dist3(), exports2);
1841
+ __exportStar(require_darwin(), exports2);
1842
+ __exportStar(require_linux(), exports2);
1843
+ __exportStar(require_win32(), exports2);
1844
+ __exportStar(require_errors(), exports2);
1845
+ function autoDetect() {
1846
+ switch (process.platform) {
1847
+ case "win32":
1848
+ debug("loading WindowsBinding");
1849
+ return win32_1.WindowsBinding;
1850
+ case "darwin":
1851
+ debug("loading DarwinBinding");
1852
+ return darwin_1.DarwinBinding;
1853
+ default:
1854
+ debug("loading LinuxBinding");
1855
+ return linux_1.LinuxBinding;
1856
+ }
1857
+ }
1858
+ }
1859
+ });
1860
+ module.exports = require_index();