@zeppos/zeus-cli 1.0.8 → 1.0.10
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
CHANGED
|
@@ -19,6 +19,7 @@ yargs_1["default"].usage('Usage: $0 <command> [args?]')
|
|
|
19
19
|
.alias('v', 'version')
|
|
20
20
|
.command('init', 'init a new project in current directory', proxy, index_1.create)
|
|
21
21
|
.command('create', 'add a new project to current directory', proxy, index_1.create)
|
|
22
|
+
// @ts-ignore
|
|
22
23
|
.command('login', 'login to your account', proxy, index_1.login)
|
|
23
24
|
.command('dev', 'run this project in development mode', proxy, index_1.run)
|
|
24
25
|
.command('preview', 'preview this project in your device', proxy, index_1.buildPreview)
|
package/config/project.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
exports.__esModule = true;
|
|
3
|
-
exports.TemplateCopyType = exports.AppSourceType = exports.AppType = void 0;
|
|
6
|
+
exports.loginStorageKey = exports.loginConfig = exports.LocalServerConfig = exports.TemplateCopyType = exports.AppSourceType = exports.AppType = void 0;
|
|
7
|
+
var lodash_1 = __importDefault(require("lodash"));
|
|
4
8
|
var AppType;
|
|
5
9
|
(function (AppType) {
|
|
6
10
|
AppType["APP"] = "app";
|
|
@@ -16,3 +20,21 @@ var TemplateCopyType;
|
|
|
16
20
|
TemplateCopyType["CLONE"] = "clone";
|
|
17
21
|
TemplateCopyType["EDIT"] = "edit";
|
|
18
22
|
})(TemplateCopyType = exports.TemplateCopyType || (exports.TemplateCopyType = {}));
|
|
23
|
+
var LocalServerConfig;
|
|
24
|
+
(function (LocalServerConfig) {
|
|
25
|
+
LocalServerConfig["HOSTNAME"] = "localhost";
|
|
26
|
+
LocalServerConfig[LocalServerConfig["PORT"] = 8086] = "PORT";
|
|
27
|
+
})(LocalServerConfig = exports.LocalServerConfig || (exports.LocalServerConfig = {}));
|
|
28
|
+
var loginURL = 'https://user.huami.com/universalLogin/index.html#/login';
|
|
29
|
+
var loginUrl = new URL(loginURL);
|
|
30
|
+
var accountPrefix = "____" + lodash_1["default"].replace(loginUrl.host, /\./g, '_') + "__";
|
|
31
|
+
exports.loginConfig = {
|
|
32
|
+
LOGIN_URL: loginURL,
|
|
33
|
+
PROJECT_NAME: 'zeppos_zeus_cli',
|
|
34
|
+
PLATFORM_APP: 'com.huami.watch.hmwatchmanager',
|
|
35
|
+
PROJECT_REDIRECT_URI: encodeURIComponent("http://" + LocalServerConfig.HOSTNAME + ":" + LocalServerConfig.PORT + "/")
|
|
36
|
+
};
|
|
37
|
+
exports.loginStorageKey = {
|
|
38
|
+
accountToken: accountPrefix + "token",
|
|
39
|
+
account: accountPrefix + "account"
|
|
40
|
+
};
|
package/modules/build.js
CHANGED
|
@@ -84,6 +84,7 @@ var qrcode_terminal_1 = __importDefault(require("qrcode-terminal"));
|
|
|
84
84
|
var inquirer_1 = __importDefault(require("inquirer"));
|
|
85
85
|
var login_1 = require("./login");
|
|
86
86
|
var logger = __importStar(require("../utils/logger"));
|
|
87
|
+
var storage_1 = require("./storage");
|
|
87
88
|
var STUDIO_URL = 'https://studio.huami.com';
|
|
88
89
|
var BuildMode;
|
|
89
90
|
(function (BuildMode) {
|
|
@@ -173,10 +174,12 @@ var buildProd = function (packages) {
|
|
|
173
174
|
};
|
|
174
175
|
exports.buildProd = buildProd;
|
|
175
176
|
var buildPreview = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
176
|
-
var userToken, form, buildInfo;
|
|
177
|
+
var storage, userToken, form, buildInfo;
|
|
177
178
|
return __generator(this, function (_a) {
|
|
178
179
|
switch (_a.label) {
|
|
179
|
-
case 0:
|
|
180
|
+
case 0:
|
|
181
|
+
storage = new storage_1.Storage({ cmd: lodash_1["default"].get(args, '$0') });
|
|
182
|
+
return [4 /*yield*/, (0, login_1.login)(args)];
|
|
180
183
|
case 1:
|
|
181
184
|
userToken = _a.sent();
|
|
182
185
|
form = new form_data_1["default"]();
|
package/modules/login.js
CHANGED
|
@@ -60,12 +60,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
60
60
|
exports.__esModule = true;
|
|
61
61
|
exports.login = void 0;
|
|
62
62
|
var qs_1 = __importDefault(require("qs"));
|
|
63
|
-
var url_1 = require("url");
|
|
64
63
|
var lodash_1 = __importDefault(require("lodash"));
|
|
65
64
|
var axios_1 = __importDefault(require("axios"));
|
|
66
65
|
var inquirer_1 = __importDefault(require("inquirer"));
|
|
67
66
|
var storage_1 = require("./storage");
|
|
68
67
|
var logger = __importStar(require("../utils/logger"));
|
|
68
|
+
var project_1 = require("../config/project");
|
|
69
|
+
var open = require('open');
|
|
70
|
+
var http = require('http');
|
|
71
|
+
var url = require('url');
|
|
72
|
+
var querystring = require('querystring');
|
|
69
73
|
var REGIST_URL = 'https://api-user.huami.com';
|
|
70
74
|
var LOGIN_URL = 'https://account.huami.com';
|
|
71
75
|
var postForm = function (url, data) {
|
|
@@ -118,23 +122,22 @@ var loginByLocal = function (account, password) { return __awaiter(void 0, void
|
|
|
118
122
|
});
|
|
119
123
|
}); };
|
|
120
124
|
var login = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
121
|
-
var
|
|
125
|
+
var storage, accountInfo, historyToken, isLocal, answer, loginInfo, token_1, token;
|
|
122
126
|
return __generator(this, function (_a) {
|
|
123
127
|
switch (_a.label) {
|
|
124
128
|
case 0:
|
|
125
|
-
loginUrl = new url_1.URL(LOGIN_URL);
|
|
126
129
|
storage = new storage_1.Storage({ cmd: lodash_1["default"].get(args, '$0') });
|
|
127
|
-
|
|
128
|
-
accountTokenKey = accountPrefix + "token";
|
|
129
|
-
accountKey = accountPrefix + "account";
|
|
130
|
-
accountInfo = storage.get(accountKey);
|
|
130
|
+
accountInfo = storage.get(project_1.loginStorageKey.account);
|
|
131
131
|
if (!lodash_1["default"].get(args, 'relogin')) {
|
|
132
|
-
historyToken = storage.get(
|
|
132
|
+
historyToken = storage.get(project_1.loginStorageKey.accountToken);
|
|
133
133
|
if (historyToken) {
|
|
134
|
-
logger.success(
|
|
134
|
+
// logger.success(`have logged in with account: ${accountInfo}`)
|
|
135
|
+
logger.success("Has logged");
|
|
135
136
|
return [2 /*return*/, historyToken];
|
|
136
137
|
}
|
|
137
138
|
}
|
|
139
|
+
isLocal = false;
|
|
140
|
+
if (!isLocal) return [3 /*break*/, 3];
|
|
138
141
|
return [4 /*yield*/, inquirer_1["default"].prompt([
|
|
139
142
|
{
|
|
140
143
|
name: 'account',
|
|
@@ -157,12 +160,45 @@ var login = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
157
160
|
})];
|
|
158
161
|
case 2:
|
|
159
162
|
loginInfo = _a.sent();
|
|
160
|
-
|
|
161
|
-
if (
|
|
163
|
+
token_1 = lodash_1["default"].get(loginInfo, 'token_info.app_token');
|
|
164
|
+
if (token_1) {
|
|
162
165
|
logger.success("logged in with account: " + answer.account);
|
|
163
|
-
storage.set(
|
|
164
|
-
storage.set(
|
|
166
|
+
storage.set(project_1.loginStorageKey.account, answer.account);
|
|
167
|
+
storage.set(project_1.loginStorageKey.accountToken, token_1);
|
|
165
168
|
}
|
|
169
|
+
_a.label = 3;
|
|
170
|
+
case 3: return [4 /*yield*/, new Promise(function (resolve) { return __awaiter(void 0, void 0, void 0, function () {
|
|
171
|
+
var server;
|
|
172
|
+
return __generator(this, function (_a) {
|
|
173
|
+
switch (_a.label) {
|
|
174
|
+
case 0:
|
|
175
|
+
server = http.createServer(function (req, res) {
|
|
176
|
+
var arg = url.parse(req.url).query;
|
|
177
|
+
var params = querystring.parse(arg);
|
|
178
|
+
var appToken = params['apptoken'];
|
|
179
|
+
res.statusCode = 200;
|
|
180
|
+
res.setHeader('Content-Type', 'text/plain');
|
|
181
|
+
res.end('Login is successful, please return to the operation interface manually');
|
|
182
|
+
if (appToken) {
|
|
183
|
+
resolve(appToken);
|
|
184
|
+
storage.set(project_1.loginStorageKey.accountToken, appToken);
|
|
185
|
+
logger.success('logger success');
|
|
186
|
+
server.close();
|
|
187
|
+
process.exit(1);
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
server.listen(project_1.LocalServerConfig.PORT, project_1.LocalServerConfig.HOSTNAME);
|
|
191
|
+
// 打开浏览器的登录页面
|
|
192
|
+
return [4 /*yield*/, open(project_1.loginConfig.LOGIN_URL + "?project_name=" + project_1.loginConfig.PROJECT_NAME + "&platform_app=" + project_1.loginConfig.PLATFORM_APP + "&project_redirect_uri=" + project_1.loginConfig.PROJECT_REDIRECT_URI)];
|
|
193
|
+
case 1:
|
|
194
|
+
// 打开浏览器的登录页面
|
|
195
|
+
_a.sent();
|
|
196
|
+
return [2 /*return*/];
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
}); })];
|
|
200
|
+
case 4:
|
|
201
|
+
token = _a.sent();
|
|
166
202
|
return [2 /*return*/, token];
|
|
167
203
|
}
|
|
168
204
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeppos/zeus-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"description": "zeus mini-program tools",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"author": "zepp",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"inquirer": "^8.1.2",
|
|
50
50
|
"lodash": "^4.17.21",
|
|
51
51
|
"npm-keyword": "^6.1.0",
|
|
52
|
+
"open": "^8.4.0",
|
|
52
53
|
"qrcode-terminal": "^0.12.0",
|
|
53
54
|
"qs": "^6.10.1",
|
|
54
55
|
"rd": "^2.0.1",
|