@zeppos/zeus-cli 1.0.22 → 1.1.0-beta

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 (35) hide show
  1. package/README.md +1 -1
  2. package/api/index.js +250 -0
  3. package/bin/cli.js +2 -0
  4. package/config/device.js +3 -2
  5. package/config/project.js +27 -11
  6. package/index.js +2 -0
  7. package/modules/bridge.js +205 -0
  8. package/modules/build.js +130 -76
  9. package/modules/config.js +21 -19
  10. package/modules/create/index.js +18 -11
  11. package/modules/create/local-app.js +4 -0
  12. package/modules/help.js +2 -0
  13. package/modules/login.js +78 -145
  14. package/modules/run.js +28 -64
  15. package/modules/simulator.js +8 -1
  16. package/modules/status.js +86 -0
  17. package/modules/storage.js +88 -4
  18. package/modules/websocket.js +105 -0
  19. package/package.json +9 -2
  20. package/public/template/empty/app.js +2 -24
  21. package/public/template/hello-world/app.js +2 -24
  22. package/public/template/hello-world/app.json +1 -1
  23. package/public/template/hello-world/page/gtr3/home/index.page.js +6 -4
  24. package/public/template/hello-world/page/gtr3/home/index.style.js +11 -28
  25. package/public/template/hello-world/page/gtr3-pro/home/index.page.js +6 -4
  26. package/public/template/hello-world/page/gtr3-pro/home/index.style.js +11 -28
  27. package/public/template/hello-world/page/gts3/home/index.page.js +7 -4
  28. package/public/template/hello-world/page/gts3/home/index.style.js +11 -28
  29. package/public/template/jsconfig.json +14 -0
  30. package/public/template/package.json +14 -0
  31. package/public/template/timer/app.js +1 -4
  32. package/public/template/timer/app.json +1 -1
  33. package/public/template/timer/watchface/round/index.js +2 -2
  34. package/utils/common.js +106 -0
  35. package/utils/hm_analytics.js +35 -0
package/modules/build.js CHANGED
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
3
  if (k2 === undefined) k2 = k;
15
4
  Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
@@ -76,16 +65,16 @@ var fs_1 = __importDefault(require("fs"));
76
65
  var rd = __importStar(require("rd"));
77
66
  var path = __importStar(require("path"));
78
67
  var lodash_1 = __importDefault(require("lodash"));
79
- var axios_1 = __importDefault(require("axios"));
80
68
  var fs_extra_1 = __importDefault(require("fs-extra"));
81
69
  var form_data_1 = __importDefault(require("form-data"));
82
70
  var qrcode_terminal_1 = __importDefault(require("qrcode-terminal"));
83
71
  var inquirer_1 = __importDefault(require("inquirer"));
84
- var login_1 = require("./login");
85
72
  var logger = __importStar(require("../utils/logger"));
86
- var storage_1 = require("./storage");
87
73
  var project_1 = require("../config/project");
88
- var chalk_1 = __importDefault(require("chalk"));
74
+ var hm_analytics_1 = require("../utils/hm_analytics");
75
+ var api_1 = require("../api");
76
+ var storage_1 = require("./storage");
77
+ var common_1 = require("../utils/common");
89
78
  var BuildMode;
90
79
  (function (BuildMode) {
91
80
  BuildMode["DEV"] = "development";
@@ -100,43 +89,42 @@ var TransformType;
100
89
  TransformType["Bin"] = "bin";
101
90
  })(TransformType || (TransformType = {}));
102
91
  function handleExecCommandInErrorDir(mode) {
103
- var curCommand = 'dev';
104
- if (mode === BuildMode.PROD) {
105
- curCommand = 'build';
106
- }
107
- else if (mode === BuildMode.PREVIEW) {
108
- curCommand = 'preview';
109
- }
110
- logger.warn("The command ".concat(chalk_1["default"].yellow("zeus ".concat(curCommand)), " needs to be executed in the root of the project"));
92
+ // let curCommand = 'dev'
93
+ // if (mode === BuildMode.PROD) {
94
+ // curCommand = 'build'
95
+ // } else if (mode === BuildMode.PREVIEW) {
96
+ // curCommand = 'preview'
97
+ // }
98
+ logger.warn("This command needs to be executed in the root of the project.");
111
99
  process.exit(1);
112
100
  }
