@lcap/nasl 2.18.0 → 2.20.0-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/out/automate/engine/index.js +3 -3
- package/out/automate/engine/index.js.map +1 -1
- package/out/bak/translator.js +85 -37
- package/out/bak/translator.js.map +1 -1
- package/out/common/BaseNode.d.ts +6 -10
- package/out/common/BaseNode.js +7 -52
- package/out/common/BaseNode.js.map +1 -1
- package/out/concepts/AnonymousFunction__.js.map +1 -1
- package/out/concepts/App__.d.ts +0 -10
- package/out/concepts/App__.js +0 -74
- package/out/concepts/App__.js.map +1 -1
- package/out/concepts/Assignee__.js.map +1 -1
- package/out/concepts/AssignmentLine__.d.ts +5 -5
- package/out/concepts/AssignmentLine__.js +6 -6
- package/out/concepts/AssignmentLine__.js.map +1 -1
- package/out/concepts/Assignment__.js +2 -1
- package/out/concepts/Assignment__.js.map +1 -1
- package/out/concepts/BatchAssignment__.d.ts +60 -60
- package/out/concepts/BatchAssignment__.js +11 -21
- package/out/concepts/BatchAssignment__.js.map +1 -1
- package/out/concepts/BindAttribute__.d.ts +0 -19
- package/out/concepts/BindAttribute__.js +2 -39
- package/out/concepts/BindAttribute__.js.map +1 -1
- package/out/concepts/BindEvent__.js.map +1 -1
- package/out/concepts/BindStyle__.d.ts +2 -2
- package/out/concepts/BindStyle__.js +3 -3
- package/out/concepts/BindStyle__.js.map +1 -1
- package/out/concepts/BooleanLiteral__.js +8 -0
- package/out/concepts/BooleanLiteral__.js.map +1 -1
- package/out/concepts/CallFunction__.js +25 -58
- package/out/concepts/CallFunction__.js.map +1 -1
- package/out/concepts/CallInterface__.d.ts +0 -7
- package/out/concepts/CallInterface__.js +7 -53
- package/out/concepts/CallInterface__.js.map +1 -1
- package/out/concepts/CallLogic__.js +14 -63
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/CallQueryComponent__.js +1 -13
- package/out/concepts/CallQueryComponent__.js.map +1 -1
- package/out/concepts/CompletionProperty__.js +0 -3
- package/out/concepts/CompletionProperty__.js.map +1 -1
- package/out/concepts/ConfigGroup__.js.map +1 -1
- package/out/concepts/ConfigProperty__.js.map +1 -1
- package/out/concepts/Configuration__.js.map +1 -1
- package/out/concepts/DataSource__.d.ts +0 -6
- package/out/concepts/DataSource__.js +0 -41
- package/out/concepts/DataSource__.js.map +1 -1
- package/out/concepts/Destination__.d.ts +1 -9
- package/out/concepts/Destination__.js +29 -61
- package/out/concepts/Destination__.js.map +1 -1
- package/out/concepts/EntityProperty__.d.ts +8 -21
- package/out/concepts/EntityProperty__.js +23 -109
- package/out/concepts/EntityProperty__.js.map +1 -1
- package/out/concepts/Entity__.d.ts +0 -32
- package/out/concepts/Entity__.js +2 -117
- package/out/concepts/Entity__.js.map +1 -1
- package/out/concepts/Enum__.js +4 -0
- package/out/concepts/Enum__.js.map +1 -1
- package/out/concepts/Event__.js.map +1 -1
- package/out/concepts/ForEachStatement__.d.ts +4 -0
- package/out/concepts/ForEachStatement__.js +8 -4
- package/out/concepts/ForEachStatement__.js.map +1 -1
- package/out/concepts/Function__.js.map +1 -1
- package/out/concepts/Identifier__.js +4 -16
- package/out/concepts/Identifier__.js.map +1 -1
- package/out/concepts/IfStatement__.d.ts +0 -8
- package/out/concepts/IfStatement__.js +0 -22
- package/out/concepts/IfStatement__.js.map +1 -1
- package/out/concepts/InterfaceParam__.js.map +1 -1
- package/out/concepts/Interface__.js.map +1 -1
- package/out/concepts/LogicItem__.d.ts +1 -1
- package/out/concepts/LogicItem__.js.map +1 -1
- package/out/concepts/Logic__.d.ts +1 -6
- package/out/concepts/Logic__.js +43 -144
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/MatchCase__.d.ts +1 -1
- package/out/concepts/MatchCase__.js +8 -15
- package/out/concepts/MatchCase__.js.map +1 -1
- package/out/concepts/Match__.d.ts +19 -21
- package/out/concepts/Match__.js +25 -112
- package/out/concepts/Match__.js.map +1 -1
- package/out/concepts/MemberExpression__.d.ts +1 -4
- package/out/concepts/MemberExpression__.js +15 -30
- package/out/concepts/MemberExpression__.js.map +1 -1
- package/out/concepts/Module__.js.map +1 -1
- package/out/concepts/Namespace__.js.map +1 -1
- package/out/concepts/NumericLiteral__.js +1 -1
- package/out/concepts/NumericLiteral__.js.map +1 -1
- package/out/concepts/OqlQueryComponent__.d.ts +3 -7
- package/out/concepts/OqlQueryComponent__.js +95 -56
- package/out/concepts/OqlQueryComponent__.js.map +1 -1
- package/out/concepts/Param__.d.ts +1 -1
- package/out/concepts/Param__.js +4 -40
- package/out/concepts/Param__.js.map +1 -1
- package/out/concepts/ProcessComponent__.js.map +1 -1
- package/out/concepts/ProcessElement__.js.map +1 -1
- package/out/concepts/Process__.js.map +1 -1
- package/out/concepts/QueryJoinExpression__.js.map +1 -1
- package/out/concepts/QueryOrderByExpression__.d.ts +3 -3
- package/out/concepts/QueryOrderByExpression__.js +3 -3
- package/out/concepts/QueryOrderByExpression__.js.map +1 -1
- package/out/concepts/QuerySelectExpression__.js.map +1 -1
- package/out/concepts/Return__.js +2 -38
- package/out/concepts/Return__.js.map +1 -1
- package/out/concepts/SelectMembers__.d.ts +1 -1
- package/out/concepts/SelectMembers__.js +2 -2
- package/out/concepts/SelectMembers__.js.map +1 -1
- package/out/concepts/SqlQueryComponent__.d.ts +4 -2
- package/out/concepts/SqlQueryComponent__.js +88 -9
- package/out/concepts/SqlQueryComponent__.js.map +1 -1
- package/out/concepts/StringLiteral__.js +7 -0
- package/out/concepts/StringLiteral__.js.map +1 -1
- package/out/concepts/StructureProperty__.js.map +1 -1
- package/out/concepts/Structure__.js.map +1 -1
- package/out/concepts/TypeAnnotation__.d.ts +0 -1
- package/out/concepts/TypeAnnotation__.js +12 -25
- package/out/concepts/TypeAnnotation__.js.map +1 -1
- package/out/concepts/TypeParam__.d.ts +0 -1
- package/out/concepts/TypeParam__.js +0 -2
- package/out/concepts/TypeParam__.js.map +1 -1
- package/out/concepts/UnaryExpression__.js +9 -6
- package/out/concepts/UnaryExpression__.js.map +1 -1
- package/out/concepts/ValidationRule__.js +23 -88
- package/out/concepts/ValidationRule__.js.map +1 -1
- package/out/concepts/Variable__.js +2 -38
- package/out/concepts/Variable__.js.map +1 -1
- package/out/concepts/ViewComponent__.js.map +1 -1
- package/out/concepts/ViewElement__.d.ts +29 -30
- package/out/concepts/ViewElement__.js +51 -117
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.d.ts +3 -4
- package/out/concepts/View__.js +83 -93
- package/out/concepts/View__.js.map +1 -1
- package/out/concepts/WhileStatement__.js +1 -1
- package/out/concepts/WhileStatement__.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.browser.js +0 -50
- package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.ui.js +4 -36
- package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.util.js +43 -63
- package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
- package/out/concepts/index__.d.ts +0 -2
- package/out/concepts/index__.js +0 -2
- package/out/concepts/index__.js.map +1 -1
- package/out/generator/genBundleFiles.d.ts +2 -5
- package/out/generator/genBundleFiles.js +45 -148
- package/out/generator/genBundleFiles.js.map +1 -1
- package/out/generator/index.d.ts +0 -1
- package/out/generator/index.js +0 -1
- package/out/generator/index.js.map +1 -1
- package/out/index.d.ts +2 -3
- package/out/index.js +1 -5
- package/out/index.js.map +1 -1
- package/out/server/entity2LogicNamespace.js +11 -11
- package/out/server/entity2LogicNamespace.js.map +1 -1
- package/out/server/extendBaseNode.js.map +1 -1
- package/out/server/formatTsUtils.js +17 -10
- package/out/server/formatTsUtils.js.map +1 -1
- package/out/server/getLogics.js +6 -13
- package/out/server/getLogics.js.map +1 -1
- package/out/server/getMemberIdentifier.js +7 -7
- package/out/server/getMemberIdentifier.js.map +1 -1
- package/out/server/getProcesses.d.ts +1 -1
- package/out/server/index.d.ts +1 -0
- package/out/server/index.js +27 -2
- package/out/server/index.js.map +1 -1
- package/out/server/naslServer.d.ts +7 -47
- package/out/server/naslServer.js +393 -591
- package/out/server/naslServer.js.map +1 -1
- package/out/server/naslStdlibMap.js +28 -30
- package/out/server/naslStdlibMap.js.map +1 -1
- package/out/server/translator.js +7 -40
- package/out/server/translator.js.map +1 -1
- package/out/service/storage/init.js +3 -33
- package/out/service/storage/init.js.map +1 -1
- package/out/templator/genCreateBlock.js +4 -6
- package/out/templator/genCreateBlock.js.map +1 -1
- package/out/templator/genCurdEditMultipleKeyBlock.js +4 -7
- package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
- package/out/templator/genCurdMultipleKeyBlock.js +5 -7
- package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
- package/out/templator/genEnumSelectBlock.js +2 -5
- package/out/templator/genEnumSelectBlock.js.map +1 -1
- package/out/templator/genGridViewBlock.js +2 -2
- package/out/templator/genGridViewBlock.js.map +1 -1
- package/out/templator/genListViewBlock.js +2 -2
- package/out/templator/genListViewBlock.js.map +1 -1
- package/out/templator/genQueryComponent.d.ts +2 -2
- package/out/templator/genQueryComponent.js +1 -4
- package/out/templator/genQueryComponent.js.map +1 -1
- package/out/templator/genTableBlock.js +2 -2
- package/out/templator/genTableBlock.js.map +1 -1
- package/out/templator/genUpdateBlock.js +3 -4
- package/out/templator/genUpdateBlock.js.map +1 -1
- package/out/templator/utils.js +1 -1
- package/out/templator/utils.js.map +1 -1
- package/out/test/integration/node-nasl-server.js +38 -10
- package/out/test/integration/node-nasl-server.js.map +1 -1
- package/out/translator/index.d.ts +0 -1
- package/out/translator/index.js +1 -1
- package/out/translator/index.js.map +1 -1
- package/out/utils/index.d.ts +0 -1
- package/out/utils/index.js +1 -38
- package/out/utils/index.js.map +1 -1
- package/out/utils/string.d.ts +2 -15
- package/out/utils/string.js +3 -18
- package/out/utils/string.js.map +1 -1
- package/package.json +2 -2
- package/sandbox/stdlib/nasl.auth.ts +1 -1
- package/sandbox/stdlib/nasl.core.ts +1 -0
- package/sandbox/stdlib/nasl.logging.ts +4 -4
- package/sandbox/stdlib/nasl.util.ts +9 -5
- package/src/automate/engine/index.js +4 -4
- package/src/automate/engine/uniqueName.js +3 -3
- package/src/automate/template/myProcess.js +1 -1
- package/src/automate/upgrader/2.20.js +41 -0
- package/src/bak/translator.js +4 -1
- package/src/common/BaseNode.ts +1 -0
- package/src/concepts/AnonymousFunction__.ts +48 -2
- package/src/concepts/App__.ts +288 -615
- package/src/concepts/BatchAssignment__.ts +111 -51
- package/src/concepts/BindAttribute__.ts +18 -25
- package/src/concepts/BindDirective__.ts +7 -0
- package/src/concepts/BindEvent__.ts +7 -0
- package/src/concepts/BindStyle__.ts +7 -0
- package/src/concepts/CallFunction__.ts +34 -45
- package/src/concepts/CallInterface__.ts +2 -1
- package/src/concepts/CallLogic__.ts +87 -55
- package/src/concepts/CallQueryComponent__.ts +4 -1
- package/src/concepts/Constant__.ts +7 -0
- package/src/concepts/DataSource__.ts +57 -5
- package/src/concepts/Destination__.ts +100 -43
- package/src/concepts/Frontend__.ts +937 -0
- package/src/concepts/Identifier__.ts +18 -16
- package/src/concepts/LogicItem__.ts +8 -1
- package/src/concepts/Logic__.ts +134 -149
- package/src/concepts/Match__.ts +13 -29
- package/src/concepts/NewComposite__.ts +1357 -0
- package/src/concepts/NewList__.ts +440 -0
- package/src/concepts/NewMap__.ts +666 -0
- package/src/concepts/New__.ts +73 -0
- package/src/concepts/Param__.ts +245 -199
- package/src/concepts/ProcessElement__.ts +43 -36
- package/src/concepts/ProcessOutcomes__.ts +90 -0
- package/src/concepts/Process__.ts +1 -23
- package/src/concepts/Return__.ts +11 -1
- package/src/concepts/SelectMembers__.ts +3 -3
- package/src/concepts/Transactional__.ts +7 -0
- package/src/concepts/TypeAnnotation__.ts +54 -49
- package/src/concepts/ValidationRule__.ts +19 -1
- package/src/concepts/Variable__.ts +12 -6
- package/src/concepts/ViewElement__.ts +26 -3
- package/src/concepts/View__.ts +25 -25
- package/src/concepts/basics/stdlib/nasl.auth.ts +1 -1
- package/src/concepts/basics/stdlib/nasl.logging.ts +5 -0
- package/src/concepts/basics/stdlib/nasl.ui.ts +2 -0
- package/src/concepts/basics/stdlib/nasl.util.ts +153 -19
- package/src/concepts/index__.ts +7 -0
- package/src/enums/KEYWORDS.ts +9 -0
- package/src/generator/genBundleFiles.ts +74 -245
- package/src/generator/genMetaData.ts +178 -78
- package/src/generator/genReleaseBody.ts +87 -44
- package/src/generator/index.ts +1 -0
- package/src/generator/permission.ts +261 -0
- package/src/index.ts +1 -1
- package/src/server/entity2LogicNamespace.ts +90 -10
- package/src/server/extendBaseNode.ts +33 -22
- package/src/server/formatTsUtils.ts +36 -46
- package/src/server/getLogics.ts +13 -1
- package/src/server/getMemberIdentifier.ts +5 -5
- package/src/server/getProcesses.ts +1 -1
- package/src/server/naslServer.ts +254 -71
- package/src/server/process2LogicNamespace.ts +8 -0
- package/src/server/translator.ts +51 -5
- package/src/service/creator/add.configs.js +4 -0
- package/src/service/datasource/api.js +11 -0
- package/src/service/datasource/index.js +6 -0
- package/src/service/storage/init.ts +12 -0
- package/src/service/video/VideoTranscribe.js +1 -0
- package/src/templator/genEditTableBlock.ts +8 -16
- package/src/templator/genGetBlock.ts +18 -19
- package/src/templator/genGridViewBlock.ts +18 -18
- package/src/templator/genListViewBlock.ts +8 -11
- package/src/templator/genTableBlock.ts +6 -10
- package/ts-worker/lib/tsserver.js +8 -1
- package/out/automate/engine/2.14-components.d.ts +0 -1115
- package/out/automate/engine/2.14-components.js +0 -1087
- package/out/automate/engine/2.14-components.js.map +0 -1
- package/out/concepts/ExternalDestination__.d.ts +0 -73
- package/out/concepts/ExternalDestination__.js +0 -264
- package/out/concepts/ExternalDestination__.js.map +0 -1
- package/out/concepts/MatchExpression__.d.ts +0 -97
- package/out/concepts/MatchExpression__.js +0 -281
- package/out/concepts/MatchExpression__.js.map +0 -1
- package/out/concepts/StringInterpolation__.d.ts +0 -113
- package/out/concepts/StringInterpolation__.js +0 -227
- package/out/concepts/StringInterpolation__.js.map +0 -1
- package/out/generator/genReleaseBody.d.ts +0 -41
- package/out/generator/genReleaseBody.js +0 -340
- package/out/generator/genReleaseBody.js.map +0 -1
- package/out/service/defaultErrorMessage.json +0 -97
- package/out/service/logic/api.d.ts +0 -9
- package/out/service/logic/api.js +0 -11
- package/out/service/logic/api.js.map +0 -1
- package/out/service/logic/index.d.ts +0 -2
- package/out/service/logic/index.js +0 -10
- package/out/service/logic/index.js.map +0 -1
- package/src/automate/engine/dist/index.dev.js +0 -517
- package/src/common/dist/BaseNode.js +0 -1101
- package/src/concepts/basics/stdlib/dist/reference2TypeAnnotationList.js +0 -24
- package/src/concepts/dist/Anchor__.js +0 -179
- package/src/concepts/dist/Assignment__.js +0 -301
- package/src/concepts/dist/CallFunction__.js +0 -473
- package/src/concepts/dist/CallInterface__.js +0 -533
- package/src/concepts/dist/CallLogic__.js +0 -864
- package/src/concepts/dist/ForEachStatement__.js +0 -426
- package/src/concepts/dist/MatchCase__.js +0 -587
- package/src/concepts/dist/MemberExpression__.js +0 -348
- package/src/concepts/dist/Param__.js +0 -537
- package/src/concepts/dist/Return__.js +0 -493
- package/src/generator/dist/genBundleFiles.js +0 -414
- package/src/server/dist/formatTsUtils.js +0 -683
- package/src/server/dist/naslServer.js +0 -3396
- package/src/service/storage/dist/init.js +0 -541
- package/ts-worker/dist/webpack.config.dev.js +0 -104
- package/ts-worker/lib/dist/tsserver.dev.js +0 -22953
- package/ts-worker/sources/lib/dist/tsserver.dev.js +0 -22912
|
@@ -1,65 +1,99 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
App, Module, View, Entity, Structure, Enum,
|
|
3
|
+
uiStructures, collectionStructures, interfaceStructures, processStructures,
|
|
4
|
+
Logic, Interface, Process, BaseNode, Frontend,
|
|
5
|
+
} from '../concepts';
|
|
6
|
+
import * as utils from '../utils';
|
|
7
|
+
|
|
8
|
+
// 生成typeKey
|
|
9
|
+
function genSortedTypeKey(typeAnnotation: any) {
|
|
10
|
+
const {
|
|
11
|
+
typeKind, typeNamespace, typeName,
|
|
12
|
+
typeArguments, properties,
|
|
13
|
+
} = typeAnnotation || {};
|
|
14
|
+
const typeKeyArr = [];
|
|
15
|
+
if (typeKind === 'union') { // 联合类型
|
|
16
|
+
if (Array.isArray(typeArguments)) {
|
|
17
|
+
// 按返回的每个具体项排序
|
|
18
|
+
const childTypeArgs: any = typeArguments.map((typeArg) => genSortedTypeKey(typeArg)).sort((name1, name2) => name1 > name2 ? 1 : -1);
|
|
19
|
+
typeKeyArr.push(childTypeArgs.join(' | '));
|
|
20
|
+
}
|
|
21
|
+
} else if (typeKind === 'anonymousStructure') { // 匿名数据结构
|
|
22
|
+
typeKeyArr.push('{');
|
|
23
|
+
if (Array.isArray(properties)) {
|
|
24
|
+
// 按匿名数据结构的key排序
|
|
25
|
+
const childTypeArgs: any = properties.sort(({ name: name1 }, { name: name2 }) => name1 > name2 ? 1 : -1).map((typeArg) => {
|
|
26
|
+
const { name: typeArgName, typeAnnotation: typeArgTypeAnnotation } = typeArg || {};
|
|
27
|
+
return `${typeArgName}: ${genSortedTypeKey(typeArgTypeAnnotation)}`;
|
|
28
|
+
});
|
|
29
|
+
typeKeyArr.push(childTypeArgs.join(', '));
|
|
30
|
+
}
|
|
31
|
+
typeKeyArr.push('}');
|
|
32
|
+
} else {
|
|
33
|
+
const typeArr = [];
|
|
34
|
+
typeNamespace && typeArr.push(typeNamespace);
|
|
35
|
+
typeName && typeArr.push(typeName);
|
|
36
|
+
const typeKey = typeArr.join('.');
|
|
37
|
+
typeKey && typeKeyArr.push(typeKey);
|
|
38
|
+
if (typeKind === 'generic') {
|
|
39
|
+
typeKeyArr.push('<');
|
|
40
|
+
if (Array.isArray(typeArguments)) {
|
|
41
|
+
// 必须按typeArguments定义的顺序,否则实参位置不对
|
|
42
|
+
const childTypeArgs: any = typeArguments.map((typeArg) => genSortedTypeKey(typeArg));
|
|
43
|
+
typeKeyArr.push(childTypeArgs.join(', '));
|
|
44
|
+
}
|
|
45
|
+
typeKeyArr.push('>');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return typeKeyArr.join('');
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export function genMetaData(app: App, frontend: Frontend) {
|
|
14
52
|
const modules: Module[] = [];
|
|
15
53
|
const views: View[] = [];
|
|
16
|
-
const
|
|
54
|
+
const entities: Entity[] = [];
|
|
17
55
|
const structures: Structure[] = [];
|
|
18
56
|
const enums: Enum[] = [];
|
|
19
57
|
const logics: Logic[] = [];
|
|
20
58
|
const interfaces: Interface[] = [];
|
|
21
59
|
const processes: Process[] = [];
|
|
22
60
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
processes: appProcesses = [],
|
|
31
|
-
} = app || {};
|
|
32
|
-
dataSources.push(...appDataSources);
|
|
33
|
-
structures.push(...appStructures);
|
|
34
|
-
enums.push(...appEnums);
|
|
35
|
-
logics.push(...appLogics);
|
|
36
|
-
processes.push(...appProcesses);
|
|
37
|
-
if (Array.isArray(appDependencies)) {
|
|
38
|
-
modules.push(...appDependencies);
|
|
39
|
-
}
|
|
40
|
-
if (Array.isArray(appInterfaceDependencies)) {
|
|
41
|
-
modules.push(...appInterfaceDependencies);
|
|
61
|
+
frontend.views && views.push(...frontend.views);
|
|
62
|
+
if (Array.isArray(app.dataSources)) {
|
|
63
|
+
app.dataSources.forEach((dataSource) => {
|
|
64
|
+
if (Array.isArray(dataSource.entities)) {
|
|
65
|
+
entities.push(...dataSource.entities);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
42
68
|
}
|
|
69
|
+
app.structures && structures.push(...app.structures);
|
|
70
|
+
app.enums && enums.push(...app.enums);
|
|
71
|
+
app.logics && logics.push(...app.logics);
|
|
72
|
+
app.processes && processes.push(...app.processes);
|
|
73
|
+
|
|
74
|
+
app.dependencies && modules.push(...app.dependencies);
|
|
75
|
+
app.interfaceDependencies && modules.push(...app.interfaceDependencies);
|
|
76
|
+
|
|
43
77
|
modules.forEach((module: Module) => {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
78
|
+
module.views && views.push(...module.views);
|
|
79
|
+
module.structures && structures.push(...module.structures);
|
|
80
|
+
module.enums && enums.push(...module.enums);
|
|
81
|
+
module.logics && logics.push(...module.logics);
|
|
82
|
+
module.interfaces && interfaces.push(...module.interfaces);
|
|
83
|
+
if (Array.isArray(module.dataSources)) {
|
|
84
|
+
module.dataSources.forEach((dataSource) => {
|
|
85
|
+
if (Array.isArray(dataSource.entities)) {
|
|
86
|
+
entities.push(...dataSource.entities);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
56
90
|
});
|
|
57
91
|
const dataTypes: (Entity | Structure | Enum)[] = [];
|
|
58
92
|
|
|
59
93
|
const dataTypesMap: {
|
|
60
94
|
[id: string]: BaseNode;
|
|
61
95
|
} = {};
|
|
62
|
-
const frontendVariables =
|
|
96
|
+
const frontendVariables = frontend.variables;
|
|
63
97
|
const enumsMap: {
|
|
64
98
|
[name: string]: {
|
|
65
99
|
[label: string]: string;
|
|
@@ -80,6 +114,7 @@ export function genMetaData(app: App,
|
|
|
80
114
|
[id: string]: any;
|
|
81
115
|
} = {};
|
|
82
116
|
const allLogics: Logic[] = [];
|
|
117
|
+
|
|
83
118
|
if (Array.isArray(enums)) {
|
|
84
119
|
dataTypes.push(...enums);
|
|
85
120
|
enums.forEach((node) => {
|
|
@@ -96,17 +131,17 @@ export function genMetaData(app: App,
|
|
|
96
131
|
enumsMap[name] = enumObj;
|
|
97
132
|
});
|
|
98
133
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
});
|
|
134
|
+
|
|
135
|
+
if (Array.isArray(entities)) {
|
|
136
|
+
dataTypes.push(...entities);
|
|
137
|
+
entities.forEach((entity) => {
|
|
138
|
+
const ns = entity.ns;
|
|
139
|
+
if (Array.isArray(ns?.logics)) {
|
|
140
|
+
allLogics.push(...ns.logics);
|
|
141
|
+
}
|
|
108
142
|
});
|
|
109
143
|
}
|
|
144
|
+
|
|
110
145
|
if (Array.isArray(structures)) {
|
|
111
146
|
dataTypes.push(...structures);
|
|
112
147
|
}
|
|
@@ -114,31 +149,47 @@ export function genMetaData(app: App,
|
|
|
114
149
|
dataTypes.forEach((node) => {
|
|
115
150
|
const namespace = node.getNamespace();
|
|
116
151
|
const id = `${namespace}.${node.name}`;
|
|
117
|
-
dataTypesMap[id] = node;
|
|
152
|
+
dataTypesMap[id] = node.toJSON?.();
|
|
153
|
+
const { properties } = (node) as any;
|
|
154
|
+
if (Array.isArray(properties)) {
|
|
155
|
+
properties.forEach((property) => {
|
|
156
|
+
collectTypeAnnotation(property?.typeAnnotation);
|
|
157
|
+
});
|
|
158
|
+
}
|
|
118
159
|
});
|
|
119
|
-
if (Array.isArray(uiStructures)) {
|
|
120
|
-
const namespace = 'nasl.ui';
|
|
121
|
-
uiStructures.forEach((node) => {
|
|
122
|
-
const id = `${namespace}.${node.name}`;
|
|
123
|
-
dataTypesMap[id] = node;
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
160
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
161
|
+
[
|
|
162
|
+
{
|
|
163
|
+
namespace: 'nasl.ui',
|
|
164
|
+
list: uiStructures,
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
namespace: 'nasl.collection',
|
|
168
|
+
list: collectionStructures,
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
namespace: 'nasl.interface',
|
|
172
|
+
list: interfaceStructures,
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
namespace: 'nasl.process',
|
|
176
|
+
list: processStructures,
|
|
177
|
+
},
|
|
178
|
+
].forEach((item) => {
|
|
179
|
+
const { namespace, list } = item || {};
|
|
180
|
+
if (Array.isArray(list)) {
|
|
181
|
+
list.forEach((node) => {
|
|
182
|
+
const id = `${namespace}.${node.name}`;
|
|
183
|
+
dataTypesMap[id] = node.toJSON?.();
|
|
184
|
+
const { properties } = (node) as any;
|
|
185
|
+
if (Array.isArray(properties)) {
|
|
186
|
+
properties.forEach((property) => {
|
|
187
|
+
collectTypeAnnotation(property?.typeAnnotation);
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
});
|
|
142
193
|
|
|
143
194
|
if (Array.isArray(logics)) {
|
|
144
195
|
allLogics.push(...logics);
|
|
@@ -164,6 +215,55 @@ export function genMetaData(app: App,
|
|
|
164
215
|
_custom[`${interfaceItem.getNamespace()}.${interfaceItem.name}`] = interfaceItem.toService();
|
|
165
216
|
});
|
|
166
217
|
|
|
218
|
+
utils.traverse((current) => {
|
|
219
|
+
const { node } = current || {};
|
|
220
|
+
collectTypeAnnotation(node?.typeAnnotation || node?.__TypeAnnotation);
|
|
221
|
+
}, {
|
|
222
|
+
node: {
|
|
223
|
+
children: views,
|
|
224
|
+
} as any,
|
|
225
|
+
}, {
|
|
226
|
+
mode: 'anyObject',
|
|
227
|
+
excludedKeySet: new Set([
|
|
228
|
+
'parentNode',
|
|
229
|
+
'sourceMap',
|
|
230
|
+
'storageJSON',
|
|
231
|
+
'tsErrorDetail',
|
|
232
|
+
'NaslAnnotatedJSON',
|
|
233
|
+
'calledFrom',
|
|
234
|
+
'_events',
|
|
235
|
+
'_collectingList',
|
|
236
|
+
'_historyList',
|
|
237
|
+
]),
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
if (Array.isArray(frontendVariables)) {
|
|
241
|
+
frontendVariables.forEach((frontendVariable) => {
|
|
242
|
+
const typeAnnotation = frontendVariable.typeAnnotation || frontendVariable.__TypeAnnotation;
|
|
243
|
+
collectTypeAnnotation(typeAnnotation);
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
function collectTypeAnnotation(typeAnnotation: any) {
|
|
248
|
+
if (typeAnnotation) {
|
|
249
|
+
const sortedTypeKey = genSortedTypeKey(typeAnnotation);
|
|
250
|
+
if (!dataTypesMap[sortedTypeKey]) {
|
|
251
|
+
dataTypesMap[sortedTypeKey] = typeAnnotation?.toJSON?.() ?? typeAnnotation;
|
|
252
|
+
const { properties, typeArguments } = (dataTypesMap[sortedTypeKey] || {}) as any;
|
|
253
|
+
if (Array.isArray(properties)) {
|
|
254
|
+
properties.forEach((property) => {
|
|
255
|
+
collectTypeAnnotation(property?.typeAnnotation);
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
if (Array.isArray(typeArguments)) {
|
|
259
|
+
typeArguments.forEach((typeArg) => {
|
|
260
|
+
collectTypeAnnotation(typeArg);
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
|
|
167
267
|
return {
|
|
168
268
|
frontendVariables,
|
|
169
269
|
dataTypesMap,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { App, Assignment, BatchAssignment, CallFunction, CallInterface, CallLogic, ForEachStatement, IfStatement, Logic, LogicItem, Match, MatchCase, Role, SwitchCase, SwitchStatement, View, ViewElement, WhileStatement } from '../concepts';
|
|
2
|
-
import {
|
|
1
|
+
import { App, Assignment, BatchAssignment, CallFunction, CallInterface, CallLogic, ForEachStatement, IfStatement, Logic, LogicItem, Match, MatchCase, Role, SwitchCase, SwitchStatement, View, ViewElement, WhileStatement, Frontend } from '../concepts';
|
|
2
|
+
import { genFrontendBundleFiles } from './genBundleFiles';
|
|
3
|
+
import { genPermissionData } from './permission';
|
|
3
4
|
|
|
4
5
|
export async function genReleaseBody(app: App, {
|
|
5
6
|
env,
|
|
@@ -8,6 +9,7 @@ export async function genReleaseBody(app: App, {
|
|
|
8
9
|
realRelease,
|
|
9
10
|
appInfo,
|
|
10
11
|
staticUrl,
|
|
12
|
+
frontends = [],
|
|
11
13
|
}: {
|
|
12
14
|
env: string,
|
|
13
15
|
replicas: number,
|
|
@@ -26,21 +28,48 @@ export async function genReleaseBody(app: App, {
|
|
|
26
28
|
tenantLabel: string,
|
|
27
29
|
},
|
|
28
30
|
staticUrl?: string,
|
|
31
|
+
frontends: Array<Frontend>,
|
|
29
32
|
}) {
|
|
33
|
+
let authReport: ReturnType<typeof getAuthReport>;
|
|
34
|
+
let logicPageResourceDtoList;
|
|
35
|
+
if (realRelease) {
|
|
36
|
+
authReport = getAuthReport(app, frontends);
|
|
37
|
+
const permissionData = await genPermissionData(app);
|
|
38
|
+
authReport.resourceDataList = authReport.resourceDataList.concat(permissionData.resourceDataList);
|
|
39
|
+
authReport.resourceList = authReport.resourceList.concat(permissionData.resourceList);
|
|
40
|
+
|
|
41
|
+
logicPageResourceDtoList = permissionData.logicPageResourceDtoList;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const releaseFrontends = app.frontends.map((frontend) => ({
|
|
45
|
+
name: frontend.name,
|
|
46
|
+
type: frontend.type,
|
|
47
|
+
path: frontend.path,
|
|
48
|
+
selected: frontends.includes(frontend),
|
|
49
|
+
}));
|
|
50
|
+
|
|
30
51
|
const body = {
|
|
31
|
-
...
|
|
32
|
-
|
|
33
|
-
|
|
52
|
+
...authReport, // 如果发布需要上报权限,导出源码不需要
|
|
53
|
+
logicPageResourceDtoList,
|
|
54
|
+
noAuthApiPathList: getAuthApiPathList(app, frontends),
|
|
55
|
+
reportIdList: findAllReportIdList(app, frontends),
|
|
34
56
|
appId: app.id,
|
|
35
57
|
env,
|
|
36
58
|
replicas,
|
|
59
|
+
callbackLogicsName: app.getExtensionsCallbackLogics(),
|
|
37
60
|
generateMini,
|
|
61
|
+
frontends: releaseFrontends,
|
|
38
62
|
files: [] as Array<{ name: string, content: string }>,
|
|
39
63
|
};
|
|
64
|
+
let NaslAnnotatedJSON;
|
|
65
|
+
try {
|
|
66
|
+
NaslAnnotatedJSON = await (app as any).naslServer.getNaslAnnotatedJSON(app, true);
|
|
67
|
+
} catch (err) {
|
|
68
|
+
console.error(err);
|
|
69
|
+
throw new Error('代码标注失败');
|
|
70
|
+
}
|
|
40
71
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
let files = genBundleFiles(app, Object.assign({}, appInfo, {
|
|
72
|
+
let files = genFrontendBundleFiles(app, frontends, Object.assign({}, appInfo, {
|
|
44
73
|
env,
|
|
45
74
|
appid: app.id,
|
|
46
75
|
devDnsAddr: (app as any).devDnsAddr,
|
|
@@ -59,7 +88,9 @@ export async function genReleaseBody(app: App, {
|
|
|
59
88
|
const jsonString = JSON.stringify(NaslAnnotatedJSON);
|
|
60
89
|
|
|
61
90
|
// 打印传给服务端的nasl,为了服务端排查问题方便
|
|
62
|
-
|
|
91
|
+
if (globalThis.window) {
|
|
92
|
+
console.log(NaslAnnotatedJSON, '标注后的nasl');
|
|
93
|
+
}
|
|
63
94
|
files.push({ name: 'nasl-annotated.json', content: jsonString });
|
|
64
95
|
|
|
65
96
|
body.files = files;
|
|
@@ -69,11 +100,11 @@ export async function genReleaseBody(app: App, {
|
|
|
69
100
|
/**
|
|
70
101
|
* 权限上报数据
|
|
71
102
|
*/
|
|
72
|
-
function getAuthReport(app: App) {
|
|
103
|
+
function getAuthReport(app: App, frontends: Array<Frontend>) {
|
|
73
104
|
const result = {
|
|
74
105
|
roleList: [] as Array<Role>,
|
|
75
106
|
resourceList: [] as Array<string>,
|
|
76
|
-
resourceDataList: [] as Array<{ value: string, description: string }>,
|
|
107
|
+
resourceDataList: [] as Array<{ value: string, description: string, type: 'page' | 'component' | 'logic', clientType?: string }>,
|
|
77
108
|
roleResourceMappingList: [] as Array<{ roleName: string, resourcePath: string }>,
|
|
78
109
|
};
|
|
79
110
|
|
|
@@ -84,12 +115,12 @@ function getAuthReport(app: App) {
|
|
|
84
115
|
return authDirective?.value;
|
|
85
116
|
};
|
|
86
117
|
|
|
87
|
-
const loopViews = (view: View | ViewElement, isMain: boolean) => {
|
|
118
|
+
const loopViews = (view: View | ViewElement, isMain: boolean, frontend: Frontend) => {
|
|
88
119
|
if (view.children) {
|
|
89
|
-
view.children.forEach((item) => loopViews(item, false));
|
|
120
|
+
view.children.forEach((item) => loopViews(item, false, frontend));
|
|
90
121
|
}
|
|
91
122
|
if (view.concept === 'View' && view.elements) {
|
|
92
|
-
view.elements.forEach((item) => loopViews(item, false));
|
|
123
|
+
view.elements.forEach((item) => loopViews(item, false, frontend));
|
|
93
124
|
}
|
|
94
125
|
|
|
95
126
|
if ((view.concept === 'View' && view.auth)
|
|
@@ -100,6 +131,8 @@ function getAuthReport(app: App) {
|
|
|
100
131
|
result.resourceDataList.push({
|
|
101
132
|
value: view.authPath,
|
|
102
133
|
description: view.authDescription,
|
|
134
|
+
type: view.concept === 'View' ? 'page' : 'component',
|
|
135
|
+
clientType: frontend.name,
|
|
103
136
|
});
|
|
104
137
|
if (view.bindRoles) {
|
|
105
138
|
const _arr = view.bindRoles.map((it) => ({
|
|
@@ -111,7 +144,9 @@ function getAuthReport(app: App) {
|
|
|
111
144
|
}
|
|
112
145
|
}
|
|
113
146
|
};
|
|
114
|
-
|
|
147
|
+
frontends.forEach((frontend) => {
|
|
148
|
+
frontend.views.forEach((view) => loopViews(view, true, frontend));
|
|
149
|
+
});
|
|
115
150
|
|
|
116
151
|
return result;
|
|
117
152
|
}
|
|
@@ -120,8 +155,8 @@ function getAuthReport(app: App) {
|
|
|
120
155
|
/**
|
|
121
156
|
* 上报白名单
|
|
122
157
|
*/
|
|
123
|
-
function getAuthApiPathList(app: App) {
|
|
124
|
-
const thisDiffLogicList: Array<string> = [];
|
|
158
|
+
function getAuthApiPathList(app: App, frontends: Array<Frontend>) {
|
|
159
|
+
const thisDiffLogicList: Array<{logicName:string, frontendName: string}> = [];
|
|
125
160
|
|
|
126
161
|
/* 转换Path */
|
|
127
162
|
function getPathMethods(logicNameSpace: string) {
|
|
@@ -213,7 +248,7 @@ function getAuthApiPathList(app: App) {
|
|
|
213
248
|
}
|
|
214
249
|
}
|
|
215
250
|
/* 获取LogicITEM */
|
|
216
|
-
function getStatement(state: LogicItem) {
|
|
251
|
+
function getStatement(state: LogicItem, frontend: Frontend) {
|
|
217
252
|
let logicItems: Array<LogicItem> = [];
|
|
218
253
|
if (state instanceof Assignment) {
|
|
219
254
|
logicItems = [state.left, state.right];
|
|
@@ -224,18 +259,18 @@ function getAuthApiPathList(app: App) {
|
|
|
224
259
|
} else if (state instanceof ForEachStatement) {
|
|
225
260
|
logicItems = [...state.body, state.each, state.start, state.end];
|
|
226
261
|
} else if (state instanceof Match) {
|
|
227
|
-
logicItems = state.cases.map(getStatement).flat(1);
|
|
262
|
+
logicItems = state.cases.map((case1) => getStatement(case1, frontend)).flat(1);
|
|
228
263
|
} else if (state instanceof MatchCase) {
|
|
229
264
|
logicItems = [...state.patterns as LogicItem[], ...state.body];
|
|
230
265
|
} else if (state instanceof SwitchStatement) {
|
|
231
|
-
logicItems = state.cases.map(getStatement).flat(1);
|
|
266
|
+
logicItems = state.cases.map((case1) => getStatement(case1, frontend)).flat(1);
|
|
232
267
|
} else if (state instanceof SwitchCase) {
|
|
233
268
|
logicItems = [state.test, ...state.consequent];
|
|
234
269
|
} else if (state instanceof WhileStatement) {
|
|
235
270
|
logicItems = [state.test, ...state.body];
|
|
236
271
|
} else if (state instanceof CallLogic) {
|
|
237
272
|
logicItems = state.arguments?.map((item) => item.expression);
|
|
238
|
-
getLogic(state.calleewholeKey);
|
|
273
|
+
getLogic(state.calleewholeKey, frontend);
|
|
239
274
|
} else if (state instanceof CallFunction) {
|
|
240
275
|
logicItems = state.arguments?.map((item) => item.expression);
|
|
241
276
|
} else if (state instanceof CallInterface) {
|
|
@@ -245,27 +280,27 @@ function getAuthApiPathList(app: App) {
|
|
|
245
280
|
return logicItems.filter((item) => !!item);
|
|
246
281
|
}
|
|
247
282
|
/* 获取非鉴权全局逻辑 */
|
|
248
|
-
function getLogic(key: string) {
|
|
249
|
-
if (!thisDiffLogicList.
|
|
250
|
-
thisDiffLogicList.push(key);
|
|
283
|
+
function getLogic(key: string, frontend: Frontend) {
|
|
284
|
+
if (!thisDiffLogicList.find((diffLogic) => diffLogic.logicName === key && diffLogic.frontendName === frontend.name)) {
|
|
285
|
+
thisDiffLogicList.push({ logicName: key, frontendName: frontend.name });
|
|
251
286
|
const logic: Logic = app.findNodeByCompleteName(key);
|
|
252
287
|
if (logic && logic.body && logic.body.length > 2) {
|
|
253
|
-
logic.body.map((item) => getStatement(item));
|
|
288
|
+
logic.body.map((item) => getStatement(item, frontend));
|
|
254
289
|
}
|
|
255
290
|
}
|
|
256
291
|
}
|
|
257
292
|
|
|
258
293
|
const importList: Array<string> = [];
|
|
259
|
-
const itemloop = (state: LogicItem, view: View | ViewElement) => {
|
|
260
|
-
const logicItems = getStatement(state);
|
|
294
|
+
const itemloop = (state: LogicItem, view: View | ViewElement, frontend: Frontend) => {
|
|
295
|
+
const logicItems = getStatement(state, frontend);
|
|
261
296
|
if (logicItems.length) {
|
|
262
|
-
logicItems.map((item) => itemloop(item, view));
|
|
297
|
+
logicItems.map((item) => itemloop(item, view, frontend));
|
|
263
298
|
}
|
|
264
299
|
};
|
|
265
300
|
|
|
266
|
-
const loopEle = (view: View | ViewElement) => {
|
|
267
|
-
view?.children?.forEach(loopEle);
|
|
268
|
-
view.concept === 'View' && view?.elements?.forEach(loopEle);
|
|
301
|
+
const loopEle = (view: View | ViewElement, frontend: Frontend) => {
|
|
302
|
+
view?.children?.forEach((vitem) => loopEle(vitem, frontend));
|
|
303
|
+
view.concept === 'View' && view?.elements?.forEach((ele) => loopEle(ele, frontend));
|
|
269
304
|
if (!view.parentAuth) {
|
|
270
305
|
if (view.bindEvents) {
|
|
271
306
|
view.bindEvents.forEach((item) => {
|
|
@@ -273,7 +308,7 @@ function getAuthApiPathList(app: App) {
|
|
|
273
308
|
item.logics.forEach((logic) => {
|
|
274
309
|
if (logic.body.length > 2) {
|
|
275
310
|
logic.body.forEach((it) => {
|
|
276
|
-
itemloop(it, view);
|
|
311
|
+
itemloop(it, view, frontend);
|
|
277
312
|
});
|
|
278
313
|
}
|
|
279
314
|
});
|
|
@@ -288,14 +323,14 @@ function getAuthApiPathList(app: App) {
|
|
|
288
323
|
}
|
|
289
324
|
}
|
|
290
325
|
};
|
|
291
|
-
const loopViews = (view: View, isChild: boolean) => {
|
|
326
|
+
const loopViews = (view: View, isChild: boolean, frontend:Frontend) => {
|
|
292
327
|
// 有权限的页面下的逻辑都不需要上报白名单
|
|
293
328
|
if (!view.auth) {
|
|
294
329
|
if (view.logics) {
|
|
295
330
|
view.logics.forEach((logic) => {
|
|
296
331
|
if (logic.body.length > 2) {
|
|
297
332
|
logic.body.forEach((it) => {
|
|
298
|
-
itemloop(it, view);
|
|
333
|
+
itemloop(it, view, frontend);
|
|
299
334
|
});
|
|
300
335
|
}
|
|
301
336
|
});
|
|
@@ -306,7 +341,7 @@ function getAuthApiPathList(app: App) {
|
|
|
306
341
|
item.logics.forEach((logic) => {
|
|
307
342
|
if (logic.body.length > 2) {
|
|
308
343
|
logic.body.forEach((it) => {
|
|
309
|
-
itemloop(it, view);
|
|
344
|
+
itemloop(it, view, frontend);
|
|
310
345
|
});
|
|
311
346
|
}
|
|
312
347
|
});
|
|
@@ -314,27 +349,35 @@ function getAuthApiPathList(app: App) {
|
|
|
314
349
|
});
|
|
315
350
|
}
|
|
316
351
|
|
|
317
|
-
view.children.forEach((item) => loopViews(item, true));
|
|
352
|
+
view.children.forEach((item) => loopViews(item, true, frontend));
|
|
318
353
|
}
|
|
319
354
|
if (!isChild) {
|
|
320
|
-
view.children.forEach(loopEle);
|
|
321
|
-
view.elements.forEach(loopEle);
|
|
355
|
+
view.children.forEach((vitem) => loopEle(vitem, frontend));
|
|
356
|
+
view.elements.forEach((vele) => loopEle(vele, frontend));
|
|
322
357
|
}
|
|
323
358
|
};
|
|
324
|
-
|
|
359
|
+
frontends.forEach((frontend) => {
|
|
360
|
+
frontend.views.forEach((view) => loopViews(view, true, frontend));
|
|
361
|
+
});
|
|
325
362
|
|
|
326
|
-
const diffLogicList = thisDiffLogicList.filter((item) => item.startsWith('app') || item.startsWith('extensions'));
|
|
327
|
-
const authApiList = [
|
|
363
|
+
const diffLogicList = thisDiffLogicList.filter((item) => item.logicName.startsWith('app') || item.logicName.startsWith('extensions'));
|
|
364
|
+
const authApiList = [
|
|
365
|
+
...diffLogicList.map((diffLogic) => {
|
|
366
|
+
const path = getPathMethods(diffLogic.logicName);
|
|
367
|
+
return `${path}:${diffLogic.frontendName}`;
|
|
368
|
+
}),
|
|
369
|
+
...Array.from(new Set(importList.map((item) => item + ':POST'))),
|
|
370
|
+
].filter((item) => !!item);
|
|
328
371
|
return authApiList;
|
|
329
372
|
}
|
|
330
373
|
|
|
331
374
|
/**
|
|
332
375
|
* 获取页面中所有 分析报告组件 的reportId
|
|
333
376
|
*/
|
|
334
|
-
function findAllReportIdList(app: App) {
|
|
377
|
+
function findAllReportIdList(app: App, frontends: Array<Frontend>) {
|
|
335
378
|
const reportIds: string[] = [];
|
|
336
|
-
|
|
337
|
-
loop(view);
|
|
379
|
+
frontends.forEach((frontend) => {
|
|
380
|
+
frontend.views.forEach((view) => loop(view));
|
|
338
381
|
});
|
|
339
382
|
|
|
340
383
|
function loop(root: View | ViewElement) {
|
package/src/generator/index.ts
CHANGED