@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.
Files changed (79) hide show
  1. package/bin/cli.js +3 -0
  2. package/config/device.js +10 -2
  3. package/config/project.js +25 -1
  4. package/modules/build.js +55 -39
  5. package/modules/config.js +55 -11
  6. package/modules/create/index.js +57 -18
  7. package/modules/create/local-app.js +28 -4
  8. package/modules/help.js +1 -0
  9. package/modules/login.js +69 -19
  10. package/modules/run.js +43 -29
  11. package/modules/simulator.js +4 -3
  12. package/package.json +3 -2
  13. package/public/template/empty/app.js +1 -1
  14. package/public/template/empty/app.json +1 -8
  15. package/public/template/empty/watchface/index.js +13 -0
  16. package/public/template/hello-world/app.js +1 -1
  17. package/public/template/hello-world/page/i18n/en-US.po +3 -0
  18. package/public/template/timer/app.js +10 -0
  19. package/public/template/timer/app.json +50 -0
  20. package/public/template/timer/assets/gtr-3-pro/images/bg/bg.png +0 -0
  21. package/public/template/timer/assets/gtr-3-pro/images/bigNum/0.png +0 -0
  22. package/public/template/timer/assets/gtr-3-pro/images/bigNum/1.png +0 -0
  23. package/public/template/timer/assets/gtr-3-pro/images/bigNum/2.png +0 -0
  24. package/public/template/timer/assets/gtr-3-pro/images/bigNum/3.png +0 -0
  25. package/public/template/timer/assets/gtr-3-pro/images/bigNum/4.png +0 -0
  26. package/public/template/timer/assets/gtr-3-pro/images/bigNum/5.png +0 -0
  27. package/public/template/timer/assets/gtr-3-pro/images/bigNum/6.png +0 -0
  28. package/public/template/timer/assets/gtr-3-pro/images/bigNum/7.png +0 -0
  29. package/public/template/timer/assets/gtr-3-pro/images/bigNum/8.png +0 -0
  30. package/public/template/timer/assets/gtr-3-pro/images/bigNum/9.png +0 -0
  31. package/public/template/timer/assets/gtr-3-pro/images/bigNum/sp.png +0 -0
  32. package/public/template/timer/assets/gtr-3-pro/images/btn/back.png +0 -0
  33. package/public/template/timer/assets/gtr-3-pro/images/btn/lv.png +0 -0
  34. package/public/template/timer/assets/gtr-3-pro/images/btn/red.png +0 -0
  35. package/public/template/timer/assets/gtr-3-pro/images/point/bg.png +0 -0
  36. package/public/template/timer/assets/gtr-3-pro/images/point/bottom.png +0 -0
  37. package/public/template/timer/assets/gtr-3-pro/images/point/center.png +0 -0
  38. package/public/template/timer/assets/gtr-3-pro/images/point/h.png +0 -0
  39. package/public/template/timer/assets/gtr-3-pro/images/point/left.png +0 -0
  40. package/public/template/timer/assets/gtr-3-pro/images/point/m.png +0 -0
  41. package/public/template/timer/assets/gtr-3-pro/images/point/right.png +0 -0
  42. package/public/template/timer/assets/gtr-3-pro/images/point/s.png +0 -0
  43. package/public/template/timer/assets/gtr-3-pro/images/preview.png +0 -0
  44. package/public/template/timer/assets/gtr-3-pro/images/second/second.png +0 -0
  45. package/public/template/timer/assets/gtr-3-pro/images/smallNum/0.png +0 -0
  46. package/public/template/timer/assets/gtr-3-pro/images/smallNum/1.png +0 -0
  47. package/public/template/timer/assets/gtr-3-pro/images/smallNum/2.png +0 -0
  48. package/public/template/timer/assets/gtr-3-pro/images/smallNum/3.png +0 -0
  49. package/public/template/timer/assets/gtr-3-pro/images/smallNum/4.png +0 -0
  50. package/public/template/timer/assets/gtr-3-pro/images/smallNum/5.png +0 -0
  51. package/public/template/timer/assets/gtr-3-pro/images/smallNum/6.png +0 -0
  52. package/public/template/timer/assets/gtr-3-pro/images/smallNum/7.png +0 -0
  53. package/public/template/timer/assets/gtr-3-pro/images/smallNum/8.png +0 -0
  54. package/public/template/timer/assets/gtr-3-pro/images/smallNum/9.png +0 -0
  55. package/public/template/timer/assets/gtr-3-pro/images/smallNum/d.png +0 -0
  56. package/public/template/timer/assets/gtr-3-pro/images/smallNum/n.png +0 -0
  57. package/public/template/timer/assets/gtr-3-pro/images/week_ch/1.png +0 -0
  58. package/public/template/timer/assets/gtr-3-pro/images/week_ch/2.png +0 -0
  59. package/public/template/timer/assets/gtr-3-pro/images/week_ch/3.png +0 -0
  60. package/public/template/timer/assets/gtr-3-pro/images/week_ch/4.png +0 -0
  61. package/public/template/timer/assets/gtr-3-pro/images/week_ch/5.png +0 -0
  62. package/public/template/timer/assets/gtr-3-pro/images/week_ch/6.png +0 -0
  63. package/public/template/timer/assets/gtr-3-pro/images/week_ch/7.png +0 -0
  64. package/public/template/timer/assets/gtr-3-pro/images/week_en/1.png +0 -0
  65. package/public/template/timer/assets/gtr-3-pro/images/week_en/2.png +0 -0
  66. package/public/template/timer/assets/gtr-3-pro/images/week_en/3.png +0 -0
  67. package/public/template/timer/assets/gtr-3-pro/images/week_en/4.png +0 -0
  68. package/public/template/timer/assets/gtr-3-pro/images/week_en/5.png +0 -0
  69. package/public/template/timer/assets/gtr-3-pro/images/week_en/6.png +0 -0
  70. package/public/template/timer/assets/gtr-3-pro/images/week_en/7.png +0 -0
  71. package/public/template/timer/shared/buffer.js +11 -0
  72. package/public/template/timer/shared/device-polyfill.js +3 -0
  73. package/public/template/timer/shared/global.js +17 -0
  74. package/public/template/timer/shared/js-module.js +27 -0
  75. package/public/template/timer/shared/logger.js +21 -0
  76. package/public/template/timer/shared/setTimeout.js +59 -0
  77. package/public/template/timer/watchface/gtr-3-pro/index.js +1 -0
  78. package/public/template/timer/watchface/round/index.js +438 -0
  79. 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 loginUrl, storage, accountPrefix, accountTokenKey, accountKey, accountInfo, historyToken, answer, loginInfo, token;
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
- accountPrefix = "____" + lodash_1["default"].replace(loginUrl.host, /\./g, '_') + "__";
128
- accountTokenKey = accountPrefix + "token";
129
- accountKey = accountPrefix + "account";
130
- accountInfo = storage.get(accountKey);
131
- if (!lodash_1["default"].get(args, 'relogin')) {
132
- historyToken = storage.get(accountTokenKey);
133
- if (historyToken) {
134
- logger.success("have logged in with account: " + accountInfo);
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
- loginInfo = _a.sent();
160
- token = lodash_1["default"].get(loginInfo, 'token_info.app_token');
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(accountKey, answer.account);
164
- storage.set(accountTokenKey, token);
166
+ storage.set(project_1.loginStorageKey.account, answer.account);
167
+ storage.set(project_1.loginStorageKey.accountToken, token);
165
168
  }
166
- return [2 /*return*/, token];
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 zabName, zabPath, uzipZabPath, zabFileList, zabBuffer, zpkFileName, projectName;
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
- zabName = _a.sent();
119
- zabPath = path.resolve("./dist/" + zabName);
120
- if (!fs_1["default"].existsSync(zabPath)) return [3 /*break*/, 3];
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
- simulator.upload(zabBuffer, projectName);
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('can\'t find device package, pleace check the build result');
133
+ logger.error('build error');
144
134
  }
