@aiot-toolkit/aiotpack 2.0.2 → 2.0.3-beta.10

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 (63) hide show
  1. package/lib/afterCompile/ux/UxAfterCompile.d.ts +1 -1
  2. package/lib/afterCompile/ux/UxAfterCompile.js +295 -243
  3. package/lib/afterCompile/xts/entryTemplate.js +111 -113
  4. package/lib/afterCompile/xts/generateRpk.js +25 -54
  5. package/lib/afterCompile/xts/ts2wasm.js +62 -63
  6. package/lib/afterWorks/ux/UxAfterWorks.js +12 -19
  7. package/lib/beforeCompile/ux/UxBeforeCompile.js +26 -28
  8. package/lib/beforeCompile/xts/preInstall.js +50 -55
  9. package/lib/beforeWorks/ux/UxBeforeWorks.js +12 -19
  10. package/lib/compiler/enum/CompileMode.js +16 -23
  11. package/lib/compiler/interface/ICompileParam.js +1 -2
  12. package/lib/compiler/interface/ICompiler.js +1 -2
  13. package/lib/compiler/interface/ISignConfig.js +1 -2
  14. package/lib/compiler/javascript/JavascriptCompiler.js +147 -154
  15. package/lib/compiler/javascript/JavascriptDefaultCompileOption.js +20 -16
  16. package/lib/compiler/javascript/android/AndroidWebpackConfigurator.js +13 -11
  17. package/lib/compiler/javascript/android/plugin/WrapPlugin.js +53 -49
  18. package/lib/compiler/javascript/interface/IJavascriptCompileOption.js +1 -2
  19. package/lib/compiler/javascript/interface/IWebpackConfigurator.js +4 -1
  20. package/lib/compiler/javascript/vela/VelaWebpackConfigurator.js +78 -75
  21. package/lib/compiler/javascript/vela/enum/BuildNameFormatType.js +30 -41
  22. package/lib/compiler/javascript/vela/enum/EntryType.js +15 -29
  23. package/lib/compiler/javascript/vela/interface/IChunk.js +4 -1
  24. package/lib/compiler/javascript/vela/interface/IManifest.js +1 -2
  25. package/lib/compiler/javascript/vela/interface/IQuickAppConfig.js +1 -2
  26. package/lib/compiler/javascript/vela/model/Package.js +80 -51
  27. package/lib/compiler/javascript/vela/plugin/WrapPlugin.js +31 -27
  28. package/lib/compiler/javascript/vela/utils/Jsc.js +30 -33
  29. package/lib/compiler/javascript/vela/utils/UxCompileUtil.js +152 -130
  30. package/lib/compiler/javascript/vela/utils/ZipUtil.d.ts +10 -2
  31. package/lib/compiler/javascript/vela/utils/ZipUtil.js +282 -267
  32. package/lib/compiler/javascript/vela/utils/signature/Base64.js +65 -67
  33. package/lib/compiler/javascript/vela/utils/signature/CRC32.js +37 -35
  34. package/lib/compiler/javascript/vela/utils/signature/SignUtil.js +755 -731
  35. package/lib/compiler/javascript/vela/utils/signature/Signer.js +24 -22
  36. package/lib/compiler/javascript/vela/utils/webpackLoader/addColSourceMap.js +47 -52
  37. package/lib/compiler/javascript/vela/utils/webpackLoader/extractMapData.js +21 -17
  38. package/lib/config/UxConfig.js +145 -173
  39. package/lib/config/XtsConfig.d.ts +2 -0
  40. package/lib/config/XtsConfig.js +30 -39
  41. package/lib/index.js +88 -41
  42. package/lib/interface/ICompileOptions.js +5 -2
  43. package/lib/interface/IDeviceList.js +1 -2
  44. package/lib/loader/ux/JsLoader.js +32 -30
  45. package/lib/loader/ux/PngLoader.js +47 -53
  46. package/lib/loader/ux/android/UxLoader.d.ts +2 -0
  47. package/lib/loader/ux/android/UxLoader.js +30 -32
  48. package/lib/loader/ux/vela/AppUxLoader.d.ts +2 -0
  49. package/lib/loader/ux/vela/AppUxLoader.js +23 -25
  50. package/lib/loader/ux/vela/HmlLoader.js +59 -55
  51. package/lib/loader/ux/vela/UxLoader.d.ts +2 -0
  52. package/lib/loader/ux/vela/UxLoader.js +29 -37
  53. package/lib/loader/xts/XtsLoader.js +55 -41
  54. package/lib/utils/BeforeCompileUtils.js +100 -95
  55. package/lib/utils/PngUtils.js +42 -36
  56. package/lib/utils/ux/ManifestSchema.js +198 -194
  57. package/lib/utils/ux/UxFileUtils.d.ts +3 -3
  58. package/lib/utils/ux/UxFileUtils.js +130 -125
  59. package/lib/utils/ux/UxLoaderUtils.js +292 -307
  60. package/lib/utils/ux/android/AndroidUx.js +88 -90
  61. package/lib/utils/xts/XtsFileLaneUtils.js +58 -65
  62. package/lib/utils/xts/XtsFollowWorks.js +122 -129
  63. package/package.json +6 -6
