@zeppos/zeus-cli 1.6.0 → 1.6.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeppos/zeus-cli",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "description": "zeus mini-program tools",
5
5
  "main": "index.ts",
6
6
  "author": "zepp",
@@ -16,48 +16,50 @@
16
16
  "clean": "rm -rf node_modules && rm -rf dist"
17
17
  },
18
18
  "dependencies": {
19
- "dayjs": "^1.11.5",
19
+ "dayjs": "^1.11.13",
20
20
  "package-json": "^7.0.0",
21
21
  "qrcode-terminal": "^0.12.0",
22
22
  "vorpal": "^1.12.0",
23
- "yargs": "^17.5.1",
24
- "@zeppos/form-data": "^4.0.0",
25
- "@zeppos/zpm": "^3.1.0",
26
- "axios": "^0.27.2",
23
+ "yargs": "^17.7.2",
24
+ "@zeppos/zpm": "^3.1.1",
25
+ "axios": "^1.7.7",
27
26
  "chalk": "^4.1.2",
28
- "chokidar": "^3.5.3",
29
- "dotenv": "^16.0.1",
27
+ "chokidar": "^3.6.0",
28
+ "define-lazy-prop": "^2.0.0",
29
+ "dotenv": "^16.4.5",
30
30
  "findup-sync": "^5.0.0",
31
+ "form-data": "^4.0.1",
31
32
  "fs-extra": "^10.1.0",
32
33
  "get-port": "5.1.1",
33
- "inquirer": "^8.1.2",
34
+ "inquirer": "^8.2.6",
35
+ "is-docker": "^2.2.1",
36
+ "is-wsl": "^2.2.0",
34
37
  "lodash": "^4.17.21",
35
- "open": "^8.4.0",
36
38
  "parse-gitignore": "^2.0.0",
37
- "qs": "^6.11.0",
39
+ "qs": "^6.13.1",
38
40
  "rd": "^2.0.1",
39
41
  "shelljs": "^0.8.5",
40
- "socket.io-client": "^4.5.1",
42
+ "socket.io-client": "^4.8.1",
41
43
  "stoppable": "^1.1.0",
42
44
  "tweetnacl": "^1.0.3",
43
45
  "tweetnacl-util": "^0.15.1",
44
46
  "update-notifier": "5.1.0",
45
47
  "uuid": "^8.3.2",
46
- "ws": "^8.8.0",
47
- "yargs-parser": "^20.2.0",
48
- "yeoman-environment": "^3.9.1",
48
+ "ws": "^8.18.0",
49
+ "yargs-parser": "^20.2.9",
50
+ "yeoman-environment": "^3.19.3",
49
51
  "module-alias": "^2.2.2"
50
52
  },
51
53
  "devDependencies": {
52
- "@types/qrcode-terminal": "^0.12.0",
53
- "@types/yargs": "^17.0.10",
54
- "@types/findup-sync": "^4.0.2",
54
+ "@types/qrcode-terminal": "^0.12.2",
55
+ "@types/yargs": "^17.0.33",
56
+ "@types/findup-sync": "^4.0.5",
55
57
  "@types/fs-extra": "^9.0.13",
56
- "@types/parse-gitignore": "^1.0.0",
57
- "@types/stoppable": "^1.1.1",
58
+ "@types/parse-gitignore": "^1.0.2",
59
+ "@types/stoppable": "^1.1.3",
58
60
  "@types/update-notifier": "5.0.0",
59
- "@types/yargs-parser": "^21.0.0",
60
- "@types/yeoman-environment": "^2.10.7",
61
+ "@types/yargs-parser": "^21.0.3",
62
+ "@types/yeoman-environment": "^2.10.11",
61
63
  "rimraf": "^3.0.2"
62
64
  },