145
- fs_extra_1["default"].removeSync(uzipZabPath);
146
- _a.label = 3;
147
- case 3:
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..."));
@@ -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.7",
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.32",
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",
@@ -14,7 +14,7 @@ App({
14
14
  console.log('app on hide invoke')
15
15
  },
16
16
 
17
- onDestory(options) {
17
+ onDestroy(options) {
18
18
  console.log('app on destory invoke')
19
19
  },
20
20
 
@@ -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,13 @@
1
+ WatchFace({
2
+ onInit() {
3
+ console.log('index page.js on init invoke')
4
+ },
5
+
6
+ build() {
7
+ console.log('index page.js on build invoke')
8
+ },
9
+
10
+ onDestroy() {
11
+ console.log('index page.js on destroy invoke')
12
+ },
13
+ })
@@ -14,7 +14,7 @@ App({
14
14
  console.log('app on hide invoke')
15
15
  },
16
16
 
17
- onDestory(options) {
17
+ onDestroy(options) {
18
18
  console.log('app on destory invoke')
19
19
  },
20
20
 
@@ -0,0 +1,3 @@
1
+
2
+ msgid "appName"
3
+ msgstr "HelloWorld"
@@ -0,0 +1,10 @@
1
+ import './shared/device-polyfill'
2
+
3
+ App({
4
+ globalData: {},
5
+ onCreate(options) {},
6
+ onDestroy(options) {},
7
+ onError(error) {},
8
+ onPageNotFound(obj) {},
9
+ onUnhandledRejection(obj) {},
10
+ })
@@ -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
+ }
@@ -0,0 +1,11 @@
1
+ import { getGlobal } from './global'
2
+
3
+ let globalNS = getGlobal()
4
+
5
+ if (!globalNS.Buffer) {
6
+ if (typeof Buffer !== 'undefined') {
7
+ globalNS.Buffer = Buffer
8
+ } else {
9
+ globalNS.Buffer = DeviceRuntimeCore.Buffer
10
+ }
11
+ }
@@ -0,0 +1,3 @@
1
+ import './logger'
2
+ import './buffer'
3
+ import './setTimeout'
@@ -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
+ }