@mcesystems/adb-kit 1.0.93 → 1.0.94

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
@@ -30217,12 +30217,12 @@ __export(index_exports, {
30217
30217
  USB_DEBUGGING_EVENT_AUTHORIZED: () => USB_DEBUGGING_EVENT_AUTHORIZED,
30218
30218
  USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW: () => USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW,
30219
30219
  USB_DEBUGGING_EVENT_OFF: () => USB_DEBUGGING_EVENT_OFF,
30220
+ UsbDebuggingEventEmitter: () => UsbDebuggingEventEmitter,
30220
30221
  readAll: () => readAll
30221
30222
  });
30222
30223
  module.exports = __toCommonJS(index_exports);
30223
30224
 
30224
30225
  // src/logic/adbDeviceKit.ts
30225
- var import_node_events = require("node:events");
30226
30226
  var adbkit = __toESM(require_dist());
30227
30227
 
30228
30228
  // ../tool-debug/dist/index.mjs
@@ -31358,9 +31358,21 @@ function portNumbers(from, to) {
31358
31358
  }
31359
31359
 
31360
31360
  // src/types/usbDebugging.ts
31361
+ var import_node_events = __toESM(require("node:events"));
31361
31362
  var USB_DEBUGGING_EVENT_OFF = "usbDebuggingOff";
31362
31363
  var USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW = "usbDebuggingNeedsAlwaysAllow";
31363
31364
  var USB_DEBUGGING_EVENT_AUTHORIZED = "usbDebuggingAuthorized";
31365
+ var UsbDebuggingEventEmitter = class extends import_node_events.default {
31366
+ on(event, listener) {
31367
+ return super.on(event, listener);
31368
+ }
31369
+ emit(event, ...args) {
31370
+ return super.emit(event, ...args);
31371
+ }
31372
+ off(event, listener) {
31373
+ return super.off(event, listener);
31374
+ }
31375
+ };
31364
31376
 
31365
31377
  // src/utils/adbPath.ts
31366
31378
  var import_node_fs = require("node:fs");