@@ -1,281 +1,296 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- var _a;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- const shared_utils_1 = require("@aiot-toolkit/shared-utils");
17
- const fs_extra_1 = __importDefault(require("fs-extra"));
18
- const jszip_1 = __importDefault(require("jszip"));
19
- const path_1 = __importDefault(require("path"));
20
- const UxFileUtils_1 = __importDefault(require("../../../../utils/ux/UxFileUtils"));
21
- const CompileMode_1 = __importDefault(require("../../../enum/CompileMode"));
22
- const BuildNameFormatType_1 = __importDefault(require("../enum/BuildNameFormatType"));
23
- const Package_1 = __importDefault(require("../model/Package"));
24
- const UxCompileUtil_1 = __importDefault(require("./UxCompileUtil"));
25
- const SignUtil_1 = __importDefault(require("./signature/SignUtil"));
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _sharedUtils = require("@aiot-toolkit/shared-utils");
8
+ var _fsExtra = _interopRequireDefault(require("fs-extra"));
9
+ var _jszip = _interopRequireDefault(require("jszip"));
10
+ var _path = _interopRequireDefault(require("path"));
11
+ var _UxFileUtils = _interopRequireDefault(require("../../../../utils/ux/UxFileUtils"));
12
+ var _CompileMode = _interopRequireDefault(require("../../../enum/CompileMode"));
13
+ var _BuildNameFormatType = _interopRequireDefault(require("../enum/BuildNameFormatType"));
14
+ var _Package = _interopRequireDefault(require("../model/Package"));
15
+ var _UxCompileUtil = _interopRequireDefault(require("./UxCompileUtil"));
16
+ var _SignUtil = _interopRequireDefault(require("./signature/SignUtil"));
17
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
26
18
  /**
27
19
  * Zip 用于将打包成功的 build 目录按特定规则压缩成 rpk
28
20
  *
29
21
  * @see ZipUtil.createRpk 打包的完整规则
30
22
  */
