@lcap/nasl 3.6.3-alpha.1 → 3.6.3-alpha.3
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/concepts/App__.js +5 -5
- package/out/concepts/App__.js.map +1 -1
- package/out/concepts/TypeAnnotation__.js +10 -0
- package/out/concepts/TypeAnnotation__.js.map +1 -1
- package/out/generator/release-body/body.js +4 -4
- package/out/generator/release-body/body.js.map +1 -1
- package/out/generator/release-body/data.js +7 -7
- package/out/generator/release-body/data.js.map +1 -1
- package/out/natural/transformTSCode.js +4 -4
- package/out/natural/transformTSCode.js.map +1 -1
- package/out/server/naslServer.js +18 -0
- package/out/server/naslServer.js.map +1 -1
- package/out/translator/utils.js +1 -1
- package/out/translator/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/concepts/App__.ts +6 -5
- package/src/concepts/TypeAnnotation__.ts +10 -0
- package/src/generator/release-body/body.ts +4 -4
- package/src/generator/release-body/data.ts +7 -7
- package/src/natural/transformTSCode.ts +4 -4
- package/src/server/naslServer.ts +18 -0
- package/src/translator/utils.ts +1 -1
package/out/translator/utils.js
CHANGED
|
@@ -27,7 +27,7 @@ exports.createCompilerState = createCompilerState;
|
|
|
27
27
|
*/
|
|
28
28
|
function shiftPosition(pos, code = '') {
|
|
29
29
|
const res = { ...pos };
|
|
30
|
-
if (code) {
|
|
30
|
+
if (code && typeof code === 'string') {
|
|
31
31
|
const arr = code.split('\n');
|
|
32
32
|
res.offset += code.length;
|
|
33
33
|
res.line += arr.length - 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/translator/utils.ts"],"names":[],"mappings":";;;AAKA,SAAgB,aAAa,CAAC,GAAW;IACvC,OAAO,GAAG,GAAG,CAAC,CAAC;AACjB,CAAC;AAFD,sCAEC;AAEM,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAAtD,QAAA,MAAM,UAAgD;AAEnE;;GAEG;AACH,SAAgB,mBAAmB,CAAC,YAAoB,EAAE,EAAE,OAAkC;IAC5F,MAAM,KAAK,GAAoB,EAAC,QAAQ,EAAE;YACtC,IAAI,EAAE,CAAC;YACP,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,CAAC;SACV;QACD,OAAO,EAAE,CAAC,EAAE,GAAG,OAAO,EAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC,SAAS;QAClB,KAAK,CAAC,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEvD,OAAO,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACtC,CAAC;AAXD,kDAWC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,GAAa,EAAE,OAAe,EAAE;IAC5D,MAAM,GAAG,GAAG,EAAE,GAAG,GAAG,EAAC,CAAC;IACtB,IAAI,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/translator/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/concepts/App__.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { queryNodeByPath } from '../service/storage/jsoner';
|
|
2
2
|
import { getNaslNodeByNodeCallee, getNodeByNodeCallee } from '../automate/engine/utils';
|
|
3
3
|
import type ConfigProperty from './ConfigProperty__';
|
|
4
|
-
import TypeAnnotation from './TypeAnnotation__';
|
|
4
|
+
import type TypeAnnotation from './TypeAnnotation__';
|
|
5
5
|
import type View from './View__';
|
|
6
6
|
import type AuthInterface from './AuthInterface__';
|
|
7
7
|
import type Interface from './Interface__';
|
|
@@ -4043,6 +4043,8 @@ export class App extends BaseNode {
|
|
|
4043
4043
|
|
|
4044
4044
|
/* 判断接口是否有误,需要重新导出 */
|
|
4045
4045
|
getQualifiedInterface(interfaces: AbstractInterface[] = this.interfaces): MessageData[] {
|
|
4046
|
+
// getConceptConstructor
|
|
4047
|
+
const TypeAnnotationClass = getConceptConstructor('TypeAnnotation');
|
|
4046
4048
|
const errorList: MessageData[] = [];
|
|
4047
4049
|
(interfaces as unknown as Interface[]).forEach((item: Interface) => {
|
|
4048
4050
|
const logic = this.logics.find((logic: Logic) => logic.name === item.originLogicName);
|
|
@@ -4056,7 +4058,7 @@ export class App extends BaseNode {
|
|
|
4056
4058
|
logicParamMap[param.name] = param.typeAnnotation;
|
|
4057
4059
|
});
|
|
4058
4060
|
item.params.forEach((param) => {
|
|
4059
|
-
const logicTypeAnnotation =
|
|
4061
|
+
const logicTypeAnnotation = TypeAnnotationClass.from(logicParamMap[param.name]?.toJSON());
|
|
4060
4062
|
delete logicParamMap[param.name];
|
|
4061
4063
|
if (!logicTypeAnnotation) {
|
|
4062
4064
|
return errorList.push({
|
|
@@ -4067,7 +4069,7 @@ export class App extends BaseNode {
|
|
|
4067
4069
|
message: `参数“${param.name}”已被删除,请确定请求类型无误后点击“重新导出”`,
|
|
4068
4070
|
});
|
|
4069
4071
|
}
|
|
4070
|
-
const interfaceTypeAnnotation =
|
|
4072
|
+
const interfaceTypeAnnotation = TypeAnnotationClass.from(param.typeAnnotation.toJSON());
|
|
4071
4073
|
let isSame = false;
|
|
4072
4074
|
if (logicTypeAnnotation?.typeNamespace === 'app.enums') {
|
|
4073
4075
|
if (interfaceTypeAnnotation.typeNamespace === 'nasl.core' && interfaceTypeAnnotation.typeName === 'String') {
|
|
@@ -4144,8 +4146,7 @@ export class App extends BaseNode {
|
|
|
4144
4146
|
});
|
|
4145
4147
|
}
|
|
4146
4148
|
} else if (
|
|
4147
|
-
|
|
4148
|
-
JSON.stringify(interfaceReturns[0]?.typeAnnotation?.toJSON())
|
|
4149
|
+
!logicReturns[0]?.typeAnnotation.isSame(interfaceReturns[0]?.typeAnnotation)
|
|
4149
4150
|
) {
|
|
4150
4151
|
errorList.push({
|
|
4151
4152
|
logicName: logic.name,
|
|
@@ -1178,9 +1178,19 @@ export class TypeAnnotation extends BaseNode {
|
|
|
1178
1178
|
/* 判断2个类型是否一致 */
|
|
1179
1179
|
isSame(typeAnnotation: TypeAnnotation) {
|
|
1180
1180
|
typeAnnotation.typeArguments;
|
|
1181
|
+
// 由于 序列化 出来的 TypeAnnotation 会有很多多余的属性
|
|
1182
|
+
// 因此增加白名单,只有这些值才会被比较,其他均会被忽略
|
|
1183
|
+
const whiteList = [
|
|
1184
|
+
'concept', 'typeKind', 'typeNamespace', 'typeName', 'typeArguments',
|
|
1185
|
+
'returnType', 'inferred', 'ruleMap', 'properties', 'name', 'label',
|
|
1186
|
+
'description', 'typeAnnotation', 'required', 'defaultValue', 'jsonName'
|
|
1187
|
+
]
|
|
1181
1188
|
const typeAnnotation1 = this.toJSON();
|
|
1182
1189
|
const typeAnnotation2 = typeAnnotation.toJSON();
|
|
1183
1190
|
const ignoreNull = (key: any, value: any) => {
|
|
1191
|
+
if (!whiteList.includes(key)) {
|
|
1192
|
+
return undefined; // 忽略此属性
|
|
1193
|
+
}
|
|
1184
1194
|
if (value === null || value === undefined) {
|
|
1185
1195
|
return undefined; // 忽略此属性
|
|
1186
1196
|
}
|
|
@@ -17,7 +17,7 @@ async function getNaslAnnotatedJSON(app: App, opt: InternalReleaseData) {
|
|
|
17
17
|
let NaslAnnotatedJSON: any;
|
|
18
18
|
try {
|
|
19
19
|
NaslAnnotatedJSON = await (app as any).naslServer.getNaslAnnotatedJSON(app, true);
|
|
20
|
-
opt.logPublishFunc?.('语言', '获取类型标注成功');
|
|
20
|
+
await opt.logPublishFunc?.('语言', '获取类型标注成功');
|
|
21
21
|
|
|
22
22
|
// // 打印传给服务端的 nasl,为了服务端排查问题方便
|
|
23
23
|
// if (globalThis.window) {
|
|
@@ -47,7 +47,7 @@ async function getFrontendBundleFiles(app: App, opt: InternalReleaseData) {
|
|
|
47
47
|
let files: utils.GetPromise<ReturnType<typeof genFrontendBundleFiles>> = [];
|
|
48
48
|
|
|
49
49
|
if (opt.frontends && opt.frontends.length) {
|
|
50
|
-
opt.logPublishFunc?.('代码', '生成页面代码:开始');
|
|
50
|
+
await opt.logPublishFunc?.('代码', '生成页面代码:开始');
|
|
51
51
|
files = await genFrontendBundleFiles(app, opt.frontends, {
|
|
52
52
|
...opt.appInfo,
|
|
53
53
|
env: opt.env,
|
|
@@ -65,7 +65,7 @@ async function getFrontendBundleFiles(app: App, opt: InternalReleaseData) {
|
|
|
65
65
|
files = replaceAssetUrl(files, opt.appInfo.USER_STATIC_URL, opt.staticUrl);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
opt.logPublishFunc?.('代码', '生成页面代码:完成');
|
|
68
|
+
await opt.logPublishFunc?.('代码', '生成页面代码:完成');
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
return files;
|
|
@@ -75,7 +75,7 @@ async function mergeBodyData(app: App, opt: InternalReleaseData) {
|
|
|
75
75
|
await utils.delay(500);
|
|
76
76
|
|
|
77
77
|
const authReport: ReturnType<typeof getAuthReport> = getAuthReport(app, opt.frontends);
|
|
78
|
-
opt.logPublishFunc?.('权限', '分析权限数据成功!');
|
|
78
|
+
await opt.logPublishFunc?.('权限', '分析权限数据成功!');
|
|
79
79
|
const logicPageResourceDtoList = await genPermissionData(app);
|
|
80
80
|
const allFrontends = getFrontendByTypes(app?.frontendTypes);
|
|
81
81
|
const releaseFrontends = allFrontends.map((frontend: Frontend) => ({
|
|
@@ -18,9 +18,9 @@ export async function getReleaseData(app: App, data: ReleaseData, naslServer: Na
|
|
|
18
18
|
const { http, logger: defaultLogger } = naslServer;
|
|
19
19
|
const logger = inputLogger ?? defaultLogger;
|
|
20
20
|
const appInfo = await getAppInfo(http, data);
|
|
21
|
-
logger.info('构建环境', '获取环境信息成功');
|
|
21
|
+
await logger.info('构建环境', '获取环境信息成功');
|
|
22
22
|
const { version, fullVersion, dependencies } = await getVersionDetail(http, app);
|
|
23
|
-
logger.info('构建环境', '获取版本数据成功');
|
|
23
|
+
await logger.info('构建环境', '获取版本数据成功');
|
|
24
24
|
const allFrontend = getFrontendByTypes(app.frontendTypes);
|
|
25
25
|
const inputFrontendNames = (data.config.frontendNames ?? []).filter(Boolean);
|
|
26
26
|
const releaseFrontends = inputFrontendNames.length > 0
|
|
@@ -45,13 +45,13 @@ export async function getReleaseData(app: App, data: ReleaseData, naslServer: Na
|
|
|
45
45
|
// 设置依赖数据
|
|
46
46
|
if (app.packageInfos.length === 0) {
|
|
47
47
|
app.packageInfos = await getPackageInfos(http, app, dependencies, appInfo.STATIC_URL, fullVersion);
|
|
48
|
-
logger.info('构建环境', '设置依赖库内容');
|
|
48
|
+
await logger.info('构建环境', '设置依赖库内容');
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
// 私有化环境,需要同步资源;内部环境暂不需要,针对使用 CDN 场景增加判断
|
|
52
52
|
if (String(appInfo.isPrivatized) === 'true') {
|
|
53
53
|
result.staticUrl = await staticResourceSync(http, data.appId, data.env, releaseFrontends);
|
|
54
|
-
logger.info('构建环境', '私有化部署同步资源成功');
|
|
54
|
+
await logger.info('构建环境', '私有化部署同步资源成功');
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
// 服务端验证规则
|
|
@@ -62,18 +62,18 @@ export async function getReleaseData(app: App, data: ReleaseData, naslServer: Na
|
|
|
62
62
|
throw new Error(result.validations);
|
|
63
63
|
}
|
|
64
64
|
else {
|
|
65
|
-
logger.info('生成器', '服务端验证数据获取成功');
|
|
65
|
+
await logger.info('生成器', '服务端验证数据获取成功');
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
logger.info('构建环境', '构建环境完成,开始拼装发布数据');
|
|
69
|
+
await logger.info('构建环境', '构建环境完成,开始拼装发布数据');
|
|
70
70
|
|
|
71
71
|
const releaseBody = await genReleaseBody(app, {
|
|
72
72
|
...result,
|
|
73
73
|
logPublishFunc: (...message: string[]) => logger.info(...message),
|
|
74
74
|
});
|
|
75
75
|
|
|
76
|
-
logger.info('前端生成器', '应用发布数据准备完成');
|
|
76
|
+
await logger.info('前端生成器', '应用发布数据准备完成');
|
|
77
77
|
|
|
78
78
|
return releaseBody;
|
|
79
79
|
}
|
|
@@ -359,13 +359,13 @@ export function transformTSCode(tsCode: string, contextLogicName: string, type?:
|
|
|
359
359
|
}
|
|
360
360
|
if (calleeName === 'nasl.oql.query') {
|
|
361
361
|
if (!isPageLogic(contextLogicName)) {
|
|
362
|
-
const _typeAnnotation = node?.typeParameters?.params?.length > 0 ? naslTypes.TypeAnnotation.createGeneric('List', {
|
|
363
|
-
|
|
364
|
-
}) : null;
|
|
362
|
+
// const _typeAnnotation = node?.typeParameters?.params?.length > 0 ? naslTypes.TypeAnnotation.createGeneric('List', {
|
|
363
|
+
// typeArguments: node?.typeParameters?.params.map((curType: any) => transformTypeAnnotation({ ...curType })),
|
|
364
|
+
// }) : null;
|
|
365
365
|
return new naslTypes.OqlQueryComponent({
|
|
366
366
|
dataSource: 'app.dataSources.defaultDS',
|
|
367
367
|
code: generate(node.arguments[0] as any).code.trim().slice(1, -1),
|
|
368
|
-
typeAnnotation: _typeAnnotation,
|
|
368
|
+
// typeAnnotation: _typeAnnotation,
|
|
369
369
|
});
|
|
370
370
|
}
|
|
371
371
|
}
|
package/src/server/naslServer.ts
CHANGED
|
@@ -94,6 +94,7 @@ import {
|
|
|
94
94
|
Paginate,
|
|
95
95
|
MsgTriggerLauncher,
|
|
96
96
|
ConnectorTrigger,
|
|
97
|
+
FrontendType,
|
|
97
98
|
} from '../concepts';
|
|
98
99
|
|
|
99
100
|
import * as utils from '../utils';
|
|
@@ -3997,6 +3998,7 @@ class NaslServer {
|
|
|
3997
3998
|
!(fileNode.parentNode instanceof DataSource) &&
|
|
3998
3999
|
!(fileNode.parentNode instanceof Frontend) &&
|
|
3999
4000
|
!(fileNode.parentNode instanceof Backend) &&
|
|
4001
|
+
!(fileNode.parentNode instanceof FrontendType) &&
|
|
4000
4002
|
!isConnectorLogic &&
|
|
4001
4003
|
!(fileNode instanceof View) &&
|
|
4002
4004
|
!(fileNode instanceof BusinessComponent) &&
|
|
@@ -4915,6 +4917,22 @@ class NaslServer {
|
|
|
4915
4917
|
*/
|
|
4916
4918
|
async incidentalAction(action: string, fileNode: BaseNode, targetNode: BaseNode, oldpath?: string) {
|
|
4917
4919
|
if ((action === 'create' || action === 'delete' || (action === 'update' && oldpath)) && fileNode === targetNode) {
|
|
4920
|
+
// 删除、新增端类型
|
|
4921
|
+
if (fileNode instanceof FrontendType && (fileNode.frontends?.length || fileNode.businessComponents?.length)) {
|
|
4922
|
+
const fileNodeChildren = [...fileNode.frontends, ...fileNode.businessComponents];
|
|
4923
|
+
for (let i = 0; i < fileNodeChildren.length; i++) {
|
|
4924
|
+
const fileNodeItem = fileNodeChildren[i];
|
|
4925
|
+
const result = await utils.timeSlicingWithGenerator((fileNodeItem as FileNode).toEmbeddedTSFile());
|
|
4926
|
+
fileNodeItem.sourceMap = result.sourceMap;
|
|
4927
|
+
if (action === 'create') {
|
|
4928
|
+
await this.handleChange(fileNodeItem, fileNodeItem, result, action);
|
|
4929
|
+
await this.incidentalAction(action, fileNodeItem, fileNodeItem);
|
|
4930
|
+
} else if (action === 'delete') {
|
|
4931
|
+
await this.handleDelete(fileNodeItem, fileNodeItem, result);
|
|
4932
|
+
await this.incidentalAction(action, fileNodeItem, fileNodeItem);
|
|
4933
|
+
}
|
|
4934
|
+
}
|
|
4935
|
+
}
|
|
4918
4936
|
// 删除、更改、新增端
|
|
4919
4937
|
if (fileNode instanceof Frontend && (fileNode.views?.length || fileNode.variables?.length)) {
|
|
4920
4938
|
const fileNodeChildren = [...fileNode.views, ...fileNode.variables];
|
package/src/translator/utils.ts
CHANGED
|
@@ -30,7 +30,7 @@ export function createCompilerState(startCode: string = '', options?: Partial<Tr
|
|
|
30
30
|
*/
|
|
31
31
|
export function shiftPosition(pos: Position, code: string = ''): Position {
|
|
32
32
|
const res = { ...pos};
|
|
33
|
-
if (code) {
|
|
33
|
+
if (code && typeof code === 'string') {
|
|
34
34
|
const arr = code.split('\n');
|
|
35
35
|
res.offset += code.length;
|
|
36
36
|
res.line += arr.length - 1;
|