@aiot-toolkit/aiotpack 2.0.2-beta.17 → 2.0.2-beta.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/compiler/javascript/JavascriptCompiler.js +9 -0
- package/lib/compiler/javascript/vela/model/Package.d.ts +1 -0
- package/lib/compiler/javascript/vela/model/Package.js +3 -0
- package/lib/compiler/javascript/vela/utils/ZipUtil.d.ts +4 -1
- package/lib/compiler/javascript/vela/utils/ZipUtil.js +7 -5
- package/lib/compiler/javascript/vela/utils/signature/SignUtil.d.ts +5 -5
- package/lib/compiler/javascript/vela/utils/signature/SignUtil.js +23 -14
- package/lib/loader/ux/vela/UxLoader.js +9 -1
- package/package.json +6 -6
|
@@ -87,6 +87,15 @@ class JavascriptCompiler {
|
|
|
87
87
|
}
|
|
88
88
|
]
|
|
89
89
|
},
|
|
90
|
+
optimization: {
|
|
91
|
+
minimizer: [
|
|
92
|
+
new core_1.rspack.SwcJsMinimizerRspackPlugin({
|
|
93
|
+
minimizerOptions: {
|
|
94
|
+
module: true
|
|
95
|
+
}
|
|
96
|
+
})
|
|
97
|
+
]
|
|
98
|
+
},
|
|
90
99
|
resolve: {
|
|
91
100
|
extensions: ['.js', '.ts', '.ux']
|
|
92
101
|
},
|
|
@@ -2,6 +2,7 @@ import { Dictionary } from '@aiot-toolkit/shared-utils';
|
|
|
2
2
|
import JSZip from 'jszip';
|
|
3
3
|
import IJavascriptCompileOption from '../../interface/IJavascriptCompileOption';
|
|
4
4
|
import IManifest from '../interface/IManifest';
|
|
5
|
+
import Package from '../model/Package';
|
|
5
6
|
/**
|
|
6
7
|
* Zip 用于将打包成功的 build 目录按特定规则压缩成 rpk
|
|
7
8
|
*
|
|
@@ -51,7 +52,9 @@ declare class ZipUtil {
|
|
|
51
52
|
* @param files
|
|
52
53
|
* @returns
|
|
53
54
|
*/
|
|
54
|
-
|
|
55
|
+
static createPackagesDefinition(param: IJavascriptCompileOption, config: IManifest, files: string[]): Promise<{
|
|
56
|
+
fullPackage: Package;
|
|
57
|
+
}>;
|
|
55
58
|
/**
|
|
56
59
|
* 获取有序的文件列表
|
|
57
60
|
*
|
|
@@ -54,10 +54,9 @@ class ZipUtil {
|
|
|
54
54
|
}
|
|
55
55
|
// 2
|
|
56
56
|
const { fullPackage } = yield this.createPackagesDefinition(param, config, files);
|
|
57
|
-
const zipBuffer = yield this.packageToZipBuffer(fullPackage);
|
|
58
57
|
// 生产出带签名的rpk文件buffer
|
|
59
58
|
const signConfig = SignUtil_1.default.getProjectSignConfig(param);
|
|
60
|
-
const rpkBuffer = yield _a.buildProjectAndOutput(
|
|
59
|
+
const rpkBuffer = yield _a.buildProjectAndOutput(fullPackage, signConfig);
|
|
61
60
|
// 3
|
|
62
61
|
this.generateDistFile(rpkBuffer, param, this.getFileName(param, config, 'rpk'));
|
|
63
62
|
});
|
|
@@ -241,12 +240,12 @@ class ZipUtil {
|
|
|
241
240
|
* @param signConfig 证书信息
|
|
242
241
|
* @returns
|
|
243
242
|
*/
|
|
244
|
-
static buildProjectAndOutput(
|
|
243
|
+
static buildProjectAndOutput(target, signConfig) {
|
|
245
244
|
return __awaiter(this, void 0, void 0, function* () {
|
|
246
|
-
let result
|
|
245
|
+
let result;
|
|
247
246
|
if (signConfig) {
|
|
248
247
|
const { privatekey, certificate } = signConfig;
|
|
249
|
-
const fullPackageBuffer = yield SignUtil_1.default.
|
|
248
|
+
const fullPackageBuffer = yield SignUtil_1.default.signPackage(target, privatekey, certificate);
|
|
250
249
|
if (fullPackageBuffer === false) {
|
|
251
250
|
shared_utils_1.ColorConsole.throw('Fullpackage signature failed');
|
|
252
251
|
}
|
|
@@ -254,6 +253,9 @@ class ZipUtil {
|
|
|
254
253
|
result = fullPackageBuffer;
|
|
255
254
|
}
|
|
256
255
|
}
|
|
256
|
+
if (!result) {
|
|
257
|
+
result = yield this.packageToZipBuffer(target);
|
|
258
|
+
}
|
|
257
259
|
return result;
|
|
258
260
|
});
|
|
259
261
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import IJavascriptCompileOption from '../../../interface/IJavascriptCompileOption';
|
|
2
|
+
import Package from '../../model/Package';
|
|
2
3
|
/**
|
|
3
4
|
* SignUtil
|
|
4
5
|
*/
|
|
@@ -15,16 +16,15 @@ declare class SignUtil {
|
|
|
15
16
|
/**
|
|
16
17
|
* 对二进制zipBuffer签名
|
|
17
18
|
*
|
|
18
|
-
* 1.
|
|
19
|
-
* 2.
|
|
20
|
-
* 3.
|
|
21
|
-
* 4. 对“新zipBuffer”,做整体签名
|
|
19
|
+
* 1. 对`META-INF/CERT`做签名,并生成新的`META-INF/CERT` buffer
|
|
20
|
+
* 2. "新`META-INF/CERT` + 其它文件"生成新的 zipBuffer
|
|
21
|
+
* 3. 对“新zipBuffer”,做整体签名
|
|
22
22
|
* @param zipBuffer
|
|
23
23
|
* @param privatekey
|
|
24
24
|
* @param certificate
|
|
25
25
|
* @returns
|
|
26
26
|
*/
|
|
27
|
-
static
|
|
27
|
+
static signPackage(target: Package, privatekey: Buffer, certificate: Buffer): Promise<false | Buffer>;
|
|
28
28
|
/**
|
|
29
29
|
* 根据ZIP流获取文件实例
|
|
30
30
|
*
|
|
@@ -99,24 +99,25 @@ class SignUtil {
|
|
|
99
99
|
/**
|
|
100
100
|
* 对二进制zipBuffer签名
|
|
101
101
|
*
|
|
102
|
-
* 1.
|
|
103
|
-
* 2.
|
|
104
|
-
* 3.
|
|
105
|
-
* 4. 对“新zipBuffer”,做整体签名
|
|
102
|
+
* 1. 对`META-INF/CERT`做签名,并生成新的`META-INF/CERT` buffer
|
|
103
|
+
* 2. "新`META-INF/CERT` + 其它文件"生成新的 zipBuffer
|
|
104
|
+
* 3. 对“新zipBuffer”,做整体签名
|
|
106
105
|
* @param zipBuffer
|
|
107
106
|
* @param privatekey
|
|
108
107
|
* @param certificate
|
|
109
108
|
* @returns
|
|
110
109
|
*/
|
|
111
|
-
static
|
|
110
|
+
static signPackage(target, privatekey, certificate) {
|
|
112
111
|
return __awaiter(this, void 0, void 0, function* () {
|
|
113
|
-
|
|
114
|
-
const
|
|
112
|
+
var _a;
|
|
113
|
+
const getFileBuffer = (path) => {
|
|
114
|
+
return target.getResource(path);
|
|
115
|
+
};
|
|
115
116
|
// 摘要 和 文件列表
|
|
116
117
|
const fileDigestHash = [];
|
|
117
118
|
const fileList = [];
|
|
118
|
-
//
|
|
119
|
-
const metaBuffer =
|
|
119
|
+
// 1
|
|
120
|
+
const metaBuffer = (_a = getFileBuffer(ZipUtil_1.default.CERT_PATH)) === null || _a === void 0 ? void 0 : _a.fileContentBuffer;
|
|
120
121
|
if (metaBuffer) {
|
|
121
122
|
const metaHash = {
|
|
122
123
|
name: ZipUtil_1.default.DIGEST_HASH_JSON,
|
|
@@ -138,9 +139,17 @@ class SignUtil {
|
|
|
138
139
|
});
|
|
139
140
|
}
|
|
140
141
|
}
|
|
141
|
-
// 2
|
|
142
|
-
const files =
|
|
143
|
-
files
|
|
142
|
+
// 2
|
|
143
|
+
const files = target.resourceList;
|
|
144
|
+
files
|
|
145
|
+
.map((item) => {
|
|
146
|
+
return {
|
|
147
|
+
path: item.fileBuildPath,
|
|
148
|
+
content: item.fileContentBuffer
|
|
149
|
+
};
|
|
150
|
+
})
|
|
151
|
+
.filter(SignUtil.fileFilter)
|
|
152
|
+
.map((item) => {
|
|
144
153
|
fileList.push(item);
|
|
145
154
|
fileDigestHash.push({
|
|
146
155
|
name: item.path,
|
|
@@ -148,8 +157,8 @@ class SignUtil {
|
|
|
148
157
|
});
|
|
149
158
|
});
|
|
150
159
|
// 因为META变化,重新创建ZIP流
|
|
151
|
-
const newZipBuffer = yield ZipUtil_1.default.createZipBufferFromFileList(fileList,
|
|
152
|
-
//
|
|
160
|
+
const newZipBuffer = yield ZipUtil_1.default.createZipBufferFromFileList(fileList, target.comment);
|
|
161
|
+
// 3
|
|
153
162
|
const signedZipBuffer = SignUtil.doSign(newZipBuffer, fileDigestHash, privatekey, certificate);
|
|
154
163
|
if (signedZipBuffer === false) {
|
|
155
164
|
// 签名失败
|
|
@@ -23,7 +23,15 @@ class UxLoader {
|
|
|
23
23
|
for (const file of files) {
|
|
24
24
|
// 转换每个文件
|
|
25
25
|
const { files: compiledFiles, logs } = yield UxLoaderUtils_1.default.compileUxToJavascript(file, this.context, false, this.compilerOption);
|
|
26
|
-
|
|
26
|
+
// style报错中,@import导入的文件报错路径存储在item.position.source中
|
|
27
|
+
shared_utils_1.CommonUtil.processingLogsInTerminal(logs.map((item) => {
|
|
28
|
+
var _a;
|
|
29
|
+
return (Object.assign(Object.assign({}, item), { filePath: ((_a = item.position) === null || _a === void 0 ? void 0 : _a.source)
|
|
30
|
+
? item.position.source
|
|
31
|
+
: item.filePath
|
|
32
|
+
? path_1.default.relative(projectPath, item.filePath)
|
|
33
|
+
: '' }));
|
|
34
|
+
}));
|
|
27
35
|
resultFiles.push(...compiledFiles);
|
|
28
36
|
}
|
|
29
37
|
return resultFiles;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiot-toolkit/aiotpack",
|
|
3
|
-
"version": "2.0.2-beta.
|
|
3
|
+
"version": "2.0.2-beta.18",
|
|
4
4
|
"description": "The process tool for packaging aiot projects.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aiotpack"
|
|
@@ -19,16 +19,16 @@
|
|
|
19
19
|
"test": "node ./__tests__/aiotpack.test.js"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@aiot-toolkit/generator": "2.0.2-beta.
|
|
23
|
-
"@aiot-toolkit/parser": "2.0.2-beta.
|
|
24
|
-
"@aiot-toolkit/shared-utils": "2.0.2-beta.
|
|
22
|
+
"@aiot-toolkit/generator": "2.0.2-beta.18",
|
|
23
|
+
"@aiot-toolkit/parser": "2.0.2-beta.18",
|
|
24
|
+
"@aiot-toolkit/shared-utils": "2.0.2-beta.18",
|
|
25
25
|
"@hap-toolkit/aaptjs": "^2.0.0",
|
|
26
26
|
"@rspack/core": "^1.0.0",
|
|
27
27
|
"aiot-parse5": "^1.0.0",
|
|
28
28
|
"archiver": "^7.0.1",
|
|
29
29
|
"babel-loader": "^9.1.3",
|
|
30
30
|
"fast-glob": "^3.3.2",
|
|
31
|
-
"file-lane": "2.0.2-beta.
|
|
31
|
+
"file-lane": "2.0.2-beta.18",
|
|
32
32
|
"file-loader": "^6.2.0",
|
|
33
33
|
"fs-extra": "^11.2.0",
|
|
34
34
|
"jsrsasign": "^11.1.0",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"@types/jsrsasign": "^10.5.12",
|
|
46
46
|
"@types/webpack-sources": "^3.2.3"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "b73a79ef04edac808f316bf8b8fb1718422daa1c"
|
|
49
49
|
}
|