@zeppos/zeus-cli 1.0.22 → 1.0.24
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/cli.js +1 -0
- package/config/project.js +11 -11
- package/index.js +1 -0
- package/modules/build.js +5 -6
- package/modules/config.js +5 -0
- package/modules/create/index.js +11 -8
- package/modules/create/local-app.js +4 -0
- package/modules/help.js +1 -0
- package/modules/login.js +35 -77
- package/modules/run.js +9 -9
- package/modules/simulator.js +4 -0
- package/modules/status.js +98 -0
- package/package.json +4 -2
- package/public/template/empty/app.js +2 -24
- package/public/template/hello-world/app.js +2 -24
- package/public/template/hello-world/page/gtr3/home/index.page.js +6 -4
- package/public/template/hello-world/page/gtr3/home/index.style.js +11 -28
- package/public/template/hello-world/page/gtr3-pro/home/index.page.js +6 -4
- package/public/template/hello-world/page/gtr3-pro/home/index.style.js +11 -28
- package/public/template/hello-world/page/gts3/home/index.page.js +7 -4
- package/public/template/hello-world/page/gts3/home/index.style.js +11 -28
- package/public/template/jsconfig.json +14 -0
- package/public/template/package.json +14 -0
- package/public/template/timer/app.js +1 -4
- package/public/template/timer/watchface/round/index.js +2 -2
- package/utils/login.js +126 -0
package/bin/cli.js
CHANGED
|
@@ -27,5 +27,6 @@ yargs_1["default"].usage('Usage: $0 <command> [args?]')
|
|
|
27
27
|
// @ts-ignore
|
|
28
28
|
.command('build', 'build this project for production', proxy, index_1.buildProd)
|
|
29
29
|
.command('config', 'set or get the config value', proxy, index_1.config)
|
|
30
|
+
.command('status', 'view information such as login and emulator connection status', proxy, index_1.status)
|
|
30
31
|
.fail(index_1.help)
|
|
31
32
|
.argv;
|
package/config/project.js
CHANGED
|
@@ -3,8 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
exports.__esModule = true;
|
|
6
|
-
exports.loginStorageKey = exports.loginConfig = exports.
|
|
6
|
+
exports.loginStorageKey = exports.loginConfig = exports.ACCOUNT_ENV = exports.ACCOUNT_ENV_KEY = exports.TemplateCopyType = exports.AppSourceType = exports.AppType = void 0;
|
|
7
7
|
var lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
var storage_1 = require("../modules/storage");
|
|
8
9
|
var AppType;
|
|
9
10
|
(function (AppType) {
|
|
10
11
|
AppType["APP"] = "app";
|
|
@@ -20,19 +21,18 @@ var TemplateCopyType;
|
|
|
20
21
|
TemplateCopyType["CLONE"] = "clone";
|
|
21
22
|
TemplateCopyType["EDIT"] = "edit";
|
|
22
23
|
})(TemplateCopyType = exports.TemplateCopyType || (exports.TemplateCopyType = {}));
|
|
23
|
-
|
|
24
|
-
(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
var
|
|
29
|
-
var loginUrl = new URL(
|
|
24
|
+
exports.ACCOUNT_ENV_KEY = 'account_env';
|
|
25
|
+
var storage = new storage_1.Storage({ cmd: '' });
|
|
26
|
+
exports.ACCOUNT_ENV = storage.get(exports.ACCOUNT_ENV_KEY) ? storage.get(exports.ACCOUNT_ENV_KEY) : storage.set(exports.ACCOUNT_ENV_KEY, 'production');
|
|
27
|
+
var loginTestURL = 'https://user-testing.huami.com/universalLogin/index.html#/login';
|
|
28
|
+
var loginProURL = 'https://user.huami.com/universalLogin/index.html#/login';
|
|
29
|
+
var curLoginURL = exports.ACCOUNT_ENV === 'production' ? loginProURL : loginTestURL;
|
|
30
|
+
var loginUrl = new URL(curLoginURL);
|
|
30
31
|
var accountPrefix = "____".concat(lodash_1["default"].replace(loginUrl.host, /\./g, '_'), "__");
|
|
31
32
|
exports.loginConfig = {
|
|
32
|
-
LOGIN_URL:
|
|
33
|
+
LOGIN_URL: curLoginURL,
|
|
33
34
|
PROJECT_NAME: 'zeppos_zeus_cli',
|
|
34
|
-
PLATFORM_APP: 'com.huami.watch.hmwatchmanager'
|
|
35
|
-
PROJECT_REDIRECT_URI: encodeURIComponent("http://".concat(LocalServerConfig.HOSTNAME, ":").concat(LocalServerConfig.PORT, "/"))
|
|
35
|
+
PLATFORM_APP: 'com.huami.watch.hmwatchmanager'
|
|
36
36
|
};
|
|
37
37
|
exports.loginStorageKey = {
|
|
38
38
|
accountToken: "".concat(accountPrefix, "token"),
|
package/index.js
CHANGED
package/modules/build.js
CHANGED
|
@@ -83,7 +83,6 @@ var qrcode_terminal_1 = __importDefault(require("qrcode-terminal"));
|
|
|
83
83
|
var inquirer_1 = __importDefault(require("inquirer"));
|
|
84
84
|
var login_1 = require("./login");
|
|
85
85
|
var logger = __importStar(require("../utils/logger"));
|
|
86
|
-
var storage_1 = require("./storage");
|
|
87
86
|
var project_1 = require("../config/project");
|
|
88
87
|
var chalk_1 = __importDefault(require("chalk"));
|
|
89
88
|
var BuildMode;
|
|
@@ -188,7 +187,9 @@ var build = function (mode, packages) {
|
|
|
188
187
|
};
|
|
189
188
|
if (mode === BuildMode.PROD || mode === BuildMode.PREVIEW) {
|
|
190
189
|
Object.assign(buildOptions, {
|
|
191
|
-
png2vg: true
|
|
190
|
+
png2vg: true,
|
|
191
|
+
jsc: TransformType.C,
|
|
192
|
+
prune: true // js转成bin之后删除js脚本(开启转 bin 之后,需要在 win 上 preview 验证一下转 C 是否正常)
|
|
192
193
|
});
|
|
193
194
|
}
|
|
194
195
|
_a.label = 3;
|
|
@@ -237,12 +238,10 @@ var checkIsWatchFaceProject = function () {
|
|
|
237
238
|
return appType === project_1.AppType.WATCHFACE;
|
|
238
239
|
};
|
|
239
240
|
var buildPreview = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
240
|
-
var
|
|
241
|
+
var _a, apptoken, userid, cname, form, buildInfo, isWatchFaceProject;
|
|
241
242
|
return __generator(this, function (_b) {
|
|
242
243
|
switch (_b.label) {
|
|
243
|
-
case 0:
|
|
244
|
-
storage = new storage_1.Storage({ cmd: lodash_1["default"].get(args, '$0') });
|
|
245
|
-
return [4 /*yield*/, (0, login_1.login)(args)];
|
|
244
|
+
case 0: return [4 /*yield*/, (0, login_1.login)(args)];
|
|
246
245
|
case 1:
|
|
247
246
|
_a = _b.sent(), apptoken = _a.apptoken, userid = _a.userid, cname = _a.cname;
|
|
248
247
|
form = new form_data_1["default"]();
|
package/modules/config.js
CHANGED
|
@@ -63,6 +63,7 @@ var lodash_1 = __importDefault(require("lodash"));
|
|
|
63
63
|
var chalk_1 = __importDefault(require("chalk"));
|
|
64
64
|
var storage_1 = require("./storage");
|
|
65
65
|
var logger = __importStar(require("../utils/logger"));
|
|
66
|
+
var project_1 = require("../config/project");
|
|
66
67
|
var config = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
67
68
|
var cmd, _a, space, _b, method, values, allowedMethods, storage, commonHandleNotKeyTips, config_1;
|
|
68
69
|
return __generator(this, function (_c) {
|
|
@@ -102,6 +103,10 @@ var config = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
102
103
|
logger.error('please input <key>');
|
|
103
104
|
}
|
|
104
105
|
else {
|
|
106
|
+
// 切换登录环境时清除原有 token
|
|
107
|
+
if (key === project_1.ACCOUNT_ENV_KEY && storage.get(project_1.ACCOUNT_ENV_KEY) !== value) {
|
|
108
|
+
storage["delete"](project_1.loginStorageKey.accountToken);
|
|
109
|
+
}
|
|
105
110
|
storage.set(key, value);
|
|
106
111
|
logger.success("config: ".concat(key, "=").concat(value));
|
|
107
112
|
}
|
package/modules/create/index.js
CHANGED
|
@@ -87,6 +87,7 @@ var fs = __importStar(require("fs"));
|
|
|
87
87
|
var fs_extra_1 = __importDefault(require("fs-extra"));
|
|
88
88
|
var path_1 = require("path");
|
|
89
89
|
var fs_1 = require("fs");
|
|
90
|
+
var yeoman_environment_1 = __importDefault(require("yeoman-environment"));
|
|
90
91
|
var local_app_1 = require("./local-app");
|
|
91
92
|
var yeoman_app_1 = require("./yeoman-app");
|
|
92
93
|
var project_1 = require("../../config/project");
|
|
@@ -94,15 +95,16 @@ var device_1 = require("../../config/device");
|
|
|
94
95
|
var font_icon_1 = __importDefault(require("../../font-icon"));
|
|
95
96
|
var logger = __importStar(require("../../utils/logger"));
|
|
96
97
|
var sleep_1 = require("../../utils/sleep");
|
|
97
|
-
var
|
|
98
|
+
var shell = require('shelljs');
|
|
98
99
|
var TEMPLATE_DIR = (0, path_1.resolve)(__dirname, '../../public/template');
|
|
99
100
|
var create = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
100
|
-
var _a, cmd, projectName, cwdPath,
|
|
101
|
+
var _a, cmd, projectName, cwdPath, beforeFiles, workDir, localTemplates, localChoices, watchfaceTemplateChoices, appTemplateChoices, env, generatorMate, generatorMateKeys, answer, choosePkg;
|
|
101
102
|
return __generator(this, function (_b) {
|
|
102
103
|
switch (_b.label) {
|
|
103
104
|
case 0:
|
|
104
105
|
_a = args._ || [], cmd = _a[0], projectName = _a[1];
|
|
105
106
|
cwdPath = (0, path_1.resolve)('./');
|
|
107
|
+
beforeFiles = [];
|
|
106
108
|
workDir = cwdPath;
|
|
107
109
|
if (cmd === 'create') {
|
|
108
110
|
if (projectName) {
|
|
@@ -117,7 +119,6 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
117
119
|
process.exit(1);
|
|
118
120
|
}
|
|
119
121
|
}
|
|
120
|
-
beforeFiles = [];
|
|
121
122
|
if (fs.existsSync(workDir)) {
|
|
122
123
|
rd.eachFileSync(workDir, function (file) {
|
|
123
124
|
beforeFiles.push(file);
|
|
@@ -162,14 +163,14 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
162
163
|
}
|
|
163
164
|
env = yeoman_environment_1["default"].createEnv();
|
|
164
165
|
env.lookup();
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
if (
|
|
166
|
+
generatorMate = env.getGeneratorsMeta();
|
|
167
|
+
generatorMateKeys = Object.keys(generatorMate);
|
|
168
|
+
if (generatorMateKeys.length) {
|
|
168
169
|
if (localChoices.length) {
|
|
169
170
|
// @ts-ignore
|
|
170
171
|
localChoices.push(new inquirer_1["default"].Separator());
|
|
171
172
|
}
|
|
172
|
-
|
|
173
|
+
generatorMateKeys.forEach(function (name) {
|
|
173
174
|
if (/:(app|all)$/.test(name)) {
|
|
174
175
|
localChoices.push({
|
|
175
176
|
name: name,
|
|
@@ -260,7 +261,7 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
260
261
|
_b.sent();
|
|
261
262
|
if (choosePkg.type === project_1.AppSourceType.YEOMAN) {
|
|
262
263
|
logger.info("".concat(lodash_1["default"].upperFirst(cmd), " application using yeoman template \"").concat(choosePkg.name, "\"."));
|
|
263
|
-
(0, yeoman_app_1.createYeomanApp)(__assign(__assign({}, answer), { env: env, templateInfo:
|
|
264
|
+
(0, yeoman_app_1.createYeomanApp)(__assign(__assign({}, answer), { env: env, templateInfo: generatorMate[choosePkg.name] }));
|
|
264
265
|
}
|
|
265
266
|
else {
|
|
266
267
|
logger.info("".concat(lodash_1["default"].upperFirst(cmd), " application using local template \"").concat(choosePkg.name, "\"."));
|
|
@@ -286,6 +287,8 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
286
287
|
});
|
|
287
288
|
logger.log('\n');
|
|
288
289
|
logger.success("project created successfully by \"".concat(choosePkg.name, "\" template.\n"));
|
|
290
|
+
shell.cd("".concat(projectName));
|
|
291
|
+
shell.exec('npm install');
|
|
289
292
|
return [4 /*yield*/, (0, sleep_1.sleep)(300)];
|
|
290
293
|
case 4:
|
|
291
294
|
_b.sent();
|
|
@@ -55,6 +55,7 @@ var os_1 = __importDefault(require("os"));
|
|
|
55
55
|
var lodash_1 = __importDefault(require("lodash"));
|
|
56
56
|
var path_1 = require("path");
|
|
57
57
|
var fs_extra_1 = __importDefault(require("fs-extra"));
|
|
58
|
+
var fs_1 = __importDefault(require("fs"));
|
|
58
59
|
var project_1 = require("../../config/project");
|
|
59
60
|
var device_1 = require("../../config/device");
|
|
60
61
|
// 生成模板项目
|
|
@@ -63,6 +64,9 @@ var createLocalApp = function (args) { return __awaiter(void 0, void 0, void 0,
|
|
|
63
64
|
return __generator(this, function (_a) {
|
|
64
65
|
workDir = args.workDir, templateInfo = args.templateInfo, withAppSide = args.withAppSide, withSettings = args.withSettings, buildTargets = args.buildTargets, appType = args.appType;
|
|
65
66
|
fs_extra_1["default"].copySync(templateInfo.path, workDir);
|
|
67
|
+
fs_extra_1["default"].copySync((0, path_1.resolve)(__dirname, '../../public/template/jsconfig.json'), "".concat(workDir, "/jsconfig.json"));
|
|
68
|
+
fs_extra_1["default"].copySync((0, path_1.resolve)(__dirname, '../../public/template/package.json'), "".concat(workDir, "/package.json"));
|
|
69
|
+
fs_1["default"].writeFileSync("".concat(workDir, "/global.d.ts"), '/// <reference path="node_modules/@zeppos/device-types/index.d.ts" />');
|
|
66
70
|
appJsonPath = (0, path_1.resolve)(workDir, './app.json');
|
|
67
71
|
appJson = fs_extra_1["default"].readJsonSync(appJsonPath);
|
|
68
72
|
appID = Math.floor(Math.random() * 10001) + 20000;
|
package/modules/help.js
CHANGED
|
@@ -78,6 +78,7 @@ var help = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
|
78
78
|
logger.log("".concat(cmd, " preview preview this project in your device"));
|
|
79
79
|
logger.log("".concat(cmd, " build build this project for production"));
|
|
80
80
|
logger.log("".concat(cmd, " config <term> set or get the config value"));
|
|
81
|
+
logger.log("".concat(cmd, " status view information such as login and emulator connection status"));
|
|
81
82
|
logger.log('');
|
|
82
83
|
logger.log('');
|
|
83
84
|
logger.log("".concat(cmd, "@").concat(pkg.version, " ").concat(path.resolve(__dirname, '../')));
|
package/modules/login.js
CHANGED
|
@@ -59,68 +59,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
59
59
|
};
|
|
60
60
|
exports.__esModule = true;
|
|
61
61
|
exports.logout = exports.login = void 0;
|
|
62
|
-
var qs_1 = __importDefault(require("qs"));
|
|
63
62
|
var lodash_1 = __importDefault(require("lodash"));
|
|
64
|
-
var axios_1 = __importDefault(require("axios"));
|
|
65
63
|
var inquirer_1 = __importDefault(require("inquirer"));
|
|
66
64
|
var storage_1 = require("./storage");
|
|
67
65
|
var logger = __importStar(require("../utils/logger"));
|
|
68
66
|
var project_1 = require("../config/project");
|
|
67
|
+
var login_1 = require("../utils/login");
|
|
68
|
+
var get_port_1 = __importDefault(require("get-port"));
|
|
69
69
|
var open = require('open');
|
|
70
70
|
var http = require('http');
|
|
71
71
|
var url = require('url');
|
|
72
72
|
var querystring = require('querystring');
|
|
73
|
-
var REGIST_URL = 'https://api-user.huami.com';
|
|
74
|
-
var LOGIN_URL = 'https://account.huami.com';
|
|
75
|
-
var postForm = function (url, data) {
|
|
76
|
-
return (0, axios_1["default"])({
|
|
77
|
-
method: 'POST',
|
|
78
|
-
headers: {
|
|
79
|
-
'content-type': 'application/x-www-form-urlencoded'
|
|
80
|
-
},
|
|
81
|
-
data: qs_1["default"].stringify(data),
|
|
82
|
-
url: url
|
|
83
|
-
});
|
|
84
|
-
};
|
|
85
|
-
var loginByLocal = function (account, password) { return __awaiter(void 0, void 0, void 0, function () {
|
|
86
|
-
var data, checkInfo, loginInfo;
|
|
87
|
-
return __generator(this, function (_a) {
|
|
88
|
-
switch (_a.label) {
|
|
89
|
-
case 0:
|
|
90
|
-
data = {
|
|
91
|
-
client_id: 'HuaMi',
|
|
92
|
-
country_code: 'zh-CN',
|
|
93
|
-
json_response: 'true',
|
|
94
|
-
name: '',
|
|
95
|
-
password: password,
|
|
96
|
-
phoneOrEmail: account,
|
|
97
|
-
redirect_uri: 'https://s3-us-west-2.amazonaws.com/hm-registration/successsignin.html',
|
|
98
|
-
state: 'REDIRECTION',
|
|
99
|
-
token: 'access'
|
|
100
|
-
};
|
|
101
|
-
if (/^[1][0-9]{10}$/.test(account)) {
|
|
102
|
-
data.phoneOrEmail = encodeURIComponent("+86".concat(account));
|
|
103
|
-
}
|
|
104
|
-
data.name = data.phoneOrEmail.split('@')[0];
|
|
105
|
-
return [4 /*yield*/, postForm("".concat(REGIST_URL, "/registrations/").concat(data.phoneOrEmail, "/tokens"), data)];
|
|
106
|
-
case 1:
|
|
107
|
-
checkInfo = _a.sent();
|
|
108
|
-
return [4 /*yield*/, postForm("".concat(LOGIN_URL, "/v2/client/login"), {
|
|
109
|
-
app_name: 'com.huami.webapp',
|
|
110
|
-
app_version: '4.3.0',
|
|
111
|
-
code: lodash_1["default"].get(checkInfo, 'data.access', ''),
|
|
112
|
-
country_code: 'zh-cn',
|
|
113
|
-
device_id: '02:00:00:00:00:00',
|
|
114
|
-
device_model: 'web',
|
|
115
|
-
grant_type: 'access_token',
|
|
116
|
-
third_name: 'huami'
|
|
117
|
-
})];
|
|
118
|
-
case 2:
|
|
119
|
-
loginInfo = (_a.sent()).data;
|
|
120
|
-
return [2 /*return*/, loginInfo];
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
}); };
|
|
124
73
|
var login = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
125
74
|
var storage, accountInfo, apptoken, userid, cname, isLocal, answer, loginInfo_1, token, loginInfo;
|
|
126
75
|
return __generator(this, function (_a) {
|
|
@@ -154,7 +103,7 @@ var login = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
154
103
|
case 1:
|
|
155
104
|
answer = _a.sent();
|
|
156
105
|
answer.account = answer.account || accountInfo;
|
|
157
|
-
return [4 /*yield*/, loginByLocal(answer.account, answer.password)["catch"](function () {
|
|
106
|
+
return [4 /*yield*/, (0, login_1.loginByLocal)(answer.account, answer.password)["catch"](function () {
|
|
158
107
|
logger.error('logged in failed, please check your account and password');
|
|
159
108
|
process.exit(1);
|
|
160
109
|
})];
|
|
@@ -168,34 +117,43 @@ var login = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
168
117
|
}
|
|
169
118
|
_a.label = 3;
|
|
170
119
|
case 3: return [4 /*yield*/, new Promise(function (resolve) { return __awaiter(void 0, void 0, void 0, function () {
|
|
171
|
-
var server;
|
|
120
|
+
var server, HOSTNAME, PORT, PROJECT_REDIRECT_URI;
|
|
172
121
|
return __generator(this, function (_a) {
|
|
173
122
|
switch (_a.label) {
|
|
174
123
|
case 0:
|
|
175
|
-
server = http.createServer(function (req, res) {
|
|
176
|
-
var arg
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
124
|
+
server = http.createServer(function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
|
|
125
|
+
var arg, params, apptoken, userid, cname;
|
|
126
|
+
return __generator(this, function (_a) {
|
|
127
|
+
arg = url.parse(req.url).query;
|
|
128
|
+
params = querystring.parse(arg);
|
|
129
|
+
apptoken = params.apptoken, userid = params.userid, cname = params.cname;
|
|
130
|
+
res.statusCode = 200;
|
|
131
|
+
res.setHeader('Content-Type', 'text/plain');
|
|
132
|
+
res.end('Login is successful, please return to the operation interface manually');
|
|
133
|
+
if (apptoken) {
|
|
134
|
+
resolve({ apptoken: apptoken, userid: userid, cname: cname });
|
|
135
|
+
storage.set(project_1.loginStorageKey.userid, userid);
|
|
136
|
+
storage.set(project_1.loginStorageKey.cname, cname);
|
|
137
|
+
storage.set(project_1.loginStorageKey.accountToken, apptoken);
|
|
138
|
+
logger.success('logger success');
|
|
139
|
+
server.close();
|
|
140
|
+
// 在执行 preview 命令需要登录时不退出程序
|
|
141
|
+
if (!args) {
|
|
142
|
+
process.exit(1);
|
|
143
|
+
}
|
|
192
144
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
return [4 /*yield*/,
|
|
145
|
+
return [2 /*return*/];
|
|
146
|
+
});
|
|
147
|
+
}); });
|
|
148
|
+
HOSTNAME = 'localhost';
|
|
149
|
+
return [4 /*yield*/, (0, get_port_1["default"])({ port: 8086 })];
|
|
198
150
|
case 1:
|
|
151
|
+
PORT = _a.sent();
|
|
152
|
+
PROJECT_REDIRECT_URI = encodeURIComponent("http://".concat(HOSTNAME, ":").concat(PORT, "/"));
|
|
153
|
+
server.listen(PORT, HOSTNAME);
|
|
154
|
+
// 打开浏览器的登录页面
|
|
155
|
+
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))];
|
|
156
|
+
case 2:
|
|
199
157
|
// 打开浏览器的登录页面
|
|
200
158
|
_a.sent();
|
|
201
159
|
return [2 /*return*/];
|
package/modules/run.js
CHANGED
|
@@ -58,7 +58,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
58
58
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
59
59
|
};
|
|
60
60
|
exports.__esModule = true;
|
|
61
|
-
exports.run = void 0;
|
|
61
|
+
exports.run = exports.DEFAULT_PORT = exports.DEFAULT_HOST = void 0;
|
|
62
62
|
var fs_1 = __importDefault(require("fs"));
|
|
63
63
|
var lodash_1 = __importDefault(require("lodash"));
|
|
64
64
|
var chalk_1 = __importDefault(require("chalk"));
|
|
@@ -72,8 +72,8 @@ var build_1 = require("./build");
|
|
|
72
72
|
var storage_1 = require("./storage");
|
|
73
73
|
var simulator_1 = require("./simulator");
|
|
74
74
|
var device_1 = require("../config/device");
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
exports.DEFAULT_HOST = '127.0.0.1';
|
|
76
|
+
exports.DEFAULT_PORT = '7650';
|
|
77
77
|
var getDeviceInternalCodename = function (curTarget) {
|
|
78
78
|
var _a;
|
|
79
79
|
var appJsonFilePath = path.resolve('./app.json');
|
|
@@ -88,24 +88,24 @@ var run = function (args) { return __awaiter(void 0, void 0, void 0, function ()
|
|
|
88
88
|
case 0:
|
|
89
89
|
storage = new storage_1.Storage({ cmd: lodash_1["default"].get(args, '$0') });
|
|
90
90
|
simulatorHost = storage.get('simulator_host');
|
|
91
|
-
simulatorPort = storage.get('simulator_port') || DEFAULT_PORT;
|
|
91
|
+
simulatorPort = storage.get('simulator_port') || exports.DEFAULT_PORT;
|
|
92
92
|
if (!!simulatorHost) return [3 /*break*/, 2];
|
|
93
93
|
return [4 /*yield*/, inquirer_1["default"].prompt([
|
|
94
94
|
{
|
|
95
95
|
name: 'host',
|
|
96
96
|
type: 'input',
|
|
97
|
-
message: "simulator host (".concat(DEFAULT_HOST, "):")
|
|
97
|
+
message: "simulator host (".concat(exports.DEFAULT_HOST, "):")
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
100
|
name: 'port',
|
|
101
101
|
type: 'input',
|
|
102
|
-
message: "simulator port (".concat(DEFAULT_PORT, "):")
|
|
102
|
+
message: "simulator port (".concat(exports.DEFAULT_PORT, "):")
|
|
103
103
|
}
|
|
104
104
|
])];
|
|
105
105
|
case 1:
|
|
106
106
|
answer = _a.sent();
|
|
107
|
-
simulatorHost = answer.host || DEFAULT_HOST;
|
|
108
|
-
simulatorPort = answer.port || DEFAULT_PORT;
|
|
107
|
+
simulatorHost = answer.host || exports.DEFAULT_HOST;
|
|
108
|
+
simulatorPort = answer.port || exports.DEFAULT_PORT;
|
|
109
109
|
storage.set('simulator_host', simulatorHost);
|
|
110
110
|
storage.set('simulator_port', simulatorPort);
|
|
111
111
|
_a.label = 2;
|
|
@@ -126,7 +126,7 @@ var run = function (args) { return __awaiter(void 0, void 0, void 0, function ()
|
|
|
126
126
|
zpkBuffer = _a.sent();
|
|
127
127
|
if (zpkBuffer) {
|
|
128
128
|
logger.info('rebuild done');
|
|
129
|
-
logger.info('
|
|
129
|
+
logger.info('refreshing simulator...');
|
|
130
130
|
targetDeviceInternalName = getDeviceInternalCodename(packages[0]);
|
|
131
131
|
projectName = path.parse(process.cwd()).base;
|
|
132
132
|
simulator.upload(zpkBuffer, projectName, targetDeviceInternalName);
|
package/modules/simulator.js
CHANGED
|
@@ -22,6 +22,8 @@ exports.__esModule = true;
|
|
|
22
22
|
exports.Simulator = void 0;
|
|
23
23
|
var socket_io_client_1 = require("socket.io-client");
|
|
24
24
|
var logger = __importStar(require("../utils/logger"));
|
|
25
|
+
var storage_1 = require("./storage");
|
|
26
|
+
var storage = new storage_1.Storage({ cmd: '' });
|
|
25
27
|
var Simulator = /** @class */ (function () {
|
|
26
28
|
function Simulator(url, options) {
|
|
27
29
|
this.previewId = 1;
|
|
@@ -29,9 +31,11 @@ var Simulator = /** @class */ (function () {
|
|
|
29
31
|
logger.info('connecting to simulator');
|
|
30
32
|
this.socket = (0, socket_io_client_1.io)(url, options || {});
|
|
31
33
|
this.socket.on('connect', function () {
|
|
34
|
+
storage.set('____simulator_connect_status', 'connected');
|
|
32
35
|
logger.success('simulator connected');
|
|
33
36
|
});
|
|
34
37
|
this.socket.on('disconnect', function () {
|
|
38
|
+
storage.set('____simulator_connect_status', 'disconnected');
|
|
35
39
|
logger.error('simulator disconnected, please restart the simulator');
|
|
36
40
|
});
|
|
37
41
|
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
22
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
23
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
24
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
25
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
26
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
27
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
31
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
32
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
33
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
34
|
+
function step(op) {
|
|
35
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
36
|
+
while (_) try {
|
|
37
|
+
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;
|
|
38
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
39
|
+
switch (op[0]) {
|
|
40
|
+
case 0: case 1: t = op; break;
|
|
41
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
42
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
43
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
44
|
+
default:
|
|
45
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
46
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
47
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
48
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
49
|
+
if (t[2]) _.ops.pop();
|
|
50
|
+
_.trys.pop(); continue;
|
|
51
|
+
}
|
|
52
|
+
op = body.call(thisArg, _);
|
|
53
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
54
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
58
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
59
|
+
};
|
|
60
|
+
exports.__esModule = true;
|
|
61
|
+
exports.status = void 0;
|
|
62
|
+
var chalk_1 = __importDefault(require("chalk"));
|
|
63
|
+
var logger = __importStar(require("../utils/logger"));
|
|
64
|
+
var storage_1 = require("./storage");
|
|
65
|
+
var project_1 = require("../config/project");
|
|
66
|
+
var login_1 = require("../utils/login");
|
|
67
|
+
var run_1 = require("./run");
|
|
68
|
+
var status = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
69
|
+
var storage, apptoken, userid, cname, host, loginStatus, userInfo, _a, userName, simulatorHost, simulatorPort, simulatorConnectStatus;
|
|
70
|
+
return __generator(this, function (_b) {
|
|
71
|
+
switch (_b.label) {
|
|
72
|
+
case 0:
|
|
73
|
+
storage = new storage_1.Storage({ cmd: '' });
|
|
74
|
+
apptoken = storage.get(project_1.loginStorageKey.accountToken);
|
|
75
|
+
userid = storage.get(project_1.loginStorageKey.userid);
|
|
76
|
+
cname = storage.get(project_1.loginStorageKey.cname);
|
|
77
|
+
host = cname.split(',').filter(function (h) { return h.indexOf('api-mifit') > -1; })[0];
|
|
78
|
+
loginStatus = (apptoken && userid && cname) ? 'logged' : 'logout';
|
|
79
|
+
return [4 /*yield*/, (0, login_1.getUserInfo)(host, userid, apptoken)];
|
|
80
|
+
case 1:
|
|
81
|
+
userInfo = _b.sent();
|
|
82
|
+
_a = (userInfo || {}).userName, userName = _a === void 0 ? '' : _a;
|
|
83
|
+
simulatorHost = storage.get('simulator_host') || run_1.DEFAULT_HOST;
|
|
84
|
+
simulatorPort = storage.get('simulator_port') || run_1.DEFAULT_PORT;
|
|
85
|
+
simulatorConnectStatus = storage.get('____simulator_connect_status');
|
|
86
|
+
logger.log('login status:', chalk_1["default"].yellow(loginStatus));
|
|
87
|
+
if (loginStatus === 'logged') {
|
|
88
|
+
logger.log('nickName:', chalk_1["default"].yellow(userName));
|
|
89
|
+
logger.log('userID:', chalk_1["default"].yellow(userid));
|
|
90
|
+
}
|
|
91
|
+
logger.log('simulator connect status:', chalk_1["default"].yellow(simulatorConnectStatus ? simulatorConnectStatus : 'disconnected'));
|
|
92
|
+
logger.log('simulator host:', chalk_1["default"].yellow(simulatorHost));
|
|
93
|
+
logger.log('simulator port:', chalk_1["default"].yellow(simulatorPort));
|
|
94
|
+
return [2 /*return*/];
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}); };
|
|
98
|
+
exports.status = status;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeppos/zeus-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.24",
|
|
4
4
|
"description": "zeus mini-program tools",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"author": "zepp",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"webpack": "^5.52.0"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@zeppos/zpm": "^2.1.
|
|
40
|
+
"@zeppos/zpm": "^2.1.49",
|
|
41
41
|
"axios": "^0.23.0",
|
|
42
42
|
"chalk": "^4.1.2",
|
|
43
43
|
"chokidar": "^3.5.2",
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
"findup-sync": "^4.0.0",
|
|
47
47
|
"form-data": "^4.0.0",
|
|
48
48
|
"fs-extra": "^10.0.0",
|
|
49
|
+
"get-port": "5.1.1",
|
|
49
50
|
"inquirer": "^8.1.2",
|
|
50
51
|
"lodash": "^4.17.21",
|
|
51
52
|
"npm-keyword": "^6.1.0",
|
|
@@ -53,6 +54,7 @@
|
|
|
53
54
|
"qrcode-terminal": "^0.12.0",
|
|
54
55
|
"qs": "^6.10.1",
|
|
55
56
|
"rd": "^2.0.1",
|
|
57
|
+
"shelljs": "^0.8.4",
|
|
56
58
|
"socket.io-client": "^4.3.0",
|
|
57
59
|
"update-notifier": "^5.1.0",
|
|
58
60
|
"yargs": "^17.1.1",
|
|
@@ -1,32 +1,10 @@
|
|
|
1
1
|
App({
|
|
2
|
-
globalData: {
|
|
3
|
-
|
|
4
|
-
},
|
|
2
|
+
globalData: {},
|
|
5
3
|
onCreate(options) {
|
|
6
4
|
console.log('app on create invoke')
|
|
7
5
|
},
|
|
8
6
|
|
|
9
|
-
onShow(options) {
|
|
10
|
-
console.log('app on show invoke')
|
|
11
|
-
},
|
|
12
|
-
|
|
13
|
-
onHide(options) {
|
|
14
|
-
console.log('app on hide invoke')
|
|
15
|
-
},
|
|
16
|
-
|
|
17
7
|
onDestroy(options) {
|
|
18
|
-
console.log('app on
|
|
19
|
-
},
|
|
20
|
-
|
|
21
|
-
onError(error) {
|
|
22
|
-
console.log('app on error invoke')
|
|
23
|
-
},
|
|
24
|
-
|
|
25
|
-
onPageNotFound(obj) {
|
|
26
|
-
console.log('app on page not found invoke')
|
|
27
|
-
},
|
|
28
|
-
|
|
29
|
-
onUnhandledRejection(obj) {
|
|
30
|
-
console.log('app on un handle rejection invoke')
|
|
8
|
+
console.log('app on destroy invoke')
|
|
31
9
|
}
|
|
32
10
|
})
|
|
@@ -1,32 +1,10 @@
|
|
|
1
1
|
App({
|
|
2
|
-
globalData: {
|
|
3
|
-
|
|
4
|
-
},
|
|
2
|
+
globalData: {},
|
|
5
3
|
onCreate(options) {
|
|
6
4
|
console.log('app on create invoke')
|
|
7
5
|
},
|
|
8
6
|
|
|
9
|
-
onShow(options) {
|
|
10
|
-
console.log('app on show invoke')
|
|
11
|
-
},
|
|
12
|
-
|
|
13
|
-
onHide(options) {
|
|
14
|
-
console.log('app on hide invoke')
|
|
15
|
-
},
|
|
16
|
-
|
|
17
7
|
onDestroy(options) {
|
|
18
|
-
console.log('app on
|
|
19
|
-
},
|
|
20
|
-
|
|
21
|
-
onError(error) {
|
|
22
|
-
console.log('app on error invoke')
|
|
23
|
-
},
|
|
24
|
-
|
|
25
|
-
onPageNotFound(obj) {
|
|
26
|
-
console.log('app on page not found invoke')
|
|
27
|
-
},
|
|
28
|
-
|
|
29
|
-
onUnhandledRejection(obj) {
|
|
30
|
-
console.log('app on un handle rejection invoke')
|
|
8
|
+
console.log('app on destroy invoke')
|
|
31
9
|
}
|
|
32
10
|
})
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TEXT_STYLE } from './index.style'
|
|
2
2
|
|
|
3
3
|
const logger = DeviceRuntimeCore.HmLogger.getLogger('helloworld')
|
|
4
4
|
Page({
|
|
5
5
|
build() {
|
|
6
6
|
logger.debug('page build invoked')
|
|
7
|
-
|
|
7
|
+
hmUI.createWidget(hmUI.widget.TEXT, {
|
|
8
|
+
...TEXT_STYLE,
|
|
9
|
+
})
|
|
8
10
|
},
|
|
9
11
|
onInit() {
|
|
10
12
|
logger.debug('page onInit invoked')
|
|
11
13
|
},
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
logger.debug('page
|
|
15
|
+
onDestroy() {
|
|
16
|
+
logger.debug('page onDestroy invoked')
|
|
15
17
|
},
|
|
16
18
|
})
|
|
@@ -1,32 +1,15 @@
|
|
|
1
1
|
import { gettext } from "i18n"
|
|
2
|
-
import { assets } from './../../../utils/index'
|
|
3
2
|
|
|
4
|
-
const
|
|
3
|
+
export const { width: DEVICE_WIDTH, height: DEVICE_HEIGHT } = hmSetting.getDeviceInfo()
|
|
5
4
|
|
|
6
|
-
export const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
text_size: 36,
|
|
17
|
-
align_h: h.ALIGN.CENTER_H,
|
|
18
|
-
text_style: hmUI.text_style.WRAP
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export const imageStyle = {
|
|
23
|
-
attrs: {
|
|
24
|
-
src: image('logo.png')
|
|
25
|
-
},
|
|
26
|
-
styles: {
|
|
27
|
-
x: 115,
|
|
28
|
-
y: 100,
|
|
29
|
-
w: 250,
|
|
30
|
-
h: 56,
|
|
31
|
-
},
|
|
5
|
+
export const TEXT_STYLE = {
|
|
6
|
+
text: gettext('appName'),
|
|
7
|
+
x: px(42),
|
|
8
|
+
y: px(200),
|
|
9
|
+
w: DEVICE_WIDTH - px(42) * 2,
|
|
10
|
+
h: px(100),
|
|
11
|
+
color: 0xffffff,
|
|
12
|
+
text_size: px(36),
|
|
13
|
+
align_h: hmUI.align.CENTER_H,
|
|
14
|
+
text_style: hmUI.text_style.WRAP,
|
|
32
15
|
}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TEXT_STYLE } from './index.style'
|
|
2
2
|
|
|
3
3
|
const logger = DeviceRuntimeCore.HmLogger.getLogger('helloworld')
|
|
4
4
|
Page({
|
|
5
5
|
build() {
|
|
6
6
|
logger.debug('page build invoked')
|
|
7
|
-
|
|
7
|
+
hmUI.createWidget(hmUI.widget.TEXT, {
|
|
8
|
+
...TEXT_STYLE,
|
|
9
|
+
})
|
|
8
10
|
},
|
|
9
11
|
onInit() {
|
|
10
12
|
logger.debug('page onInit invoked')
|
|
11
13
|
},
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
logger.debug('page
|
|
15
|
+
onDestroy() {
|
|
16
|
+
logger.debug('page onDestroy invoked')
|
|
15
17
|
},
|
|
16
18
|
})
|
|
@@ -1,32 +1,15 @@
|
|
|
1
1
|
import { gettext } from "i18n"
|
|
2
|
-
import { assets } from './../../../utils/index'
|
|
3
2
|
|
|
4
|
-
const
|
|
3
|
+
export const { width: DEVICE_WIDTH, height: DEVICE_HEIGHT } = hmSetting.getDeviceInfo()
|
|
5
4
|
|
|
6
|
-
export const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
text_size: 36,
|
|
17
|
-
align_h: h.ALIGN.CENTER_H,
|
|
18
|
-
text_style: hmUI.text_style.WRAP
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export const imageStyle = {
|
|
23
|
-
attrs: {
|
|
24
|
-
src: image('logo.png')
|
|
25
|
-
},
|
|
26
|
-
styles: {
|
|
27
|
-
x: 115,
|
|
28
|
-
y: 100,
|
|
29
|
-
w: 250,
|
|
30
|
-
h: 56,
|
|
31
|
-
},
|
|
5
|
+
export const TEXT_STYLE = {
|
|
6
|
+
text: gettext('appName'),
|
|
7
|
+
x: px(42),
|
|
8
|
+
y: px(200),
|
|
9
|
+
w: DEVICE_WIDTH - px(42) * 2,
|
|
10
|
+
h: px(100),
|
|
11
|
+
color: 0xffffff,
|
|
12
|
+
text_size: px(36),
|
|
13
|
+
align_h: hmUI.align.CENTER_H,
|
|
14
|
+
text_style: hmUI.text_style.WRAP,
|
|
32
15
|
}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TEXT_STYLE } from './index.style'
|
|
2
2
|
|
|
3
3
|
const logger = DeviceRuntimeCore.HmLogger.getLogger('helloworld')
|
|
4
|
+
|
|
4
5
|
Page({
|
|
5
6
|
build() {
|
|
6
7
|
logger.debug('page build invoked')
|
|
7
|
-
|
|
8
|
+
hmUI.createWidget(hmUI.widget.TEXT, {
|
|
9
|
+
...TEXT_STYLE,
|
|
10
|
+
})
|
|
8
11
|
},
|
|
9
12
|
onInit() {
|
|
10
13
|
logger.debug('page onInit invoked')
|
|
11
14
|
},
|
|
12
15
|
|
|
13
|
-
|
|
14
|
-
logger.debug('page
|
|
16
|
+
onDestroy() {
|
|
17
|
+
logger.debug('page onDestroy invoked')
|
|
15
18
|
},
|
|
16
19
|
})
|
|
@@ -1,32 +1,15 @@
|
|
|
1
1
|
import { gettext } from "i18n"
|
|
2
|
-
import { assets } from './../../../utils/index'
|
|
3
2
|
|
|
4
|
-
const
|
|
3
|
+
export const { width: DEVICE_WIDTH, height: DEVICE_HEIGHT } = hmSetting.getDeviceInfo()
|
|
5
4
|
|
|
6
|
-
export const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
text_size: 36,
|
|
17
|
-
align_h: h.ALIGN.CENTER_H,
|
|
18
|
-
text_style: hmUI.text_style.WRAP
|
|
19
|
-
}
|
|
5
|
+
export const TEXT_STYLE = {
|
|
6
|
+
text: gettext('appName'),
|
|
7
|
+
x: 42,
|
|
8
|
+
y: 200,
|
|
9
|
+
w: DEVICE_WIDTH - 42 * 2,
|
|
10
|
+
h: 100,
|
|
11
|
+
color: 0xffffff,
|
|
12
|
+
text_size: 36,
|
|
13
|
+
align_h: hmUI.align.CENTER_H,
|
|
14
|
+
text_style: hmUI.text_style.WRAP,
|
|
20
15
|
}
|
|
21
|
-
|
|
22
|
-
export const imageStyle = {
|
|
23
|
-
attrs: {
|
|
24
|
-
src: image('logo.png')
|
|
25
|
-
},
|
|
26
|
-
styles: {
|
|
27
|
-
x: 115,
|
|
28
|
-
y: 100,
|
|
29
|
-
w: 250,
|
|
30
|
-
h: 56,
|
|
31
|
-
},
|
|
32
|
-
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "empty",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "app.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
8
|
+
},
|
|
9
|
+
"author": "",
|
|
10
|
+
"license": "ISC",
|
|
11
|
+
"devDependencies": {
|
|
12
|
+
"@zeppos/device-types": "^1.0.0"
|
|
13
|
+
}
|
|
14
|
+
}
|
package/utils/login.js
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
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;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
exports.__esModule = true;
|
|
42
|
+
exports.getUserInfo = exports.loginByLocal = void 0;
|
|
43
|
+
var axios_1 = __importDefault(require("axios"));
|
|
44
|
+
var lodash_1 = __importDefault(require("lodash"));
|
|
45
|
+
var qs_1 = __importDefault(require("qs"));
|
|
46
|
+
var project_1 = require("../config/project");
|
|
47
|
+
var REGISTER_TEST_URL = 'https://api-mifit-staging.huami.com';
|
|
48
|
+
var REGISTER_PRO_URL = 'https://api-user.huami.com';
|
|
49
|
+
var CUR_REGISTER_URL = project_1.ACCOUNT_ENV === 'test' ? REGISTER_TEST_URL : REGISTER_PRO_URL;
|
|
50
|
+
var LOGIN_URL = 'https://account.huami.com';
|
|
51
|
+
var postForm = function (url, data) {
|
|
52
|
+
return (0, axios_1["default"])({
|
|
53
|
+
method: 'POST',
|
|
54
|
+
headers: {
|
|
55
|
+
'content-type': 'application/x-www-form-urlencoded'
|
|
56
|
+
},
|
|
57
|
+
data: qs_1["default"].stringify(data),
|
|
58
|
+
url: url
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
var loginByLocal = function (account, password) { return __awaiter(void 0, void 0, void 0, function () {
|
|
62
|
+
var data, checkInfo, loginInfo;
|
|
63
|
+
return __generator(this, function (_a) {
|
|
64
|
+
switch (_a.label) {
|
|
65
|
+
case 0:
|
|
66
|
+
data = {
|
|
67
|
+
client_id: 'HuaMi',
|
|
68
|
+
country_code: 'zh-CN',
|
|
69
|
+
json_response: 'true',
|
|
70
|
+
name: '',
|
|
71
|
+
password: password,
|
|
72
|
+
phoneOrEmail: account,
|
|
73
|
+
redirect_uri: 'https://s3-us-west-2.amazonaws.com/hm-registration/successsignin.html',
|
|
74
|
+
state: 'REDIRECTION',
|
|
75
|
+
token: 'access'
|
|
76
|
+
};
|
|
77
|
+
if (/^[1][0-9]{10}$/.test(account)) {
|
|
78
|
+
data.phoneOrEmail = encodeURIComponent("+86".concat(account));
|
|
79
|
+
}
|
|
80
|
+
data.name = data.phoneOrEmail.split('@')[0];
|
|
81
|
+
return [4 /*yield*/, postForm("".concat(CUR_REGISTER_URL, "/registrations/").concat(data.phoneOrEmail, "/tokens"), data)];
|
|
82
|
+
case 1:
|
|
83
|
+
checkInfo = _a.sent();
|
|
84
|
+
return [4 /*yield*/, postForm("".concat(LOGIN_URL, "/v2/client/login"), {
|
|
85
|
+
app_name: 'com.huami.webapp',
|
|
86
|
+
app_version: '4.3.0',
|
|
87
|
+
code: lodash_1["default"].get(checkInfo, 'data.access', ''),
|
|
88
|
+
country_code: 'zh-cn',
|
|
89
|
+
device_id: '02:00:00:00:00:00',
|
|
90
|
+
device_model: 'web',
|
|
91
|
+
grant_type: 'access_token',
|
|
92
|
+
third_name: 'huami'
|
|
93
|
+
})];
|
|
94
|
+
case 2:
|
|
95
|
+
loginInfo = (_a.sent()).data;
|
|
96
|
+
return [2 /*return*/, loginInfo];
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}); };
|
|
100
|
+
exports.loginByLocal = loginByLocal;
|
|
101
|
+
var getUserInfo = function (host, userid, apptoken) { return __awaiter(void 0, void 0, void 0, function () {
|
|
102
|
+
var userInfo, data, error_1;
|
|
103
|
+
return __generator(this, function (_a) {
|
|
104
|
+
switch (_a.label) {
|
|
105
|
+
case 0:
|
|
106
|
+
_a.trys.push([0, 2, , 3]);
|
|
107
|
+
return [4 /*yield*/, axios_1["default"].get("https://".concat(host, "/v1/soc/user/").concat(userid), {
|
|
108
|
+
headers: {
|
|
109
|
+
app_token: apptoken,
|
|
110
|
+
'Content-Type': 'application/json',
|
|
111
|
+
user_id: userid,
|
|
112
|
+
app_name: 'com.huami.webapp'
|
|
113
|
+
}
|
|
114
|
+
})];
|
|
115
|
+
case 1:
|
|
116
|
+
userInfo = _a.sent();
|
|
117
|
+
data = userInfo.data.data;
|
|
118
|
+
return [2 /*return*/, data];
|
|
119
|
+
case 2:
|
|
120
|
+
error_1 = _a.sent();
|
|
121
|
+
return [3 /*break*/, 3];
|
|
122
|
+
case 3: return [2 /*return*/];
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}); };
|
|
126
|
+
exports.getUserInfo = getUserInfo;
|