@zeppos/zeus-cli 1.1.4 → 1.1.5

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/config/device.js CHANGED
@@ -17,8 +17,8 @@ var DevicePlatformName;
17
17
  DevicePlatformName["VERONAW"] = "gtr3-w";
18
18
  DevicePlatformName["ZURICH"] = "gts3";
19
19
  DevicePlatformName["ZURICHW"] = "gts3-w";
20
- DevicePlatformName["TEIDE"] = "teide";
21
- DevicePlatformName["TEIDEW"] = "teide-w";
20
+ DevicePlatformName["TEIDE"] = "t-rex2";
21
+ DevicePlatformName["TEIDEW"] = "t-rex2-w";
22
22
  })(DevicePlatformName = exports.DevicePlatformName || (exports.DevicePlatformName = {}));
23
23
  var DeviceSource;
24
24
  (function (DeviceSource) {
@@ -92,7 +92,7 @@ exports.deviceTargets = (_a = {},
92
92
  }
93
93
  },
94
94
  _a[DeviceTarget.TEIDE] = {
95
- deviceName: 'TEIDE',
95
+ deviceName: 'T-Rex2',
96
96
  platforms: [
97
97
  {
98
98
  name: DevicePlatformName.TEIDE,
package/modules/build.js CHANGED
@@ -67,7 +67,7 @@ var node_js_1 = require("@zeppos/zpm/lib/node.js");
67
67
  var fs_1 = __importDefault(require("fs"));
68
68
  var rd = __importStar(require("rd"));
69
69
  var path = __importStar(require("path"));
70
- var lodash_1 = __importDefault(require("lodash"));
70
+ var lodash_1 = require("lodash");
71
71
  var fs_extra_1 = __importDefault(require("fs-extra"));
72
72
  var form_data_1 = __importDefault(require("form-data"));
73
73
  var qrcode_terminal_1 = __importDefault(require("qrcode-terminal"));
@@ -97,52 +97,66 @@ function handleExecCommandInErrorDir(mode) {
97
97
  logger.warn("This command needs to be executed in the root of the project.");
98
98
  process.exit(1);
99
99
  }
100
- function chooseBuildPackages(mode) {
100
+ function chooseBuildPackages(mode, buildConfigOption) {
101
101
  if (mode === void 0) { mode = 'development'; }
102
+ if (buildConfigOption === void 0) { buildConfigOption = {}; }
102
103
  return __awaiter(this, void 0, void 0, function () {
103
- var targets, answers;
104
- var _a, _b;
105
- return __generator(this, function (_c) {
106
- switch (_c.label) {
104
+ var targets, _a, promptTarget_1, answers;
105
+ var _b, _c;
106
+ return __generator(this, function (_d) {
107
+ switch (_d.label) {
107
108
  case 0:
108
109
  if (!appJsonContent) {
109
110
  handleExecCommandInErrorDir(mode);
110
111
  }
111
- targets = Object.keys(lodash_1["default"].get(appJsonContent, 'targets', {}));
112
+ targets = Object.keys((0, lodash_1.get)(appJsonContent, 'targets', {}));
112
113
  if (!!targets.length) return [3, 1];
113
114
  logger.error('Please set at least one package.');
114
115
  process.exit(1);
115
116
  return [3, 4];
116
117
  case 1:
117
118
  if (!(targets.length === 1)) return [3, 2];
118
- storage_1.globalStorage.set((_a = {}, _a[project_1.buildStorageKey.targetDeviceToBuild] = targets[0], _a));
119
+ storage_1.globalStorage.set((_b = {}, _b[project_1.buildStorageKey.targetDeviceToBuild] = targets[0], _b));
119
120
  return [2, [targets[0]]];
120
- case 2: return [4, inquirer_1["default"].prompt([
121
- {
122
- name: 'target',
123
- type: 'list',
124
- when: function () { return mode !== BuildMode.PROD; },
125
- message: 'Which target would you like to preview?',
126
- choices: targets
127
- },
128
- {
129
- name: 'buildTargets',
130
- type: 'checkbox',
131
- when: function () { return mode === BuildMode.PROD; },
132
- choices: targets.map(function (item) { return ({
133
- name: item,
134
- value: item,
135
- checked: true
136
- }); }),
137
- message: 'Which targets would you like to build?'
138
- }
139
- ])];
121
+ case 2:
122
+ _a = buildConfigOption.target, promptTarget_1 = _a === void 0 ? '' : _a;
123
+ return [4, inquirer_1["default"].prompt([
124
+ {
125
+ name: 'target',
126
+ type: 'list',
127
+ when: function (args) {
128
+ var bool = targets.includes(promptTarget_1);
129
+ if (bool) {
130
+ args.target = promptTarget_1;
131
+ }
132
+ return mode !== BuildMode.PROD && !bool;
133
+ },
134
+ message: 'Which target would you like to preview?',
135
+ choices: targets
136
+ },
137
+ {
138
+ name: 'target',
139
+ type: 'checkbox',
140
+ when: function (args) {
141
+ var arr = typeof promptTarget_1 === 'string' ? (0, lodash_1.intersection)(targets, promptTarget_1.split(',')) : [];
142
+ var bool = !!arr.length;
143
+ if (bool) {
144
+ args.target = arr;
145
+ }
146
+ return mode === BuildMode.PROD && !bool;
147
+ },
148
+ choices: targets.map(function (item) { return ({
149
+ name: item,
150
+ value: item,
151
+ checked: true
152
+ }); }),
153
+ message: 'Which targets would you like to build?'
154
+ }
155
+ ])];
140
156
  case 3:
141
- answers = _c.sent();
142
- if (BuildMode.PROD) {
143
- storage_1.globalStorage.set((_b = {}, _b[project_1.buildStorageKey.targetDeviceToBuild] = answers.target, _b));
144
- }
145
- return [2, mode !== BuildMode.PROD ? [answers.target] : answers.buildTargets];
157
+ answers = _d.sent();
158
+ storage_1.globalStorage.set((_c = {}, _c[project_1.buildStorageKey.targetDeviceToBuild] = answers.target, _c));
159
+ return [2, typeof answers.target === 'string' ? [answers.target] : answers.target];
146
160
  case 4: return [2];
147
161
  }
148
162
  });
@@ -159,7 +173,7 @@ var build = function (mode, packages, buildConfigOption) {
159
173
  case 0:
160
174
  workspace = path.resolve('./');
161
175
  if (!!packages.length) return [3, 2];
162
- return [4, chooseBuildPackages(mode)];
176
+ return [4, chooseBuildPackages(mode, buildConfigOption)];
163
177
  case 1:
164
178
  choosePackages = _b.sent();
165
179
  if (!choosePackages || !choosePackages.length) {
@@ -228,9 +242,9 @@ var build = function (mode, packages, buildConfigOption) {
228
242
  });
229
243
  };
230
244
  exports.build = build;
231
- var buildDev = function (packages) {
245
+ var buildDev = function (args, packages) {
232
246
  (0, hm_analytics_1.HM_Analytics)('ZEPP_CLI_DEV_C');
233
- return (0, exports.build)(BuildMode.DEV, packages);
247
+ return (0, exports.build)(BuildMode.DEV, packages, args);
234
248
  };
235
249
  exports.buildDev = buildDev;
236
250
  var buildProd = function (args) { return __awaiter(void 0, void 0, void 0, function () {
@@ -262,7 +276,7 @@ var buildPreview = function (args, cb) { return __awaiter(void 0, void 0, void 0
262
276
  return [4, (0, exports.build)(buildMode, [], args)];
263
277
  case 1:
264
278
  buildInfo = _b.sent();
265
- appType = lodash_1["default"].get(appJsonContent, 'app.appType');
279
+ appType = (0, lodash_1.get)(appJsonContent, 'app.appType');
266
280
  isWatchFaceProject = appType === project_1.AppType.WATCHFACE;
267
281
  logger.info('getting package...');
268
282
  form = new form_data_1["default"]();
@@ -312,8 +326,9 @@ var buildPreview = function (args, cb) { return __awaiter(void 0, void 0, void 0
312
326
  url = "".concat(protocol, "://").concat(_subRegionalHost, "/custom/tools/app-dial/download/").concat(code);
313
327
  if (protocol && code) {
314
328
  logger.info('Generating preview qrcode...');
315
- logger.success('Below within two hours,please use Zepp APP to scan the qrcode below to preview your app.');
329
+ logger.success('Please use Zepp APP to scan the following qrcode to preview your application within two hours.');
316
330
  qrcode_terminal_1["default"].generate(url, { small: true });
331
+ storage_1.globalStorage.set({ ____preview_url: url });
317
332
  }
318
333
  else {
319
334
  logger.error('Generating preview qrcode failed, please check your network.');
@@ -328,7 +343,7 @@ var buildPreview = function (args, cb) { return __awaiter(void 0, void 0, void 0
328
343
  url = packageInfo;
329
344
  preview = '';
330
345
  if (isWatchFaceProject) {
331
- downloadPackageReturn = lodash_1["default"].get(packageInfo, 'data', {});
346
+ downloadPackageReturn = (0, lodash_1.get)(packageInfo, 'data', {});
332
347
  url = downloadPackageReturn.url;
333
348
  preview = downloadPackageReturn.preview;
334
349
  }
@@ -83,7 +83,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
83
83
  };
84
84
  exports.__esModule = true;
85
85
  exports.create = void 0;
86
- var lodash_1 = __importDefault(require("lodash"));
86
+ var lodash_1 = require("lodash");
87
87
  var chalk_1 = __importDefault(require("chalk"));
88
88
  var inquirer_1 = __importDefault(require("inquirer"));
89
89
  var rd = __importStar(require("rd"));
@@ -102,11 +102,11 @@ var sleep_1 = require("../../utils/sleep");
102
102
  var hm_analytics_1 = require("../../utils/hm-analytics");
103
103
  var TEMPLATE_DIR = (0, path_1.resolve)(__dirname, '../../public/template');
104
104
  var create = function (args) { return __awaiter(void 0, void 0, void 0, function () {
105
- var cmd, _a, projectName, cwdPath, beforeFiles, workDir, localTemplates, localChoices, watchfaceTemplateChoices, appTemplateChoices, env, generatorMate, generatorMateKeys, answer, choosePkg;
106
- return __generator(this, function (_b) {
107
- switch (_b.label) {
105
+ var cmd, _a, projectName, _b, promptAppType, _c, promptTemplate, _d, promptWithAppSide, _e, promptWithSettings, _f, promptBuildTargets, cwdPath, beforeFiles, workDir, localTemplates, localChoices, watchfaceTemplateChoices, appTemplateChoices, env, generatorMate, generatorMateKeys, answer, choosePkg;
106
+ return __generator(this, function (_g) {
107
+ switch (_g.label) {
108
108
  case 0:
109
- cmd = args._[0], _a = args.projectName, projectName = _a === void 0 ? '' : _a;
109
+ cmd = args._[0], _a = args.projectName, projectName = _a === void 0 ? '' : _a, _b = args.appType, promptAppType = _b === void 0 ? '' : _b, _c = args.template, promptTemplate = _c === void 0 ? '' : _c, _d = args.withAppSide, promptWithAppSide = _d === void 0 ? false : _d, _e = args.withSettings, promptWithSettings = _e === void 0 ? false : _e, _f = args.buildTargets, promptBuildTargets = _f === void 0 ? [] : _f;
110
110
  cwdPath = (0, path_1.resolve)('./');
111
111
  beforeFiles = [];
112
112
  workDir = cwdPath;
@@ -136,13 +136,13 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
136
136
  localChoices = [];
137
137
  watchfaceTemplateChoices = [];
138
138
  appTemplateChoices = [];
139
- if (!lodash_1["default"].isEmpty(localTemplates)) {
139
+ if (!(0, lodash_1.isEmpty)(localTemplates)) {
140
140
  localTemplates.forEach(function (dirName) {
141
141
  var dirPath = "".concat(TEMPLATE_DIR, "/").concat(dirName);
142
142
  var dirStat = (0, fs_1.lstatSync)(dirPath);
143
143
  if (dirStat.isDirectory()) {
144
144
  var chooseItem = {
145
- name: lodash_1["default"].startCase(dirName),
145
+ name: (0, lodash_1.startCase)(dirName),
146
146
  path: dirPath,
147
147
  type: project_1.AppSourceType.LOCAL
148
148
  };
@@ -207,45 +207,92 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
207
207
  {
208
208
  name: 'appType',
209
209
  type: 'list',
210
+ when: function (args) {
211
+ var bool = !promptAppType || !Object.values(project_1.AppType).includes(promptAppType);
212
+ if (!bool) {
213
+ args.appType = promptAppType.toUpperCase();
214
+ }
215
+ return bool;
216
+ },
210
217
  message: 'What type of application do you want to create?',
211
218
  choices: Object.keys(project_1.AppType)
212
219
  },
213
220
  {
214
221
  name: 'template',
215
222
  type: 'list',
216
- when: function (args) { return args.appType.toLowerCase() === project_1.AppType.APP; },
217
- message: 'Which template do you want to use?',
223
+ when: function (args) {
224
+ var isApp = args.appType.toLowerCase() === project_1.AppType.APP;
225
+ var objMap = appTemplateChoices.find(function (val) {
226
+ var name = val.name === 'Hello World' ? 'Hello_World' : val.name;
227
+ return name === promptTemplate;
228
+ });
229
+ if (isApp && objMap) {
230
+ args.template = objMap.value;
231
+ }
232
+ return isApp && !objMap;
233
+ },
234
+ message: 'Which app template do you want to use?',
218
235
  choices: __spreadArray([
219
236
  new inquirer_1["default"].Separator(),
220
- new inquirer_1["default"].Separator('Choose a template')
237
+ new inquirer_1["default"].Separator('Choose a app template')
221
238
  ], appTemplateChoices, true)
222
239
  },
223
240
  {
224
241
  name: 'template',
225
242
  type: 'list',
226
- when: function (args) { return args.appType.toLowerCase() === project_1.AppType.WATCHFACE; },
227
- message: 'Which template do you want to use?',
243
+ when: function (args) {
244
+ var isWatchFace = args.appType.toLowerCase() === project_1.AppType.WATCHFACE;
245
+ var objMap = watchfaceTemplateChoices.find(function (val) { return val.name === promptTemplate; });
246
+ if (isWatchFace && objMap) {
247
+ args.template = objMap.value;
248
+ }
249
+ return isWatchFace && !objMap;
250
+ },
251
+ message: 'Which watchface template do you want to use?',
228
252
  choices: __spreadArray([
229
253
  new inquirer_1["default"].Separator(),
230
- new inquirer_1["default"].Separator('Choose a template')
254
+ new inquirer_1["default"].Separator('Choose a watchface template')
231
255
  ], watchfaceTemplateChoices, true)
232
256
  },
233
257
  {
234
258
  name: 'withAppSide',
235
259
  type: 'confirm',
236
- when: function (args) { return args.template === 0 && args.appType.toLowerCase() === project_1.AppType.APP; },
260
+ when: function (args) {
261
+ var isApp = args.appType.toLowerCase() === project_1.AppType.APP;
262
+ var isEmpty = args.template === 0;
263
+ if (isApp && isEmpty && promptWithAppSide) {
264
+ args.withAppSide = promptWithAppSide === 'no' ? false : true;
265
+ return false;
266
+ }
267
+ return isApp && isEmpty;
268
+ },
237
269
  message: 'Should this application contain a app-side component?'
238
270
  },
239
271
  {
240
272
  name: 'withSettings',
241
273
  type: 'confirm',
242
- when: function (args) { return args.withAppSide; },
274
+ when: function (args) {
275
+ var withAppSide = args.withAppSide;
276
+ if (withAppSide && promptWithSettings) {
277
+ args.withSettings = promptWithSettings === 'no' ? false : true;
278
+ return false;
279
+ }
280
+ return withAppSide;
281
+ },
243
282
  message: 'Should this application contain a settings component?'
244
283
  },
245
284
  {
246
285
  name: 'buildTargets',
247
286
  type: 'checkbox',
248
- when: function (args) { return args.template === 0; },
287
+ when: function (args) {
288
+ var bool = args.template === 0;
289
+ var tarArr = typeof promptBuildTargets === 'string' ? (0, lodash_1.intersection)(Object.keys(device_1.deviceTargets), promptBuildTargets.split(',')) : [];
290
+ if (bool && tarArr.length) {
291
+ args.buildTargets = tarArr;
292
+ return false;
293
+ }
294
+ return bool;
295
+ },
249
296
  choices: Object.keys(device_1.deviceTargets).map(function (platform) { return ({
250
297
  name: device_1.deviceTargets[platform].deviceName,
251
298
  value: platform,
@@ -256,28 +303,28 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
256
303
  },
257
304
  ])];
258
305
  case 1:
259
- answer = _b.sent();
306
+ answer = _g.sent();
260
307
  answer.appType = answer.appType || project_1.AppType.APP;
261
308
  answer.workDir = workDir;
262
309
  choosePkg = answer.appType.toLowerCase() === project_1.AppType.APP ? appTemplateChoices[answer.template] : watchfaceTemplateChoices[answer.template];
263
310
  logger.info('fetching template...');
264
311
  return [4, (0, sleep_1.sleep)(100)];
265
312
  case 2:
266
- _b.sent();
313
+ _g.sent();
267
314
  if (choosePkg.type === project_1.AppSourceType.YEOMAN) {
268
- logger.info("".concat(lodash_1["default"].upperFirst(cmd), " application using yeoman template \"").concat(choosePkg.name, "\"."));
315
+ logger.info("".concat((0, lodash_1.upperFirst)(cmd), " application using yeoman template \"").concat(choosePkg.name, "\"."));
269
316
  (0, yeoman_app_1.createYeomanApp)(__assign(__assign({}, answer), { env: env, templateInfo: generatorMate[choosePkg.name] }));
270
317
  }
271
318
  else {
272
- logger.info("".concat(lodash_1["default"].upperFirst(cmd), " application using local template \"").concat(choosePkg.name, "\"."));
319
+ logger.info("".concat((0, lodash_1.upperFirst)(cmd), " application using local template \"").concat(choosePkg.name, "\"."));
273
320
  (0, local_app_1.createLocalApp)(__assign(__assign({}, answer), { templateInfo: choosePkg }));
274
321
  }
275
322
  logger.log('\n');
276
323
  return [4, (0, sleep_1.sleep)(50)];
277
324
  case 3:
278
- _b.sent();
325
+ _g.sent();
279
326
  rd.eachFileSync(workDir, function (file) {
280
- if (lodash_1["default"].endsWith(file, '.DS_Store')) {
327
+ if ((0, lodash_1.endsWith)(file, '.DS_Store')) {
281
328
  fs_extra_1["default"].remove(file);
282
329
  }
283
330
  else {
@@ -298,11 +345,11 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
298
345
  shell.exec('npm install');
299
346
  return [4, (0, sleep_1.sleep)(300)];
300
347
  case 4:
301
- _b.sent();
348
+ _g.sent();
302
349
  logger.log(chalk_1["default"].hex('#DB8C41')(font_icon_1["default"]));
303
350
  return [4, (0, sleep_1.sleep)(800)];
304
351
  case 5:
305
- _b.sent();
352
+ _g.sent();
306
353
  logger.log('I\'m all done. Now you can start your application.');
307
354
  return [2];
308
355
  }
package/modules/run.js CHANGED
@@ -79,37 +79,57 @@ var project_1 = require("../config/project");
79
79
  exports.DEFAULT_HOST = '127.0.0.1';
80
80
  exports.DEFAULT_PORT = '7650';
81
81
  var run = function (args) { return __awaiter(void 0, void 0, void 0, function () {
82
- var _a, _b, simulatorHost, _c, _d, simulatorPort, answer, hasStarted, packages, simulatorWebSocketURL, simulator, refreshSimulator, gitignorePath, gitignore, ignored;
83
- var _e;
84
- return __generator(this, function (_f) {
85
- switch (_f.label) {
82
+ var simulatorHost, simulatorPort, _a, promptSimulatorHost, _b, promptSimulatorPort, answer, hasStarted, packages, simulatorWebSocketURL, simulator, refreshSimulator, gitignorePath, gitignore, ignored;
83
+ var _c;
84
+ return __generator(this, function (_d) {
85
+ switch (_d.label) {
86
86
  case 0:
87
- _a = storage_1.instanceStorage.getStorage(), _b = project_1.simulatorStorageKey.simulatorHost, simulatorHost = _a[_b], _c = project_1.simulatorStorageKey.simulatorPort, _d = _a[_c], simulatorPort = _d === void 0 ? exports.DEFAULT_PORT : _d;
88
- if (!!simulatorHost) return [3, 2];
87
+ fs_extra_1["default"].readJSONSync(path.resolve('./app.json'), { throws: false });
88
+ simulatorHost = '';
89
+ simulatorPort = '';
90
+ _a = args.simulatorHost, promptSimulatorHost = _a === void 0 ? '' : _a, _b = args.simulatorPort, promptSimulatorPort = _b === void 0 ? exports.DEFAULT_PORT : _b;
91
+ if (!promptSimulatorHost) {
92
+ simulatorHost = storage_1.instanceStorage.getStorage()[project_1.simulatorStorageKey.simulatorHost];
93
+ simulatorPort = storage_1.instanceStorage.getStorage()[project_1.simulatorStorageKey.simulatorPort] || exports.DEFAULT_PORT;
94
+ }
89
95
  return [4, inquirer_1["default"].prompt([
90
96
  {
91
97
  name: 'host',
92
98
  type: 'input',
99
+ when: function (args) {
100
+ if (promptSimulatorHost) {
101
+ args.host = promptSimulatorHost;
102
+ }
103
+ return !promptSimulatorHost && !simulatorHost;
104
+ },
105
+ "default": exports.DEFAULT_HOST,
93
106
  message: "simulator host (".concat(exports.DEFAULT_HOST, "):")
94
107
  },
95
108
  {
96
109
  name: 'port',
97
110
  type: 'input',
111
+ when: function (args) {
112
+ if (promptSimulatorPort) {
113
+ args.port = promptSimulatorPort;
114
+ }
115
+ return !promptSimulatorPort && !simulatorPort;
116
+ },
117
+ "default": exports.DEFAULT_PORT,
98
118
  message: "simulator port (".concat(exports.DEFAULT_PORT, "):")
99
119
  }
100
120
  ])];
101
121
  case 1:
102
- answer = _f.sent();
103
- storage_1.globalStorage.set((_e = {},
104
- _e[project_1.simulatorStorageKey.simulatorHost] = answer.host || exports.DEFAULT_HOST,
105
- _e[project_1.simulatorStorageKey.simulatorPort] = answer.port || exports.DEFAULT_PORT,
106
- _e));
107
- _f.label = 2;
108
- case 2:
122
+ answer = _d.sent();
123
+ if (!simulatorHost) {
124
+ storage_1.globalStorage.set((_c = {},
125
+ _c[project_1.simulatorStorageKey.simulatorHost] = answer.host || exports.DEFAULT_HOST,
126
+ _c[project_1.simulatorStorageKey.simulatorPort] = answer.port || exports.DEFAULT_PORT,
127
+ _c));
128
+ }
109
129
  hasStarted = false;
110
- return [4, (0, build_1.chooseBuildPackages)()];
111
- case 3:
112
- packages = _f.sent();
130
+ return [4, (0, build_1.chooseBuildPackages)('development', args)];
131
+ case 2:
132
+ packages = _d.sent();
113
133
  simulatorWebSocketURL = "http://".concat(simulatorHost, ":").concat(simulatorPort);
114
134
  simulator = new simulator_1.Simulator(simulatorWebSocketURL);
115
135
  refreshSimulator = lodash_1["default"].debounce(function () { return __awaiter(void 0, void 0, void 0, function () {
@@ -118,7 +138,7 @@ var run = function (args) { return __awaiter(void 0, void 0, void 0, function ()
118
138
  switch (_b.label) {
119
139
  case 0:
120
140
  logger.info('rebuilding...');
121
- return [4, (0, build_1.buildDev)(packages)];
141
+ return [4, (0, build_1.buildDev)(args, packages)];
122
142
  case 1:
123
143
  zpkBuffer = _b.sent();
124
144
  if (zpkBuffer) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeppos/zeus-cli",
3
- "version": "1.1.4",
3
+ "version": "1.1.5",
4
4
  "description": "zeus mini-program tools",
5
5
  "main": "index.js",
6
6
  "author": "zepp",
@@ -84,6 +84,14 @@
84
84
  {
85
85
  "name": "gtr3-w",
86
86
  "deviceSource": 227
87
+ },
88
+ {
89
+ "name": "t-rex2",
90
+ "deviceSource": 418
91
+ },
92
+ {
93
+ "name": "t-rex2-w",
94
+ "deviceSource": 419
87
95
  }
88
96
  ],
89
97
  "designWidth": 454
@@ -120,6 +128,39 @@
120
128
  }
121
129
  ],
122
130
  "designWidth": 390
131
+ },
132
+ "teide": {
133
+ "module": {
134
+ "page": {
135
+ "pages": [
136
+ "page/t-rex2/home/index.page"
137
+ ],
138
+ "window": {
139
+ "navigationBarBackgroundColor": "#ffffff",
140
+ "navigationBarTextStyle": "black",
141
+ "navigationBarTitleText": "Hello World",
142
+ "backgroundColor": "#eeeeee",
143
+ "backgroundTextStyle": "light"
144
+ }
145
+ },
146
+ "app-side": {
147
+ "path": "app-side/index"
148
+ },
149
+ "setting": {
150
+ "path": "setting/index"
151
+ }
152
+ },
153
+ "platforms": [
154
+ {
155
+ "name": "t-rex2",
156
+ "deviceSource": 418
157
+ },
158
+ {
159
+ "name": "t-rex2-w",
160
+ "deviceSource": 419
161
+ }
162
+ ],
163
+ "designWidth": 454
123
164
  }
124
165
  },
125
166
  "i18n": {