@mcesystems/adb-kit 1.0.90 → 1.0.92

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/index.js CHANGED
@@ -25692,7 +25692,7 @@ var require_server = __commonJS({
25692
25692
  var require_api = __commonJS({
25693
25693
  "../../node_modules/.pnpm/@devicefarmer+adbkit-monkey@1.2.1/node_modules/@devicefarmer/adbkit-monkey/lib/monkey/api.js"(exports2, module2) {
25694
25694
  (function() {
25695
- var Api, EventEmitter, _ref, __hasProp = {}.hasOwnProperty, __extends = function(child, parent) {
25695
+ var Api, EventEmitter2, _ref, __hasProp = {}.hasOwnProperty, __extends = function(child, parent) {
25696
25696
  for (var key in parent) {
25697
25697
  if (__hasProp.call(parent, key)) child[key] = parent[key];
25698
25698
  }
@@ -25704,7 +25704,7 @@ var require_api = __commonJS({
25704
25704
  child.__super__ = parent.prototype;
25705
25705
  return child;
25706
25706
  };
25707
- EventEmitter = require("events").EventEmitter;
25707
+ EventEmitter2 = require("events").EventEmitter;
25708
25708
  Api = (function(_super) {
25709
25709
  __extends(Api2, _super);
25710
25710
  function Api2() {
@@ -25918,7 +25918,7 @@ var require_api = __commonJS({
25918
25918
  return this;
25919
25919
  };
25920
25920
  return Api2;
25921
- })(EventEmitter);
25921
+ })(EventEmitter2);
25922
25922
  module2.exports = Api;
25923
25923
  }).call(exports2);
25924
25924
  }
@@ -26099,7 +26099,7 @@ var require_multi = __commonJS({
26099
26099
  var require_parser2 = __commonJS({
26100
26100
  "../../node_modules/.pnpm/@devicefarmer+adbkit-monkey@1.2.1/node_modules/@devicefarmer/adbkit-monkey/lib/monkey/parser.js"(exports2, module2) {
26101
26101
  (function() {
26102
- var EventEmitter, Parser, Reply, __hasProp = {}.hasOwnProperty, __extends = function(child, parent) {
26102
+ var EventEmitter2, Parser, Reply, __hasProp = {}.hasOwnProperty, __extends = function(child, parent) {
26103
26103
  for (var key in parent) {
26104
26104
  if (__hasProp.call(parent, key)) child[key] = parent[key];
26105
26105
  }
@@ -26111,7 +26111,7 @@ var require_parser2 = __commonJS({
26111
26111
  child.__super__ = parent.prototype;
26112
26112
  return child;
26113
26113
  };
26114
- EventEmitter = require("events").EventEmitter;
26114
+ EventEmitter2 = require("events").EventEmitter;
26115
26115
  Reply = require_reply();
26116
26116
  Parser = (function(_super) {
26117
26117
  __extends(Parser2, _super);
@@ -26159,7 +26159,7 @@ var require_parser2 = __commonJS({
26159
26159
  this.emit("error", new SyntaxError("Unparseable line '" + line + "'"));
26160
26160
  };
26161
26161
  return Parser2;
26162
- })(EventEmitter);
26162
+ })(EventEmitter2);
26163
26163
  module2.exports = Parser;
26164
26164
  }).call(exports2);
26165
26165
  }
@@ -30214,11 +30214,15 @@ var require_dist = __commonJS({
30214
30214
  var index_exports = {};
30215
30215
  __export(index_exports, {
30216
30216
  AdbDeviceKit: () => AdbDeviceKit,
30217
+ USB_DEBUGGING_EVENT_AUTHORIZED: () => USB_DEBUGGING_EVENT_AUTHORIZED,
30218
+ USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW: () => USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW,
30219
+ USB_DEBUGGING_EVENT_OFF: () => USB_DEBUGGING_EVENT_OFF,
30217
30220
  readAll: () => readAll
30218
30221
  });
30219
30222
  module.exports = __toCommonJS(index_exports);
30220
30223
 
30221
30224
  // src/logic/adbDeviceKit.ts
30225
+ var import_node_events = require("node:events");
30222
30226
  var adbkit = __toESM(require_dist());
30223
30227
 
30224
30228
  // ../tool-debug/dist/index.mjs
@@ -31353,6 +31357,11 @@ function portNumbers(from, to) {
31353
31357
  return generator(from, to);
31354
31358
  }
31355
31359
 
31360
+ // src/types/usbDebugging.ts
31361
+ var USB_DEBUGGING_EVENT_OFF = "usbDebuggingOff";
31362
+ var USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW = "usbDebuggingNeedsAlwaysAllow";
31363
+ var USB_DEBUGGING_EVENT_AUTHORIZED = "usbDebuggingAuthorized";
31364
+
31356
31365
  // src/utils/adbPath.ts
31357
31366
  var import_node_fs = require("node:fs");
31358
31367
  var import_node_path = __toESM(require("node:path"));
@@ -31477,7 +31486,7 @@ var AdbDeviceKit = class {
31477
31486
  return client;
31478
31487
  }
31479
31488
  async listDevices() {
31480
- const devices = await this.client.listDevices();
31489
+ const devices = await this.client.listDevices().filter((device) => device.type === "device");
31481
31490
  return devices;
31482
31491
  }
31483
31492
  async getProperty(adbDevice, property) {
@@ -31534,78 +31543,99 @@ var AdbDeviceKit = class {
31534
31543
  const adbBin = process.env.ADB_PATH ?? this.config?.binPath ?? "adb";
31535
31544
  return adbkit.default.createClient({ bin: adbBin });
31536
31545
  }
31537
- async waitForUsbDebugging(timeout2 = 12e4, _numberOfAllowedAttempts = 5) {
31538
- if (await this.hasUsbDebugging()) {
31539
- logDetail("USB debugging is already enabled");
31540
- return true;
31541
- }
31542
- const trackingClient = this.createTrackingClient();
31543
- const tracker = await trackingClient.trackDevices();
31544
- let settled = false;
31545
- return new Promise((resolve, reject) => {
31546
- const timeoutId = setTimeout(() => {
31547
- logError("Timeout waiting for USB debugging");
31548
- settle({ type: "reject", err: new Error("Timeout waiting for USB debugging") });
31549
- }, timeout2);
31550
- const cleanupTrackingClient = () => {
31551
- try {
31552
- tracker.end();
31553
- } catch {
31554
- }
31555
- trackingClient.on("error", () => {
31546
+ matchesDeviceId(device) {
31547
+ return device.id === this.deviceId || device.id.endsWith(this.deviceId);
31548
+ }
31549
+ waitForUsbDebugging(timeout2 = 12e4, _numberOfAllowedAttempts = 5) {
31550
+ const events = new import_node_events.EventEmitter();
31551
+ const promise = (async () => {
31552
+ const device = (await this.client.listDevices()).find((device2) => device2.id === this.deviceId);
31553
+ logDetail(`Device: ${device?.id} (${device?.type})`);
31554
+ if (device?.type === "device") {
31555
+ logDetail("USB debugging is already enabled");
31556
+ return true;
31557
+ }
31558
+ const trackingClient = this.createTrackingClient();
31559
+ const tracker = await trackingClient.trackDevices();
31560
+ if (device?.type === "unauthorized") {
31561
+ logDetail("Device needs 'Always allow' authorization");
31562
+ events.emit(USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW);
31563
+ } else {
31564
+ events.emit(USB_DEBUGGING_EVENT_OFF);
31565
+ }
31566
+ let settled = false;
31567
+ return new Promise((resolve, reject) => {
31568
+ const timeoutId = setTimeout(() => {
31569
+ logError("Timeout waiting for USB debugging");
31570
+ settle({ type: "reject", err: new Error("Timeout waiting for USB debugging") });
31571
+ }, timeout2);
31572
+ const cleanupTrackingClient = () => {
31573
+ try {
31574
+ tracker.end();
31575
+ } catch {
31576
+ }
31577
+ trackingClient.on("error", () => {
31578
+ });
31579
+ };
31580
+ const settle = (result) => {
31581
+ if (settled) return;
31582
+ settled = true;
31583
+ clearTimeout(timeoutId);
31584
+ cleanupTrackingClient();
31585
+ if (result.type === "resolve") {
31586
+ resolve(result.value);
31587
+ } else {
31588
+ logError(result.err.message);
31589
+ reject(result.err);
31590
+ }
31591
+ };
31592
+ const handleAddOrChange = (device2) => {
31593
+ if (!this.matchesDeviceId(device2)) return;
31594
+ if (device2.type === "unauthorized") {
31595
+ logDetail("Device needs 'Always allow' authorization");
31596
+ events.emit(USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW);
31597
+ return;
31598
+ }
31599
+ if (device2.type === "device") {
31600
+ logDetail("Device authorized");
31601
+ events.emit(USB_DEBUGGING_EVENT_AUTHORIZED);
31602
+ settle({ type: "resolve", value: true });
31603
+ }
31604
+ };
31605
+ trackingClient.on("error", (err) => {
31606
+ if (isConnectionErrorMessage(err)) {
31607
+ logDetail(`Tracking client connection closed: ${err.message}`);
31608
+ settle({ type: "resolve", value: false });
31609
+ } else {
31610
+ logError(`Tracking client error: ${err.message}`);
31611
+ settle({ type: "reject", err });
31612
+ }
31556
31613
  });
31557
- };
31558
- const settle = (result) => {
31559
- if (settled) return;
31560
- settled = true;
31561
- clearTimeout(timeoutId);
31562
- cleanupTrackingClient();
31563
- if (result.type === "resolve") {
31564
- resolve(result.value);
31565
- } else {
31566
- logError(result.err.message);
31567
- reject(result.err);
31568
- }
31569
- };
31570
- trackingClient.on("error", (err) => {
31571
- if (isConnectionErrorMessage(err)) {
31572
- logDetail(`Tracking client connection closed: ${err.message}`);
31573
- settle({ type: "resolve", value: false });
31574
- } else {
31575
- logError(`Tracking client error: ${err.message}`);
31576
- settle({ type: "reject", err });
31577
- }
31578
- });
31579
- tracker.on("error", (err) => {
31580
- if (isConnectionErrorMessage(err)) {
31581
- logDetail(`Tracker connection closed: ${err.message}`);
31614
+ tracker.on("error", (err) => {
31615
+ if (isConnectionErrorMessage(err)) {
31616
+ logDetail(`Tracker connection closed: ${err.message}`);
31617
+ settle({ type: "resolve", value: false });
31618
+ } else {
31619
+ logError(`Tracker error: ${err.message}`);
31620
+ settle({ type: "reject", err });
31621
+ }
31622
+ });
31623
+ tracker.on("end", () => {
31624
+ logDetail("Device tracking ended");
31582
31625
  settle({ type: "resolve", value: false });
31583
- } else {
31584
- logError(`Tracker error: ${err.message}`);
31585
- settle({ type: "reject", err });
31586
- }
31587
- });
31588
- tracker.on("end", () => {
31589
- logDetail("Device tracking ended");
31590
- settle({ type: "resolve", value: false });
31591
- });
31592
- tracker.on("remove", (_) => {
31593
- logError("Device removed from tracker");
31594
- settle({ type: "reject", err: new Error("Device removed while waiting for USB debugging") });
31595
- });
31596
- tracker.on("add", (device) => {
31597
- if (device.type === "device") {
31598
- logDetail("Device added to tracker");
31599
- settle({ type: "resolve", value: true });
31600
- }
31601
- });
31602
- tracker.on("change", (device) => {
31603
- if (device.type === "device") {
31604
- logDetail("Device changed in tracker");
31605
- settle({ type: "resolve", value: true });
31606
- }
31626
+ });
31627
+ tracker.on("remove", (_) => {
31628
+ logError("Device removed from tracker");
31629
+ settle({
31630
+ type: "reject",
31631
+ err: new Error("Device removed while waiting for USB debugging")
31632
+ });
31633
+ });
31634
+ tracker.on("add", handleAddOrChange);
31635
+ tracker.on("change", handleAddOrChange);
31607
31636
  });
31608
- });
31637
+ })();
31638
+ return { promise, events };
31609
31639
  }
31610
31640
  async startPortForward(serviceName) {
31611
31641
  if (this.devicePort) {
@@ -31635,6 +31665,9 @@ var readAll = import_adbkit.default.util.readAll;
31635
31665
  // Annotate the CommonJS export names for ESM import in node:
31636
31666
  0 && (module.exports = {
31637
31667
  AdbDeviceKit,
31668
+ USB_DEBUGGING_EVENT_AUTHORIZED,
31669
+ USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW,
31670
+ USB_DEBUGGING_EVENT_OFF,
31638
31671
  readAll
31639
31672
  });
31640
31673
  //# sourceMappingURL=index.js.map