63
65
  "_moduleAliases": {
@@ -34,8 +34,8 @@ var getLoginURL = {
34
34
  test: 'https://user-testing.zepp.com/universalLogin/index.html#/login'
35
35
  };
36
36
  var getAnalyticsHost = {
37
- production: 'https://api-analytics.huami.com',
38
- test: 'https://api-analytics-test.huami.com'
37
+ production: 'https://api-analytics.zepp.com',
38
+ test: 'https://api-analytics-test.zepp.com'
39
39
  };
40
40
  exports.zeppFontIcon = [
41
41
  '',
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
14
  if (k2 === undefined) k2 = k;
4
15
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -68,7 +79,7 @@ var rd = __importStar(require("rd"));
68
79
  var fs_1 = __importDefault(require("fs"));
69
80
  var path = __importStar(require("path"));
70
81
  var fs_extra_1 = __importDefault(require("fs-extra"));
71
- var form_data_1 = __importDefault(require("@zeppos/form-data"));
82
+ var form_data_1 = __importDefault(require("form-data"));
72
83
  var index_1 = require("../index");
73
84
  var lodash_1 = require("lodash");
74
85
  var lodash_2 = require("lodash");
@@ -111,11 +122,15 @@ var buildSupportV3Config = function (workspace, mode, buildConfigOption) {
111
122
  if (mode === void 0) { mode = BuildMode.PROD; }
112
123
  if (buildConfigOption === void 0) { buildConfigOption = {}; }
113
124
  return __awaiter(void 0, void 0, void 0, function () {
114
- var _a, targets, _b, sources, buildOptions, _c, js2c, _d, js2bin, _e, png2vg, _f, prune, _g, compress, _h, ip, zabName_1, distDir_1, name_1, newName_1, error_1;
115
- return __generator(this, function (_j) {
116
- switch (_j.label) {
125
+ var _a, sources_1, _b, targets, _c, sources, buildOptions, _d, js2c, _e, js2bin, _f, png2vg, _g, prune, _h, compress, _j, ip, zabName_1, distDir_1, name_1, newName_1, error_1;
126
+ return __generator(this, function (_k) {
127
+ switch (_k.label) {
117
128
  case 0:
118
- _a = buildConfigOption.targets, targets = _a === void 0 ? [] : _a, _b = buildConfigOption.sources, sources = _b === void 0 ? [] : _b;
129
+ if (buildConfigOption.sources) {
130
+ _a = buildConfigOption.sources, sources_1 = _a === void 0 ? [] : _a;
131
+ buildConfigOption = __assign(__assign({}, buildConfigOption), { sources: Array.isArray(sources_1) ? sources_1 : [sources_1] });
132
+ }
133
+ _b = buildConfigOption.targets, targets = _b === void 0 ? [] : _b, _c = buildConfigOption.sources, sources = _c === void 0 ? [] : _c;
119
134
  buildOptions = {
120
135
  path: workspace,
121
136
  buildMode: mode,
@@ -124,7 +139,7 @@ var buildSupportV3Config = function (workspace, mode, buildConfigOption) {
124
139
  jsc: TransformType.Default
125
140
  };
126
141
  if ([BuildMode.PROD, BuildMode.PREVIEW].includes(mode)) {
127
- _c = buildConfigOption || {}, js2c = _c.js2c, _d = _c.js2bin, js2bin = _d === void 0 ? true : _d, _e = _c.png2vg, png2vg = _e === void 0 ? true : _e, _f = _c.prune, prune = _f === void 0 ? true : _f, _g = _c.compress, compress = _g === void 0 ? true : _g, _h = _c.ip, ip = _h === void 0 ? BuildMode.PROD === mode : _h;
142
+ _d = buildConfigOption || {}, js2c = _d.js2c, _e = _d.js2bin, js2bin = _e === void 0 ? true : _e, _f = _d.png2vg, png2vg = _f === void 0 ? true : _f, _g = _d.prune, prune = _g === void 0 ? true : _g, _h = _d.compress, compress = _h === void 0 ? true : _h, _j = _d.ip, ip = _j === void 0 ? BuildMode.PROD === mode : _j;
128
143
  js2c = (0, tools_1.booleanString)(js2c);
129
144
  js2bin = (0, tools_1.booleanString)(js2bin);
130
145
  js2c && Object.assign(buildOptions, { jsc: TransformType.C });
@@ -136,9 +151,9 @@ var buildSupportV3Config = function (workspace, mode, buildConfigOption) {
136
151
  ip: (0, tools_1.booleanString)(ip)
137
152
  });
138
153
  }
139
- _j.label = 1;
154
+ _k.label = 1;
140
155
  case 1:
141
- _j.trys.push([1, 6, , 7]);
156
+ _k.trys.push([1, 6, , 7]);
142
157
  if (targets.length) {
143
158
  index_1.logger.info("Start building package, targets: ".concat(targets.join(', '), "."));
144
159
  }
@@ -147,10 +162,10 @@ var buildSupportV3Config = function (workspace, mode, buildConfigOption) {
147
162
  }
148
163
  if (!(mode === BuildMode.DEV && (0, lodash_1.get)(buildConfigOption, '_[0]') !== 'install')) return [3, 3];
149
164
  return [4, (0, zpm_1.startWithoutDist)(buildOptions)];
150
- case 2: return [2, _j.sent()];
165
+ case 2: return [2, _k.sent()];
151
166
  case 3: return [4, (0, zpm_1.start)(buildOptions)];
152
167
  case 4:
153
- zabName_1 = _j.sent();
168
+ zabName_1 = _k.sent();
154
169
  if (!zabName_1) {
155
170
  index_1.logger.error("Build package error, the package name is ".concat(zabName_1));
156
171
  process.exit(1);
@@ -174,7 +189,7 @@ var buildSupportV3Config = function (workspace, mode, buildConfigOption) {
174
189
  return [2, zabName_1];
175
190
  case 5: return [3, 7];
176
191
  case 6:
177
- error_1 = _j.sent();
192
+ error_1 = _k.sent();
178
193
  index_1.logger.error(error_1);
179
194
  return [3, 7];
180
195
  case 7: return [2];
@@ -1,27 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -64,14 +41,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
64
41
  exports.__esModule = true;
65
42
  exports.fetchDevices = exports.DeviceScreenType = void 0;
66
43
  var axios_1 = __importDefault(require("axios"));
67
- var os = __importStar(require("os"));
68
- var path = __importStar(require("path"));
69
- var fs = __importStar(require("fs"));
44
+ var os_1 = __importDefault(require("os"));
45
+ var path_1 = __importDefault(require("path"));
46
+ var fs_1 = __importDefault(require("fs"));
70
47
  var fs_extra_1 = __importDefault(require("fs-extra"));
71
48
  var lodash_1 = require("lodash");
72
49
  var config_1 = require("../config");
50
+ var logger_1 = require("../logger");
51
+ var chalk_1 = __importDefault(require("chalk"));
73
52
  var accountEnv = (0, config_1.getLocalConfig)().account_env;
74
- var LOCAL_CACHE_DEVICE_PATH = path.resolve(os.homedir(), ".zepp/.zeus_devices");
53
+ var dayMS = 24 * 60 * 60 * 1000;
54
+ var LOCAL_CACHE_DEVICE_PATH = path_1["default"].resolve(os_1["default"].homedir(), ".zepp/.zeus_devices");
75
55
  var serverPath = accountEnv === 'test' ? 'https://upload-testing-cdn.huami.com/zeppos/devkit/zeus/devices.json' : 'https://upload-cdn.zepp.com/zeppos/devkit/zeus/devices.json';
76
56
  var serverPathBeta = 'https://upload-cdn.zepp.com/zeppos/devkit/zeus/devices.beta.json';
77
57
  var DeviceScreenType;
@@ -108,7 +88,7 @@ var fetchDevices = function () { return __awaiter(void 0, void 0, void 0, functi
108
88
  switch (_a.label) {
109
89
  case 0:
110
90
  localContent = {};
111
- if (fs.existsSync(LOCAL_CACHE_DEVICE_PATH)) {
91
+ if (fs_1["default"].existsSync(LOCAL_CACHE_DEVICE_PATH)) {
112
92
  try {
113
93
  localContent = fs_extra_1["default"].readJsonSync(LOCAL_CACHE_DEVICE_PATH);
114
94
  }
@@ -116,6 +96,7 @@ var fetchDevices = function () { return __awaiter(void 0, void 0, void 0, functi
116
96
  }
117
97
  now = Date.now().valueOf();
118
98
  if (!!((0, lodash_1.get)(localContent, 'expiredTime') > now)) return [3, 3];
99
+ logger_1.logger.log(chalk_1["default"].hex('#DB8C41')('Updating devices, waiting ...'));
119
100
  return [4, fetchDevicesData(serverPath)];
120
101
  case 1:
121
102
  prodDevices = _a.sent();
@@ -126,7 +107,7 @@ var fetchDevices = function () { return __awaiter(void 0, void 0, void 0, functi
126
107
  fs_extra_1["default"].writeJsonSync(LOCAL_CACHE_DEVICE_PATH, {
127
108
  devices: prodDevices,
128
109
  devices_beta: betaDevices,
129
- expiredTime: now + 2 * 60 * 60 * 1000
110
+ expiredTime: now + 3 * dayMS
130
111
  });
131
112
  }
132
113
  else {
@@ -40,7 +40,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
40
40
  };
41
41
  exports.__esModule = true;
42
42
  exports.logout = exports.login = void 0;
43
- var open_1 = __importDefault(require("open"));
43
+ var open_1 = __importDefault(require("./open"));
44
44
  var http_1 = __importDefault(require("http"));
45
45
  var url_1 = __importDefault(require("url"));
46
46
  var qs_1 = __importDefault(require("qs"));
@@ -0,0 +1,355 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
50
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
51
+ if (ar || !(i in from)) {
52
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
53
+ ar[i] = from[i];
54
+ }
55
+ }
56
+ return to.concat(ar || Array.prototype.slice.call(from));
57
+ };
58
+ var __importDefault = (this && this.__importDefault) || function (mod) {
59
+ return (mod && mod.__esModule) ? mod : { "default": mod };
60
+ };
61
+ exports.__esModule = true;
62
+ var path_1 = __importDefault(require("path"));
63
+ var child_process_1 = __importDefault(require("child_process"));
64
+ var fs_1 = require("fs");
65
+ var is_wsl_1 = __importDefault(require("is-wsl"));
66
+ var is_docker_1 = __importDefault(require("is-docker"));
67
+ var define_lazy_prop_1 = __importDefault(require("define-lazy-prop"));
68
+ var localXdgOpenPath = path_1["default"].join(__dirname, 'xdg-open');
69
+ var platform = process.platform, arch = process.arch;
70
+ var hasContainerEnv = function () { return __awaiter(void 0, void 0, void 0, function () {
71
+ var _a;
72
+ return __generator(this, function (_b) {
73
+ switch (_b.label) {
74
+ case 0:
75
+ _b.trys.push([0, 2, , 3]);
76
+ return [4, fs_1.promises.stat('/run/.containerenv')];
77
+ case 1:
78
+ _b.sent();
79
+ return [2, true];
80
+ case 2:
81
+ _a = _b.sent();
82
+ return [2, false];
83
+ case 3: return [2];
84
+ }
85
+ });
86
+ }); };
87
+ var cachedResult;
88
+ function isInsideContainer() {
89
+ if (cachedResult === undefined) {
90
+ cachedResult = hasContainerEnv() || (0, is_docker_1["default"])();
91
+ }
92
+ return cachedResult;
93
+ }
94
+ var getWslDrivesMountPoint = (function () {
95
+ var defaultMountPoint = '/mnt/';
96
+ var mountPoint;
97
+ return function () {
98
+ var _a;
99
+ return __awaiter(this, void 0, void 0, function () {
100
+ var configFilePath, isConfigFileExists, _b, configContent, configMountPoint;
101
+ return __generator(this, function (_c) {
102
+ switch (_c.label) {
103
+ case 0:
104
+ if (mountPoint) {
105
+ return [2, mountPoint];
106
+ }
107
+ configFilePath = '/etc/wsl.conf';
108
+ isConfigFileExists = false;
109
+ _c.label = 1;
110
+ case 1:
111
+ _c.trys.push([1, 3, , 4]);
112
+ return [4, fs_1.promises.access(configFilePath, fs_1.constants.F_OK)];
113
+ case 2:
114
+ _c.sent();
115
+ isConfigFileExists = true;
116
+ return [3, 4];
117
+ case 3:
118
+ _b = _c.sent();
119
+ return [3, 4];
120
+ case 4:
121
+ if (!isConfigFileExists) {
122
+ return [2, defaultMountPoint];
123
+ }
124
+ return [4, fs_1.promises.readFile(configFilePath, { encoding: 'utf8' })];
125
+ case 5:
126
+ configContent = _c.sent();
127
+ configMountPoint = /(?<!#.*)root\s*=\s*(?<mountPoint>.*)/g.exec(configContent);
128
+ if (!configMountPoint) {
129
+ return [2, defaultMountPoint];
130
+ }
131
+ mountPoint = (_a = configMountPoint.groups) === null || _a === void 0 ? void 0 : _a.mountPoint.trim();
132
+ mountPoint = (mountPoint === null || mountPoint === void 0 ? void 0 : mountPoint.endsWith('/')) ? mountPoint : "".concat(mountPoint, "/");
133
+ return [2, mountPoint];
134
+ }
135
+ });
136
+ });
137
+ };
138
+ })();
139
+ var pTryEach = function (array, mapper) { return __awaiter(void 0, void 0, void 0, function () {
140
+ var latestError, _i, array_1, item, error_1;
141
+ return __generator(this, function (_a) {
142
+ switch (_a.label) {
143
+ case 0:
144
+ _i = 0, array_1 = array;
145
+ _a.label = 1;
146
+ case 1:
147
+ if (!(_i < array_1.length)) return [3, 6];
148
+ item = array_1[_i];
149
+ _a.label = 2;
150
+ case 2:
151
+ _a.trys.push([2, 4, , 5]);
152
+ return [4, mapper(item)];
153
+ case 3: return [2, _a.sent()];
154
+ case 4:
155
+ error_1 = _a.sent();
156
+ latestError = error_1;
157
+ return [3, 5];
158
+ case 5:
159
+ _i++;
160
+ return [3, 1];
161
+ case 6: throw latestError;
162
+ }
163
+ });
164
+ }); };
165
+ var baseOpen = function (options) { return __awaiter(void 0, void 0, void 0, function () {
166
+ var _a, app, _b, appArguments, command, cliArguments, childProcessOptions, mountPoint, encodedArguments, isBundled, exeLocalXdgOpen, _c, useSystemXdgOpen, subprocess;
167
+ return __generator(this, function (_d) {
168
+ switch (_d.label) {
169
+ case 0:
170
+ options = __assign({ wait: false, background: false, newInstance: false, allowNonzeroExitCode: false }, options);
171
+ if (Array.isArray(options.app)) {
172
+ return [2, pTryEach(options.app, function (singleApp) { return baseOpen(__assign(__assign({}, options), { app: singleApp })); })];
173
+ }
174
+ _a = options.app || {}, app = _a.name, _b = _a.arguments, appArguments = _b === void 0 ? [] : _b;
175
+ appArguments = __spreadArray([], appArguments, true);
176
+ if (Array.isArray(app)) {
177
+ return [2, pTryEach(app, function (appName) { return baseOpen(__assign(__assign({}, options), { app: {
178
+ name: appName,
179
+ arguments: appArguments
180
+ } })); })];
181
+ }
182
+ cliArguments = [];
183
+ childProcessOptions = {};
184
+ if (!(platform === 'darwin')) return [3, 1];
185
+ command = 'open';
186
+ if (options.wait) {
187
+ cliArguments.push('--wait-apps');
188
+ }
189
+ if (options.background) {
190
+ cliArguments.push('--background');
191
+ }
192
+ if (options.newInstance) {
193
+ cliArguments.push('--new');
194
+ }
195
+ if (app) {
196
+ cliArguments.push('-a', app);
197
+ }
198
+ return [3, 10];
199
+ case 1:
200
+ if (!(platform === 'win32' || (is_wsl_1["default"] && !isInsideContainer() && !app))) return [3, 3];
201
+ return [4, getWslDrivesMountPoint()];
202
+ case 2:
203
+ mountPoint = _d.sent();
204
+ command = is_wsl_1["default"] ?
205
+ "".concat(mountPoint, "c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe") :
206
+ "".concat(process.env.SYSTEMROOT, "\\System32\\WindowsPowerShell\\v1.0\\powershell");
207
+ cliArguments.push('-NoProfile', '-NonInteractive', '–ExecutionPolicy', 'Bypass', '-EncodedCommand');
208
+ if (!is_wsl_1["default"]) {
209
+ childProcessOptions.windowsVerbatimArguments = true;
210
+ }
211
+ encodedArguments = ['Start'];
212
+ if (options.wait) {
213
+ encodedArguments.push('-Wait');
214
+ }
215
+ if (app) {
216
+ encodedArguments.push("\"`\"".concat(app, "`\"\""), '-ArgumentList');
217
+ if (options.target) {
218
+ appArguments.unshift(options.target);
219
+ }
220
+ }
221
+ else if (options.target) {
222
+ encodedArguments.push("\"".concat(options.target, "\""));
223
+ }
224
+ if (appArguments.length > 0) {
225
+ appArguments = appArguments.map(function (arg) { return "\"`\"".concat(arg, "`\"\""); });
226
+ encodedArguments.push(appArguments.join(','));
227
+ }
228
+ options.target = Buffer.from(encodedArguments.join(' '), 'utf16le').toString('base64');
229
+ return [3, 10];
230
+ case 3:
231
+ if (!app) return [3, 4];
232
+ command = app;
233
+ return [3, 9];
234
+ case 4:
235
+ isBundled = !__dirname || __dirname === '/';
236
+ exeLocalXdgOpen = false;
237
+ _d.label = 5;
238
+ case 5:
239
+ _d.trys.push([5, 7, , 8]);
240
+ return [4, fs_1.promises.access(localXdgOpenPath, fs_1.constants.X_OK)];
241
+ case 6:
242
+ _d.sent();
243
+ exeLocalXdgOpen = true;
244
+ return [3, 8];
245
+ case 7:
246
+ _c = _d.sent();
247
+ return [3, 8];
248
+ case 8:
249
+ useSystemXdgOpen = process.versions.electron ||
250
+ platform === 'android' || isBundled || !exeLocalXdgOpen;
251
+ command = useSystemXdgOpen ? 'xdg-open' : localXdgOpenPath;
252
+ _d.label = 9;
253
+ case 9:
254
+ if (appArguments.length > 0) {
255
+ cliArguments.push.apply(cliArguments, appArguments);
256
+ }
257
+ if (!options.wait) {
258
+ childProcessOptions.stdio = 'ignore';
259
+ childProcessOptions.detached = true;
260
+ }
261
+ _d.label = 10;
262
+ case 10:
263
+ if (options.target) {
264
+ cliArguments.push(options.target);
265
+ }
266
+ if (platform === 'darwin' && appArguments.length > 0) {
267
+ cliArguments.push.apply(cliArguments, __spreadArray(['--args'], appArguments, false));
268
+ }
269
+ subprocess = child_process_1["default"].spawn(command, cliArguments, childProcessOptions);
270
+ if (options.wait) {
271
+ return [2, new Promise(function (resolve, reject) {
272
+ subprocess.once('error', reject);
273
+ subprocess.once('close', function (exitCode) {
274
+ if (!options.allowNonzeroExitCode && exitCode > 0) {
275
+ reject(new Error("Exited with code ".concat(exitCode)));
276
+ return;
277
+ }
278
+ resolve(subprocess);
279
+ });
280
+ })];
281
+ }
282
+ subprocess.unref();
283
+ return [2, subprocess];
284
+ }
285
+ });
286
+ }); };
287
+ var open = function (target, options) {
288
+ if (options === void 0) { options = {}; }
289
+ if (typeof target !== 'string') {
290
+ throw new TypeError('Expected a `target`');
291
+ }
292
+ return baseOpen(__assign(__assign({}, options), { target: target }));
293
+ };
294
+ var openApp = function (name, options) {
295
+ if (typeof name !== 'string') {
296
+ throw new TypeError('Expected a `name`');
297
+ }
298
+ var _a = (options || {}).arguments, appArguments = _a === void 0 ? [] : _a;
299
+ if (appArguments !== undefined && appArguments !== null && !Array.isArray(appArguments)) {
300
+ throw new TypeError('Expected `appArguments` as Array type');
301
+ }
302
+ return baseOpen(__assign(__assign({}, options), { app: {
303
+ name: name,
304
+ arguments: appArguments
305
+ } }));
306
+ };
307
+ function detectArchBinary(binary) {
308
+ if (typeof binary === 'string' || Array.isArray(binary)) {
309
+ return binary;
310
+ }
311
+ var _a = binary, _b = arch, archBinary = _a[_b];
312
+ if (!archBinary) {
313
+ throw new Error("".concat(arch, " is not supported"));
314
+ }
315
+ return archBinary;
316
+ }
317
+ function detectPlatformBinary(_a, _b) {
318
+ var _c = platform, platformBinary = _a[_c];
319
+ var wsl = _b.wsl;
320
+ if (wsl && is_wsl_1["default"]) {
321
+ return detectArchBinary(wsl);
322
+ }
323
+ if (!platformBinary) {
324
+ throw new Error("".concat(platform, " is not supported"));
325
+ }
326
+ return detectArchBinary(platformBinary);
327
+ }
328
+ var apps = {};
329
+ (0, define_lazy_prop_1["default"])(apps, 'chrome', function () { return detectPlatformBinary({
330
+ darwin: 'google chrome',
331
+ win32: 'chrome',
332
+ linux: ['google-chrome', 'google-chrome-stable', 'chromium']
333
+ }, {
334
+ wsl: {
335
+ ia32: '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe',
336
+ x64: ['/mnt/c/Program Files/Google/Chrome/Application/chrome.exe', '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe']
337
+ }
338
+ }); });
339
+ (0, define_lazy_prop_1["default"])(apps, 'firefox', function () { return detectPlatformBinary({
340
+ darwin: 'firefox',
341
+ win32: 'C:\\Program Files\\Mozilla Firefox\\firefox.exe',
342
+ linux: 'firefox'
343
+ }, {
344
+ wsl: '/mnt/c/Program Files/Mozilla Firefox/firefox.exe'
345
+ }); });
346
+ (0, define_lazy_prop_1["default"])(apps, 'edge', function () { return detectPlatformBinary({
347
+ darwin: 'microsoft edge',
348
+ win32: 'msedge',
349
+ linux: ['microsoft-edge', 'microsoft-edge-dev']
350
+ }, {
351
+ wsl: '/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'
352
+ }); });
353
+ open.apps = apps;
354
+ open.openApp = openApp;
355
+ exports["default"] = open;