113
101
  function chooseBuildPackages(mode) {
102
+ if (mode === void 0) { mode = 'development'; }
114
103
  return __awaiter(this, void 0, void 0, function () {
115
104
  var appJson, targets, answers;
116
- return __generator(this, function (_a) {
117
- switch (_a.label) {
105
+ var _a, _b;
106
+ return __generator(this, function (_c) {
107
+ switch (_c.label) {
118
108
  case 0:
119
- if (!mode) {
120
- mode = 'development';
121
- }
122
109
  appJson = fs_extra_1["default"].readJSONSync(path.resolve('./app.json'), { throws: false });
123
110
  if (!appJson) {
124
111
  handleExecCommandInErrorDir(mode);
125
112
  }
126
113
  targets = Object.keys(lodash_1["default"].get(appJson, 'targets', {}));
127
114
  if (!!targets.length) return [3 /*break*/, 1];
128
- logger.error('please set at least one package');
115
+ logger.error('please set at least one package.');
129
116
  process.exit(1);
130
117
  return [3 /*break*/, 4];
131
118
  case 1:
132
119
  if (!(targets.length === 1)) return [3 /*break*/, 2];
120
+ storage_1.globalStorage.set((_a = {}, _a[project_1.buildStorageKey.targetDeviceToBuild] = targets[0], _a));
133
121
  return [2 /*return*/, [targets[0]]];
134
122
  case 2: return [4 /*yield*/, inquirer_1["default"].prompt([
135
123
  {
136
124
  name: 'target',
137
125
  type: 'list',
138
126
  when: function () { return mode !== BuildMode.PROD; },
139
- message: 'Which target would you like to build?',
127
+ message: 'Which target would you like to preview?',
140
128
  choices: targets
141
129
  },
142
130
  {
@@ -150,9 +138,15 @@ function chooseBuildPackages(mode) {
150
138
  }); }),
151
139
  message: 'Which targets would you like to build?'
152
140
  }
153
- ])];
141
+ ])
142
+ // 存储 deviceSource
143
+ ];
154
144
  case 3:
155
- answers = _a.sent();
145
+ answers = _c.sent();
146
+ // 存储 deviceSource
147
+ if (BuildMode.PROD) {
148
+ storage_1.globalStorage.set((_b = {}, _b[project_1.buildStorageKey.targetDeviceToBuild] = [answers.target], _b));
149
+ }
156
150
  return [2 /*return*/, mode !== BuildMode.PROD ? [answers.target] : answers.buildTargets];
157
151
  case 4: return [2 /*return*/];
158
152
  }
@@ -160,25 +154,25 @@ function chooseBuildPackages(mode) {
160
154
  });
161
155
  }
162
156
  exports.chooseBuildPackages = chooseBuildPackages;
