adb.js 9.03 KB
"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.DEFAULT_ADB_PORT = exports.ADB = exports.default = void 0;

require("source-map-support/register");

var _lodash = _interopRequireDefault(require("lodash"));

var _os = _interopRequireDefault(require("os"));

var _path = _interopRequireDefault(require("path"));

var _index = _interopRequireDefault(require("./tools/index.js"));

var _helpers = require("./helpers");

const DEFAULT_ADB_PORT = 5037;
exports.DEFAULT_ADB_PORT = DEFAULT_ADB_PORT;

const JAR_PATH = _path.default.resolve(_helpers.rootDir, 'jars');

const DEFAULT_OPTS = {
  sdkRoot: null,
  udid: null,
  appDeviceReadyTimeout: null,
  useKeystore: null,
  keystorePath: null,
  keystorePassword: null,
  keyAlias: null,
  keyPassword: null,
  executable: {
    path: 'adb',
    defaultArgs: []
  },
  tmpDir: _os.default.tmpdir(),
  curDeviceId: null,
  emulatorPort: null,
  logcat: null,
  binaries: {},
  instrumentProc: null,
  suppressKillServer: null,
  jars: {},
  helperJarPath: JAR_PATH,
  adbPort: DEFAULT_ADB_PORT,
  adbExecTimeout: _helpers.DEFAULT_ADB_EXEC_TIMEOUT,
  remoteAppsCacheLimit: 10,
  buildToolsVersion: null,
  allowOfflineDevices: false
};

class ADB {
  constructor(opts = {}) {
    if (_lodash.default.isUndefined(opts.sdkRoot)) {
      opts.sdkRoot = process.env.ANDROID_HOME || process.env.ANDROID_SDK_ROOT || '';
    }

    Object.assign(this, opts);

    _lodash.default.defaultsDeep(this, _lodash.default.cloneDeep(DEFAULT_OPTS));

    if (opts.remoteAdbHost) {
      this.executable.defaultArgs.push('-H', opts.remoteAdbHost);
    }

    if (opts.remoteAdbPort) {
      this.adbPort = opts.remoteAdbPort;
    }

    this.executable.defaultArgs.push('-P', this.adbPort);
    this.initJars();
  }

  initJars() {
    const tempJars = ['sign.jar', 'verify.jar'];

    for (const jarName of tempJars) {
      this.jars[jarName] = _path.default.resolve(JAR_PATH, jarName);
    }
  }

}

exports.ADB = ADB;

ADB.createADB = async function createADB(opts) {
  let adb = new ADB(opts);
  await adb.getAdbWithCorrectAdbPath();
  return adb;
};

for (const [fnName, fn] of _lodash.default.toPairs(_index.default)) {
  ADB.prototype[fnName] = fn;
}

var _default = ADB;
exports.default = _default;require('source-map-support').install();