@@ -31546,99 +31558,46 @@ var AdbDeviceKit = class {
31546
31558
  matchesDeviceId(device) {
31547
31559
  return device.id === this.deviceId || device.id.endsWith(this.deviceId);
31548
31560
  }
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(
31553
- (device2) => device2.id === this.deviceId
31554
- );
31555
- logDetail(`Device: ${device?.id} (${device?.type})`);
31556
- if (device?.type === "device") {
31557
- logDetail("USB debugging is already enabled");
31558
- return true;
31561
+ async trackUsbDebuggingStatus(eventEmitter) {
31562
+ const device = (await this.client.listDevices()).find(
31563
+ (device2) => device2.id === this.deviceId
31564
+ );
31565
+ logDetail(`Device: ${device?.id} (${device?.type})`);
31566
+ if (device?.type === "device") {
31567
+ logDetail("USB debugging is already enabled");
31568
+ eventEmitter.emit(USB_DEBUGGING_EVENT_AUTHORIZED, { deviceId: this.deviceId });
31569
+ return () => {
31570
+ };
31571
+ }
31572
+ if (device?.type === "unauthorized") {
31573
+ logDetail("Device needs 'Always allow' authorization");
31574
+ eventEmitter.emit(USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW, { deviceId: this.deviceId });
31575
+ } else {
31576
+ logDetail("Device is not authorized");
31577
+ eventEmitter.emit(USB_DEBUGGING_EVENT_OFF, { deviceId: this.deviceId });
31578
+ }
31579
+ const trackingClient = this.createTrackingClient();
31580
+ const tracker = await trackingClient.trackDevices();
31581
+ tracker.on("remove", (_) => {
31582
+ logError("Device removed from tracker");
31583
+ eventEmitter.emit(USB_DEBUGGING_EVENT_OFF, { deviceId: this.deviceId });
31584
+ });
31585
+ tracker.on("change", (device2) => {
31586
+ if (!this.matchesDeviceId(device2)) return;
31587
+ if (device2.type === "unauthorized") {
31588
+ logDetail("Device needs 'Always allow' authorization");
31589
+ eventEmitter.emit(USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW, { deviceId: this.deviceId });
31559
31590
  }
31560
- const trackingClient = this.createTrackingClient();
31561
- const tracker = await trackingClient.trackDevices();
31562
- setTimeout(() => {
31563
- if (device?.type === "unauthorized") {
31564
- events.emit(USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW);
31565
- } else {
31566
- events.emit(USB_DEBUGGING_EVENT_OFF);
31567
- }
31568
- }, 0);
31569
- let settled = false;
31570
- return new Promise((resolve, reject) => {
31571
- const timeoutId = setTimeout(() => {
31572
- logError("Timeout waiting for USB debugging");
31573
- settle({ type: "reject", err: new Error("Timeout waiting for USB debugging") });
31574
- }, timeout2);
31575
- const cleanupTrackingClient = () => {
31576
- try {
31577
- tracker.end();
31578
- } catch {
31579
- }
31580
- trackingClient.on("error", () => {
31581
- });
31582
- };
31583
- const settle = (result) => {
31584
- if (settled) return;
31585
- settled = true;
31586
- clearTimeout(timeoutId);
31587
- cleanupTrackingClient();
31588
- if (result.type === "resolve") {
31589
- resolve(result.value);
31590
- } else {
31591
- logError(result.err.message);
31592
- reject(result.err);
31593
- }
31594
- };
31595
- const handleAddOrChange = (device2) => {
31596
- if (!this.matchesDeviceId(device2)) return;
31597
- if (device2.type === "unauthorized") {
31598
- logDetail("Device needs 'Always allow' authorization");
31599
- events.emit(USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW);
31600
- return;
31601
- }
31602
- if (device2.type === "device") {
31603
- logDetail("Device authorized");
31604
- events.emit(USB_DEBUGGING_EVENT_AUTHORIZED);
31605
- settle({ type: "resolve", value: true });
31606
- }
31607
- };
31608
- trackingClient.on("error", (err) => {
31609
- if (isConnectionErrorMessage(err)) {
31610
- logDetail(`Tracking client connection closed: ${err.message}`);
31611
- settle({ type: "resolve", value: false });
31612
- } else {
31613
- logError(`Tracking client error: ${err.message}`);
31614
- settle({ type: "reject", err });
31615
- }
31616
- });
31617
- tracker.on("error", (err) => {
31618
- if (isConnectionErrorMessage(err)) {
31619
- logDetail(`Tracker connection closed: ${err.message}`);
31620
- settle({ type: "resolve", value: false });
31621
- } else {
31622
- logError(`Tracker error: ${err.message}`);
31623
- settle({ type: "reject", err });
31624
- }
31625
- });
31626
- tracker.on("end", () => {
31627
- logDetail("Device tracking ended");
31628
- settle({ type: "resolve", value: false });
31629
- });
31630
- tracker.on("remove", (_) => {
31631
- logError("Device removed from tracker");
31632
- settle({
31633
- type: "reject",
31634
- err: new Error("Device removed while waiting for USB debugging")
31635
- });
31636
- });
31637
- tracker.on("add", handleAddOrChange);
31638
- tracker.on("change", handleAddOrChange);
31639
- });
31640
- })();
31641
- return { promise, events };
31591
+ if (device2.type === "device") {
31592
+ logDetail("Device authorized");
31593
+ eventEmitter.emit(USB_DEBUGGING_EVENT_AUTHORIZED, { deviceId: this.deviceId });
31594
+ }
31595
+ if (!device2.type) {
31596
+ logDetail("Device removed from tracker");
31597
+ eventEmitter.emit(USB_DEBUGGING_EVENT_OFF, { deviceId: this.deviceId });
31598
+ }
31599
+ });
31600
+ return () => tracker.end();
31642
31601
  }
31643
31602
  async startPortForward(serviceName) {
31644
31603
  if (this.devicePort) {
@@ -31671,6 +31630,7 @@ var readAll = import_adbkit.default.util.readAll;
31671
31630
  USB_DEBUGGING_EVENT_AUTHORIZED,
31672
31631
  USB_DEBUGGING_EVENT_NEEDS_ALWAYS_ALLOW,
31673
31632
  USB_DEBUGGING_EVENT_OFF,
31633
+ UsbDebuggingEventEmitter,
31674
31634
  readAll
31675
31635
  });
31676
31636
  //# sourceMappingURL=index.js.map