@zeppos/zeus-cli 1.0.7 → 1.0.18
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 +3 -0
- package/config/device.js +10 -2
- package/config/project.js +25 -1
- package/modules/build.js +55 -39
- package/modules/config.js +55 -11
- package/modules/create/index.js +57 -18
- package/modules/create/local-app.js +28 -4
- package/modules/help.js +1 -0
- package/modules/login.js +69 -19
- package/modules/run.js +43 -29
- package/modules/simulator.js +4 -3
- package/package.json +3 -2
- package/public/template/empty/app.js +1 -1
- package/public/template/empty/app.json +1 -8
- package/public/template/empty/watchface/index.js +13 -0
- package/public/template/hello-world/app.js +1 -1
- package/public/template/hello-world/page/i18n/en-US.po +3 -0
- package/public/template/timer/app.js +10 -0
- package/public/template/timer/app.json +50 -0
- package/public/template/timer/assets/gtr-3-pro/images/bg/bg.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/0.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/1.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/2.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/3.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/4.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/5.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/6.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/7.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/8.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/9.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/sp.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/btn/back.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/btn/lv.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/btn/red.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/point/bg.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/point/bottom.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/point/center.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/point/h.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/point/left.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/point/m.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/point/right.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/point/s.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/preview.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/second/second.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/0.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/1.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/2.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/3.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/4.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/5.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/6.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/7.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/8.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/9.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/d.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/n.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_ch/1.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_ch/2.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_ch/3.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_ch/4.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_ch/5.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_ch/6.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_ch/7.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_en/1.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_en/2.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_en/3.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_en/4.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_en/5.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_en/6.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_en/7.png +0 -0
- package/public/template/timer/shared/buffer.js +11 -0
- package/public/template/timer/shared/device-polyfill.js +3 -0
- package/public/template/timer/shared/global.js +17 -0
- package/public/template/timer/shared/js-module.js +27 -0
- package/public/template/timer/shared/logger.js +21 -0
- package/public/template/timer/shared/setTimeout.js +59 -0
- package/public/template/timer/watchface/gtr-3-pro/index.js +1 -0
- package/public/template/timer/watchface/round/index.js +438 -0
- package/public/template/hello-world/i18n/en-US.po +0 -2
package/modules/login.js
CHANGED
|
@@ -58,14 +58,18 @@ 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.login = void 0;
|
|
61
|
+
exports.logout = 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, apptoken, userid, cname, isLocal, answer, loginInfo_1, token, loginInfo;
|
|
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
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
if (!lodash_1["default"].get(args, 'relogin')) {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
return [2 /*return*/, historyToken];
|
|
136
|
-
}
|
|
130
|
+
accountInfo = storage.get(project_1.loginStorageKey.account);
|
|
131
|
+
apptoken = storage.get(project_1.loginStorageKey.accountToken);
|
|
132
|
+
userid = storage.get(project_1.loginStorageKey.userid);
|
|
133
|
+
cname = storage.get(project_1.loginStorageKey.cname);
|
|
134
|
+
if (!lodash_1["default"].get(args, 'relogin') && apptoken && userid && cname) {
|
|
135
|
+
// logger.success(`have logged in with account: ${accountInfo}`)
|
|
136
|
+
logger.success("Has logged");
|
|
137
|
+
return [2 /*return*/, { apptoken: apptoken, userid: userid, cname: cname }];
|
|
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',
|
|
@@ -156,15 +159,62 @@ var login = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
156
159
|
process.exit(1);
|
|
157
160
|
})];
|
|
158
161
|
case 2:
|
|
159
|
-
|
|
160
|
-
token = lodash_1["default"].get(
|
|
162
|
+
loginInfo_1 = _a.sent();
|
|
163
|
+
token = lodash_1["default"].get(loginInfo_1, 'token_info.app_token');
|
|
161
164
|
if (token) {
|
|
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);
|
|
165
168
|
}
|
|
166
|
-
|
|
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, userid = params.userid, cname = params.cname;
|
|
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: apptoken, userid: userid, cname: cname });
|
|
184
|
+
storage.set(project_1.loginStorageKey.userid, userid);
|
|
185
|
+
storage.set(project_1.loginStorageKey.cname, cname);
|
|
186
|
+
storage.set(project_1.loginStorageKey.accountToken, apptoken);
|
|
187
|
+
logger.success('logger success');
|
|
188
|
+
server.close();
|
|
189
|
+
// 在执行 preview 命令需要登录时不退出程序
|
|
190
|
+
if (!args) {
|
|
191
|
+
process.exit(1);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
server.listen(project_1.LocalServerConfig.PORT, project_1.LocalServerConfig.HOSTNAME);
|
|
196
|
+
// 打开浏览器的登录页面
|
|
197
|
+
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)];
|
|
198
|
+
case 1:
|
|
199
|
+
// 打开浏览器的登录页面
|
|
200
|
+
_a.sent();
|
|
201
|
+
return [2 /*return*/];
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
}); })];
|
|
205
|
+
case 4:
|
|
206
|
+
loginInfo = _a.sent();
|
|
207
|
+
return [2 /*return*/, loginInfo];
|
|
167
208
|
}
|
|
168
209
|
});
|
|
169
210
|
}); };
|
|
170
211
|
exports.login = login;
|
|
212
|
+
var logout = function () {
|
|
213
|
+
var storage = new storage_1.Storage({ cmd: '' });
|
|
214
|
+
storage["delete"](project_1.loginStorageKey.accountToken);
|
|
215
|
+
storage["delete"](project_1.loginStorageKey.account);
|
|
216
|
+
storage["delete"](project_1.loginStorageKey.userid);
|
|
217
|
+
storage["delete"](project_1.loginStorageKey.cname);
|
|
218
|
+
logger.success('Logged out');
|
|
219
|
+
};
|
|
220
|
+
exports.logout = logout;
|
package/modules/run.js
CHANGED
|
@@ -63,16 +63,22 @@ var fs_1 = __importDefault(require("fs"));
|
|
|
63
63
|
var lodash_1 = __importDefault(require("lodash"));
|
|
64
64
|
var chalk_1 = __importDefault(require("chalk"));
|
|
65
65
|
var path = __importStar(require("path"));
|
|
66
|
-
var fs_extra_1 = __importDefault(require("fs-extra"));
|
|
67
66
|
var inquirer_1 = __importDefault(require("inquirer"));
|
|
68
67
|
var chokidar_1 = __importDefault(require("chokidar"));
|
|
69
|
-
var compressing = __importStar(require("compressing"));
|
|
70
68
|
var logger = __importStar(require("../utils/logger"));
|
|
71
69
|
var build_1 = require("./build");
|
|
72
70
|
var storage_1 = require("./storage");
|
|
73
71
|
var simulator_1 = require("./simulator");
|
|
72
|
+
var device_1 = require("../config/device");
|
|
74
73
|
var DEFAULT_HOST = '127.0.0.1';
|
|
75
74
|
var DEFAULT_PORT = '7650';
|
|
75
|
+
var getDeviceInternalCodename = function (curTarget) {
|
|
76
|
+
var _a;
|
|
77
|
+
var appJsonFilePath = path.resolve('./app.json');
|
|
78
|
+
var appJsonContent = JSON.parse(fs_1["default"].readFileSync(appJsonFilePath, 'utf-8'));
|
|
79
|
+
var _b = ((_a = appJsonContent === null || appJsonContent === void 0 ? void 0 : appJsonContent.targets[curTarget]) === null || _a === void 0 ? void 0 : _a.platforms[0]).deviceSource, deviceSource = _b === void 0 ? 229 : _b;
|
|
80
|
+
return device_1.deviceInternalCodename[deviceSource];
|
|
81
|
+
};
|
|
76
82
|
var run = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
77
83
|
var storage, simulatorHost, simulatorPort, answer, hasStarted, packages, simulator, refreshSimulator;
|
|
78
84
|
return __generator(this, function (_a) {
|
|
@@ -108,43 +114,51 @@ var run = function (args) { return __awaiter(void 0, void 0, void 0, function ()
|
|
|
108
114
|
packages = _a.sent();
|
|
109
115
|
simulator = new simulator_1.Simulator("http://" + simulatorHost + ":" + simulatorPort);
|
|
110
116
|
refreshSimulator = lodash_1["default"].debounce(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
111
|
-
var
|
|
117
|
+
var zpkBuffer, targetDeviceInternalName, projectName;
|
|
112
118
|
return __generator(this, function (_a) {
|
|
113
119
|
switch (_a.label) {
|
|
114
120
|
case 0:
|
|
115
121
|
logger.info('rebuilding...');
|
|
116
122
|
return [4 /*yield*/, (0, build_1.buildDev)(packages)];
|
|
117
123
|
case 1:
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
logger.info('rebuild done');
|
|
122
|
-
uzipZabPath = path.resolve(zabPath, '../zab');
|
|
123
|
-
logger.info('getting device package...');
|
|
124
|
-
return [4 /*yield*/, compressing.zip.uncompress(zabPath, uzipZabPath)];
|
|
125
|
-
case 2:
|
|
126
|
-
_a.sent();
|
|
127
|
-
zabFileList = fs_1["default"].readdirSync(uzipZabPath);
|
|
128
|
-
zabBuffer = Buffer.alloc(0);
|
|
129
|
-
if (packages.length === 1) {
|
|
130
|
-
zpkFileName = lodash_1["default"].find(zabFileList, function (fileName) {
|
|
131
|
-
return lodash_1["default"].startsWith(fileName, packages[0] + ".");
|
|
132
|
-
});
|
|
133
|
-
if (zpkFileName) {
|
|
134
|
-
zabBuffer = Buffer.from(fs_1["default"].readFileSync(path.resolve(uzipZabPath, "./" + zpkFileName)));
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
projectName = process.cwd().split('/').slice(-1)[0];
|
|
138
|
-
if (zabBuffer.length) {
|
|
124
|
+
zpkBuffer = _a.sent();
|
|
125
|
+
if (zpkBuffer) {
|
|
126
|
+
logger.info('rebuild done');
|
|
139
127
|
logger.info('refrshing simulator...');
|
|
140
|
-
|
|
128
|
+
targetDeviceInternalName = getDeviceInternalCodename(packages[0]);
|
|
129
|
+
projectName = process.cwd().split('/').slice(-1)[0];
|
|
130
|
+
simulator.upload(zpkBuffer, projectName, targetDeviceInternalName);
|
|
141
131
|
}
|
|
142
132
|
else {
|
|
143
|
-
logger.error('
|
|
133
|
+
logger.error('build error');
|
|
144
134
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
135
|
+
// const zabPath = path.resolve(`./dist/${zabName}`)
|
|
136
|
+
// if (fs.existsSync(zabPath)) {
|
|
137
|
+
// logger.info('rebuild done')
|
|
138
|
+
// const uzipZabPath = path.resolve(zabPath, '../zab')
|
|
139
|
+
// logger.info('getting device package...')
|
|
140
|
+
// await compressing.zip.uncompress(zabPath, uzipZabPath)
|
|
141
|
+
// const zabFileList = fs.readdirSync(uzipZabPath)
|
|
142
|
+
// let zabBuffer: Buffer = Buffer.alloc(0)
|
|
143
|
+
// if (packages.length === 1) {
|
|
144
|
+
// const zpkFileName = _.find(zabFileList, (fileName) => {
|
|
145
|
+
// return _.startsWith(fileName, `${packages[0]}.`)
|
|
146
|
+
// })
|
|
147
|
+
// if (zpkFileName) {
|
|
148
|
+
// const zpkPath = path.resolve(uzipZabPath, `./${zpkFileName}`)
|
|
149
|
+
// zabBuffer = Buffer.from(fs.readFileSync(zpkPath))
|
|
150
|
+
// }
|
|
151
|
+
// }
|
|
152
|
+
// const projectName = process.cwd().split('/').slice(-1)[0]
|
|
153
|
+
// if (zabBuffer.length) {
|
|
154
|
+
// logger.info('refrshing simulator...')
|
|
155
|
+
// const targetDeviceInternalName = getDeviceInternalCodename(packages[0])
|
|
156
|
+
// simulator.upload(zabBuffer, projectName, targetDeviceInternalName)
|
|
157
|
+
// } else {
|
|
158
|
+
// logger.error('can\'t find device package, pleace check the build result')
|
|
159
|
+
// }
|
|
160
|
+
// fsExtra.removeSync(uzipZabPath)
|
|
161
|
+
// }
|
|
148
162
|
if (!hasStarted) {
|
|
149
163
|
hasStarted = true;
|
|
150
164
|
logger.log(chalk_1["default"].green("[" + args['$0'] + "] watching the changes in this project..."));
|
package/modules/simulator.js
CHANGED
|
@@ -41,12 +41,13 @@ var Simulator = /** @class */ (function () {
|
|
|
41
41
|
Simulator.prototype.emit = function (space, jsonData) {
|
|
42
42
|
this.socket.emit(space, jsonData);
|
|
43
43
|
};
|
|
44
|
-
Simulator.prototype.upload = function (data, projectName) {
|
|
44
|
+
Simulator.prototype.upload = function (data, projectName, target) {
|
|
45
45
|
var dataArr = this.uint8ToArray(new Uint8Array(data));
|
|
46
46
|
var message = this.encodeMessage({
|
|
47
|
+
target: target,
|
|
48
|
+
projectName: projectName,
|
|
47
49
|
size: data.byteLength,
|
|
48
|
-
data: dataArr
|
|
49
|
-
projectName: projectName
|
|
50
|
+
data: dataArr
|
|
50
51
|
});
|
|
51
52
|
this.sendMessage(message);
|
|
52
53
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeppos/zeus-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.18",
|
|
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.48",
|
|
41
41
|
"axios": "^0.23.0",
|
|
42
42
|
"chalk": "^4.1.2",
|
|
43
43
|
"chokidar": "^3.5.2",
|
|
@@ -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",
|
|
@@ -26,14 +26,7 @@
|
|
|
26
26
|
"page": {
|
|
27
27
|
"pages": [
|
|
28
28
|
"pages/index"
|
|
29
|
-
]
|
|
30
|
-
"window": {
|
|
31
|
-
"navigationBarBackgroundColor": "#ffffff",
|
|
32
|
-
"navigationBarTextStyle": "black",
|
|
33
|
-
"navigationBarTitleText": "empty",
|
|
34
|
-
"backgroundColor": "#eeeeee",
|
|
35
|
-
"backgroundTextStyle": "light"
|
|
36
|
-
}
|
|
29
|
+
]
|
|
37
30
|
},
|
|
38
31
|
"app-side": {
|
|
39
32
|
"path": "app-side/index"
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"configVersion": "v2",
|
|
3
|
+
"app": {
|
|
4
|
+
"appId": 10013,
|
|
5
|
+
"appName": "计时器",
|
|
6
|
+
"appType": "watchface",
|
|
7
|
+
"version": {
|
|
8
|
+
"code": 1,
|
|
9
|
+
"name": "1.0"
|
|
10
|
+
},
|
|
11
|
+
"vender": "zepp",
|
|
12
|
+
"description": "默认表盘",
|
|
13
|
+
"icon": "images/preview.png"
|
|
14
|
+
},
|
|
15
|
+
"permissions": ["gps"],
|
|
16
|
+
"runtime": {
|
|
17
|
+
"apiVersion": {
|
|
18
|
+
"compatible": "1.0.0",
|
|
19
|
+
"target": "1.0.1",
|
|
20
|
+
"minVersion": "1.0.0"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"targets": {
|
|
24
|
+
"gtr-3-pro": {
|
|
25
|
+
"module": {
|
|
26
|
+
"watchface": {
|
|
27
|
+
"path": "watchface/gtr-3-pro/index",
|
|
28
|
+
"main": 1,
|
|
29
|
+
"editable": 1,
|
|
30
|
+
"lockscreen": 1
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"platforms": [{
|
|
34
|
+
"name": "madrid",
|
|
35
|
+
"deviceSource": 229
|
|
36
|
+
}, {
|
|
37
|
+
"name": "madridw",
|
|
38
|
+
"deviceSource": 230
|
|
39
|
+
}],
|
|
40
|
+
"designWidth": 480
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"i18n": {
|
|
44
|
+
"en-US": {
|
|
45
|
+
"name": "timer"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"defaultLanguage": "en-US",
|
|
49
|
+
"debug": false
|
|
50
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
export function getGlobal () {
|
|
3
|
+
if (typeof self !== 'undefined') {
|
|
4
|
+
return self
|
|
5
|
+
}
|
|
6
|
+
if (typeof window !== 'undefined') {
|
|
7
|
+
return window
|
|
8
|
+
}
|
|
9
|
+
if (typeof global !== 'undefined') {
|
|
10
|
+
return global
|
|
11
|
+
}
|
|
12
|
+
if (typeof globalThis !== 'undefined') {
|
|
13
|
+
return globalThis
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
throw new Error('unable to locate global object')
|
|
17
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export function isHmUIDefined() {
|
|
2
|
+
return typeof hmUI !== 'undefined'
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export function isHmBleDefined() {
|
|
6
|
+
return typeof hmBle !== 'undefined'
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function isHmTimerDefined() {
|
|
10
|
+
return typeof timer !== 'undefined'
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function isHmFsDefined() {
|
|
14
|
+
return typeof hmFS !== 'undefined'
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function isHmAppDefined() {
|
|
18
|
+
return typeof hmApp !== 'undefined'
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function isHmSensorDefined() {
|
|
22
|
+
return typeof hmSensor !== 'undefined'
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function isHmSettingDefined() {
|
|
26
|
+
return typeof hmSetting !== 'undefined'
|
|
27
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { getGlobal } from './global'
|
|
2
|
+
|
|
3
|
+
let globalNS = getGlobal()
|
|
4
|
+
|
|
5
|
+
if (!globalNS.Logger) {
|
|
6
|
+
if (typeof DeviceRuntimeCore !== 'undefined') {
|
|
7
|
+
globalNS.Logger = DeviceRuntimeCore.HmLogger
|
|
8
|
+
} else {
|
|
9
|
+
if (typeof Logger !== 'undefined') {
|
|
10
|
+
|
|
11
|
+
}
|
|
12
|
+
// console.connect = () => {
|
|
13
|
+
// // pass
|
|
14
|
+
// }
|
|
15
|
+
// globalNS.Logger = {
|
|
16
|
+
// getLogger() {
|
|
17
|
+
// return console
|
|
18
|
+
// },
|
|
19
|
+
// }
|
|
20
|
+
}
|
|
21
|
+
}
|