//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9hZGIuanMiXSwibmFtZXMiOlsiREVGQVVMVF9BREJfUE9SVCIsIkpBUl9QQVRIIiwicGF0aCIsInJlc29sdmUiLCJyb290RGlyIiwiREVGQVVMVF9PUFRTIiwic2RrUm9vdCIsInVkaWQiLCJhcHBEZXZpY2VSZWFkeVRpbWVvdXQiLCJ1c2VLZXlzdG9yZSIsImtleXN0b3JlUGF0aCIsImtleXN0b3JlUGFzc3dvcmQiLCJrZXlBbGlhcyIsImtleVBhc3N3b3JkIiwiZXhlY3V0YWJsZSIsImRlZmF1bHRBcmdzIiwidG1wRGlyIiwib3MiLCJ0bXBkaXIiLCJjdXJEZXZpY2VJZCIsImVtdWxhdG9yUG9ydCIsImxvZ2NhdCIsImJpbmFyaWVzIiwiaW5zdHJ1bWVudFByb2MiLCJzdXBwcmVzc0tpbGxTZXJ2ZXIiLCJqYXJzIiwiaGVscGVySmFyUGF0aCIsImFkYlBvcnQiLCJhZGJFeGVjVGltZW91dCIsIkRFRkFVTFRfQURCX0VYRUNfVElNRU9VVCIsInJlbW90ZUFwcHNDYWNoZUxpbWl0IiwiYnVpbGRUb29sc1ZlcnNpb24iLCJhbGxvd09mZmxpbmVEZXZpY2VzIiwiQURCIiwiY29uc3RydWN0b3IiLCJvcHRzIiwiXyIsImlzVW5kZWZpbmVkIiwicHJvY2VzcyIsImVudiIsIkFORFJPSURfSE9NRSIsIkFORFJPSURfU0RLX1JPT1QiLCJPYmplY3QiLCJhc3NpZ24iLCJkZWZhdWx0c0RlZXAiLCJjbG9uZURlZXAiLCJyZW1vdGVBZGJIb3N0IiwicHVzaCIsInJlbW90ZUFkYlBvcnQiLCJpbml0SmFycyIsInRlbXBKYXJzIiwiamFyTmFtZSIsImNyZWF0ZUFEQiIsImFkYiIsImdldEFkYldpdGhDb3JyZWN0QWRiUGF0aCIsImZuTmFtZSIsImZuIiwidG9QYWlycyIsIm1ldGhvZHMiLCJwcm90b3R5cGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsZ0JBQWdCLEdBQUcsSUFBekI7OztBQUNBLE1BQU1DLFFBQVEsR0FBR0MsY0FBS0MsT0FBTCxDQUFhQyxnQkFBYixFQUFzQixNQUF0QixDQUFqQjs7QUFDQSxNQUFNQyxZQUFZLEdBQUc7QUFDbkJDLEVBQUFBLE9BQU8sRUFBRSxJQURVO0FBRW5CQyxFQUFBQSxJQUFJLEVBQUUsSUFGYTtBQUduQkMsRUFBQUEscUJBQXFCLEVBQUUsSUFISjtBQUluQkMsRUFBQUEsV0FBVyxFQUFFLElBSk07QUFLbkJDLEVBQUFBLFlBQVksRUFBRSxJQUxLO0FBTW5CQyxFQUFBQSxnQkFBZ0IsRUFBRSxJQU5DO0FBT25CQyxFQUFBQSxRQUFRLEVBQUUsSUFQUztBQVFuQkMsRUFBQUEsV0FBVyxFQUFFLElBUk07QUFTbkJDLEVBQUFBLFVBQVUsRUFBRTtBQUFDWixJQUFBQSxJQUFJLEVBQUUsS0FBUDtBQUFjYSxJQUFBQSxXQUFXLEVBQUU7QUFBM0IsR0FUTztBQVVuQkMsRUFBQUEsTUFBTSxFQUFFQyxZQUFHQyxNQUFILEVBVlc7QUFXbkJDLEVBQUFBLFdBQVcsRUFBRSxJQVhNO0FBWW5CQyxFQUFBQSxZQUFZLEVBQUUsSUFaSztBQWFuQkMsRUFBQUEsTUFBTSxFQUFFLElBYlc7QUFjbkJDLEVBQUFBLFFBQVEsRUFBRSxFQWRTO0FBZW5CQyxFQUFBQSxjQUFjLEVBQUUsSUFmRztBQWdCbkJDLEVBQUFBLGtCQUFrQixFQUFFLElBaEJEO0FBaUJuQkMsRUFBQUEsSUFBSSxFQUFFLEVBakJhO0FBa0JuQkMsRUFBQUEsYUFBYSxFQUFFekIsUUFsQkk7QUFtQm5CMEIsRUFBQUEsT0FBTyxFQUFFM0IsZ0JBbkJVO0FBb0JuQjRCLEVBQUFBLGNBQWMsRUFBRUMsaUNBcEJHO0FBcUJuQkMsRUFBQUEsb0JBQW9CLEVBQUUsRUFyQkg7QUFzQm5CQyxFQUFBQSxpQkFBaUIsRUFBRSxJQXRCQTtBQXVCbkJDLEVBQUFBLG1CQUFtQixFQUFFO0FBdkJGLENBQXJCOztBQTBCQSxNQUFNQyxHQUFOLENBQVU7QUFDUkMsRUFBQUEsV0FBVyxDQUFFQyxJQUFJLEdBQUcsRUFBVCxFQUFhO0FBQ3RCLFFBQUlDLGdCQUFFQyxXQUFGLENBQWNGLElBQUksQ0FBQzdCLE9BQW5CLENBQUosRUFBaUM7QUFDL0I2QixNQUFBQSxJQUFJLENBQUM3QixPQUFMLEdBQWVnQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsWUFBWixJQUE0QkYsT0FBTyxDQUFDQyxHQUFSLENBQVlFLGdCQUF4QyxJQUE0RCxFQUEzRTtBQUNEOztBQUVEQyxJQUFBQSxNQUFNLENBQUNDLE1BQVAsQ0FBYyxJQUFkLEVBQW9CUixJQUFwQjs7QUFDQUMsb0JBQUVRLFlBQUYsQ0FBZSxJQUFmLEVBQXFCUixnQkFBRVMsU0FBRixDQUFZeEMsWUFBWixDQUFyQjs7QUFFQSxRQUFJOEIsSUFBSSxDQUFDVyxhQUFULEVBQXdCO0FBQ3RCLFdBQUtoQyxVQUFMLENBQWdCQyxXQUFoQixDQUE0QmdDLElBQTVCLENBQWlDLElBQWpDLEVBQXVDWixJQUFJLENBQUNXLGFBQTVDO0FBQ0Q7O0FBR0QsUUFBSVgsSUFBSSxDQUFDYSxhQUFULEVBQXdCO0FBQ3RCLFdBQUtyQixPQUFMLEdBQWVRLElBQUksQ0FBQ2EsYUFBcEI7QUFDRDs7QUFDRCxTQUFLbEMsVUFBTCxDQUFnQkMsV0FBaEIsQ0FBNEJnQyxJQUE1QixDQUFpQyxJQUFqQyxFQUF1QyxLQUFLcEIsT0FBNUM7QUFFQSxTQUFLc0IsUUFBTDtBQUNEOztBQUVEQSxFQUFBQSxRQUFRLEdBQUk7QUFDVixVQUFNQyxRQUFRLEdBQUcsQ0FBQyxVQUFELEVBQWEsWUFBYixDQUFqQjs7QUFDQSxTQUFLLE1BQU1DLE9BQVgsSUFBc0JELFFBQXRCLEVBQWdDO0FBQzlCLFdBQUt6QixJQUFMLENBQVUwQixPQUFWLElBQXFCakQsY0FBS0MsT0FBTCxDQUFhRixRQUFiLEVBQXVCa0QsT0FBdkIsQ0FBckI7QUFDRDtBQUNGOztBQTNCTzs7OztBQThCVmxCLEdBQUcsQ0FBQ21CLFNBQUosR0FBZ0IsZUFBZUEsU0FBZixDQUEwQmpCLElBQTFCLEVBQWdDO0FBQzlDLE1BQUlrQixHQUFHLEdBQUcsSUFBSXBCLEdBQUosQ0FBUUUsSUFBUixDQUFWO0FBQ0EsUUFBTWtCLEdBQUcsQ0FBQ0Msd0JBQUosRUFBTjtBQUNBLFNBQU9ELEdBQVA7QUFDRCxDQUpEOztBQU9BLEtBQUssTUFBTSxDQUFDRSxNQUFELEVBQVNDLEVBQVQsQ0FBWCxJQUEyQnBCLGdCQUFFcUIsT0FBRixDQUFVQyxjQUFWLENBQTNCLEVBQStDO0FBQzdDekIsRUFBQUEsR0FBRyxDQUFDMEIsU0FBSixDQUFjSixNQUFkLElBQXdCQyxFQUF4QjtBQUNEOztlQUVjdkIsRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgbWV0aG9kcyBmcm9tICcuL3Rvb2xzL2luZGV4LmpzJztcbmltcG9ydCB7IHJvb3REaXIsIERFRkFVTFRfQURCX0VYRUNfVElNRU9VVCB9IGZyb20gJy4vaGVscGVycyc7XG5cbmNvbnN0IERFRkFVTFRfQURCX1BPUlQgPSA1MDM3O1xuY29uc3QgSkFSX1BBVEggPSBwYXRoLnJlc29sdmUocm9vdERpciwgJ2phcnMnKTtcbmNvbnN0IERFRkFVTFRfT1BUUyA9IHtcbiAgc2RrUm9vdDogbnVsbCxcbiAgdWRpZDogbnVsbCxcbiAgYXBwRGV2aWNlUmVhZHlUaW1lb3V0OiBudWxsLFxuICB1c2VLZXlzdG9yZTogbnVsbCxcbiAga2V5c3RvcmVQYXRoOiBudWxsLFxuICBrZXlzdG9yZVBhc3N3b3JkOiBudWxsLFxuICBrZXlBbGlhczogbnVsbCxcbiAga2V5UGFzc3dvcmQ6IG51bGwsXG4gIGV4ZWN1dGFibGU6IHtwYXRoOiAnYWRiJywgZGVmYXVsdEFyZ3M6IFtdfSxcbiAgdG1wRGlyOiBvcy50bXBkaXIoKSxcbiAgY3VyRGV2aWNlSWQ6IG51bGwsXG4gIGVtdWxhdG9yUG9ydDogbnVsbCxcbiAgbG9nY2F0OiBudWxsLFxuICBiaW5hcmllczoge30sXG4gIGluc3RydW1lbnRQcm9jOiBudWxsLFxuICBzdXBwcmVzc0tpbGxTZXJ2ZXI6IG51bGwsXG4gIGphcnM6IHt9LFxuICBoZWxwZXJKYXJQYXRoOiBKQVJfUEFUSCxcbiAgYWRiUG9ydDogREVGQVVMVF9BREJfUE9SVCxcbiAgYWRiRXhlY1RpbWVvdXQ6IERFRkFVTFRfQURCX0VYRUNfVElNRU9VVCxcbiAgcmVtb3RlQXBwc0NhY2hlTGltaXQ6IDEwLFxuICBidWlsZFRvb2xzVmVyc2lvbjogbnVsbCxcbiAgYWxsb3dPZmZsaW5lRGV2aWNlczogZmFsc2UsXG59O1xuXG5jbGFzcyBBREIge1xuICBjb25zdHJ1Y3RvciAob3B0cyA9IHt9KSB7XG4gICAgaWYgKF8uaXNVbmRlZmluZWQob3B0cy5zZGtSb290KSkge1xuICAgICAgb3B0cy5zZGtSb290ID0gcHJvY2Vzcy5lbnYuQU5EUk9JRF9IT01FIHx8IHByb2Nlc3MuZW52LkFORFJPSURfU0RLX1JPT1QgfHwgJyc7XG4gICAgfVxuXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBvcHRzKTtcbiAgICBfLmRlZmF1bHRzRGVlcCh0aGlzLCBfLmNsb25lRGVlcChERUZBVUxUX09QVFMpKTtcblxuICAgIGlmIChvcHRzLnJlbW90ZUFkYkhvc3QpIHtcbiAgICAgIHRoaXMuZXhlY3V0YWJsZS5kZWZhdWx0QXJncy5wdXNoKCctSCcsIG9wdHMucmVtb3RlQWRiSG9zdCk7XG4gICAgfVxuICAgIC8vIFRPRE8gZmlndXJlIG91dCB3aHkgd2UgaGF2ZSB0aGlzIG9wdGlvbiBhcyBpdCBkb2VzIG5vdCBhcHBlYXIgdG8gYmVcbiAgICAvLyB1c2VkIGFueXdoZXJlLiBQcm9iYWJseSBkZXByZWNhdGUgaW4gZmF2b3Igb2Ygc2ltcGxlIG9wdHMuYWRiUG9ydFxuICAgIGlmIChvcHRzLnJlbW90ZUFkYlBvcnQpIHtcbiAgICAgIHRoaXMuYWRiUG9ydCA9IG9wdHMucmVtb3RlQWRiUG9ydDtcbiAgICB9XG4gICAgdGhpcy5leGVjdXRhYmxlLmRlZmF1bHRBcmdzLnB1c2goJy1QJywgdGhpcy5hZGJQb3J0KTtcblxuICAgIHRoaXMuaW5pdEphcnMoKTtcbiAgfVxuXG4gIGluaXRKYXJzICgpIHtcbiAgICBjb25zdCB0ZW1wSmFycyA9IFsnc2lnbi5qYXInLCAndmVyaWZ5LmphciddO1xuICAgIGZvciAoY29uc3QgamFyTmFtZSBvZiB0ZW1wSmFycykge1xuICAgICAgdGhpcy5qYXJzW2phck5hbWVdID0gcGF0aC5yZXNvbHZlKEpBUl9QQVRILCBqYXJOYW1lKTtcbiAgICB9XG4gIH1cbn1cblxuQURCLmNyZWF0ZUFEQiA9IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFEQiAob3B0cykge1xuICBsZXQgYWRiID0gbmV3IEFEQihvcHRzKTtcbiAgYXdhaXQgYWRiLmdldEFkYldpdGhDb3JyZWN0QWRiUGF0aCgpO1xuICByZXR1cm4gYWRiO1xufTtcblxuLy8gYWRkIGFsbCB0aGUgbWV0aG9kcyB0byB0aGUgQURCIHByb3RvdHlwZVxuZm9yIChjb25zdCBbZm5OYW1lLCBmbl0gb2YgXy50b1BhaXJzKG1ldGhvZHMpKSB7XG4gIEFEQi5wcm90b3R5cGVbZm5OYW1lXSA9IGZuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBBREI7XG5leHBvcnQgeyBBREIsIERFRkFVTFRfQURCX1BPUlQgfTtcbiJdLCJmaWxlIjoibGliL2FkYi5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9