163
- var build = function (mode, packages) {
157
+ var build = function (mode, packages, buildConfigOption) {
164
158
  if (mode === void 0) { mode = BuildMode.PROD; }
165
159
  if (packages === void 0) { packages = []; }
166
160
  return __awaiter(void 0, void 0, void 0, function () {
167
- var workspace, choosePackages, buildOptions, buildInfo_1, DistDir_1, error_1;
168
- return __generator(this, function (_a) {
169
- switch (_a.label) {
161
+ var workspace, choosePackages, buildOptions, _a, js2c, js2bin, png2vg, prune, curJscMode, curTarget, buildInfo_1, DistDir_1, error_1;
162
+ return __generator(this, function (_b) {
163
+ switch (_b.label) {
170
164
  case 0:
171
165
  workspace = path.resolve('./');
172
166
  if (!!packages.length) return [3 /*break*/, 2];
173
167
  return [4 /*yield*/, chooseBuildPackages(mode)];
174
168
  case 1:
175
- choosePackages = _a.sent();
169
+ choosePackages = _b.sent();
176
170
  if (!choosePackages || !choosePackages.length) {
177
- logger.error('please choose at least one package');
171
+ logger.error('please choose at least one package.');
178
172
  return [2 /*return*/];
179
173
  }
180
174
  packages.push.apply(packages, choosePackages);
181
- _a.label = 2;
175
+ _b.label = 2;
182
176
  case 2:
183
177
  buildOptions = {
184
178
  path: workspace,
@@ -187,21 +181,32 @@ var build = function (mode, packages) {
187
181
  jsc: TransformType.Default // 不开启 js => c
188
182
  };
189
183
  if (mode === BuildMode.PROD || mode === BuildMode.PREVIEW) {
184
+ _a = buildConfigOption || {}, js2c = _a.js2c, js2bin = _a.js2bin, png2vg = _a.png2vg, prune = _a.prune;
185
+ js2c = js2c === 'false' ? false : true;
186
+ js2bin = ((js2bin === 'true') || (js2bin === true)) ? true : false;
187
+ png2vg = ((png2vg === 'false') && (png2vg !== undefined)) ? false : true;
188
+ prune = ((prune === 'false') && (prune !== undefined)) ? false : true;
189
+ curJscMode = js2c && js2bin ? TransformType.Bin : TransformType.C;
190
+ if (js2bin && !js2c) {
191
+ curJscMode = TransformType.Bin;
192
+ }
193
+ else if ((!js2bin && !js2c) || !js2c) {
194
+ curJscMode = TransformType.Default;
195
+ }
190
196
  Object.assign(buildOptions, {
191
- png2vg: true
197
+ png2vg: png2vg,
198
+ prune: prune,
199
+ jsc: curJscMode
192
200
  });
193
201
  }
194
- _a.label = 3;
202
+ _b.label = 3;
195
203
  case 3:
196
- _a.trys.push([3, 8, , 9]);
197
- if (!(mode === BuildMode.DEV)) return [3 /*break*/, 5];
198
- return [4 /*yield*/, (0, node_js_1.startWithoutDist)(buildOptions)];
204
+ _b.trys.push([3, 8, , 9]);
205
+ curTarget = (buildConfigOption ? buildConfigOption._ : [''])[0];
206
+ if (!(mode !== BuildMode.DEV || (mode === BuildMode.DEV && curTarget === 'install'))) return [3 /*break*/, 5];
207
+ return [4 /*yield*/, (0, node_js_1.start)(buildOptions)];
199
208
  case 4:
200
- _a.sent();
201
- return [2 /*return*/, (0, node_js_1.getZpkBuf)(packages[0])];
202
- case 5: return [4 /*yield*/, (0, node_js_1.start)(buildOptions)];
203
- case 6:
204
- buildInfo_1 = _a.sent();
209
+ buildInfo_1 = _b.sent();
205
210
  if (buildInfo_1) {
206
211
  DistDir_1 = path.join(workspace, 'dist');
207
212
  rd.eachFileSync(DistDir_1, function (file) {
@@ -211,9 +216,15 @@ var build = function (mode, packages) {
211
216
  });
212
217
  }
213
218
  return [2 /*return*/, buildInfo_1];
219
+ case 5:
220
+ if (!(mode === BuildMode.DEV)) return [3 /*break*/, 7];
221
+ return [4 /*yield*/, (0, node_js_1.startWithoutDist)(buildOptions)];
222
+ case 6:
223
+ _b.sent();
224
+ return [2 /*return*/, (0, node_js_1.getZpkBuf)(packages[0])];
214
225
  case 7: return [3 /*break*/, 9];
215
226
  case 8:
216
- error_1 = _a.sent();
227
+ error_1 = _b.sent();
217
228
  logger.error(error_1);
218
229
  return [3 /*break*/, 9];
219
230
  case 9: return [2 /*return*/];
@@ -223,12 +234,27 @@ var build = function (mode, packages) {
223
234
  };
224
235
  exports.build = build;
225
236
  var buildDev = function (packages) {
237
+ (0, hm_analytics_1.HM_Analytics)('ZEPP_CLI_DEV_C');
226
238
  return (0, exports.build)(BuildMode.DEV, packages);
227
239
  };
228
240
  exports.buildDev = buildDev;
229
- var buildProd = function () {
230
- return (0, exports.build)(BuildMode.PROD, []);
231
- };
241
+ var buildProd = function (args) { return __awaiter(void 0, void 0, void 0, function () {
242
+ var buildInfo;
243
+ return __generator(this, function (_a) {
244
+ switch (_a.label) {
245
+ case 0: return [4 /*yield*/, (0, exports.build)(BuildMode.PROD, [], args)];
246
+ case 1:
247
+ buildInfo = _a.sent();
248
+ if (buildInfo) {
249
+ (0, hm_analytics_1.HM_Analytics)('ZEPP_CLI_BUILD_C', { res: '1' });
250
+ }
251
+ else {
252
+ (0, hm_analytics_1.HM_Analytics)('ZEPP_CLI_BUILD_C', { res: '0' });
253
+ }
254
+ return [2 /*return*/, buildInfo];
255
+ }
256
+ });
257
+ }); };
232
258
  exports.buildProd = buildProd;
233
259
  var checkIsWatchFaceProject = function () {
234
260
  var appJsonPath = path.resolve('./app.json');
@@ -236,49 +262,77 @@ var checkIsWatchFaceProject = function () {
236
262
  var appType = lodash_1["default"].get(appJsonContent, 'app.appType');
237
263
  return appType === project_1.AppType.WATCHFACE;
238
264
  };
239
- var buildPreview = function (args) { return __awaiter(void 0, void 0, void 0, function () {
240
- var storage, _a, apptoken, userid, cname, form, buildInfo, isWatchFaceProject;
265
+ var buildPreview = function (args, cb) { return __awaiter(void 0, void 0, void 0, function () {
266
+ var _a, curCommand, curBridgeTarget, form, buildMode, buildInfo, isWatchFaceProject;
241
267
  return __generator(this, function (_b) {
242
268
  switch (_b.label) {
243
269
  case 0:
244
- storage = new storage_1.Storage({ cmd: lodash_1["default"].get(args, '$0') });
245
- return [4 /*yield*/, (0, login_1.login)(args)];
246
- case 1:
247
- _a = _b.sent(), apptoken = _a.apptoken, userid = _a.userid, cname = _a.cname;
270
+ _a = args._, curCommand = _a[0], curBridgeTarget = _a[1];
248
271
  form = new form_data_1["default"]();
249
- logger.info('building preview...');
250
- return [4 /*yield*/, (0, exports.build)(BuildMode.PREVIEW)];
251
- case 2:
272
+ buildMode = (curBridgeTarget && curBridgeTarget === 'simulator') ? BuildMode.DEV : BuildMode.PREVIEW;
273
+ logger.info('building...');
274
+ return [4 /*yield*/, (0, exports.build)(buildMode, [], args)];
275
+ case 1:
252
276
  buildInfo = _b.sent();
253
277
  isWatchFaceProject = checkIsWatchFaceProject();
254
- logger.info('getting preview package...');
278
+ logger.info('getting package...');
255
279
  form.append('file', fs_1["default"].createReadStream("./dist/".concat(buildInfo)));
256
280
  form.append('app_type', isWatchFaceProject ? '1' : '2');
257
281
  form.getLength(function (err, length) { return __awaiter(void 0, void 0, void 0, function () {
258
- var host, previewInfo, _a, protocol, code;
259
- return __generator(this, function (_b) {
260
- switch (_b.label) {
282
+ var uploadPackageReturnInfo, _a, protocol, code, url, _b, deviceSource, appId, appName, appType, deviceSourceArr, targetDeviceInternalName, packageInfo, downloadPackageReturn, url, preview;
283
+ return __generator(this, function (_c) {
284
+ switch (_c.label) {
261
285
  case 0:
262
286
  if (err) {
263
287
  logger.error('getting package failed.');
264
288
  return [2 /*return*/];
265
289
  }
266
- logger.info('generating preview qrcode...');
267
- host = cname.split(',').filter(function (h) { return h.indexOf('api-mifit') > -1; })[0];
268
- return [4 /*yield*/, axios_1["default"].post("https://".concat(host, "/custom/tools/app-dial/upload?userid=").concat(userid), form, {
269
- headers: __assign(__assign({}, form.getHeaders()), { 'content-length': "".concat(length), apptoken: apptoken })
270
- })];
290
+ return [4 /*yield*/, (0, api_1.uploadPackage)(form, length)];
271
291
  case 1:
272
- previewInfo = _b.sent();
273
- _a = lodash_1["default"].get(previewInfo, 'data', {}), protocol = _a.protocol, code = _a.code;
292
+ uploadPackageReturnInfo = _c.sent();
293
+ _a = lodash_1["default"].get(uploadPackageReturnInfo, 'data', {}), protocol = _a.protocol, code = _a.code;
294
+ if (!(curCommand === 'preview')) return [3 /*break*/, 2];
295
+ url = "".concat(protocol, "://").concat(api_1.subRegionalHost, "/custom/tools/app-dial/download/").concat(code);
274
296
  if (protocol && code) {
275
- qrcode_terminal_1["default"].generate("".concat(protocol, "://").concat(host, "/custom/tools/app-dial/download/").concat(code), { small: true });
276
- logger.success('please use Zepp APP to scan the qrcode below to preview your app.');
297
+ logger.info('generating preview qrcode...');
298
+ logger.success('Below within two hours,please use Zepp APP to scan the qrcode below to preview your app.');
299
+ qrcode_terminal_1["default"].generate("".concat(protocol, "://").concat(api_1.subRegionalHost, "/custom/tools/app-dial/download/").concat(code), { small: true });
277
300
  }
278
301
  else {
302
+ if (project_1.ACCOUNT_ENV === 'test') {
303
+ console.log('previewUrl', url);
304
+ }
279
305
  logger.error('generating preview qrcode failed, please check your network.');
280
306
  }
281
- return [2 /*return*/];
307
+ return [3 /*break*/, 4];
308
+ case 2:
309
+ if (!(curCommand === 'install')) return [3 /*break*/, 4];
310
+ _b = (0, common_1.getDeviceInfoFromAppJson)(), deviceSource = _b.deviceSource, appId = _b.appId, appName = _b.appName, appType = _b.appType, deviceSourceArr = _b.deviceSourceArr, targetDeviceInternalName = _b.targetDeviceInternalName;
311
+ return [4 /*yield*/, (0, api_1.downloadPackage)(code, deviceSource, appType)];
312
+ case 3:
313
+ packageInfo = _c.sent();
314
+ downloadPackageReturn = lodash_1["default"].get(packageInfo, 'data', {});
315
+ url = packageInfo;
316
+ preview = '';
317
+ if (isWatchFaceProject) {
318
+ url = downloadPackageReturn.url;
319
+ preview = downloadPackageReturn.preview;
320
+ }
321
+ if (cb) {
322
+ cb({
323
+ appType: appType,
324
+ url: url,
325
+ preview: preview,
326
+ appid: appId,
327
+ name: appName,
328
+ "debugger": true,
329
+ updatedTime: Math.round(new Date().getTime() / 1000),
330
+ devices: deviceSourceArr,
331
+ target: targetDeviceInternalName
332
+ });
333
+ }
334
+ _c.label = 4;
335
+ case 4: return [2 /*return*/];
282
336
  }
283
337
  });
284
338
  }); });
package/modules/config.js CHANGED
@@ -63,8 +63,9 @@ 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 hm_analytics_1 = require("../utils/hm_analytics");
66
67
  var config = function (args) { return __awaiter(void 0, void 0, void 0, function () {
67
- var cmd, _a, space, _b, method, values, allowedMethods, storage, commonHandleNotKeyTips, config_1;
68
+ var cmd, _a, space, _b, method, values, allowedMethods, commonHandleNotKeyTips, config_1;
68
69
  return __generator(this, function (_c) {
69
70
  cmd = lodash_1["default"].get(args, '$0');
70
71
  _a = lodash_1["default"].get(args, '_', []), space = _a[0], _b = _a[1], method = _b === void 0 ? '' : _b, values = _a.slice(2);
@@ -76,20 +77,20 @@ var config = function (args) { return __awaiter(void 0, void 0, void 0, function
76
77
  logger.log("- ".concat(cmd, " ").concat(space, " get <key> [<key> ...]"));
77
78
  logger.log("- ".concat(cmd, " ").concat(space, " delete <key> [<key> ...]"));
78
79
  logger.log("- ".concat(cmd, " ").concat(space, " list [--json]"));
79
- process.exit(1);
80
+ process.exit(0);
80
81
  }
81
- storage = new storage_1.Storage({ cmd: lodash_1["default"].get(args, '$0') });
82
82
  commonHandleNotKeyTips = function (method) {
83
83
  logger.error("Please enter the data in the format: ".concat(chalk_1["default"].yellow("zeus config ".concat(method, " <key>"))));
84
84
  };
85
85
  switch (method) {
86
- case 'set': {
86
+ case 'set':
87
87
  if (!values.length) {
88
88
  logger.error("Please enter the data in the format: ".concat(chalk_1["default"].yellow('zeus config set <key>=<value>')));
89
89
  break;
90
90
  }
91
91
  values.forEach(function (info) {
92
- var _a = info.split('='), _b = _a[0], key = _b === void 0 ? '' : _b, _c = _a[1], value = _c === void 0 ? '' : _c;
92
+ var _a;
93
+ var _b = info.split('='), _c = _b[0], key = _c === void 0 ? '' : _c, _d = _b[1], value = _d === void 0 ? '' : _d;
93
94
  key = key.trim();
94
95
  value = value.trim();
95
96
  if (!info.includes('=')) {
@@ -102,53 +103,53 @@ 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 {
105
- storage.set(key, value);
106
+ // TODO 需要知道 <key> 有那些,以便验证是否处理的没有遗漏
107
+ storage_1.globalStorage.set((_a = {}, _a[key] = value, _a));
106
108
  logger.success("config: ".concat(key, "=").concat(value));
107
109
  }
108
110
  });
109
111
  break;
110
- }
111
- case 'get': {
112
+ case 'get':
112
113
  if (!values.length) {
113
114
  commonHandleNotKeyTips('get');
114
115
  break;
115
116
  }
116
117
  values.forEach(function (key) {
117
118
  var curKey = key.trim();
118
- if (!storage.has(key) || !key) {
119
+ // TODO 需要知道 <key> 有那些,以便验证是否处理的没有遗漏
120
+ if (!storage_1.globalStorage.has(key) || !key) {
119
121
  logger.error('The <key> does not exist');
120
122
  }
121
123
  else {
122
- logger.log("".concat(curKey, "=").concat(storage.get(curKey)));
124
+ logger.log("".concat(curKey, "=").concat(storage_1.globalStorage.get(curKey)));
123
125
  }
124
126
  });
125
127
  break;
126
- }
127
- case 'delete': {
128
+ case 'delete':
128
129
  if (!values.length) {
129
130
  commonHandleNotKeyTips('delete');
130
131
  break;
131
132
  }
132
133
  values.forEach(function (key) {
133
134
  var curKey = key.trim();
134
- if (!storage.has(key) || !key) {
135
+ // TODO 需要知道 <key> 有那些,以便验证是否处理的没有遗漏
136
+ if (!storage_1.globalStorage.has(key) || !key) {
135
137
  logger.error('The <key> does not exist');
136
138
  }
137
139
  else {
138
- storage["delete"](curKey);
140
+ storage_1.globalStorage.deleteStorage(curKey);
139
141
  logger.success("config: ".concat(curKey, " deleted"));
140
142
  }
141
143
  });
142
144
  break;
143
- }
144
- case 'list': {
145
- config_1 = storage.getAll();
145
+ case 'list':
146
+ config_1 = storage_1.instanceStorage.getStorage();
146
147
  Object.keys(config_1).forEach(function (key) {
147
148
  if (lodash_1["default"].startsWith(key, '____')) {
148
149
  lodash_1["default"].unset(config_1, key);
149
150
  }
150
151
  });
151
- if (lodash_1["default"].get(values, '[0]', '') === '--json') {
152
+ if (lodash_1["default"].get(args, 'json', false)) {
152
153
  logger.log(JSON.stringify(config_1, null, 2));
153
154
  }
154
155
  else {
@@ -157,10 +158,11 @@ var config = function (args) { return __awaiter(void 0, void 0, void 0, function
157
158
  });
158
159
  }
159
160
  break;
160
- }
161
161
  default:
162
162
  break;
163
163
  }
164
+ (0, hm_analytics_1.HM_Analytics)('ZEPP_CLI_CONFIG_C');
165
+ process.exit(0);
164
166
  return [2 /*return*/];
165
167
  });
166
168
  }); };
@@ -83,10 +83,10 @@ var lodash_1 = __importDefault(require("lodash"));
83
83
  var chalk_1 = __importDefault(require("chalk"));
84
84
  var inquirer_1 = __importDefault(require("inquirer"));
85
85
  var rd = __importStar(require("rd"));
86
- var fs = __importStar(require("fs"));
87
86
  var fs_extra_1 = __importDefault(require("fs-extra"));
88
87
  var path_1 = require("path");
89
88
  var fs_1 = require("fs");
89
+ var yeoman_environment_1 = __importDefault(require("yeoman-environment"));
90
90
  var local_app_1 = require("./local-app");
91
91
  var yeoman_app_1 = require("./yeoman-app");
92
92
  var project_1 = require("../../config/project");
@@ -94,20 +94,22 @@ var device_1 = require("../../config/device");
94
94
  var font_icon_1 = __importDefault(require("../../font-icon"));
95
95
  var logger = __importStar(require("../../utils/logger"));
96
96
  var sleep_1 = require("../../utils/sleep");
97
- var yeoman_environment_1 = __importDefault(require("yeoman-environment"));
97
+ var hm_analytics_1 = require("../../utils/hm_analytics");
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, workDir, beforeFiles, localTemplates, localChoices, watchfaceTemplateChoices, appTemplateChoices, env, generagtorMate, generagtorMateKeys, answer, choosePkg;
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) {
109
111
  workDir = (0, path_1.resolve)(cwdPath, projectName);
110
- if (fs.existsSync(workDir)) {
112
+ if ((0, fs_1.existsSync)(workDir)) {
111
113
  logger.error("\"".concat(workDir, "/\" already exists."));
112
114
  process.exit(1);
113
115
  }
@@ -116,9 +118,12 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
116
118
  logger.error('There was a missing parameter: projectName.');
117
119
  process.exit(1);
118
120
  }
121
+ (0, hm_analytics_1.HM_Analytics)('ZEPP_CLI_CREATE_C');
119
122
  }
120
- beforeFiles = [];
121
- if (fs.existsSync(workDir)) {
123
+ else {
124
+ (0, hm_analytics_1.HM_Analytics)('ZEPP_CLI_INIT_C');
125
+ }
126
+ if ((0, fs_1.existsSync)(workDir)) {
122
127
  rd.eachFileSync(workDir, function (file) {
123
128
  beforeFiles.push(file);
124
129
  });
@@ -162,14 +167,14 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
162
167
  }
163
168
  env = yeoman_environment_1["default"].createEnv();
164
169
  env.lookup();
165
- generagtorMate = env.getGeneratorsMeta();
166
- generagtorMateKeys = Object.keys(generagtorMate);
167
- if (generagtorMateKeys.length) {
170
+ generatorMate = env.getGeneratorsMeta();
171
+ generatorMateKeys = Object.keys(generatorMate);
172
+ if (generatorMateKeys.length) {
168
173
  if (localChoices.length) {
169
174
  // @ts-ignore
170
175
  localChoices.push(new inquirer_1["default"].Separator());
171
176
  }
172
- generagtorMateKeys.forEach(function (name) {
177
+ generatorMateKeys.forEach(function (name) {
173
178
  if (/:(app|all)$/.test(name)) {
174
179
  localChoices.push({
175
180
  name: name,
@@ -260,7 +265,7 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
260
265
  _b.sent();
261
266
  if (choosePkg.type === project_1.AppSourceType.YEOMAN) {
262
267
  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: generagtorMate[choosePkg.name] }));
268
+ (0, yeoman_app_1.createYeomanApp)(__assign(__assign({}, answer), { env: env, templateInfo: generatorMate[choosePkg.name] }));
264
269
  }
265
270
  else {
266
271
  logger.info("".concat(lodash_1["default"].upperFirst(cmd), " application using local template \"").concat(choosePkg.name, "\"."));
@@ -286,6 +291,8 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
286
291
  });
287
292
  logger.log('\n');
288
293
  logger.success("project created successfully by \"".concat(choosePkg.name, "\" template.\n"));
294
+ shell.cd("".concat(projectName));
295
+ shell.exec('npm install');
289
296
  return [4 /*yield*/, (0, sleep_1.sleep)(300)];
290
297
  case 4:
291
298
  _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,8 @@ 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"));
82
+ logger.log("".concat(cmd, " bridge connect the online App or Simulator for development and debugging"));
81
83
  logger.log('');
82
84
  logger.log('');
83
85
  logger.log("".concat(cmd, "@").concat(pkg.version, " ").concat(path.resolve(__dirname, '../')));