@zeppos/zeus-cli 1.5.11 → 1.5.13

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/bin/main.js CHANGED
@@ -63,11 +63,14 @@ var proxy = function (args) { return __awaiter(void 0, void 0, void 0, function
63
63
  var res;
64
64
  return __generator(this, function (_a) {
65
65
  switch (_a.label) {
66
- case 0: return [4, (0, pre_check_1.checkVersion)()];
66
+ case 0: return [4, (0, pre_check_1.clearDevicesCache)()];
67
67
  case 1:
68
68
  _a.sent();
69
- return [4, (0, pre_check_1.initVariable)(args)];
69
+ return [4, (0, pre_check_1.checkVersion)()];
70
70
  case 2:
71
+ _a.sent();
72
+ return [4, (0, pre_check_1.initVariable)(args)];
73
+ case 3:
71
74
  res = _a.sent();
72
75
  Object.assign(context, res);
73
76
  (0, zeppos_app_utils_1.HM_Analytics)("ZEPP_CLI_".concat(lodash_1["default"].toUpper(lodash_1["default"].get(args.argv, '_[0]')), "_C"));
package/modules/build.js CHANGED
@@ -147,7 +147,7 @@ var chooseBuildTargetsV3Config = function (mode, args) {
147
147
  zeppos_app_utils_1.logger.warn("'".concat(target, "' is not a valid device, it must be one of ").concat(JSON.stringify(deviceNames)));
148
148
  }
149
149
  if (!isValidDevice) return [3, 1];
150
- _a = target;
150
+ _a = { device: target };
151
151
  return [3, 3];
152
152
  case 1: return [4, inquirer_1["default"].prompt([
153
153
  {
@@ -264,31 +264,32 @@ var chooseBuildTargetsV2Config = function (mode, args) {
264
264
  var chooseBuildPackages = function (mode, args) {
265
265
  if (mode === void 0) { mode = 'development'; }
266
266
  return __awaiter(void 0, void 0, void 0, function () {
267
- var configVersion, result, _a, _b, _c, _d, _e, _f;
268
- var _g;
269
- return __generator(this, function (_h) {
270
- switch (_h.label) {
267
+ var configVersion, result, _a, sources, _b, _c, _d, _e, _f, _g;
268
+ var _h;
269
+ return __generator(this, function (_j) {
270
+ switch (_j.label) {
271
271
  case 0:
272
272
  configVersion = (0, lodash_1.toLower)((0, lodash_1.get)(appJsonContent, 'configVersion'));
273
273
  result = {};
274
274
  if (!(configVersion === 'v3')) return [3, 3];
275
- if (!(mode !== BuildMode.PROD)) return [3, 2];
276
- _b = (_a = Object).assign;
277
- _c = [result];
275
+ _a = args.sources, sources = _a === void 0 ? [] : _a;
276
+ if (!(mode !== BuildMode.PROD && (sources.length <= 0))) return [3, 2];
277
+ _c = (_b = Object).assign;
278
+ _d = [result];
278
279
  return [4, chooseBuildTargetsV3Config(mode, args)];
279
280
  case 1:
280
- _b.apply(_a, _c.concat([_h.sent()]));
281
- _h.label = 2;
281
+ _c.apply(_b, _d.concat([_j.sent()]));
282
+ _j.label = 2;
282
283
  case 2: return [3, 5];
283
284
  case 3:
284
- _e = (_d = Object).assign;
285
- _f = [result];
286
- _g = {};
285
+ _f = (_e = Object).assign;
286
+ _g = [result];
287
+ _h = {};
287
288
  return [4, chooseBuildTargetsV2Config(mode, args)];
288
289
  case 4:
289
- _e.apply(_d, _f.concat([(_g.targets = _h.sent(),
290
- _g)]));
291
- _h.label = 5;
290
+ _f.apply(_e, _g.concat([(_h.targets = _j.sent(),
291
+ _h)]));
292
+ _j.label = 5;
292
293
  case 5: return [2, result];
293
294
  }
294
295
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeppos/zeus-cli",
3
- "version": "1.5.11",
3
+ "version": "1.5.13",
4
4
  "description": "zeus mini-program tools",
5
5
  "main": "index.ts",
6
6
  "author": "zepp",
@@ -21,7 +21,7 @@
21
21
  "qrcode-terminal": "^0.12.0",
22
22
  "vorpal": "^1.12.0",
23
23
  "yargs": "^17.5.1",
24
- "@zeppos/zpm": "^3.0.21",
24
+ "@zeppos/zpm": "^3.0.23",
25
25
  "axios": "^0.27.2",
26
26
  "chalk": "^4.1.2",
27
27
  "chokidar": "^3.5.3",
@@ -39,6 +39,8 @@
39
39
  "shelljs": "^0.8.5",
40
40
  "socket.io-client": "^4.5.1",
41
41
  "stoppable": "^1.1.0",
42
+ "tweetnacl": "^1.0.3",
43
+ "tweetnacl-util": "^0.15.1",
42
44
  "update-notifier": "5.1.0",
43
45
  "uuid": "^8.3.2",
44
46
  "ws": "^8.8.0",
@@ -5,12 +5,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  exports.__esModule = true;
6
6
  exports.getDeviceConf = exports.DeviceScreenType = void 0;
7
7
  var lodash_1 = require("lodash");
8
+ var tweetnacl_util_1 = require("tweetnacl-util");
9
+ var tweetnacl_1 = require("tweetnacl");
8
10
  var path_1 = __importDefault(require("path"));
9
11
  var os_1 = __importDefault(require("os"));
10
12
  var fs_1 = __importDefault(require("fs"));
11
13
  var fs_extra_1 = __importDefault(require("fs-extra"));
12
14
  var tools_1 = require("../tools/tools");
13
15
  var LOCAL_CACHE_DEVICE_PATH = path_1["default"].resolve(os_1["default"].homedir(), ".zepp/.zeus_devices");
16
+ var pkgInfo = require(path_1["default"].join(__dirname, '../../package.json'));
17
+ var isBeta = pkgInfo.dependencies['@zeppos/zpm'].indexOf('-beta') !== -1;
18
+ var u8Array = function (str) { return new Uint8Array(str.split(',').map(function (s) { return parseInt(s, 10); })); };
19
+ var sharedKey = '18,53,81,26,124,228,216,202,47,58,73,19,245,186,86,169,180,116,161,250,36,203,127,120,133,126,203,121,143,100,17,44';
20
+ var decrypt = function (str, key) {
21
+ var messageWithNonceAsUint8Array = (0, tweetnacl_util_1.decodeBase64)(str);
22
+ var nonce = messageWithNonceAsUint8Array.slice(0, tweetnacl_1.box.nonceLength);
23
+ var message = messageWithNonceAsUint8Array.slice(tweetnacl_1.box.nonceLength, str.length);
24
+ var decrypted = tweetnacl_1.box.open.after(message, nonce, key);
25
+ if (!decrypted) {
26
+ throw new Error('Could not decrypt message');
27
+ }
28
+ return (0, tweetnacl_util_1.encodeUTF8)(decrypted);
29
+ };
14
30
  var DeviceScreenType;
15
31
  (function (DeviceScreenType) {
16
32
  DeviceScreenType["R"] = "r";
@@ -22,6 +38,13 @@ var shapeMap = {
22
38
  round: DeviceScreenType.R,
23
39
  bar: DeviceScreenType.B
24
40
  };
41
+ function getDeviceList(localContent) {
42
+ var deviceChannel = isBeta ? 'devices_beta' : 'devices';
43
+ var deviceList = (0, lodash_1.get)(localContent, deviceChannel, []);
44
+ if (!isBeta)
45
+ return deviceList;
46
+ return deviceList.map(function (d) { return JSON.parse(decrypt(d, u8Array(sharedKey))); });
47
+ }
25
48
  function getDeviceInfo() {
26
49
  var localContent = {};
27
50
  if (fs_1["default"].existsSync(LOCAL_CACHE_DEVICE_PATH)) {
@@ -30,7 +53,7 @@ function getDeviceInfo() {
30
53
  }
31
54
  catch (_e) { }
32
55
  }
33
- var deviceList = (0, lodash_1.get)(localContent, 'devices', []);
56
+ var deviceList = getDeviceList(localContent);
34
57
  var deviceGroup = (0, lodash_1.groupBy)(deviceList, 'productName');
35
58
  var deviceInfo = {};
36
59
  Object.values(deviceGroup).forEach(function (devices) {
@@ -22,6 +22,42 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __generator = (this && this.__generator) || function (thisArg, body) {
35
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
+ function verb(n) { return function (v) { return step([n, v]); }; }
38
+ function step(op) {
39
+ if (f) throw new TypeError("Generator is already executing.");
40
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
41
+ 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;
42
+ if (y = 0, t) op = [op[0] & 2, t.value];
43
+ switch (op[0]) {
44
+ case 0: case 1: t = op; break;
45
+ case 4: _.label++; return { value: op[1], done: false };
46
+ case 5: _.label++; y = op[1]; op = [0]; continue;
47
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
+ default:
49
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
+ if (t[2]) _.ops.pop();
54
+ _.trys.pop(); continue;
55
+ }
56
+ op = body.call(thisArg, _);
57
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
+ }
60
+ };
25
61
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
62
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
63
  };
@@ -37,43 +73,66 @@ var config_1 = require("../config");
37
73
  var accountEnv = (0, config_1.getLocalConfig)().account_env;
38
74
  var LOCAL_CACHE_DEVICE_PATH = path.resolve(os.homedir(), ".zepp/.zeus_devices");
39
75
  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
+ var serverPathBeta = 'https://upload-cdn.zepp.com/zeppos/devkit/zeus/devices.beta.json';
40
77
  var DeviceScreenType;
41
78
  (function (DeviceScreenType) {
42
79
  DeviceScreenType["R"] = "r";
43
80
  DeviceScreenType["S"] = "s";
44
81
  DeviceScreenType["B"] = "b";
45
82
  })(DeviceScreenType = exports.DeviceScreenType || (exports.DeviceScreenType = {}));
46
- var fetchDevices = function () {
47
- var localContent = {};
48
- if (fs.existsSync(LOCAL_CACHE_DEVICE_PATH)) {
49
- try {
50
- localContent = fs_extra_1["default"].readJsonSync(LOCAL_CACHE_DEVICE_PATH);
83
+ var fetchDevicesData = function (cdnUrl) {
84
+ if (cdnUrl === void 0) { cdnUrl = ''; }
85
+ return new Promise(function (resolve, reject) {
86
+ if (cdnUrl === '') {
87
+ reject(new Error('CDN URL is missing'));
88
+ process.exit(1);
51
89
  }
52
- catch (_e) { }
53
- }
54
- var now = Date.now().valueOf();
55
- return new Promise(function (resolve) {
56
- if (!((0, lodash_1.get)(localContent, 'expiredTime') > now)) {
57
- axios_1["default"].get(serverPath).then(function (res) {
58
- if (res.status === 200) {
59
- var data = res.data;
60
- if (!(0, lodash_1.isEmpty)(data)) {
61
- fs_extra_1["default"].writeJsonSync(LOCAL_CACHE_DEVICE_PATH, {
62
- devices: data,
63
- expiredTime: now + 2 * 60 * 60 * 1000
64
- });
65
- resolve({});
90
+ axios_1["default"].get(cdnUrl).then(function (res) {
91
+ if (res.status === 200) {
92
+ var data = res.data;
93
+ resolve(data);
94
+ }
95
+ })["catch"](function (e) {
96
+ console.log(e);
97
+ resolve([]);
98
+ process.exit(1);
99
+ });
100
+ });
101
+ };
102
+ var fetchDevices = function () { return __awaiter(void 0, void 0, void 0, function () {
103
+ var localContent, now, prodDevices, betaDevices;
104
+ return __generator(this, function (_a) {
105
+ switch (_a.label) {
106
+ case 0:
107
+ localContent = {};
108
+ if (fs.existsSync(LOCAL_CACHE_DEVICE_PATH)) {
109
+ try {
110
+ localContent = fs_extra_1["default"].readJsonSync(LOCAL_CACHE_DEVICE_PATH);
66
111
  }
112
+ catch (_e) { }
67
113
  }
68
- })["catch"](function (e) {
69
- console.log(e);
70
- resolve({});
71
- process.exit(1);
72
- });
73
- }
74
- else {
75
- resolve({});
114
+ now = Date.now().valueOf();
115
+ if (!!((0, lodash_1.get)(localContent, 'expiredTime') > now)) return [3, 3];
116
+ return [4, fetchDevicesData(serverPath)];
117
+ case 1:
118
+ prodDevices = _a.sent();
119
+ return [4, fetchDevicesData(serverPathBeta)];
120
+ case 2:
121
+ betaDevices = _a.sent();
122
+ if (!(0, lodash_1.isEmpty)(prodDevices) || !(0, lodash_1.isEmpty)(betaDevices)) {
123
+ fs_extra_1["default"].writeJsonSync(LOCAL_CACHE_DEVICE_PATH, {
124
+ devices: prodDevices,
125
+ devices_beta: betaDevices,
126
+ expiredTime: now + 2 * 60 * 60 * 1000
127
+ });
128
+ }
129
+ else {
130
+ return [2, {}];
131
+ }
132
+ return [3, 4];
133
+ case 3: return [2, {}];
134
+ case 4: return [2];
76
135
  }
77
136
  });
78
- };
137
+ }); };
79
138
  exports.fetchDevices = fetchDevices;
@@ -13,7 +13,7 @@
13
13
  "dev": "nodemon -e ts,tsx --exec \"rm -rf dist && tsc && ts-node build.ts\" --ignore types/ --ignore dist/"
14
14
  },
15
15
  "dependencies": {
16
- "@zeppos/zpm": "^3.0.21",
16
+ "@zeppos/zpm": "^3.0.23",
17
17
  "axios": "^0.27.2",
18
18
  "chalk": "^4.1.2",
19
19
  "chokidar": "^3.5.3",
@@ -31,6 +31,8 @@
31
31
  "shelljs": "^0.8.5",
32
32
  "socket.io-client": "^4.5.1",
33
33
  "stoppable": "^1.1.0",
34
+ "tweetnacl": "^1.0.3",
35
+ "tweetnacl-util": "^0.15.1",
34
36
  "update-notifier": "5.1.0",
35
37
  "uuid": "^8.3.2",
36
38
  "ws": "^8.8.0",
@@ -39,9 +39,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
39
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
40
  };
41
41
  exports.__esModule = true;
42
- exports.initVariable = exports.checkVersion = void 0;
42
+ exports.clearDevicesCache = exports.initVariable = exports.checkVersion = void 0;
43
+ var path_1 = __importDefault(require("path"));
44
+ var os_1 = __importDefault(require("os"));
45
+ var fs_extra_1 = __importDefault(require("fs-extra"));
43
46
  var chalk_1 = __importDefault(require("chalk"));
44
- var packageJson = require('package-json');
47
+ var package_json_1 = __importDefault(require("package-json"));
45
48
  var zeppos_app_utils_1 = require("zeppos-app-utils");
46
49
  var tools_1 = require("./tools");
47
50
  var loginStorageKey = zeppos_app_utils_1.config.getLocalConfig().loginStorageKey;
@@ -49,6 +52,8 @@ var _a = require('../package.json'), userVersion = _a.version, userName = _a.nam
49
52
  var versionCheckTimeKey = '____inner_version_check_time';
50
53
  var versionKey = '____inner_version';
51
54
  var _b = zeppos_app_utils_1.instanceStorage.getStorage(), _c = versionCheckTimeKey, userVersionCheckTime = _b[_c], _d = versionKey, originVersion = _b[_d], _e = loginStorageKey.accountToken, _f = _b[_e], apptoken = _f === void 0 ? '' : _f, _g = loginStorageKey.userid, _h = _b[_g], userid = _h === void 0 ? '' : _h, _j = loginStorageKey.cname, _k = _b[_j], cname = _k === void 0 ? '' : _k, _l = _b.account_env, _accountEnv = _l === void 0 ? 'production' : _l;
55
+ var LOCAL_CACHE_DEVICE_PATH = path_1["default"].resolve(os_1["default"].homedir(), ".zepp/.zeus_devices");
56
+ var LOCAL_VERSION_PATH = path_1["default"].resolve(os_1["default"].homedir(), ".zepp/.zeus_version");
52
57
  var checkOriginVersion = function () { return __awaiter(void 0, void 0, void 0, function () {
53
58
  var versions, versionList, error_1;
54
59
  var _a;
@@ -56,7 +61,7 @@ var checkOriginVersion = function () { return __awaiter(void 0, void 0, void 0,
56
61
  switch (_b.label) {
57
62
  case 0:
58
63
  _b.trys.push([0, 2, , 3]);
59
- return [4, packageJson(userName, { allVersions: true })];
64
+ return [4, (0, package_json_1["default"])(userName, { allVersions: true })];
60
65
  case 1:
61
66
  versions = (_b.sent()).versions;
62
67
  versionList = Object.keys(versions).filter(function (val) { return !val.includes('beta'); });
@@ -78,15 +83,21 @@ var checkOriginVersion = function () { return __awaiter(void 0, void 0, void 0,
78
83
  var checkVersion = function () { return __awaiter(void 0, void 0, void 0, function () {
79
84
  var originVersionCode, userVersionCode;
80
85
  return __generator(this, function (_a) {
81
- if (!originVersion || !userVersionCheckTime || (+new Date() - Number(userVersionCheckTime) > 24 * 60 * 60 * 1000)) {
82
- checkOriginVersion();
83
- }
84
- originVersionCode = (0, tools_1.versionToCode)(originVersion);
85
- userVersionCode = (0, tools_1.versionToCode)(userVersion);
86
- if (originVersionCode - userVersionCode >= 100) {
87
- zeppos_app_utils_1.logger.log(chalk_1["default"].hex('#DB8C41')(zeppos_app_utils_1.config.updateVersion));
86
+ switch (_a.label) {
87
+ case 0:
88
+ if (!(!originVersion || !userVersionCheckTime || (+new Date() - Number(userVersionCheckTime) > 24 * 60 * 60 * 1000))) return [3, 2];
89
+ return [4, checkOriginVersion()];
90
+ case 1:
91
+ _a.sent();
92
+ _a.label = 2;
93
+ case 2:
94
+ originVersionCode = (0, tools_1.versionToCode)(originVersion);
95
+ userVersionCode = (0, tools_1.versionToCode)(userVersion);
96
+ if (originVersionCode - userVersionCode >= 100) {
97
+ zeppos_app_utils_1.logger.log(chalk_1["default"].hex('#DB8C41')(zeppos_app_utils_1.config.updateVersion));
98
+ }
99
+ return [2];
88
100
  }
89
- return [2];
90
101
  });
91
102
  }); };
92
103
  exports.checkVersion = checkVersion;
@@ -131,3 +142,23 @@ var initVariable = function (args) { return __awaiter(void 0, void 0, void 0, fu
131
142
  });
132
143
  }); };
133
144
  exports.initVariable = initVariable;
145
+ var clearDevicesCache = function () { return __awaiter(void 0, void 0, void 0, function () {
146
+ var cleanCacheAndWriteVersion, installedVersion;
147
+ return __generator(this, function (_a) {
148
+ cleanCacheAndWriteVersion = function () {
149
+ fs_extra_1["default"].removeSync(LOCAL_CACHE_DEVICE_PATH);
150
+ fs_extra_1["default"].outputFileSync(LOCAL_VERSION_PATH, userVersion);
151
+ };
152
+ if (!fs_extra_1["default"].pathExistsSync(LOCAL_VERSION_PATH)) {
153
+ cleanCacheAndWriteVersion();
154
+ return [2];
155
+ }
156
+ installedVersion = fs_extra_1["default"].readFileSync(LOCAL_VERSION_PATH, 'utf8');
157
+ if ((0, tools_1.versionToCode)(userVersion) > (0, tools_1.versionToCode)(installedVersion)) {
158
+ cleanCacheAndWriteVersion();
159
+ return [2];
160
+ }
161
+ return [2];
162
+ });
163
+ }); };
164
+ exports.clearDevicesCache = clearDevicesCache;
package/utils/tools.js CHANGED
@@ -45,6 +45,8 @@ var zeppos_app_utils_1 = require("zeppos-app-utils");
45
45
  var versionToCode = function (version) {
46
46
  if (!version)
47
47
  return 0;
48
+ if (version.endsWith('-beta'))
49
+ version = version.replace('-beta', '');
48
50
  var _a = version.split('.').map(function (val) { return Number(val); }), _b = _a[0], p0 = _b === void 0 ? 0 : _b, _c = _a[1], p1 = _c === void 0 ? 0 : _c, _d = _a[2], p2 = _d === void 0 ? 0 : _d;
49
51
  return p0 * 10000 + p1 * 100 + p2;
50
52
  };