aiot-toolkit 1.0.20 → 1.0.21-beta.1
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/CHANGELOG.md +11 -0
- package/README.md +11 -0
- package/lib/commands/compile.js +1 -135
- package/lib/commands/debug.js +1 -673
- package/lib/commands/init.js +1 -239
- package/lib/commands/packages.js +1 -86
- package/lib/commands/preview.js +1 -19
- package/lib/commands/report.js +1 -60
- package/lib/commands/resign.js +1 -88
- package/lib/commands/update.js +1 -358
- package/lib/commands/utils.js +1 -283
- package/lib/index.js +1 -85
- package/lib/plugins/manifest-watch-plugin.js +1 -123
- package/lib/utils.js +1 -117
- package/package.json +9 -9
package/lib/commands/init.js
CHANGED
|
@@ -1,240 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _path = _interopRequireDefault(require("path"));
|
|
4
|
-
|
|
5
|
-
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
6
|
-
|
|
7
|
-
var _glob = _interopRequireDefault(require("glob"));
|
|
8
|
-
|
|
9
|
-
var _inquirer = _interopRequireDefault(require("inquirer"));
|
|
10
|
-
|
|
11
|
-
var _chalk = _interopRequireDefault(require("chalk"));
|
|
12
|
-
|
|
13
|
-
var _sharedUtils = require("@aiot-toolkit/shared-utils");
|
|
14
|
-
|
|
15
|
-
var _template = _interopRequireDefault(require("@aiot-toolkit/dsl-xvm/lib/template"));
|
|
16
|
-
|
|
17
|
-
var _template2 = _interopRequireDefault(require("@aiot-toolkit/dsl-vue/lib/template"));
|
|
18
|
-
|
|
19
|
-
var _utils = require("@aiot-toolkit/compiler/lib/utils");
|
|
20
|
-
|
|
21
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
22
|
-
|
|
23
|
-
/*
|
|
24
|
-
* Copyright (C) 2017, hapjs.org. All rights reserved.
|
|
25
|
-
*/
|
|
26
|
-
const allSupportedDeviceArray = ['phone', 'tv', 'car', 'watch', 'tv-h5'];
|
|
27
|
-
const allSupportedDevicesString = allSupportedDeviceArray.join(',');
|
|
28
|
-
/**
|
|
29
|
-
* 生成工程目录
|
|
30
|
-
* @param {String} name - 项目名
|
|
31
|
-
* @param {Object} options - 参数
|
|
32
|
-
*/
|
|
33
|
-
|
|
34
|
-
async function generate(name, options) {
|
|
35
|
-
if (name === '') {
|
|
36
|
-
name = 'HelloWorld';
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const answers = await _inquirer.default.prompt([{
|
|
40
|
-
type: 'input',
|
|
41
|
-
name: 'name',
|
|
42
|
-
message: 'Init your project',
|
|
43
|
-
default: name
|
|
44
|
-
}]);
|
|
45
|
-
|
|
46
|
-
const dirpath = _path.default.join(process.cwd(), answers.name);
|
|
47
|
-
|
|
48
|
-
try {
|
|
49
|
-
await createProject(answers.name, dirpath, options);
|
|
50
|
-
} catch (err) {
|
|
51
|
-
_sharedUtils.colorconsole.error(err.message);
|
|
52
|
-
|
|
53
|
-
if (err.message.match(/Please pick a new name/)) {
|
|
54
|
-
await generate(name, options);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* 创建项目目录
|
|
60
|
-
* @param name 项目名
|
|
61
|
-
* @param dirpath 目标项目路径
|
|
62
|
-
*/
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
async function createProject(name, dirpath, options = {}) {
|
|
66
|
-
if (_fsExtra.default.existsSync(dirpath)) {
|
|
67
|
-
throw new Error(`"${dirpath}" exists! Please pick a new name.`);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (!(0, _sharedUtils.mkdirsSync)(dirpath)) {
|
|
71
|
-
throw new Error('failed to created folder "' + dirpath + '"!.');
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const {
|
|
75
|
-
dsl: dslName,
|
|
76
|
-
deviceType: deviceTypeList,
|
|
77
|
-
templateType,
|
|
78
|
-
web: webDemo,
|
|
79
|
-
minaH5: minaH5Demo,
|
|
80
|
-
minaTv
|
|
81
|
-
} = options;
|
|
82
|
-
let finalTemplateType = '';
|
|
83
|
-
|
|
84
|
-
if (templateType && !deviceTypeList) {
|
|
85
|
-
throw new Error('there is no deviceType specified');
|
|
86
|
-
} else {
|
|
87
|
-
// 更新templateType值
|
|
88
|
-
finalTemplateType = (0, _utils.hyphenedToCamelCase)(`${deviceTypeList}-${templateType}`);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
let finalDeviceTypeList = ['phone']; // 默认设备列表为 phone
|
|
92
|
-
|
|
93
|
-
if (minaTv) {
|
|
94
|
-
finalDeviceTypeList = ['tv-quickapp'];
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if (minaH5Demo) {
|
|
98
|
-
finalDeviceTypeList = ['tv-h5'];
|
|
99
|
-
} // 获取设备类型
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
if (deviceTypeList && deviceTypeList.length > 0) {
|
|
103
|
-
const deviceTypeArray = deviceTypeList.split(',');
|
|
104
|
-
let deviceSet = new Set();
|
|
105
|
-
let notSupportedDeviceSet = new Set();
|
|
106
|
-
deviceTypeArray.map(deviceType => {
|
|
107
|
-
deviceType = deviceType.toLowerCase();
|
|
108
|
-
const isValidDeviceTypeFlag = allSupportedDeviceArray.includes(deviceType);
|
|
109
|
-
|
|
110
|
-
if (!isValidDeviceTypeFlag) {
|
|
111
|
-
notSupportedDeviceSet.add(deviceType);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
deviceSet.add(deviceType);
|
|
115
|
-
});
|
|
116
|
-
finalDeviceTypeList = Array.from(deviceSet);
|
|
117
|
-
|
|
118
|
-
if (notSupportedDeviceSet.size > 0) {
|
|
119
|
-
_sharedUtils.colorconsole.warn(`These device types have not been officially supported by Quickapp: "${Array.from(notSupportedDeviceSet).join(',')}"`);
|
|
120
|
-
|
|
121
|
-
_sharedUtils.colorconsole.warn(`Now Quickapp officially supports device types: "${allSupportedDevicesString}"`);
|
|
122
|
-
}
|
|
123
|
-
} // 获取dsl名称
|
|
124
|
-
// 获取项目模板的路径
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
let tplPath = null; // 获取设备配置文件模板的路径
|
|
128
|
-
|
|
129
|
-
let deviceJsonTemplatePath = null; // 匹配路径
|
|
130
|
-
|
|
131
|
-
switch (dslName) {
|
|
132
|
-
case 'vue':
|
|
133
|
-
tplPath = _template2.default.app.demo;
|
|
134
|
-
deviceJsonTemplatePath = _template2.default.app.deviceJsonTemplate;
|
|
135
|
-
break;
|
|
136
|
-
|
|
137
|
-
default:
|
|
138
|
-
if (webDemo) {
|
|
139
|
-
tplPath = _template.default.app.webDemo;
|
|
140
|
-
} else if (minaH5Demo) {
|
|
141
|
-
tplPath = _template.default.app.minaH5Demo;
|
|
142
|
-
} else if (minaTv) {
|
|
143
|
-
tplPath = _template.default.app.minaTvDemo;
|
|
144
|
-
} else if (finalTemplateType && _template.default.app[finalTemplateType]) {
|
|
145
|
-
tplPath = _template.default.app[finalTemplateType];
|
|
146
|
-
} else if (finalDeviceTypeList.includes('watch')) {
|
|
147
|
-
tplPath = _template.default.app.velaDemo;
|
|
148
|
-
} else {
|
|
149
|
-
tplPath = _template.default.app.demo;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
deviceJsonTemplatePath = _template.default.app.deviceJsonTemplate;
|
|
153
|
-
} // 拷贝project
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
const projectpath = _path.default.resolve(__dirname, tplPath);
|
|
157
|
-
|
|
158
|
-
await copyFiles(dirpath, projectpath, {
|
|
159
|
-
_gitignore: '.gitignore'
|
|
160
|
-
});
|
|
161
|
-
const renderData = {
|
|
162
|
-
appName: name,
|
|
163
|
-
toolkitVersion: require('../../package.json').version
|
|
164
|
-
};
|
|
165
|
-
const configFiles = minaH5Demo ? ['package.json', 'manifest.json'] : ['src/manifest.json', 'package.json'];
|
|
166
|
-
const files = configFiles.map(file => _path.default.join(dirpath, file)); // render files
|
|
167
|
-
|
|
168
|
-
files.forEach(filePath => {
|
|
169
|
-
let content = _fsExtra.default.readFileSync(filePath, 'utf-8');
|
|
170
|
-
|
|
171
|
-
content = (0, _sharedUtils.renderString)(content, renderData); // 加入deviceTypeList 进 manifest.json
|
|
172
|
-
|
|
173
|
-
if (filePath.includes('manifest.json')) {
|
|
174
|
-
let manifestJson = JSON.parse(content.toString());
|
|
175
|
-
manifestJson.deviceTypeList = finalDeviceTypeList; // 添加minAPILevel
|
|
176
|
-
|
|
177
|
-
manifestJson.minAPILevel = 1;
|
|
178
|
-
content = JSON.stringify(manifestJson, null, 2);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
_fsExtra.default.writeFileSync(filePath, content);
|
|
182
|
-
});
|
|
183
|
-
if (minaH5Demo) return; // 配置文件json的创建
|
|
184
|
-
|
|
185
|
-
finalDeviceTypeList.map(deviceType => {
|
|
186
|
-
const deviceJsonName = `config-${deviceType}.json`;
|
|
187
|
-
|
|
188
|
-
const jsonTemplatePath = _path.default.join(deviceJsonTemplatePath, deviceJsonName);
|
|
189
|
-
|
|
190
|
-
let jsonContent = '{}';
|
|
191
|
-
|
|
192
|
-
if (_fsExtra.default.existsSync(jsonTemplatePath)) {
|
|
193
|
-
jsonContent = _fsExtra.default.readFileSync(jsonTemplatePath, 'utf-8');
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
console.log(`${name}/src/${deviceJsonName} created`);
|
|
197
|
-
|
|
198
|
-
_fsExtra.default.writeFileSync(_path.default.join(dirpath, `src/config-${deviceType}.json`), jsonContent);
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* 拷贝模板目录
|
|
203
|
-
* @param {String} dest - 目标路径
|
|
204
|
-
* @param {String} src - 模板文件路径
|
|
205
|
-
* @param {Object} alias - 别名表,可用于复制时更名
|
|
206
|
-
*/
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
function copyFiles(dest, src, alias) {
|
|
210
|
-
// 遍历收集文件列表
|
|
211
|
-
const pattern = _path.default.join(src, '**/{*,.*}');
|
|
212
|
-
|
|
213
|
-
const files = _glob.default.sync(pattern, {
|
|
214
|
-
nodir: true,
|
|
215
|
-
dot: true
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
const promises = files.map(file => {
|
|
219
|
-
return new Promise(resolve => {
|
|
220
|
-
const relative = _path.default.relative(src, file);
|
|
221
|
-
|
|
222
|
-
const finalPath = _path.default.join(dest, alias[relative] || relative);
|
|
223
|
-
|
|
224
|
-
if (!_fsExtra.default.existsSync(finalPath)) {
|
|
225
|
-
resolve(`${(0, _sharedUtils.relateCwd)(finalPath)} created.`);
|
|
226
|
-
|
|
227
|
-
_fsExtra.default.copySync(file, finalPath);
|
|
228
|
-
} else {
|
|
229
|
-
resolve(_chalk.default.yellow(`${(0, _sharedUtils.relateCwd)(finalPath)} already existed.`));
|
|
230
|
-
}
|
|
231
|
-
});
|
|
232
|
-
});
|
|
233
|
-
return Promise.all(promises).then(messages => {
|
|
234
|
-
console.log(messages.join('\n'));
|
|
235
|
-
});
|
|
236
|
-
} // 创建工程目录
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
module.exports = generate;
|
|
1
|
+
"use strict";var _path=_interopRequireDefault(require("path")),_fsExtra=_interopRequireDefault(require("fs-extra")),_glob=_interopRequireDefault(require("glob")),_inquirer=_interopRequireDefault(require("inquirer")),_chalk=_interopRequireDefault(require("chalk")),_sharedUtils=require("@aiot-toolkit/shared-utils"),_template=_interopRequireDefault(require("@aiot-toolkit/dsl-xvm/lib/template")),_template2=_interopRequireDefault(require("@aiot-toolkit/dsl-vue/lib/template")),_utils=require("@aiot-toolkit/compiler/lib/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const allSupportedDeviceArray=["phone","tv","car","watch","tv-h5"],allSupportedDevicesString=allSupportedDeviceArray.join(",");async function generate(e,t){""===e&&(e="HelloWorld");const a=await _inquirer.default.prompt([{type:"input",name:"name",message:"Init your project",default:e}]),r=_path.default.join(process.cwd(),a.name);try{await createProject(a.name,r,t)}catch(a){_sharedUtils.colorconsole.error(a.message),a.message.match(/Please pick a new name/)&&await generate(e,t)}}async function createProject(e,t,a={}){if(_fsExtra.default.existsSync(t))throw new Error(`"${t}" exists! Please pick a new name.`);if(!(0,_sharedUtils.mkdirsSync)(t))throw new Error('failed to created folder "'+t+'"!.');const{dsl:r,deviceType:l,templateType:i,web:o,minaH5:n,minaTv:s}=a;let p="";if(i&&!l)throw new Error("there is no deviceType specified");p=(0,_utils.hyphenedToCamelCase)(`${l}-${i}`);let u=["phone"];if(s&&(u=["tv-quickapp"]),n&&(u=["tv-h5"]),l&&l.length>0){const e=l.split(",");let t=new Set,a=new Set;e.map((e=>{e=e.toLowerCase();allSupportedDeviceArray.includes(e)||a.add(e),t.add(e)})),u=Array.from(t),a.size>0&&(_sharedUtils.colorconsole.warn(`These device types have not been officially supported by Quickapp: "${Array.from(a).join(",")}"`),_sharedUtils.colorconsole.warn(`Now Quickapp officially supports device types: "${allSupportedDevicesString}"`))}let c=null,d=null;switch(r){case"vue":c=_template2.default.app.demo,d=_template2.default.app.deviceJsonTemplate;break;default:c=o?_template.default.app.webDemo:n?_template.default.app.minaH5Demo:s?_template.default.app.minaTvDemo:p&&_template.default.app[p]?_template.default.app[p]:u.includes("watch")?_template.default.app.velaDemo:_template.default.app.demo,d=_template.default.app.deviceJsonTemplate}const f=_path.default.resolve(__dirname,c);await copyFiles(t,f,{_gitignore:".gitignore"});const _={appName:e,toolkitVersion:require("../../package.json").version};(n?["package.json","manifest.json"]:["src/manifest.json","package.json"]).map((e=>_path.default.join(t,e))).forEach((e=>{let t=_fsExtra.default.readFileSync(e,"utf-8");if(t=(0,_sharedUtils.renderString)(t,_),e.includes("manifest.json")){let e=JSON.parse(t.toString());e.deviceTypeList=u,e.minAPILevel=1,t=JSON.stringify(e,null,2)}_fsExtra.default.writeFileSync(e,t)})),n||u.map((a=>{const r=`config-${a}.json`,l=_path.default.join(d,r);let i="{}";_fsExtra.default.existsSync(l)&&(i=_fsExtra.default.readFileSync(l,"utf-8")),console.log(`${e}/src/${r} created`),_fsExtra.default.writeFileSync(_path.default.join(t,`src/config-${a}.json`),i)}))}function copyFiles(e,t,a){const r=_path.default.join(t,"**/{*,.*}"),l=_glob.default.sync(r,{nodir:!0,dot:!0}).map((r=>new Promise((l=>{const i=_path.default.relative(t,r),o=_path.default.join(e,a[i]||i);_fsExtra.default.existsSync(o)?l(_chalk.default.yellow(`${(0,_sharedUtils.relateCwd)(o)} already existed.`)):(l(`${(0,_sharedUtils.relateCwd)(o)} created.`),_fsExtra.default.copySync(r,o))}))));return Promise.all(l).then((e=>{console.log(e.join("\n"))}))}module.exports=generate;
|
|
240
2
|
//# sourceMappingURL=init.js.map
|
package/lib/commands/packages.js
CHANGED
|
@@ -1,87 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.packages = packages;
|
|
7
|
-
|
|
8
|
-
var _path = _interopRequireDefault(require("path"));
|
|
9
|
-
|
|
10
|
-
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
11
|
-
|
|
12
|
-
var _glob = _interopRequireDefault(require("glob"));
|
|
13
|
-
|
|
14
|
-
var _sharedUtils = require("@aiot-toolkit/shared-utils");
|
|
15
|
-
|
|
16
|
-
var _config = require("@aiot-toolkit/shared-utils/config");
|
|
17
|
-
|
|
18
|
-
var _index = require("@aiot-toolkit/packager/lib/process/index");
|
|
19
|
-
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
22
|
-
/*
|
|
23
|
-
* Copyright (C) 2017, hapjs.org. All rights reserved.
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* 生成一个rpk
|
|
28
|
-
* @param { Object } options 生成一个rpk的选项
|
|
29
|
-
* @param { String } options.file 需要生成rpk的文件夹
|
|
30
|
-
* @param { String } options.output 生成rpk的存储文件夹
|
|
31
|
-
*/
|
|
32
|
-
async function packages(options = {}) {
|
|
33
|
-
const buildDirPath = _path.default.resolve(_config.projectPath, options.file);
|
|
34
|
-
|
|
35
|
-
const outputDirPath = _path.default.resolve(_config.projectPath, options.output); // 需要打包的文件
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const files = _glob.default.sync('**/*.*', {
|
|
39
|
-
cwd: buildDirPath
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
if (!files.length) {
|
|
43
|
-
return _sharedUtils.colorconsole.error(`### App Loader ### ${options.file} folder is empty!`);
|
|
44
|
-
} // 获取manifest的包名作为打包生成rpk的名称
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
let appPackageName = '';
|
|
48
|
-
|
|
49
|
-
try {
|
|
50
|
-
const manifestFile = _path.default.resolve(buildDirPath, 'manifest.json');
|
|
51
|
-
|
|
52
|
-
const manifest = (0, _sharedUtils.readJson)(manifestFile);
|
|
53
|
-
const {
|
|
54
|
-
package: packageName
|
|
55
|
-
} = manifest;
|
|
56
|
-
appPackageName = packageName;
|
|
57
|
-
} catch (error) {
|
|
58
|
-
throw new _sharedUtils.KnownError(error);
|
|
59
|
-
} // 创建完整包定义
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const {
|
|
63
|
-
fullPackage
|
|
64
|
-
} = (0, _index.createPackagesDefinition)(appPackageName); // 遍历所有文件,将文件内容buffer增加到fullPackage
|
|
65
|
-
|
|
66
|
-
(0, _index.allocateResourceToPackages)(files, buildDirPath, fullPackage); // 生成最终产出带签名的rpk文件buffer
|
|
67
|
-
|
|
68
|
-
const {
|
|
69
|
-
rpkBuffer
|
|
70
|
-
} = await (0, _index.buildProjectAndOutput)(fullPackage); // 提前清空一下输出目录
|
|
71
|
-
|
|
72
|
-
_fsExtra.default.emptyDirSync(outputDirPath); // 生成最终的rpk文件
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
generateDistFile(rpkBuffer, outputDirPath, `${appPackageName}.rpk`);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
function generateDistFile(buffer, output, item) {
|
|
79
|
-
const outputFile = _path.default.resolve(output, item);
|
|
80
|
-
|
|
81
|
-
_fsExtra.default.writeFileSync(outputFile, buffer);
|
|
82
|
-
|
|
83
|
-
const extName = _path.default.extname(item);
|
|
84
|
-
|
|
85
|
-
_sharedUtils.colorconsole.log(`### App Loader ### Generate the ${extName} file:${item} in the ${(0, _sharedUtils.relateCwd)(output)} directory!`);
|
|
86
|
-
}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.packages=packages;var _path=_interopRequireDefault(require("path")),_fsExtra=_interopRequireDefault(require("fs-extra")),_glob=_interopRequireDefault(require("glob")),_sharedUtils=require("@aiot-toolkit/shared-utils"),_config=require("@aiot-toolkit/shared-utils/config"),_index=require("@aiot-toolkit/packager/lib/process/index");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}async function packages(e={}){const t=_path.default.resolve(_config.projectPath,e.file),r=_path.default.resolve(_config.projectPath,e.output),a=_glob.default.sync("**/*.*",{cwd:t});if(!a.length)return _sharedUtils.colorconsole.error(`### App Loader ### ${e.file} folder is empty!`);let o="";try{const e=_path.default.resolve(t,"manifest.json"),r=(0,_sharedUtils.readJson)(e),{package:a}=r;o=a}catch(e){throw new _sharedUtils.KnownError(e)}const{fullPackage:i}=(0,_index.createPackagesDefinition)(o);(0,_index.allocateResourceToPackages)(a,t,i);const{rpkBuffer:l}=await(0,_index.buildProjectAndOutput)(i);_fsExtra.default.emptyDirSync(r),generateDistFile(l,r,`${o}.rpk`)}function generateDistFile(e,t,r){const a=_path.default.resolve(t,r);_fsExtra.default.writeFileSync(a,e);const o=_path.default.extname(r);_sharedUtils.colorconsole.log(`### App Loader ### Generate the ${o} file:${r} in the ${(0,_sharedUtils.relateCwd)(t)} directory!`)}
|
|
87
2
|
//# sourceMappingURL=packages.js.map
|
package/lib/commands/preview.js
CHANGED
|
@@ -1,20 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _sharedUtils = require("@aiot-toolkit/shared-utils/");
|
|
4
|
-
|
|
5
|
-
var _createPreview = _interopRequireDefault(require("@aiot-toolkit/server/lib/preview/create-preview"));
|
|
6
|
-
|
|
7
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Copyright (C) 2017, hapjs.org. All rights reserved.
|
|
11
|
-
*/
|
|
12
|
-
module.exports = async function preview(target, {
|
|
13
|
-
port
|
|
14
|
-
}) {
|
|
15
|
-
const previewApp = await (0, _createPreview.default)(target);
|
|
16
|
-
previewApp.listen(port, () => {
|
|
17
|
-
console.log(`> Visit the following address to see a preview of ${target}:\n` + `> local: http://localhost:${port}/preview\n` + `> LAN(Local Area Network): http://${(0, _sharedUtils.getIPv4IPAddress)()}:${port}/preview`);
|
|
18
|
-
});
|
|
19
|
-
};
|
|
1
|
+
"use strict";var _sharedUtils=require("@aiot-toolkit/shared-utils/"),_createPreview=_interopRequireDefault(require("@aiot-toolkit/server/lib/preview/create-preview"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}module.exports=async function(e,{port:t}){(await(0,_createPreview.default)(e)).listen(t,(()=>{console.log(`> Visit the following address to see a preview of ${e}:\n> local: http://localhost:${t}/preview\n> LAN(Local Area Network): http://${(0,_sharedUtils.getIPv4IPAddress)()}:${t}/preview`)}))};
|
|
20
2
|
//# sourceMappingURL=preview.js.map
|
package/lib/commands/report.js
CHANGED
|
@@ -1,61 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _child_process = _interopRequireDefault(require("child_process"));
|
|
4
|
-
|
|
5
|
-
var _os = _interopRequireDefault(require("os"));
|
|
6
|
-
|
|
7
|
-
var _path = _interopRequireDefault(require("path"));
|
|
8
|
-
|
|
9
|
-
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
10
|
-
|
|
11
|
-
var _chalk = _interopRequireDefault(require("chalk"));
|
|
12
|
-
|
|
13
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
-
|
|
15
|
-
/*
|
|
16
|
-
* Copyright (C) 2017, hapjs.org. All rights reserved.
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* 收集用户的环境信息,生成report.log,用于反馈和重现问题
|
|
21
|
-
*/
|
|
22
|
-
function report() {
|
|
23
|
-
const nodeVersion = process.versions;
|
|
24
|
-
|
|
25
|
-
const npmVersion = _child_process.default.execSync(`npm -v`).toString();
|
|
26
|
-
|
|
27
|
-
const arch = process.arch; // 操作系统架构
|
|
28
|
-
|
|
29
|
-
const osVersion = _os.default.release();
|
|
30
|
-
|
|
31
|
-
const osType = _os.default.type();
|
|
32
|
-
|
|
33
|
-
console.log(_chalk.default.green('Collecting environmental information...'));
|
|
34
|
-
|
|
35
|
-
_child_process.default.exec('npm list --json', {
|
|
36
|
-
maxBuffer: 1024 * 1024 * 10 // 10M
|
|
37
|
-
|
|
38
|
-
}, (error, stdout, stderr) => {
|
|
39
|
-
if (error || stderr) {
|
|
40
|
-
console.error(error || stderr);
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const dependenciesTree = JSON.parse(stdout.toString());
|
|
45
|
-
const content = {
|
|
46
|
-
nodeVersion,
|
|
47
|
-
npmVersion,
|
|
48
|
-
arch,
|
|
49
|
-
osVersion,
|
|
50
|
-
osType,
|
|
51
|
-
dependenciesTree
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
_fsExtra.default.writeFileSync(_path.default.join(process.cwd(), 'report.log'), JSON.stringify(content, null, 2));
|
|
55
|
-
|
|
56
|
-
console.log(_chalk.default.green('Environmental information collected'));
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
module.exports = report;
|
|
1
|
+
"use strict";var _child_process=_interopRequireDefault(require("child_process")),_os=_interopRequireDefault(require("os")),_path=_interopRequireDefault(require("path")),_fsExtra=_interopRequireDefault(require("fs-extra")),_chalk=_interopRequireDefault(require("chalk"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function report(){const e=process.versions,r=_child_process.default.execSync("npm -v").toString(),o=process.arch,t=_os.default.release(),n=_os.default.type();console.log(_chalk.default.green("Collecting environmental information...")),_child_process.default.exec("npm list --json",{maxBuffer:10485760},((i,s,l)=>{if(i||l)return void console.error(i||l);const a=JSON.parse(s.toString()),u={nodeVersion:e,npmVersion:r,arch:o,osVersion:t,osType:n,dependenciesTree:a};_fsExtra.default.writeFileSync(_path.default.join(process.cwd(),"report.log"),JSON.stringify(u,null,2)),console.log(_chalk.default.green("Environmental information collected"))}))}module.exports=report;
|
|
61
2
|
//# sourceMappingURL=report.js.map
|
package/lib/commands/resign.js
CHANGED
|
@@ -1,89 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.resign = resign;
|
|
7
|
-
|
|
8
|
-
var _path = _interopRequireDefault(require("path"));
|
|
9
|
-
|
|
10
|
-
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
11
|
-
|
|
12
|
-
var _glob = _interopRequireDefault(require("glob"));
|
|
13
|
-
|
|
14
|
-
var _index = require("@aiot-toolkit/packager/lib/index");
|
|
15
|
-
|
|
16
|
-
var _sharedUtils = require("@aiot-toolkit/shared-utils");
|
|
17
|
-
|
|
18
|
-
var _config = require("@aiot-toolkit/shared-utils/config");
|
|
19
|
-
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
22
|
-
/*
|
|
23
|
-
* Copyright (C) 2017, hapjs.org. All rights reserved.
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* 对rpk重新签名
|
|
28
|
-
* @param { Object } options 重新签名的选项
|
|
29
|
-
* @param { String } options.sign 传入存放公钥和私钥的签名文件夹
|
|
30
|
-
* @param { String } options.file 需要重新签名的文件,若没有传入则使用origin文件夹
|
|
31
|
-
* @param { String } options.dest 重新签名之后的输出文件夹名
|
|
32
|
-
* @param { String } options.origin 需要重新签名的输入文件夹名,默认为dist
|
|
33
|
-
*/
|
|
34
|
-
async function resign(options = {}) {
|
|
35
|
-
// 清除无用文件
|
|
36
|
-
const destDir = _path.default.resolve(_config.projectPath, options.dest);
|
|
37
|
-
|
|
38
|
-
_fsExtra.default.emptyDirSync(destDir); // 获取公钥和私钥的内容
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const privatekeyContent = _fsExtra.default.readFileSync(_path.default.resolve(_config.projectPath, options.sign, 'private.pem'));
|
|
42
|
-
|
|
43
|
-
const certificateContent = _fsExtra.default.readFileSync(_path.default.resolve(_config.projectPath, options.sign, 'certificate.pem'));
|
|
44
|
-
|
|
45
|
-
let files = [];
|
|
46
|
-
let fullpath = '';
|
|
47
|
-
|
|
48
|
-
if (options.file) {
|
|
49
|
-
fullpath = _path.default.resolve(process.cwd(), options.file);
|
|
50
|
-
files = [_path.default.basename(fullpath)];
|
|
51
|
-
} else {
|
|
52
|
-
// 如果没有指定具体的rpk包,则对默认指定的dist中的rpk进行重新签名
|
|
53
|
-
files = _glob.default.sync('**/*.{rpks,rpk}', {
|
|
54
|
-
cwd: _path.default.resolve(_config.projectPath, options.origin)
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
const output = _path.default.resolve(_config.projectPath, options.dest);
|
|
59
|
-
|
|
60
|
-
const reletivePath = _path.default.resolve(_config.projectPath, options.origin);
|
|
61
|
-
|
|
62
|
-
const filePromises = files.map(async item => {
|
|
63
|
-
const filePath = options.file ? fullpath : _path.default.resolve(reletivePath, item);
|
|
64
|
-
|
|
65
|
-
let fileBuffer = _fsExtra.default.readFileSync(filePath);
|
|
66
|
-
|
|
67
|
-
if (item.endsWith('.rpk')) {
|
|
68
|
-
fileBuffer = await (0, _index.signForRpk)(fileBuffer, privatekeyContent, certificateContent);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
if (item.endsWith('.rpks')) {
|
|
72
|
-
fileBuffer = await (0, _index.signForRpks)(fileBuffer, privatekeyContent, certificateContent);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
generateDistFile(fileBuffer, output, item);
|
|
76
|
-
});
|
|
77
|
-
await Promise.all(filePromises);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
function generateDistFile(buffer, output, item) {
|
|
81
|
-
const outputFile = _path.default.resolve(output, item);
|
|
82
|
-
|
|
83
|
-
_fsExtra.default.writeFileSync(outputFile, buffer);
|
|
84
|
-
|
|
85
|
-
const extName = _path.default.extname(item);
|
|
86
|
-
|
|
87
|
-
_sharedUtils.colorconsole.log(`### App Loader ### Sign the ${(0, _sharedUtils.relateCwd)(output)} directory and generate the ${extName} file:${item}`);
|
|
88
|
-
}
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.resign=resign;var _path=_interopRequireDefault(require("path")),_fsExtra=_interopRequireDefault(require("fs-extra")),_glob=_interopRequireDefault(require("glob")),_index=require("@aiot-toolkit/packager/lib/index"),_sharedUtils=require("@aiot-toolkit/shared-utils"),_config=require("@aiot-toolkit/shared-utils/config");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}async function resign(e={}){const t=_path.default.resolve(_config.projectPath,e.dest);_fsExtra.default.emptyDirSync(t);const a=_fsExtra.default.readFileSync(_path.default.resolve(_config.projectPath,e.sign,"private.pem")),r=_fsExtra.default.readFileSync(_path.default.resolve(_config.projectPath,e.sign,"certificate.pem"));let i=[],o="";e.file?(o=_path.default.resolve(process.cwd(),e.file),i=[_path.default.basename(o)]):i=_glob.default.sync("**/*.{rpks,rpk}",{cwd:_path.default.resolve(_config.projectPath,e.origin)});const l=_path.default.resolve(_config.projectPath,e.dest),s=_path.default.resolve(_config.projectPath,e.origin),n=i.map((async t=>{const i=e.file?o:_path.default.resolve(s,t);let n=_fsExtra.default.readFileSync(i);t.endsWith(".rpk")&&(n=await(0,_index.signForRpk)(n,a,r)),t.endsWith(".rpks")&&(n=await(0,_index.signForRpks)(n,a,r)),generateDistFile(n,l,t)}));await Promise.all(n)}function generateDistFile(e,t,a){const r=_path.default.resolve(t,a);_fsExtra.default.writeFileSync(r,e);const i=_path.default.extname(a);_sharedUtils.colorconsole.log(`### App Loader ### Sign the ${(0,_sharedUtils.relateCwd)(t)} directory and generate the ${i} file:${a}`)}
|
|
89
2
|
//# sourceMappingURL=resign.js.map
|