text: "use strict";
  
  Object.defineProperty(exports, "__esModule", {
      value: true
  });
  exports.getWindowsVm = exports.VmManager = undefined;
  
  var _bluebirdLst;
  
  function _load_bluebirdLst() {
      return _bluebirdLst = require("bluebird-lst");
  }
  
  let getWindowsVm = exports.getWindowsVm = (() => {
      var _ref = (0, (_bluebirdLst || _load_bluebirdLst()).coroutine)(function* (debugLogger) {
          const vmList = (yield (0, (_ParallelsVm || _load_ParallelsVm()).parseVmList)(debugLogger)).filter(function (it) {
              return it.os === "win-10";
          });
          if (vmList.length === 0) {
              throw new (_builderUtil || _load_builderUtil()).InvalidConfigurationError("Cannot find suitable Parallels Desktop virtual machine (Windows 10 is required)");
          }
          // prefer running or suspended vm
          return new (_ParallelsVm || _load_ParallelsVm()).ParallelsVmManager(vmList.find(function (it) {
              return it.state === "running";
          }) || vmList.find(function (it) {
              return it.state === "suspended";
          }) || vmList[0]);
      });
  
      return function getWindowsVm(_x) {
          return _ref.apply(this, arguments);
      };
  })();
  //# sourceMappingURL=vm.js.map
  
  
  var _builderUtil;
  
  function _load_builderUtil() {
      return _builderUtil = require("builder-util");
  }
  
  var _path = _interopRequireWildcard(require("path"));
  
  var _ParallelsVm;
  
  function _load_ParallelsVm() {
      return _ParallelsVm = require("./ParallelsVm");
  }
  
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
  
  class VmManager {
      get pathSep() {
          return _path.sep;
      }
      exec(file, args, options, isLogOutIfDebug = true) {
          return (0, (_builderUtil || _load_builderUtil()).exec)(file, args, options, isLogOutIfDebug);
      }
      spawn(file, args, options, extraOptions) {
          return (0, (_builderUtil || _load_builderUtil()).spawn)(file, args, options, extraOptions);
      }
      toVmFile(file) {
          return file;
      }
  }
  exports.VmManager = VmManager;