31
23
  class ZipUtil {
32
- /**
33
- * dist 目录生成 rpk
34
- * 1. 获取文件列表
35
- * 1. 过滤出需要的文件
36
- * 2. 按配置排序
37
- * 2. 生成文件流
38
- * 1. 每个文件生成加密串
39
- * 2. 生成元数据流
40
- * 3. 把元数据流和普通文件合并到一个流
41
- * 3. 写入到硬盘
42
- * @param dist
43
- * @param param
44
- * @returns
45
- */
46
- static createRpk(dist, param) {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- const config = UxFileUtils_1.default.getMainfestInfo(param.projectPath, param.sourceRoot);
49
- // 1
50
- const files = this.getSortedFiles(dist, param, config);
51
- if (!files.length) {
52
- shared_utils_1.ColorConsole.error(`The build file is missing, stop generating the application package, please check carefully`);
53
- return;
54
- }
55
- // 2
56
- const { fullPackage } = yield this.createPackagesDefinition(param, config, files);
57
- // 生产出带签名的rpk文件buffer
58
- const signConfig = SignUtil_1.default.getProjectSignConfig(param);
59
- const rpkBuffer = yield _a.buildProjectAndOutput(fullPackage, signConfig);
60
- // 3
61
- this.generateDistFile(rpkBuffer, param, this.getFileName(param, config, 'rpk'));
62
- });
63
- }
64
- static getFileName(param, config, ext) {
65
- const { mode, buildNameFormat } = param;
66
- const { package: packageName } = config;
67
- return [
68
- packageName,
69
- mode === CompileMode_1.default.DEVELOPMENT ? 'debug' : 'release',
70
- buildNameFormat === BuildNameFormatType_1.default.ORIGINAL ? '' : config.versionName,
71
- ext
72
- ]
73
- .filter(Boolean)
74
- .join('.');
75
- }
76
- static packageToZipBuffer(target) {
77
- return __awaiter(this, void 0, void 0, function* () {
78
- const { resourceList, comment } = target;
79
- const packageFileList = resourceList.map((item) => {
80
- return {
81
- path: item.fileBuildPath,
82
- content: item.fileContentBuffer
83
- };
84
- });
85
- return yield this.createZipBufferFromFileList(packageFileList, comment);
86
- });
87
- }
88
- static generateDistFile(buffer, param, fileName) {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- const { releasePath, projectPath } = param;
91
- const filePath = path_1.default.join(projectPath, releasePath, fileName);
92
- fs_extra_1.default.outputFileSync(filePath, buffer);
93
- shared_utils_1.ColorConsole.success(`Project build and generate files:${fileName}`);
94
- });
95
- }
96
- /**
97
- * 根据文件列表创建 zip 的 Buffer
98
- * @param fileList 文件列表
99
- * @param comment zip 的注释
100
- * @returns
101
- */
102
- static createZipBufferFromFileList(fileList, comment) {
103
- return __awaiter(this, void 0, void 0, function* () {
104
- const zip = new jszip_1.default();
105
- fileList.forEach((item) => {
106
- zip.file(item.path, item.content);
107
- });
108
- return (yield zip.generateAsync(Object.assign(Object.assign({}, this.ZIP_OPTION), { comment })));
109
- });
24
+ static DIGEST_HASH_JSON = 'hash.json';
25
+
26
+ // 摘要文件夹
27
+ static META_PATH = 'META-INF';
28
+
29
+ // 文件摘要包(zip 文件)
30
+ static CERT_PATH = `${this.META_PATH}/CERT`;
31
+
32
+ // 打包信息文件
33
+ static BUILD_FILE_PATH = `${this.META_PATH}/build.txt`;
34
+
35
+ /**
36
+ * zip压缩参数
37
+ */
38
+ static ZIP_OPTION = {
39
+ type: 'nodebuffer',
40
+ compression: 'DEFLATE',
41
+ compressionOptions: {
42
+ level: 9
110
43
  }
111
- /**
112
- * 创建包,一个包对应一个 rpk 文件
113
- * @param param
114
- * @param config
115
- * @param files
116
- * @returns
117
- */
118
- static createPackagesDefinition(param, config, files) {
119
- return __awaiter(this, void 0, void 0, function* () {
120
- const { projectPath, outputPath } = param;
121
- const { package: appPackage } = config;
122
- const comment = this.createComment(param);
123
- const fullPackage = new Package_1.default({
124
- filePrefix: appPackage,
125
- fileSuffix: 'rpk',
126
- standalone: true,
127
- comment: JSON.stringify(comment)
128
- });
129
- // 写入文件
130
- for (let fileBuildPath of files) {
131
- const absPath = path_1.default.join(projectPath, outputPath, fileBuildPath);
132
- let fileContentBuffer = fs_extra_1.default.readFileSync(absPath);
133
- if (fileBuildPath === _a.CERT_PATH) {
134
- let metaZip = yield jszip_1.default.loadAsync(fileContentBuffer);
135
- fileContentBuffer = (yield metaZip.generateAsync(Object.assign(Object.assign({}, _a.ZIP_OPTION), { comment: null })));
136
- }
137
- const fileContentDigest = shared_utils_1.CommonUtil.calcDataDigest(fileContentBuffer);
138
- const resourceInfo = {
139
- fileBuildPath,
140
- fileContentBuffer,
141
- fileContentDigest
142
- };
143
- fullPackage.addResource(resourceInfo);
144
- // 分包相关逻辑 todo
145
- }
146
- return { fullPackage };
147
- });
44
+ };
45
+
46
+ /**
47
+ * dist 目录生成 rpk
48
+ * 1. 获取文件列表
49
+ * 1. 过滤出需要的文件
50
+ * 2. 按配置排序
51
+ * 2. 生成文件流
52
+ * 1. 每个文件生成加密串
53
+ * 2. 生成元数据流
54
+ * 3. 把元数据流和普通文件合并到一个流
55
+ * 3. 写入到硬盘
56
+ * @param dist
57
+ * @param param
58
+ * @returns 生成的 rpk 文件名
59
+ */
60
+ static async createRpk(dist, param) {
61
+ const config = _UxFileUtils.default.getMainfestInfo(param.projectPath, param.sourceRoot);
62
+
63
+ // 1
64
+ const files = this.getSortedFiles(dist, param, config);
65
+ if (!files.length) {
66
+ _sharedUtils.ColorConsole.error(`The build file is missing, stop generating the application package, please check carefully`);
67
+ return;
148
68
  }
149
- /**
150
- * 获取有序的文件列表
151
- *
152
- * 打包后的文件夹生成vela 应用程序,需要先把文件排序,再进行压缩
153
- *
154
- * @see getPriorities 获取排序规则
155
- *
156
- * @param dist 打包后的文件目录的绝对路径
157
- * @param param 打包参数
158
- * @returns
159
- */
160
- static getSortedFiles(dist, param, config) {
161
- const priorities = this.getPriorities(config);
162
- const getFileIndex = (file) => {
163
- const result = priorities.findIndex((item) => {
164
- if (typeof item === 'string') {
165
- return item === file;
166
- }
167
- return file.match(item);
168
- });
169
- if (result < 0) {
170
- return Number.MAX_SAFE_INTEGER;
171
- }
172
- return result;
173
- };
174
- // 筛选中需要的文件并排序
175
- // 1. 排除META-INF 目录下的文件
176
- // 2. 生产环境排除 .map 文件
177
- const mapReg = /\.map$/;
178
- let result = shared_utils_1.FileUtil.readAlldirSync(dist);
179
- result = result
180
- .filter((item) => {
181
- return !(item.startsWith(UxCompileUtil_1.default.DIGEST_ZIP_DIR) ||
182
- (param.mode === CompileMode_1.default.PRODUCTION && mapReg.test(item)));
183
- })
184
- .map((item) => path_1.default.relative(dist, item).split(path_1.default.sep).join(path_1.default.posix.sep));
185
- result.sort((a, b) => {
186
- const indexA = getFileIndex(a);
187
- const indexB = getFileIndex(b);
188
- return indexA - indexB;
69
+
70
+ // 2
71
+ const {
72
+ fullPackage
73
+ } = await this.createPackagesDefinition(param, config, files);
74
+
75
+ // 生产出带签名的rpk文件buffer
76
+ const signConfig = _SignUtil.default.getProjectSignConfig(param);
77
+ const rpkBuffer = await ZipUtil.buildProjectAndOutput(fullPackage, signConfig);
78
+ // 3
79
+ return this.generateDistFile(rpkBuffer, param, this.getFileName(param, config, 'rpk'));
80
+ }
81
+ static getFileName(param, config, ext) {
82
+ const {
83
+ mode,
84
+ buildNameFormat
85
+ } = param;
86
+ const {
87
+ package: packageName
88
+ } = config;
89
+ return [packageName, mode === _CompileMode.default.DEVELOPMENT ? 'debug' : 'release', buildNameFormat === _BuildNameFormatType.default.ORIGINAL ? '' : config.versionName, ext].filter(Boolean).join('.');
90
+ }
91
+ static async packageToZipBuffer(target) {
92
+ const {
93
+ resourceList,
94
+ comment
95
+ } = target;
96
+ const packageFileList = resourceList.map(item => {
97
+ return {
98
+ path: item.fileBuildPath,
99
+ content: item.fileContentBuffer
100
+ };
101
+ });
102
+ return await this.createZipBufferFromFileList(packageFileList, comment);
103
+ }
104
+
105
+ /**
106
+ *
107
+ * @param buffer
108
+ * @param param
109
+ * @param fileName
110
+ *
111
+ * @returns 生成的文件名
112
+ */
113
+ static async generateDistFile(buffer, param, fileName) {
114
+ const {
115
+ releasePath,
116
+ projectPath
117
+ } = param;
118
+ const filePath = _path.default.join(projectPath, releasePath, fileName);
119
+ _fsExtra.default.outputFileSync(filePath, buffer);
120
+ _sharedUtils.ColorConsole.success(`Project build and generate files:${fileName}`);
121
+ return fileName;
122
+ }
123
+
124
+ /**
125
+ * 根据文件列表创建 zip 的 Buffer
126
+ * @param fileList 文件列表
127
+ * @param comment zip 的注释
128
+ * @returns
129
+ */
130
+ static async createZipBufferFromFileList(fileList, comment) {
131
+ const zip = new _jszip.default();
132
+ fileList.forEach(item => {
133
+ zip.file(item.path, item.content);
134
+ });
135
+ return await zip.generateAsync({
136
+ ...this.ZIP_OPTION,
137
+ comment
138
+ });
139
+ }
140
+
141
+ /**
142
+ * 创建包,一个包对应一个 rpk 文件
143
+ * @param param
144
+ * @param config
145
+ * @param files
146
+ * @returns
147
+ */
148
+ static async createPackagesDefinition(param, config, files) {
149
+ const {
150
+ projectPath,
151
+ outputPath
152
+ } = param;
153
+ const {
154
+ package: appPackage
155
+ } = config;
156
+ const comment = this.createComment(param);
157
+ const fullPackage = new _Package.default({
158
+ filePrefix: appPackage,
159
+ fileSuffix: 'rpk',
160
+ standalone: true,
161
+ comment: JSON.stringify(comment)
162
+ });
163
+
164
+ // 写入文件
165
+ for (let fileBuildPath of files) {
166
+ const absPath = _path.default.join(projectPath, outputPath, fileBuildPath);
167
+ let fileContentBuffer = _fsExtra.default.readFileSync(absPath);
168
+ if (fileBuildPath === ZipUtil.CERT_PATH) {
169
+ let metaZip = await _jszip.default.loadAsync(fileContentBuffer);
170
+ fileContentBuffer = await metaZip.generateAsync({
171
+ ...ZipUtil.ZIP_OPTION,
172
+ comment: null
189
173
  });
190
- return result;
174
+ }
175
+ const fileContentDigest = _sharedUtils.CommonUtil.calcDataDigest(fileContentBuffer);
176
+ const resourceInfo = {
177
+ fileBuildPath,
178
+ fileContentBuffer,
179
+ fileContentDigest
180
+ };
181
+ fullPackage.addResource(resourceInfo);
182
+
183
+ // 分包相关逻辑 todo
191
184
  }
192
- /**
193
- * 根据 **固定规则**、**manifest.json入口配置**,获取压缩文件时使用的排序规则
194
- *
195
- * @param param
196
- * @returns
197
- */
198
- static getPriorities(config) {
199
- const entrySkFiles = []; // todo
200
- const { entry } = config.router;
201
- const result = [
202
- 'META-INF/CERT',
203
- // 多语言配置文件要在 manifest 之前
204
- /^i18n\/.+\.json$/i,
205
- // 多终端配置文件如manifest-tv.json,也要在manifest之前,不然流式加载初始化的时候,会读不到对应的终端配置文件
206
- /^manifest-\w+\.json$/,
207
- 'manifest.json',
208
- 'app.js',
209
- /page-chunks.json$/,
210
- /skeleton\/config\.json$/,
211
- ...entrySkFiles,
212
- new RegExp(`^${entry}/$`),
213
- new RegExp(`^${entry}/.+`),
214
- /^common\//i, // 静态资源
215
- /.+\.js/,
216
- 'META-INF/build.txt'
217
- ];
218
- return result;
219
- }
220
- /**
221
- * 创建打包的注释属性
222
- */
223
- static createComment(param) {
224
- const obj = {
225
- originType: param.originType,
226
- toolkit: require(path_1.default.join(__dirname, '../../../../../package.json')).version,
227
- timeStamp: new Date().toJSON(),
228
- node: process.version,
229
- platform: process.platform,
230
- arch: process.arch,
231
- component: true
232
- };
233
- return obj;
185
+ return {
186
+ fullPackage
187
+ };
188
+ }
189
+
190
+ /**
191
+ * 获取有序的文件列表
192
+ *
193
+ * 打包后的文件夹生成vela 应用程序,需要先把文件排序,再进行压缩
194
+ *
195
+ * @see getPriorities 获取排序规则
196
+ *
197
+ * @param dist 打包后的文件目录的绝对路径
198
+ * @param param 打包参数
199
+ * @returns
200
+ */
201
+ static getSortedFiles(dist, param, config) {
202
+ const priorities = this.getPriorities(config);
203
+ const getFileIndex = file => {
204
+ const result = priorities.findIndex(item => {
205
+ if (typeof item === 'string') {
206
+ return item === file;
207
+ }
208
+ return file.match(item);
209
+ });
210
+ if (result < 0) {
211
+ return Number.MAX_SAFE_INTEGER;
212
+ }
213
+ return result;
214
+ };
215
+ // 筛选中需要的文件并排序
216
+ // 1. 排除META-INF 目录下的文件
217
+ // 2. 生产环境排除 .map 文件
218
+ const mapReg = /\.map$/;
219
+ let result = _sharedUtils.FileUtil.readAlldirSync(dist);
220
+ result = result.filter(item => {
221
+ return !(item.startsWith(_UxCompileUtil.default.DIGEST_ZIP_DIR) || param.mode === _CompileMode.default.PRODUCTION && mapReg.test(item));
222
+ }).map(item => _path.default.relative(dist, item).split(_path.default.sep).join(_path.default.posix.sep));
223
+ result.sort((a, b) => {
224
+ const indexA = getFileIndex(a);
225
+ const indexB = getFileIndex(b);
226
+ return indexA - indexB;
227
+ });
228
+ return result;
229
+ }
230
+
231
+ /**
232
+ * 根据 **固定规则**、**manifest.json入口配置**,获取压缩文件时使用的排序规则
233
+ *
234
+ * @param param
235
+ * @returns
236
+ */
237
+ static getPriorities(config) {
238
+ const entrySkFiles = []; // todo
239
+ const {
240
+ entry
241
+ } = config.router;
242
+ const result = ['META-INF/CERT',
243
+ // 多语言配置文件要在 manifest 之前
244
+ /^i18n\/.+\.json$/i,
245
+ // 多终端配置文件如manifest-tv.json,也要在manifest之前,不然流式加载初始化的时候,会读不到对应的终端配置文件
246
+ /^manifest-\w+\.json$/, 'manifest.json', 'app.js', /page-chunks.json$/, /skeleton\/config\.json$/, ...entrySkFiles, new RegExp(`^${entry}/$`), new RegExp(`^${entry}/.+`), /^common\//i,
247
+ // 静态资源
248
+ /.+\.js/, 'META-INF/build.txt'];
249
+ return result;
250
+ }
251
+
252
+ /**
253
+ * 创建打包的注释属性
254
+ */
255
+ static createComment(param) {
256
+ const obj = {
257
+ originType: param.originType,
258
+ toolkit: require(_path.default.join(__dirname, '../../../../../package.json')).version,
259
+ timeStamp: new Date().toJSON(),
260
+ node: process.version,
261
+ platform: process.platform,
262
+ arch: process.arch,
263
+ component: true
264
+ };
265
+ return obj;
266
+ }
267
+
268
+ /**
269
+ * 生成rpk的最终的Buffer
270
+ *
271
+ * @description 使用证书对原始rpk包的 buffer 签名. 签名失败,返回原始包; 签名成功,返回新包
272
+ * @param fullPackage 原始包 buffer
273
+ * @param signConfig 证书信息
274
+ * @returns
275
+ */
276
+ static async buildProjectAndOutput(target, signConfig) {
277
+ let result;
278
+ if (signConfig) {
279
+ const {
280
+ privatekey,
281
+ certificate
282
+ } = signConfig;
283
+ const fullPackageBuffer = await _SignUtil.default.signPackage(target, privatekey, certificate);
284
+ if (fullPackageBuffer === false) {
285
+ _sharedUtils.ColorConsole.throw('Fullpackage signature failed');
286
+ } else {
287
+ result = fullPackageBuffer;
288
+ }
234
289
  }
235
- /**
236
- * 生成rpk的最终的Buffer
237
- *
238
- * @description 使用证书对原始rpk包的 buffer 签名. 签名失败,返回原始包; 签名成功,返回新包
239
- * @param fullPackage 原始包 buffer
240
- * @param signConfig 证书信息
241
- * @returns
242
- */
243
- static buildProjectAndOutput(target, signConfig) {
244
- return __awaiter(this, void 0, void 0, function* () {
245
- let result;
246
- if (signConfig) {
247
- const { privatekey, certificate } = signConfig;
248
- const fullPackageBuffer = yield SignUtil_1.default.signPackage(target, privatekey, certificate);
249
- if (fullPackageBuffer === false) {
250
- shared_utils_1.ColorConsole.throw('Fullpackage signature failed');
251
- }
252
- else {
253
- result = fullPackageBuffer;
254
- }
255
- }
256
- if (!result) {
257
- result = yield this.packageToZipBuffer(target);
258
- }
259
- return result;
260
- });
290
+ if (!result) {
291
+ result = await this.packageToZipBuffer(target);
261
292
  }
293
+ return result;
294
+ }
262
295
  }
263
- _a = ZipUtil;
264
- ZipUtil.DIGEST_HASH_JSON = 'hash.json';
265
- // 摘要文件夹
266
- ZipUtil.META_PATH = 'META-INF';
267
- // 文件摘要包(zip 文件)
268
- ZipUtil.CERT_PATH = `${_a.META_PATH}/CERT`;
269
- // 打包信息文件
270
- ZipUtil.BUILD_FILE_PATH = `${_a.META_PATH}/build.txt`;
271
- /**
272
- * zip压缩参数
273
- */
274
- ZipUtil.ZIP_OPTION = {
275
- type: 'nodebuffer',
276
- compression: 'DEFLATE',
277
- compressionOptions: {
278
- level: 9
279
- }
280
- };
281
- exports.default = ZipUtil;
296
+ var _default = exports.default = ZipUtil;