@zeppos/zeus-cli 1.1.1 → 1.1.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/api/index.js +79 -112
- package/bin/cli.js +74 -22
- package/bin/post-command.js +8 -0
- package/config/device.js +0 -1
- package/config/project.js +8 -11
- package/font-icon.js +12 -0
- package/index.js +5 -1
- package/modules/bridge.js +61 -43
- package/modules/build.js +87 -73
- package/modules/config.js +15 -14
- package/modules/create/index.js +15 -14
- package/modules/create/local-app.js +2 -3
- package/modules/create/yeoman-app.js +1 -1
- package/modules/help.js +7 -4
- package/modules/login.js +97 -130
- package/modules/run.js +31 -9
- package/modules/simulator.js +6 -2
- package/modules/status.js +48 -18
- package/modules/storage.js +4 -77
- package/modules/websocket.js +7 -10
- package/package.json +7 -2
- package/utils/common.js +5 -12
- package/utils/hm-analytics.js +54 -0
- package/utils/logger.js +1 -13
- package/utils/pre-check.js +169 -0
- package/utils/hm_analytics.js +0 -35
package/modules/create/index.js
CHANGED
|
@@ -12,7 +12,11 @@ var __assign = (this && this.__assign) || function () {
|
|
|
12
12
|
};
|
|
13
13
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
14
|
if (k2 === undefined) k2 = k;
|
|
15
|
-
Object.
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
16
20
|
}) : (function(o, m, k, k2) {
|
|
17
21
|
if (k2 === undefined) k2 = k;
|
|
18
22
|
o[k2] = m[k];
|
|
@@ -87,6 +91,7 @@ var fs_extra_1 = __importDefault(require("fs-extra"));
|
|
|
87
91
|
var path_1 = require("path");
|
|
88
92
|
var fs_1 = require("fs");
|
|
89
93
|
var yeoman_environment_1 = __importDefault(require("yeoman-environment"));
|
|
94
|
+
var shell = require('shelljs');
|
|
90
95
|
var local_app_1 = require("./local-app");
|
|
91
96
|
var yeoman_app_1 = require("./yeoman-app");
|
|
92
97
|
var project_1 = require("../../config/project");
|
|
@@ -94,15 +99,14 @@ var device_1 = require("../../config/device");
|
|
|
94
99
|
var font_icon_1 = __importDefault(require("../../font-icon"));
|
|
95
100
|
var logger = __importStar(require("../../utils/logger"));
|
|
96
101
|
var sleep_1 = require("../../utils/sleep");
|
|
97
|
-
var hm_analytics_1 = require("../../utils/
|
|
98
|
-
var shell = require('shelljs');
|
|
102
|
+
var hm_analytics_1 = require("../../utils/hm-analytics");
|
|
99
103
|
var TEMPLATE_DIR = (0, path_1.resolve)(__dirname, '../../public/template');
|
|
100
104
|
var create = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
101
|
-
var
|
|
105
|
+
var cmd, _a, projectName, cwdPath, beforeFiles, workDir, localTemplates, localChoices, watchfaceTemplateChoices, appTemplateChoices, env, generatorMate, generatorMateKeys, answer, choosePkg;
|
|
102
106
|
return __generator(this, function (_b) {
|
|
103
107
|
switch (_b.label) {
|
|
104
108
|
case 0:
|
|
105
|
-
|
|
109
|
+
cmd = args._[0], _a = args.projectName, projectName = _a === void 0 ? '' : _a;
|
|
106
110
|
cwdPath = (0, path_1.resolve)('./');
|
|
107
111
|
beforeFiles = [];
|
|
108
112
|
workDir = cwdPath;
|
|
@@ -171,7 +175,6 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
171
175
|
generatorMateKeys = Object.keys(generatorMate);
|
|
172
176
|
if (generatorMateKeys.length) {
|
|
173
177
|
if (localChoices.length) {
|
|
174
|
-
// @ts-ignore
|
|
175
178
|
localChoices.push(new inquirer_1["default"].Separator());
|
|
176
179
|
}
|
|
177
180
|
generatorMateKeys.forEach(function (name) {
|
|
@@ -200,7 +203,7 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
200
203
|
watchfaceTemplateChoices.map(function (val, index) {
|
|
201
204
|
val.value = index;
|
|
202
205
|
});
|
|
203
|
-
return [4
|
|
206
|
+
return [4, inquirer_1["default"].prompt([
|
|
204
207
|
{
|
|
205
208
|
name: 'appType',
|
|
206
209
|
type: 'list',
|
|
@@ -230,7 +233,6 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
230
233
|
{
|
|
231
234
|
name: 'withAppSide',
|
|
232
235
|
type: 'confirm',
|
|
233
|
-
// when: (args) => !!args.appType,
|
|
234
236
|
when: function (args) { return args.template === 0 && args.appType.toLowerCase() === project_1.AppType.APP; },
|
|
235
237
|
message: 'Should this application contain a app-side component?'
|
|
236
238
|
},
|
|
@@ -243,7 +245,6 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
243
245
|
{
|
|
244
246
|
name: 'buildTargets',
|
|
245
247
|
type: 'checkbox',
|
|
246
|
-
// when: (args) => !!args.appType,
|
|
247
248
|
when: function (args) { return args.template === 0; },
|
|
248
249
|
choices: Object.keys(device_1.deviceTargets).map(function (platform) { return ({
|
|
249
250
|
name: device_1.deviceTargets[platform].deviceName,
|
|
@@ -260,7 +261,7 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
260
261
|
answer.workDir = workDir;
|
|
261
262
|
choosePkg = answer.appType.toLowerCase() === project_1.AppType.APP ? appTemplateChoices[answer.template] : watchfaceTemplateChoices[answer.template];
|
|
262
263
|
logger.info('fetching template...');
|
|
263
|
-
return [4
|
|
264
|
+
return [4, (0, sleep_1.sleep)(100)];
|
|
264
265
|
case 2:
|
|
265
266
|
_b.sent();
|
|
266
267
|
if (choosePkg.type === project_1.AppSourceType.YEOMAN) {
|
|
@@ -272,7 +273,7 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
272
273
|
(0, local_app_1.createLocalApp)(__assign(__assign({}, answer), { templateInfo: choosePkg }));
|
|
273
274
|
}
|
|
274
275
|
logger.log('\n');
|
|
275
|
-
return [4
|
|
276
|
+
return [4, (0, sleep_1.sleep)(50)];
|
|
276
277
|
case 3:
|
|
277
278
|
_b.sent();
|
|
278
279
|
rd.eachFileSync(workDir, function (file) {
|
|
@@ -295,15 +296,15 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
295
296
|
shell.cd("".concat(projectName));
|
|
296
297
|
}
|
|
297
298
|
shell.exec('npm install');
|
|
298
|
-
return [4
|
|
299
|
+
return [4, (0, sleep_1.sleep)(300)];
|
|
299
300
|
case 4:
|
|
300
301
|
_b.sent();
|
|
301
302
|
logger.log(chalk_1["default"].hex('#DB8C41')(font_icon_1["default"]));
|
|
302
|
-
return [4
|
|
303
|
+
return [4, (0, sleep_1.sleep)(800)];
|
|
303
304
|
case 5:
|
|
304
305
|
_b.sent();
|
|
305
306
|
logger.log('I\'m all done. Now you can start your application.');
|
|
306
|
-
return [2
|
|
307
|
+
return [2];
|
|
307
308
|
}
|
|
308
309
|
});
|
|
309
310
|
}); };
|
|
@@ -58,7 +58,6 @@ var fs_extra_1 = __importDefault(require("fs-extra"));
|
|
|
58
58
|
var fs_1 = __importDefault(require("fs"));
|
|
59
59
|
var project_1 = require("../../config/project");
|
|
60
60
|
var device_1 = require("../../config/device");
|
|
61
|
-
// 生成模板项目
|
|
62
61
|
var createLocalApp = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
63
62
|
var workDir, templateInfo, withAppSide, withSettings, buildTargets, appType, appJsonPath, appJson, appID, defaultTarget, targets, defaultWatchFaceConfig, defaultAssetsPath_1;
|
|
64
63
|
return __generator(this, function (_a) {
|
|
@@ -76,7 +75,7 @@ var createLocalApp = function (args) { return __awaiter(void 0, void 0, void 0,
|
|
|
76
75
|
spaces: 2,
|
|
77
76
|
EOL: os_1["default"].EOL
|
|
78
77
|
});
|
|
79
|
-
return [2
|
|
78
|
+
return [2];
|
|
80
79
|
}
|
|
81
80
|
defaultTarget = lodash_1["default"].get(appJson, 'targets.default');
|
|
82
81
|
targets = {};
|
|
@@ -120,7 +119,7 @@ var createLocalApp = function (args) { return __awaiter(void 0, void 0, void 0,
|
|
|
120
119
|
EOL: os_1["default"].EOL
|
|
121
120
|
});
|
|
122
121
|
}
|
|
123
|
-
return [2
|
|
122
|
+
return [2];
|
|
124
123
|
});
|
|
125
124
|
}); };
|
|
126
125
|
exports.createLocalApp = createLocalApp;
|
|
@@ -67,7 +67,7 @@ var createYeomanApp = function (args) { return __awaiter(void 0, void 0, void 0,
|
|
|
67
67
|
env = args.env, templateInfo = args.templateInfo;
|
|
68
68
|
info = resolveGenerator(templateInfo);
|
|
69
69
|
env.run(info.prettyName);
|
|
70
|
-
return [2
|
|
70
|
+
return [2];
|
|
71
71
|
});
|
|
72
72
|
}); };
|
|
73
73
|
exports.createYeomanApp = createYeomanApp;
|
package/modules/help.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
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);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -59,7 +63,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
59
63
|
};
|
|
60
64
|
exports.__esModule = true;
|
|
61
65
|
exports.help = void 0;
|
|
62
|
-
var lodash_1 = __importDefault(require("lodash"));
|
|
63
66
|
var fs_extra_1 = __importDefault(require("fs-extra"));
|
|
64
67
|
var path = __importStar(require("path"));
|
|
65
68
|
var logger = __importStar(require("../utils/logger"));
|
|
@@ -67,7 +70,7 @@ var help = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
|
67
70
|
var pkg, cmd;
|
|
68
71
|
return __generator(this, function (_a) {
|
|
69
72
|
pkg = fs_extra_1["default"].readJSONSync(path.resolve(__dirname, '../package.json'));
|
|
70
|
-
cmd =
|
|
73
|
+
cmd = process.env.CMD_NAME;
|
|
71
74
|
logger.log("Usage: ".concat(cmd, " <command> [args?]"));
|
|
72
75
|
logger.log('');
|
|
73
76
|
logger.log("".concat(cmd, " init init a new project in current directory"));
|
|
@@ -83,7 +86,7 @@ var help = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
|
83
86
|
logger.log('');
|
|
84
87
|
logger.log('');
|
|
85
88
|
logger.log("".concat(cmd, "@").concat(pkg.version, " ").concat(path.resolve(__dirname, '../')));
|
|
86
|
-
return [2
|
|
89
|
+
return [2];
|
|
87
90
|
});
|
|
88
91
|
}); };
|
|
89
92
|
exports.help = help;
|
package/modules/login.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
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);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -59,147 +63,110 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
59
63
|
};
|
|
60
64
|
exports.__esModule = true;
|
|
61
65
|
exports.logout = exports.login = void 0;
|
|
62
|
-
var
|
|
63
|
-
var
|
|
64
|
-
var
|
|
65
|
-
var
|
|
66
|
+
var open_1 = __importDefault(require("open"));
|
|
67
|
+
var http_1 = __importDefault(require("http"));
|
|
68
|
+
var url_1 = __importDefault(require("url"));
|
|
69
|
+
var qs_1 = __importDefault(require("qs"));
|
|
70
|
+
var lodash_1 = __importDefault(require("lodash"));
|
|
66
71
|
var get_port_1 = __importDefault(require("get-port"));
|
|
67
|
-
var
|
|
72
|
+
var stoppable_1 = __importDefault(require("stoppable"));
|
|
68
73
|
var storage_1 = require("./storage");
|
|
69
74
|
var logger = __importStar(require("../utils/logger"));
|
|
70
75
|
var project_1 = require("../config/project");
|
|
71
|
-
var hm_analytics_1 = require("../utils/
|
|
76
|
+
var hm_analytics_1 = require("../utils/hm-analytics");
|
|
77
|
+
var loginCallbackServer = function (cb) { return __awaiter(void 0, void 0, void 0, function () {
|
|
78
|
+
var callbackPath, port, server;
|
|
79
|
+
return __generator(this, function (_a) {
|
|
80
|
+
switch (_a.label) {
|
|
81
|
+
case 0:
|
|
82
|
+
callbackPath = '/login/callback';
|
|
83
|
+
return [4, (0, get_port_1["default"])()];
|
|
84
|
+
case 1:
|
|
85
|
+
port = _a.sent();
|
|
86
|
+
server = (0, stoppable_1["default"])(http_1["default"].createServer(function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
|
|
87
|
+
var reqUrl, query, appToken, userId, cname;
|
|
88
|
+
return __generator(this, function (_a) {
|
|
89
|
+
reqUrl = req.url || '';
|
|
90
|
+
if (lodash_1["default"].startsWith(reqUrl, callbackPath)) {
|
|
91
|
+
res.statusCode = 200;
|
|
92
|
+
res.setHeader('Content-Type', 'text/html');
|
|
93
|
+
res.end("<!DOCTYPE html>\n <html>\n <head> \n <meta charset=\"utf-8\"> \n <title>Login | Zepp Health</title>\n <style>html,iframe,body,div{margin: 0;padding: 0;border: 0;outline: 0;font-size: 0;vertical-align: baseline;background: transparent;}</style>\n </head> \n <body>\n <iframe src=\"https://upload-cdn.huami.com/tposts/4436118\" style=\"width: 100vw; height: 100vh;\"></iframe>\n </body>\n </html>");
|
|
94
|
+
query = url_1["default"].parse(reqUrl, true).query;
|
|
95
|
+
appToken = query.apptoken, userId = query.userid, cname = query.cname;
|
|
96
|
+
cb && cb({
|
|
97
|
+
appToken: appToken,
|
|
98
|
+
userId: userId,
|
|
99
|
+
cname: cname
|
|
100
|
+
});
|
|
101
|
+
server.stop();
|
|
102
|
+
}
|
|
103
|
+
return [2];
|
|
104
|
+
});
|
|
105
|
+
}); }));
|
|
106
|
+
server.listen(port);
|
|
107
|
+
return [2, Promise.resolve("http://localhost:".concat(port).concat(callbackPath))];
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}); };
|
|
72
111
|
var login = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
73
|
-
var _a, _b, _c, apptoken, _d, _e, userid, _f, _g, cname,
|
|
112
|
+
var _a, _b, _c, apptoken, _d, _e, userid, _f, _g, cname, loginPromiseResolve, loginPromiseReject, loginPromise, loginCallbackUrl, error_1;
|
|
74
113
|
return __generator(this, function (_h) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
loginInfo = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
82
|
-
var server, HOSTNAME, PORT, PROJECT_REDIRECT_URI, error_1;
|
|
83
|
-
return __generator(this, function (_a) {
|
|
84
|
-
switch (_a.label) {
|
|
85
|
-
case 0:
|
|
86
|
-
server = http.createServer(function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
|
|
87
|
-
var arg, params, apptoken, userid, cname, userInfoHost, userInfoURL, _a, nickName, message;
|
|
88
|
-
var _b;
|
|
89
|
-
return __generator(this, function (_c) {
|
|
90
|
-
switch (_c.label) {
|
|
91
|
-
case 0:
|
|
92
|
-
arg = url.parse(req.url).query;
|
|
93
|
-
params = querystring.parse(arg);
|
|
94
|
-
apptoken = params.apptoken, userid = params.userid, cname = params.cname;
|
|
95
|
-
res.statusCode = 200;
|
|
96
|
-
res.setHeader('Content-Type', 'text/plain');
|
|
97
|
-
res.end('Login is successful, please return to the operation interface manually.');
|
|
98
|
-
if (!(apptoken && cname)) return [3 /*break*/, 2];
|
|
99
|
-
userInfoHost = cname && cname.split(',').filter(function (h) { return h.indexOf('auth-') > -1; })[0];
|
|
100
|
-
userInfoURL = "https://".concat(userInfoHost, "/v2/developer/account/center");
|
|
101
|
-
return [4 /*yield*/, (0, index_1.getUserInfo)(userInfoURL, apptoken)];
|
|
102
|
-
case 1:
|
|
103
|
-
_a = (_c.sent()).userName, nickName = _a === void 0 ? '' : _a;
|
|
104
|
-
storage_1.globalStorage.set((_b = {},
|
|
105
|
-
_b[project_1.loginStorageKey.nickName] = nickName,
|
|
106
|
-
_b[project_1.loginStorageKey.userid] = userid,
|
|
107
|
-
_b[project_1.loginStorageKey.cname] = cname,
|
|
108
|
-
_b[project_1.loginStorageKey.accountToken] = apptoken,
|
|
109
|
-
_b));
|
|
110
|
-
message = project_1.ACCOUNT_ENV === 'production' ? 'Login success' : "test:Login success with account:".concat(userid);
|
|
111
|
-
logger.success(message);
|
|
112
|
-
server.close();
|
|
113
|
-
process.exit(0);
|
|
114
|
-
_c.label = 2;
|
|
115
|
-
case 2: return [2 /*return*/];
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
}); });
|
|
119
|
-
HOSTNAME = 'localhost';
|
|
120
|
-
return [4 /*yield*/, (0, get_port_1["default"])({ port: 8086 })];
|
|
121
|
-
case 1:
|
|
122
|
-
PORT = _a.sent();
|
|
123
|
-
PROJECT_REDIRECT_URI = encodeURIComponent("http://".concat(HOSTNAME, ":").concat(PORT, "/"));
|
|
124
|
-
server.listen(PORT, HOSTNAME);
|
|
125
|
-
_a.label = 2;
|
|
126
|
-
case 2:
|
|
127
|
-
_a.trys.push([2, 4, , 5]);
|
|
128
|
-
return [4 /*yield*/, open("".concat(project_1.loginConfig.LOGIN_URL, "?project_name=").concat(project_1.loginConfig.PROJECT_NAME, "&platform_app=").concat(project_1.loginConfig.PLATFORM_APP, "&project_redirect_uri=").concat(PROJECT_REDIRECT_URI))];
|
|
129
|
-
case 3:
|
|
130
|
-
_a.sent();
|
|
131
|
-
logger.info('The login page has been opened in the default browser.');
|
|
132
|
-
return [3 /*break*/, 5];
|
|
133
|
-
case 4:
|
|
134
|
-
error_1 = _a.sent();
|
|
135
|
-
logger.error('Unknown error, the default browser failed to open the login page.');
|
|
136
|
-
process.exit(1);
|
|
137
|
-
return [3 /*break*/, 5];
|
|
138
|
-
case 5: return [2 /*return*/];
|
|
114
|
+
switch (_h.label) {
|
|
115
|
+
case 0:
|
|
116
|
+
_a = storage_1.instanceStorage.getStorage(), _b = project_1.loginStorageKey.accountToken, _c = _a[_b], apptoken = _c === void 0 ? '' : _c, _d = project_1.loginStorageKey.userid, _e = _a[_d], userid = _e === void 0 ? '' : _e, _f = project_1.loginStorageKey.cname, _g = _a[_f], cname = _g === void 0 ? '' : _g;
|
|
117
|
+
if (apptoken && userid && cname) {
|
|
118
|
+
logger.success("Have logged");
|
|
119
|
+
return [2, { apptoken: apptoken, userid: userid, cname: cname }];
|
|
139
120
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
121
|
+
loginPromise = new Promise(function (resolve, reject) {
|
|
122
|
+
loginPromiseResolve = resolve;
|
|
123
|
+
loginPromiseReject = reject;
|
|
124
|
+
});
|
|
125
|
+
return [4, loginCallbackServer(function (loginInfo) {
|
|
126
|
+
var _a;
|
|
127
|
+
var appToken = loginInfo.appToken, userId = loginInfo.userId, cname = loginInfo.cname;
|
|
128
|
+
if (appToken && cname) {
|
|
129
|
+
storage_1.globalStorage.set((_a = {},
|
|
130
|
+
_a[project_1.loginStorageKey.accountToken] = appToken,
|
|
131
|
+
_a[project_1.loginStorageKey.userid] = userId,
|
|
132
|
+
_a[project_1.loginStorageKey.cname] = cname,
|
|
133
|
+
_a));
|
|
134
|
+
logger.success('Login success');
|
|
135
|
+
loginPromiseResolve(loginInfo);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
loginPromiseReject();
|
|
139
|
+
}
|
|
140
|
+
})];
|
|
141
|
+
case 1:
|
|
142
|
+
loginCallbackUrl = _h.sent();
|
|
143
|
+
_h.label = 2;
|
|
144
|
+
case 2:
|
|
145
|
+
_h.trys.push([2, 4, , 5]);
|
|
146
|
+
return [4, (0, open_1["default"])("".concat(project_1.loginConfig.LOGIN_URL, "?").concat(qs_1["default"].stringify({
|
|
147
|
+
project_name: project_1.loginConfig.PROJECT_NAME,
|
|
148
|
+
platform_app: project_1.loginConfig.PLATFORM_APP,
|
|
149
|
+
project_redirect_uri: loginCallbackUrl
|
|
150
|
+
})))];
|
|
151
|
+
case 3:
|
|
152
|
+
_h.sent();
|
|
153
|
+
logger.info('The login page has been opened in the default browser.');
|
|
154
|
+
return [3, 5];
|
|
155
|
+
case 4:
|
|
156
|
+
error_1 = _h.sent();
|
|
157
|
+
logger.error('Unknown error, the default browser failed to open the login page.');
|
|
158
|
+
process.exit(1);
|
|
159
|
+
return [3, 5];
|
|
160
|
+
case 5:
|
|
161
|
+
(0, hm_analytics_1.HM_Analytics)('ZEPP_CLI_LOGIN_C');
|
|
162
|
+
return [2, loginPromise];
|
|
163
|
+
}
|
|
145
164
|
});
|
|
146
165
|
}); };
|
|
147
166
|
exports.login = login;
|
|
148
167
|
var logout = function () {
|
|
149
168
|
(0, hm_analytics_1.HM_Analytics)('ZEPP_CLI_LOGOUT_C');
|
|
150
169
|
storage_1.globalStorage.deleteStorage('____login');
|
|
151
|
-
logger.success(
|
|
152
|
-
process.exit(0);
|
|
170
|
+
logger.success('Logged out');
|
|
153
171
|
};
|
|
154
172
|
exports.logout = logout;
|
|
155
|
-
// const isLocal = false
|
|
156
|
-
// if(isLocal) {
|
|
157
|
-
// const answer = await inquirer.prompt([
|
|
158
|
-
// {
|
|
159
|
-
// name: 'account',
|
|
160
|
-
// type: 'input',
|
|
161
|
-
// message: `Enter your account (Mobile/E-mail): ${accountInfo ? `(${accountInfo})` : ''}`
|
|
162
|
-
// },
|
|
163
|
-
// {
|
|
164
|
-
// name: 'password',
|
|
165
|
-
// type: 'password',
|
|
166
|
-
// message: 'Enter your password: ',
|
|
167
|
-
// mask: '*'
|
|
168
|
-
// }
|
|
169
|
-
// ])
|
|
170
|
-
// answer.account = answer.account || accountInfo
|
|
171
|
-
// const loginInfo = await loginByLocal(answer.account, answer.password).catch(() => {
|
|
172
|
-
// logger.error('logged in failed, please check your account and password')
|
|
173
|
-
// process.exit(1)
|
|
174
|
-
// })
|
|
175
|
-
// const token = _.get(loginInfo, 'token_info.app_token')
|
|
176
|
-
// if (token) {
|
|
177
|
-
// logger.success(`logged in with account: ${answer.account}`)
|
|
178
|
-
// storage.set(loginStorageKey.account, answer.account)
|
|
179
|
-
// storage.set(loginStorageKey.accountToken, token)
|
|
180
|
-
// }
|
|
181
|
-
// }
|
|
182
|
-
// export const callback = async ({ cname, apptoken, userid }: {cname: string, apptoken: string, userid: string}, fun: () => void) => {
|
|
183
|
-
// if(apptoken && cname) {
|
|
184
|
-
// const userInfoHost = cname && cname.split(',').filter((h: string) => h.indexOf('auth-') > -1)[0]
|
|
185
|
-
// const userInfoURL = `https://${userInfoHost}/v2/developer/account/center`
|
|
186
|
-
// const { userName: nickName = '' } = await getUserInfo(userInfoURL, apptoken)
|
|
187
|
-
// globalStorage.set({
|
|
188
|
-
// [loginStorageKey.nickName]: nickName,
|
|
189
|
-
// [loginStorageKey.userid]: userid,
|
|
190
|
-
// [loginStorageKey.cname]: cname,
|
|
191
|
-
// [loginStorageKey.accountToken]: apptoken
|
|
192
|
-
// })
|
|
193
|
-
// const message = ACCOUNT_ENV === 'production' ? 'Login success' : `test:Login success with account:${userid}`
|
|
194
|
-
// logger.success(message)
|
|
195
|
-
// if (fun) {
|
|
196
|
-
// // 暂时没有实现和调用
|
|
197
|
-
// await fun()
|
|
198
|
-
// } else {
|
|
199
|
-
// process.exit(0)
|
|
200
|
-
// }
|
|
201
|
-
// } else {
|
|
202
|
-
// console.log('cxa')
|
|
203
|
-
// process.exit(1)
|
|
204
|
-
// }
|
|
205
|
-
// }
|
package/modules/run.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
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);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -64,6 +68,8 @@ var chalk_1 = __importDefault(require("chalk"));
|
|
|
64
68
|
var path = __importStar(require("path"));
|
|
65
69
|
var inquirer_1 = __importDefault(require("inquirer"));
|
|
66
70
|
var chokidar_1 = __importDefault(require("chokidar"));
|
|
71
|
+
var fs_extra_1 = __importDefault(require("fs-extra"));
|
|
72
|
+
var parse_gitignore_1 = __importDefault(require("parse-gitignore"));
|
|
67
73
|
var logger = __importStar(require("../utils/logger"));
|
|
68
74
|
var build_1 = require("./build");
|
|
69
75
|
var storage_1 = require("./storage");
|
|
@@ -73,14 +79,14 @@ var project_1 = require("../config/project");
|
|
|
73
79
|
exports.DEFAULT_HOST = '127.0.0.1';
|
|
74
80
|
exports.DEFAULT_PORT = '7650';
|
|
75
81
|
var run = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
76
|
-
var _a, _b, simulatorHost, _c, _d, simulatorPort, answer, hasStarted, packages, simulatorWebSocketURL, simulator, refreshSimulator;
|
|
82
|
+
var _a, _b, simulatorHost, _c, _d, simulatorPort, answer, hasStarted, packages, simulatorWebSocketURL, simulator, refreshSimulator, gitignorePath, gitignore, ignored;
|
|
77
83
|
var _e;
|
|
78
84
|
return __generator(this, function (_f) {
|
|
79
85
|
switch (_f.label) {
|
|
80
86
|
case 0:
|
|
81
87
|
_a = storage_1.instanceStorage.getStorage(), _b = project_1.simulatorStorageKey.simulatorHost, simulatorHost = _a[_b], _c = project_1.simulatorStorageKey.simulatorPort, _d = _a[_c], simulatorPort = _d === void 0 ? exports.DEFAULT_PORT : _d;
|
|
82
|
-
if (!!simulatorHost) return [3
|
|
83
|
-
return [4
|
|
88
|
+
if (!!simulatorHost) return [3, 2];
|
|
89
|
+
return [4, inquirer_1["default"].prompt([
|
|
84
90
|
{
|
|
85
91
|
name: 'host',
|
|
86
92
|
type: 'input',
|
|
@@ -101,7 +107,7 @@ var run = function (args) { return __awaiter(void 0, void 0, void 0, function ()
|
|
|
101
107
|
_f.label = 2;
|
|
102
108
|
case 2:
|
|
103
109
|
hasStarted = false;
|
|
104
|
-
return [4
|
|
110
|
+
return [4, (0, build_1.chooseBuildPackages)()];
|
|
105
111
|
case 3:
|
|
106
112
|
packages = _f.sent();
|
|
107
113
|
simulatorWebSocketURL = "http://".concat(simulatorHost, ":").concat(simulatorPort);
|
|
@@ -112,7 +118,7 @@ var run = function (args) { return __awaiter(void 0, void 0, void 0, function ()
|
|
|
112
118
|
switch (_b.label) {
|
|
113
119
|
case 0:
|
|
114
120
|
logger.info('rebuilding...');
|
|
115
|
-
return [4
|
|
121
|
+
return [4, (0, build_1.buildDev)(packages)];
|
|
116
122
|
case 1:
|
|
117
123
|
zpkBuffer = _b.sent();
|
|
118
124
|
if (zpkBuffer) {
|
|
@@ -129,19 +135,35 @@ var run = function (args) { return __awaiter(void 0, void 0, void 0, function ()
|
|
|
129
135
|
hasStarted = true;
|
|
130
136
|
logger.log(chalk_1["default"].green("[".concat(args['$0'], "] watching the changes in this project...")));
|
|
131
137
|
}
|
|
132
|
-
return [2
|
|
138
|
+
return [2];
|
|
133
139
|
}
|
|
134
140
|
});
|
|
135
141
|
}); }, 1000);
|
|
142
|
+
gitignorePath = path.resolve('.gitignore');
|
|
143
|
+
fs_extra_1["default"].ensureFileSync(gitignorePath);
|
|
144
|
+
gitignore = (0, parse_gitignore_1["default"])(fs_extra_1["default"].readFileSync(gitignorePath));
|
|
145
|
+
if (!gitignore.length) {
|
|
146
|
+
fs_extra_1["default"].writeFileSync(gitignorePath, project_1.gitignoreDefaultItem.join('\n'));
|
|
147
|
+
gitignore = project_1.gitignoreDefaultItem;
|
|
148
|
+
}
|
|
149
|
+
ignored = lodash_1["default"].union([
|
|
150
|
+
'.gitignore',
|
|
151
|
+
'jsconfig.json',
|
|
152
|
+
'dist/*',
|
|
153
|
+
'node_modules/**',
|
|
154
|
+
'.git/**',
|
|
155
|
+
'yarn.lock',
|
|
156
|
+
'package-lock.json'
|
|
157
|
+
], gitignore);
|
|
136
158
|
chokidar_1["default"].watch('.', {
|
|
137
|
-
ignored:
|
|
159
|
+
ignored: ignored
|
|
138
160
|
}).on('all', function (_type, path) {
|
|
139
161
|
if (!lodash_1["default"].startsWith(path, 'dist')) {
|
|
140
162
|
hasStarted && logger.log(path, chalk_1["default"].green(' changed'));
|
|
141
163
|
refreshSimulator();
|
|
142
164
|
}
|
|
143
165
|
});
|
|
144
|
-
return [2
|
|
166
|
+
return [2];
|
|
145
167
|
}
|
|
146
168
|
});
|
|
147
169
|
}); };
|
package/modules/simulator.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
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);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -24,7 +28,7 @@ var socket_io_client_1 = require("socket.io-client");
|
|
|
24
28
|
var logger = __importStar(require("../utils/logger"));
|
|
25
29
|
var storage_1 = require("./storage");
|
|
26
30
|
var project_1 = require("../config/project");
|
|
27
|
-
var Simulator =
|
|
31
|
+
var Simulator = (function () {
|
|
28
32
|
function Simulator(url, options) {
|
|
29
33
|
this.previewId = 1;
|
|
30
34
|
this.previewMethod = 'ide.simulator.preview';
|
package/modules/status.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
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);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -59,29 +63,55 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
59
63
|
};
|
|
60
64
|
exports.__esModule = true;
|
|
61
65
|
exports.status = void 0;
|
|
66
|
+
var lodash_1 = __importDefault(require("lodash"));
|
|
62
67
|
var chalk_1 = __importDefault(require("chalk"));
|
|
63
68
|
var logger = __importStar(require("../utils/logger"));
|
|
69
|
+
var index_1 = require("../api/index");
|
|
64
70
|
var storage_1 = require("./storage");
|
|
65
71
|
var project_1 = require("../config/project");
|
|
66
72
|
var run_1 = require("./run");
|
|
67
|
-
var hm_analytics_1 = require("../utils/
|
|
68
|
-
var
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
73
|
+
var hm_analytics_1 = require("../utils/hm-analytics");
|
|
74
|
+
var login_1 = require("./login");
|
|
75
|
+
var status = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
76
|
+
var _a, _b, _c, apptoken, _d, _e, userid, _f, _g, cname, _h, _j, simulatorHost, _k, _l, simulatorPort, _m, simulatorConnectStatus, loginStatus, userInfoHost, userInfoURL, nickName, res, error_1, res;
|
|
77
|
+
return __generator(this, function (_o) {
|
|
78
|
+
switch (_o.label) {
|
|
79
|
+
case 0:
|
|
80
|
+
_a = storage_1.instanceStorage.getStorage(), _b = project_1.loginStorageKey.accountToken, _c = _a[_b], apptoken = _c === void 0 ? '' : _c, _d = project_1.loginStorageKey.userid, _e = _a[_d], userid = _e === void 0 ? '' : _e, _f = project_1.loginStorageKey.cname, _g = _a[_f], cname = _g === void 0 ? '' : _g, _h = project_1.simulatorStorageKey.simulatorHost, _j = _a[_h], simulatorHost = _j === void 0 ? run_1.DEFAULT_HOST : _j, _k = project_1.simulatorStorageKey.simulatorPort, _l = _a[_k], simulatorPort = _l === void 0 ? run_1.DEFAULT_PORT : _l, _m = project_1.simulatorStorageKey.simulatorConnectStatus, simulatorConnectStatus = _a[_m];
|
|
81
|
+
loginStatus = !!(apptoken && userid && cname);
|
|
82
|
+
if (!loginStatus) return [3, 6];
|
|
83
|
+
userInfoHost = lodash_1["default"].split(lodash_1["default"].toString(cname), ',').filter(function (h) { return h.indexOf('auth-') > -1; })[0];
|
|
84
|
+
userInfoURL = "https://".concat(userInfoHost, "/v2/developer/account/center");
|
|
85
|
+
nickName = '';
|
|
86
|
+
_o.label = 1;
|
|
87
|
+
case 1:
|
|
88
|
+
_o.trys.push([1, 3, , 5]);
|
|
89
|
+
return [4, (0, index_1.getUserInfo)(userInfoURL, apptoken)];
|
|
90
|
+
case 2:
|
|
91
|
+
res = _o.sent();
|
|
92
|
+
nickName = res.userName;
|
|
93
|
+
logger.log('login status:', chalk_1["default"].yellow(loginStatus ? 'logged' : 'no login'));
|
|
94
|
+
return [3, 5];
|
|
95
|
+
case 3:
|
|
96
|
+
error_1 = _o.sent();
|
|
97
|
+
logger.log('login status:', chalk_1["default"].yellow('no login - invalid token'));
|
|
98
|
+
return [4, (0, login_1.login)()];
|
|
99
|
+
case 4:
|
|
100
|
+
res = _o.sent();
|
|
101
|
+
args._loginAppToken = res.appToken;
|
|
102
|
+
process.env._loginAppToken = res.appToken;
|
|
103
|
+
return [2, (0, exports.status)(args)];
|
|
104
|
+
case 5:
|
|
105
|
+
logger.log('nickName:', chalk_1["default"].yellow(nickName || '-'));
|
|
106
|
+
logger.log('userID:', chalk_1["default"].yellow(userid));
|
|
107
|
+
_o.label = 6;
|
|
108
|
+
case 6:
|
|
109
|
+
logger.log('simulator connect status:', chalk_1["default"].yellow(simulatorConnectStatus ? simulatorConnectStatus : 'disconnected'));
|
|
110
|
+
logger.log('simulator host:', chalk_1["default"].yellow(simulatorHost));
|
|
111
|
+
logger.log('simulator port:', chalk_1["default"].yellow(simulatorPort));
|
|
112
|
+
(0, hm_analytics_1.HM_Analytics)('ZEPP_CLI_STATUS_C');
|
|
113
|
+
return [2];
|
|
78
114
|
}
|
|
79
|
-
logger.log('simulator connect status:', chalk_1["default"].yellow(simulatorConnectStatus ? simulatorConnectStatus : 'disconnected'));
|
|
80
|
-
logger.log('simulator host:', chalk_1["default"].yellow(simulatorHost));
|
|
81
|
-
logger.log('simulator port:', chalk_1["default"].yellow(simulatorPort));
|
|
82
|
-
(0, hm_analytics_1.HM_Analytics)('ZEPP_CLI_STATUS_C');
|
|
83
|
-
process.exit(0);
|
|
84
|
-
return [2 /*return*/];
|
|
85
115
|
});
|
|
86
116
|
}); };
|
|
87
117
|
exports.status = status;
|