@mcesystems/adb-kit 1.0.87 → 1.0.91

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.mjs CHANGED
@@ -25696,7 +25696,7 @@ var require_server = __commonJS({
25696
25696
  var require_api = __commonJS({
25697
25697
  "../../node_modules/.pnpm/@devicefarmer+adbkit-monkey@1.2.1/node_modules/@devicefarmer/adbkit-monkey/lib/monkey/api.js"(exports2, module2) {
25698
25698
  (function() {
25699
- var Api, EventEmitter, _ref, __hasProp = {}.hasOwnProperty, __extends = function(child, parent) {
25699
+ var Api, EventEmitter2, _ref, __hasProp = {}.hasOwnProperty, __extends = function(child, parent) {
25700
25700
  for (var key in parent) {
25701
25701
  if (__hasProp.call(parent, key)) child[key] = parent[key];
25702
25702
  }
@@ -25708,7 +25708,7 @@ var require_api = __commonJS({
25708
25708
  child.__super__ = parent.prototype;
25709
25709
  return child;
25710
25710
  };
25711
- EventEmitter = __require("events").EventEmitter;
25711
+ EventEmitter2 = __require("events").EventEmitter;
25712
25712
  Api = (function(_super) {
25713
25713
  __extends(Api2, _super);
25714
25714
  function Api2() {
@@ -25922,7 +25922,7 @@ var require_api = __commonJS({
25922
25922
  return this;
25923
25923
  };
25924
25924
  return Api2;
25925
- })(EventEmitter);
25925
+ })(EventEmitter2);
25926
25926
  module2.exports = Api;
25927
25927
  }).call(exports2);
25928
25928
  }
@@ -26103,7 +26103,7 @@ var require_multi = __commonJS({
26103
26103
  var require_parser2 = __commonJS({
26104
26104
  "../../node_modules/.pnpm/@devicefarmer+adbkit-monkey@1.2.1/node_modules/@devicefarmer/adbkit-monkey/lib/monkey/parser.js"(exports2, module2) {
26105
26105
  (function() {
26106
- var EventEmitter, Parser, Reply, __hasProp = {}.hasOwnProperty, __extends = function(child, parent) {
26106
+ var EventEmitter2, Parser, Reply, __hasProp = {}.hasOwnProperty, __extends = function(child, parent) {
26107
26107
  for (var key in parent) {
26108
26108
  if (__hasProp.call(parent, key)) child[key] = parent[key];
26109
26109
  }
@@ -26115,7 +26115,7 @@ var require_parser2 = __commonJS({
26115
26115
  child.__super__ = parent.prototype;
26116
26116
  return child;
26117
26117
  };
26118
- EventEmitter = __require("events").EventEmitter;
26118
+ EventEmitter2 = __require("events").EventEmitter;
26119
26119
  Reply = require_reply();
26120
26120
  Parser = (function(_super) {
26121
26121
  __extends(Parser2, _super);
@@ -26163,7 +26163,7 @@ var require_parser2 = __commonJS({
26163
26163
  this.emit("error", new SyntaxError("Unparseable line '" + line + "'"));
26164
26164
  };
26165
26165
  return Parser2;
26166
- })(EventEmitter);
26166
+ })(EventEmitter2);
26167
26167
  module2.exports = Parser;
26168
26168
  }).call(exports2);
26169
26169
  }
@@ -30216,6 +30216,7 @@ var require_dist = __commonJS({
30216
30216
 
30217
30217
  // src/logic/adbDeviceKit.ts
30218
30218
  var adbkit = __toESM(require_dist());
30219
+ import { EventEmitter } from "node:events";
30219
30220
 
30220
30221
  // ../tool-debug/dist/index.mjs
30221
30222
  import process22 from "node:process";
@@ -31349,6 +31350,11 @@ function portNumbers(from, to) {
31349
31350
  return generator(from, to);
31350
31351
  }
31351
31352
 
31353
+ // src/types/usbDebugging.ts
31354
+ var USB_DEBUGGING_EVENT_OFF = "usbDebuggingOff";
31355
+ var USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW = "usbDebuggingNeedsAlwaysAllow";
31356
+ var USB_DEBUGGING_EVENT_AUTHORIZED = "usbDebuggingAuthorized";
31357
+
31352
31358
  // src/utils/adbPath.ts
31353
31359
  import { existsSync } from "node:fs";
31354
31360
  import path from "node:path";
@@ -31445,8 +31451,9 @@ var deviceProps = {
31445
31451
  "Build User": "ro.build.user"
31446
31452
  };
31447
31453
  var AdbDeviceKit = class {
31448
- constructor(deviceId, port) {
31454
+ constructor(deviceId, port, config) {
31449
31455
  this.port = port;
31456
+ this.config = config;
31450
31457
  setNamespace(`adb-kit:${deviceId}`);
31451
31458
  ensureAdbPathFromResources();
31452
31459
  installConnectionErrorHandler();
@@ -31460,7 +31467,7 @@ var AdbDeviceKit = class {
31460
31467
  deviceId;
31461
31468
  devicePort = null;
31462
31469
  connect() {
31463
- const adbBin = process.env.ADB_PATH ?? getAdbBinaryPath() ?? "adb";
31470
+ const adbBin = process.env.ADB_PATH ?? this.config?.binPath ?? "adb";
31464
31471
  const client = adbkit.default.createClient({ bin: adbBin });
31465
31472
  const errorHandler = (err) => {
31466
31473
  logError(`ADB client connection error (e.g. device disconnected): ${err.message}`);
@@ -31526,81 +31533,95 @@ var AdbDeviceKit = class {
31526
31533
  * during tracking don't affect other operations.
31527
31534
  */
31528
31535
  createTrackingClient() {
31529
- const adbBin = process.env.ADB_PATH ?? getAdbBinaryPath() ?? "adb";
31536
+ const adbBin = process.env.ADB_PATH ?? this.config?.binPath ?? "adb";
31530
31537
  return adbkit.default.createClient({ bin: adbBin });
31531
31538
  }
31532
- async waitForUsbDebugging(timeout2 = 12e4, _numberOfAllowedAttempts = 5) {
31533
- if (await this.hasUsbDebugging()) {
31534
- logDetail("USB debugging is already enabled");
31535
- return true;
31536
- }
31537
- const trackingClient = this.createTrackingClient();
31538
- const tracker = await trackingClient.trackDevices();
31539
- let settled = false;
31540
- return new Promise((resolve, reject) => {
31541
- const timeoutId = setTimeout(() => {
31542
- logError("Timeout waiting for USB debugging");
31543
- settle({ type: "reject", err: new Error("Timeout waiting for USB debugging") });
31544
- }, timeout2);
31545
- const cleanupTrackingClient = () => {
31546
- try {
31547
- tracker.end();
31548
- } catch {
31549
- }
31550
- trackingClient.on("error", () => {
31539
+ matchesDeviceId(device) {
31540
+ return device.id === this.deviceId || device.id.endsWith(this.deviceId);
31541
+ }
31542
+ waitForUsbDebugging(timeout2 = 12e4, _numberOfAllowedAttempts = 5) {
31543
+ const events = new EventEmitter();
31544
+ const promise = (async () => {
31545
+ if (await this.hasUsbDebugging()) {
31546
+ logDetail("USB debugging is already enabled");
31547
+ return true;
31548
+ }
31549
+ const trackingClient = this.createTrackingClient();
31550
+ const tracker = await trackingClient.trackDevices();
31551
+ events.emit(USB_DEBUGGING_EVENT_OFF);
31552
+ let settled = false;
31553
+ return new Promise((resolve, reject) => {
31554
+ const timeoutId = setTimeout(() => {
31555
+ logError("Timeout waiting for USB debugging");
31556
+ settle({ type: "reject", err: new Error("Timeout waiting for USB debugging") });
31557
+ }, timeout2);
31558
+ const cleanupTrackingClient = () => {
31559
+ try {
31560
+ tracker.end();
31561
+ } catch {
31562
+ }
31563
+ trackingClient.on("error", () => {
31564
+ });
31565
+ };
31566
+ const settle = (result) => {
31567
+ if (settled) return;
31568
+ settled = true;
31569
+ clearTimeout(timeoutId);
31570
+ cleanupTrackingClient();
31571
+ if (result.type === "resolve") {
31572
+ resolve(result.value);
31573
+ } else {
31574
+ logError(result.err.message);
31575
+ reject(result.err);
31576
+ }
31577
+ };
31578
+ const handleAddOrChange = (device) => {
31579
+ if (!this.matchesDeviceId(device)) return;
31580
+ if (device.type === "unauthorized") {
31581
+ logDetail("Device needs 'Always allow' authorization");
31582
+ events.emit(USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW);
31583
+ return;
31584
+ }
31585
+ if (device.type === "device") {
31586
+ logDetail("Device authorized");
31587
+ events.emit(USB_DEBUGGING_EVENT_AUTHORIZED);
31588
+ settle({ type: "resolve", value: true });
31589
+ }
31590
+ };
31591
+ trackingClient.on("error", (err) => {
31592
+ if (isConnectionErrorMessage(err)) {
31593
+ logDetail(`Tracking client connection closed: ${err.message}`);
31594
+ settle({ type: "resolve", value: false });
31595
+ } else {
31596
+ logError(`Tracking client error: ${err.message}`);
31597
+ settle({ type: "reject", err });
31598
+ }
31551
31599
  });
31552
- };
31553
- const settle = (result) => {
31554
- if (settled) return;
31555
- settled = true;
31556
- clearTimeout(timeoutId);
31557
- cleanupTrackingClient();
31558
- if (result.type === "resolve") {
31559
- resolve(result.value);
31560
- } else {
31561
- logError(result.err.message);
31562
- reject(result.err);
31563
- }
31564
- };
31565
- trackingClient.on("error", (err) => {
31566
- if (isConnectionErrorMessage(err)) {
31567
- logDetail(`Tracking client connection closed: ${err.message}`);
31568
- settle({ type: "resolve", value: false });
31569
- } else {
31570
- logError(`Tracking client error: ${err.message}`);
31571
- settle({ type: "reject", err });
31572
- }
31573
- });
31574
- tracker.on("error", (err) => {
31575
- if (isConnectionErrorMessage(err)) {
31576
- logDetail(`Tracker connection closed: ${err.message}`);
31600
+ tracker.on("error", (err) => {
31601
+ if (isConnectionErrorMessage(err)) {
31602
+ logDetail(`Tracker connection closed: ${err.message}`);
31603
+ settle({ type: "resolve", value: false });
31604
+ } else {
31605
+ logError(`Tracker error: ${err.message}`);
31606
+ settle({ type: "reject", err });
31607
+ }
31608
+ });
31609
+ tracker.on("end", () => {
31610
+ logDetail("Device tracking ended");
31577
31611
  settle({ type: "resolve", value: false });
31578
- } else {
31579
- logError(`Tracker error: ${err.message}`);
31580
- settle({ type: "reject", err });
31581
- }
31582
- });
31583
- tracker.on("end", () => {
31584
- logDetail("Device tracking ended");
31585
- settle({ type: "resolve", value: false });
31586
- });
31587
- tracker.on("remove", (_) => {
31588
- logError("Device removed from tracker");
31589
- settle({ type: "reject", err: new Error("Device removed while waiting for USB debugging") });
31590
- });
31591
- tracker.on("add", (device) => {
31592
- if (device.type === "device") {
31593
- logDetail("Device added to tracker");
31594
- settle({ type: "resolve", value: true });
31595
- }
31596
- });
31597
- tracker.on("change", (device) => {
31598
- if (device.type === "device") {
31599
- logDetail("Device changed in tracker");
31600
- settle({ type: "resolve", value: true });
31601
- }
31612
+ });
31613
+ tracker.on("remove", (_) => {
31614
+ logError("Device removed from tracker");
31615
+ settle({
31616
+ type: "reject",
31617
+ err: new Error("Device removed while waiting for USB debugging")
31618
+ });
31619
+ });
31620
+ tracker.on("add", handleAddOrChange);
31621
+ tracker.on("change", handleAddOrChange);
31602
31622
  });
31603
- });
31623
+ })();
31624
+ return { promise, events };
31604
31625
  }
31605
31626
  async startPortForward(serviceName) {
31606
31627
  if (this.devicePort) {
@@ -31629,6 +31650,9 @@ var import_adbkit = __toESM(require_dist());
31629
31650
  var readAll = import_adbkit.default.util.readAll;
31630
31651
  export {
31631
31652
  AdbDeviceKit,
31653
+ USB_DEBUGGING_EVENT_AUTHORIZED,
31654
+ USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW,
31655
+ USB_DEBUGGING_EVENT_OFF,
31632
31656
  readAll
31633
31657
  };
31634
31658
  //# sourceMappingURL=index.mjs.map