@lcap/nasl 4.5.0-beta.1 → 4.5.0-beta.2
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/upgrader/2.12.d.ts.map +1 -1
- package/out/automate/upgrader/2.12.js +1 -0
- package/out/automate/upgrader/2.12.js.map +1 -1
- package/out/automate/upgrader/2.14.d.ts.map +1 -1
- package/out/automate/upgrader/2.14.js +1 -0
- package/out/automate/upgrader/2.14.js.map +1 -1
- package/out/automate/upgrader/2.16.d.ts.map +1 -1
- package/out/automate/upgrader/2.16.js +1 -0
- package/out/automate/upgrader/2.16.js.map +1 -1
- package/out/automate/upgrader/2.17.d.ts.map +1 -1
- package/out/automate/upgrader/2.17.js +1 -0
- package/out/automate/upgrader/2.17.js.map +1 -1
- package/out/automate/upgrader/2.18.d.ts.map +1 -1
- package/out/automate/upgrader/2.18.js +1 -0
- package/out/automate/upgrader/2.18.js.map +1 -1
- package/out/automate/upgrader/2.20.d.ts.map +1 -1
- package/out/automate/upgrader/2.20.js +1 -0
- package/out/automate/upgrader/2.20.js.map +1 -1
- package/out/concepts/index.mini.d.ts +10 -0
- package/out/concepts/index.mini.d.ts.map +1 -0
- package/out/concepts/index.mini.js +26 -0
- package/out/concepts/index.mini.js.map +1 -0
- package/out/generator/genBundleFiles.js +1 -1
- package/out/generator/genBundleFiles.js.map +1 -1
- package/out/generator/permission.js +2 -2
- package/out/generator/permission.js.map +1 -1
- package/out/generator/ui-library-declaration/dependency.d.ts +20 -0
- package/out/generator/ui-library-declaration/dependency.d.ts.map +1 -1
- package/out/generator/ui-library-declaration/dependency.js +3 -2
- package/out/generator/ui-library-declaration/dependency.js.map +1 -1
- package/out/generator/ui-library-declaration/index.d.ts +1 -0
- package/out/generator/ui-library-declaration/index.d.ts.map +1 -1
- package/out/generator/ui-library-declaration/index.js +1 -0
- package/out/generator/ui-library-declaration/index.js.map +1 -1
- package/out/generator/ui-library-declaration/material.d.ts +2 -2
- package/out/generator/ui-library-declaration/material.d.ts.map +1 -1
- package/out/generator/ui-library-declaration/material.js +6 -3
- package/out/generator/ui-library-declaration/material.js.map +1 -1
- package/out/index.d.ts +2 -2
- package/out/index.d.ts.map +1 -1
- package/out/index.js +7 -1
- package/out/index.js.map +1 -1
- package/out/index.mini.d.ts +42 -0
- package/out/index.mini.d.ts.map +1 -0
- package/out/index.mini.js +89 -0
- package/out/index.mini.js.map +1 -0
- package/out/manager/diagnostic.d.ts +5 -5
- package/out/manager/diagnostic.d.ts.map +1 -1
- package/out/natural/exports/doctor/doctorView.d.ts +24 -0
- package/out/natural/exports/doctor/doctorView.d.ts.map +1 -0
- package/out/natural/exports/doctor/doctorView.js +333 -0
- package/out/natural/exports/doctor/doctorView.js.map +1 -0
- package/out/natural/exports/doctor/index.d.ts +4 -0
- package/out/natural/exports/doctor/index.d.ts.map +1 -0
- package/out/natural/exports/doctor/index.js +10 -0
- package/out/natural/exports/doctor/index.js.map +1 -0
- package/out/natural/exports/doctor/types.d.ts +95 -0
- package/out/natural/exports/doctor/types.d.ts.map +1 -0
- package/out/natural/exports/doctor/types.js +6 -0
- package/out/natural/exports/doctor/types.js.map +1 -0
- package/out/natural/exports/doctor/viewGraph.d.ts +20 -0
- package/out/natural/exports/doctor/viewGraph.d.ts.map +1 -0
- package/out/natural/exports/doctor/viewGraph.js +415 -0
- package/out/natural/exports/doctor/viewGraph.js.map +1 -0
- package/out/natural/exports/nasl2Files.d.ts.map +1 -1
- package/out/natural/exports/nasl2Files.js +35 -1
- package/out/natural/exports/nasl2Files.js.map +1 -1
- package/out/natural/exports/transform2BatchActions/apply.d.ts +11 -0
- package/out/natural/exports/transform2BatchActions/apply.d.ts.map +1 -0
- package/out/natural/exports/transform2BatchActions/apply.js +68 -0
- package/out/natural/exports/transform2BatchActions/apply.js.map +1 -0
- package/out/natural/exports/transform2BatchActions/diff/directories.d.ts +17 -0
- package/out/natural/exports/transform2BatchActions/diff/directories.d.ts.map +1 -0
- package/out/natural/exports/transform2BatchActions/diff/directories.js +215 -0
- package/out/natural/exports/transform2BatchActions/diff/directories.js.map +1 -0
- package/out/natural/exports/transform2BatchActions/diff/index.d.ts +21 -0
- package/out/natural/exports/transform2BatchActions/diff/index.d.ts.map +1 -0
- package/out/natural/exports/transform2BatchActions/diff/index.js +20 -0
- package/out/natural/exports/transform2BatchActions/diff/index.js.map +1 -0
- package/out/natural/exports/transform2BatchActions/diff/nodes.d.ts +162 -0
- package/out/natural/exports/transform2BatchActions/diff/nodes.d.ts.map +1 -0
- package/out/natural/exports/transform2BatchActions/diff/nodes.js +464 -0
- package/out/natural/exports/transform2BatchActions/diff/nodes.js.map +1 -0
- package/out/natural/exports/transform2BatchActions/diff/roles.d.ts +18 -0
- package/out/natural/exports/transform2BatchActions/diff/roles.d.ts.map +1 -0
- package/out/natural/exports/transform2BatchActions/diff/roles.js +61 -0
- package/out/natural/exports/transform2BatchActions/diff/roles.js.map +1 -0
- package/out/natural/exports/transform2BatchActions/index.d.ts +41 -0
- package/out/natural/exports/transform2BatchActions/index.d.ts.map +1 -0
- package/out/natural/exports/transform2BatchActions/index.js +61 -0
- package/out/natural/exports/transform2BatchActions/index.js.map +1 -0
- package/out/natural/exports/transform2BatchActions/parse.d.ts +24 -0
- package/out/natural/exports/transform2BatchActions/parse.d.ts.map +1 -0
- package/out/natural/exports/transform2BatchActions/parse.js +234 -0
- package/out/natural/exports/transform2BatchActions/parse.js.map +1 -0
- package/out/natural/exports/transform2BatchActions/types.d.ts +147 -0
- package/out/natural/exports/transform2BatchActions/types.d.ts.map +1 -0
- package/out/natural/exports/transform2BatchActions/types.js +7 -0
- package/out/natural/exports/transform2BatchActions/types.js.map +1 -0
- package/out/natural/index.d.ts +1 -0
- package/out/natural/index.d.ts.map +1 -1
- package/out/natural/index.js +1 -0
- package/out/natural/index.js.map +1 -1
- package/out/natural/old/parser/transformTS2UI.d.ts.map +1 -1
- package/out/natural/old/parser/transformTS2UI.js +4 -1
- package/out/natural/old/parser/transformTS2UI.js.map +1 -1
- package/out/natural/old/parser/transformTSCode.js +1 -1
- package/out/natural/old/parser/transformTSCode.js.map +1 -1
- package/out/natural/parser/parseNaturalTS.d.ts.map +1 -1
- package/out/natural/parser/parseNaturalTS.js +61 -1
- package/out/natural/parser/parseNaturalTS.js.map +1 -1
- package/out/natural/parser/parseNaturalTSXView.d.ts.map +1 -1
- package/out/natural/parser/parseNaturalTSXView.js +37 -7
- package/out/natural/parser/parseNaturalTSXView.js.map +1 -1
- package/out/natural/transforms/checker/checkIdentifierName.d.ts +6 -0
- package/out/natural/transforms/checker/checkIdentifierName.d.ts.map +1 -0
- package/out/natural/transforms/checker/checkIdentifierName.js +15 -0
- package/out/natural/transforms/checker/checkIdentifierName.js.map +1 -0
- package/out/natural/transforms/checker/checkKeywords.d.ts +33 -0
- package/out/natural/transforms/checker/checkKeywords.d.ts.map +1 -0
- package/out/natural/transforms/checker/checkKeywords.js +85 -0
- package/out/natural/transforms/checker/checkKeywords.js.map +1 -0
- package/out/natural/transforms/checker/checkViewElement.d.ts +10 -0
- package/out/natural/transforms/checker/checkViewElement.d.ts.map +1 -1
- package/out/natural/transforms/checker/checkViewElement.js +28 -1
- package/out/natural/transforms/checker/checkViewElement.js.map +1 -1
- package/out/natural/transforms/checker/index.d.ts +3 -1
- package/out/natural/transforms/checker/index.d.ts.map +1 -1
- package/out/natural/transforms/checker/index.js +10 -1
- package/out/natural/transforms/checker/index.js.map +1 -1
- package/out/natural/transforms/transform2Config.d.ts +17 -0
- package/out/natural/transforms/transform2Config.d.ts.map +1 -0
- package/out/natural/transforms/transform2Config.js +114 -0
- package/out/natural/transforms/transform2Config.js.map +1 -0
- package/out/natural/transforms/transform2Entity.d.ts +2 -2
- package/out/natural/transforms/transform2Entity.d.ts.map +1 -1
- package/out/natural/transforms/transform2Entity.js +11 -2
- package/out/natural/transforms/transform2Entity.js.map +1 -1
- package/out/natural/transforms/transform2Enum.d.ts.map +1 -1
- package/out/natural/transforms/transform2Enum.js +3 -0
- package/out/natural/transforms/transform2Enum.js.map +1 -1
- package/out/natural/transforms/transform2GlobalLogicDeclaration.d.ts.map +1 -1
- package/out/natural/transforms/transform2GlobalLogicDeclaration.js +4 -1
- package/out/natural/transforms/transform2GlobalLogicDeclaration.js.map +1 -1
- package/out/natural/transforms/transform2Logic.d.ts.map +1 -1
- package/out/natural/transforms/transform2Logic.js +6 -12
- package/out/natural/transforms/transform2Logic.js.map +1 -1
- package/out/natural/transforms/transform2LogicItem.d.ts +2 -0
- package/out/natural/transforms/transform2LogicItem.d.ts.map +1 -1
- package/out/natural/transforms/transform2LogicItem.js +110 -53
- package/out/natural/transforms/transform2LogicItem.js.map +1 -1
- package/out/natural/transforms/transform2Param.d.ts +1 -1
- package/out/natural/transforms/transform2Param.d.ts.map +1 -1
- package/out/natural/transforms/transform2Param.js +19 -1
- package/out/natural/transforms/transform2Param.js.map +1 -1
- package/out/natural/transforms/transform2Roles.d.ts +3 -0
- package/out/natural/transforms/transform2Roles.d.ts.map +1 -0
- package/out/natural/transforms/transform2Roles.js +34 -0
- package/out/natural/transforms/transform2Roles.js.map +1 -0
- package/out/natural/transforms/transform2Structure.d.ts.map +1 -1
- package/out/natural/transforms/transform2Structure.js +2 -0
- package/out/natural/transforms/transform2Structure.js.map +1 -1
- package/out/natural/transforms/transform2TypeAnnotation.d.ts.map +1 -1
- package/out/natural/transforms/transform2TypeAnnotation.js +8 -4
- package/out/natural/transforms/transform2TypeAnnotation.js.map +1 -1
- package/out/natural/transforms/transform2Variable.d.ts.map +1 -1
- package/out/natural/transforms/transform2Variable.js +4 -0
- package/out/natural/transforms/transform2Variable.js.map +1 -1
- package/out/natural/transforms/utils/createComponentLookupMap.js +3 -3
- package/out/natural/transforms/utils/createComponentLookupMap.js.map +1 -1
- package/out/natural/transforms/utils/ensureBindRoles.d.ts +9 -0
- package/out/natural/transforms/utils/ensureBindRoles.d.ts.map +1 -0
- package/out/natural/transforms/utils/ensureBindRoles.js +25 -0
- package/out/natural/transforms/utils/ensureBindRoles.js.map +1 -0
- package/out/natural/transforms/utils/flattenStatementsWithComments.d.ts +11 -0
- package/out/natural/transforms/utils/flattenStatementsWithComments.d.ts.map +1 -0
- package/out/natural/transforms/utils/flattenStatementsWithComments.js +36 -0
- package/out/natural/transforms/utils/flattenStatementsWithComments.js.map +1 -0
- package/out/natural/transforms/utils/parseDecorator.d.ts +4 -4
- package/out/natural/transforms/utils/parseDecorator.d.ts.map +1 -1
- package/out/natural/transforms/utils/parseDecorator.js +29 -25
- package/out/natural/transforms/utils/parseDecorator.js.map +1 -1
- package/out/natural/utils/index.d.ts +5 -0
- package/out/natural/utils/index.d.ts.map +1 -1
- package/out/natural/utils/index.js +11 -1
- package/out/natural/utils/index.js.map +1 -1
- package/out/natural/utils/nasl-file-types.d.ts +6 -1
- package/out/natural/utils/nasl-file-types.d.ts.map +1 -1
- package/out/natural/utils/nasl-file-types.js +49 -2
- package/out/natural/utils/nasl-file-types.js.map +1 -1
- package/out/server/extendBaseNode.d.ts.map +1 -1
- package/out/server/extendBaseNode.js +9 -3
- package/out/server/extendBaseNode.js.map +1 -1
- package/out/server/naslServer.d.ts +18 -0
- package/out/server/naslServer.d.ts.map +1 -1
- package/out/server/naslServer.js +88 -0
- package/out/server/naslServer.js.map +1 -1
- package/out/server/naslUiComponentTs.d.ts +1 -2
- package/out/server/naslUiComponentTs.d.ts.map +1 -1
- package/out/server/naslUiComponentTs.default.d.ts +47 -0
- package/out/server/naslUiComponentTs.js +25 -49
- package/out/server/naslUiComponentTs.js.map +1 -1
- package/out/service/autofix/types.d.ts +2 -2
- package/out/service/autofix/types.d.ts.map +1 -1
- package/out/service/instruct-ruler/ruler.d.ts +3 -1
- package/out/service/instruct-ruler/ruler.d.ts.map +1 -1
- package/out/service/instruct-ruler/ruler.js +2 -1
- package/out/service/instruct-ruler/ruler.js.map +1 -1
- package/out/service/storage/init.d.ts +6 -0
- package/out/service/storage/init.d.ts.map +1 -1
- package/out/service/storage/init.js +22 -9
- package/out/service/storage/init.js.map +1 -1
- package/out/service/storage/operation.d.ts +9 -1
- package/out/service/storage/operation.d.ts.map +1 -1
- package/out/service/storage/operation.js +220 -100
- package/out/service/storage/operation.js.map +1 -1
- package/out/service/storage/specTools.d.ts.map +1 -1
- package/out/service/storage/specTools.js +15 -6
- package/out/service/storage/specTools.js.map +1 -1
- package/out/templator/genQueryComponent.d.ts +13 -1
- package/out/templator/genQueryComponent.d.ts.map +1 -1
- package/out/templator/genQueryComponent.js +18 -14
- package/out/templator/genQueryComponent.js.map +1 -1
- package/package.json +11 -10
- package/sandbox/stdlib/nasl.util.ts +16 -15
- package/out/natural/exports/transform2BatchActions.d.ts +0 -114
- package/out/natural/exports/transform2BatchActions.d.ts.map +0 -1
- package/out/natural/exports/transform2BatchActions.js +0 -1233
- package/out/natural/exports/transform2BatchActions.js.map +0 -1
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
exports.transform2LogicItem = exports.transform2DefaultValue = exports.transformNode2Directory = exports.transformCall2Paginate = exports.transformCall2LogicWithAuth = exports.transformCall2Logic = exports.transformCall2CallViewLogic = exports.transformCall2Extension = exports.transformCall2Connector = void 0;
|
|
3
|
+
exports.transformAlert2ShowMessage = exports.transformForEach2ForEachStatement = exports.transformForOf2ForEachStatement = exports.transform2ForEachStatement = exports.transformMap2ListTransform = exports.transform2UIFunction = exports.transformCall2CallFunction = exports.transform2CallFunction = exports.transform2CallOtherNASLLogic = exports.transform2CallEventLogic = exports.transformCall2JSONFunctions = exports.transformCall2Logging = exports.transformCall2ConsoleLog = exports.transformCall2CallDataSourceLogic = exports.transformCall2CallEntityLogic = exports.transformCall2CallViewElementLogic = exports.transformCallFunctionExpression2Match = exports.transformMemberExpression = exports.transformNewExpression = exports.transform2NewRegex = exports.transform2PartialNewComposite = exports.transform2Comment = exports.transform2StringInterpolation = exports.transformReturnStatement2AssignmentOrEnd = exports.transform2NullLiteral = exports.transform2NumericLiteral = exports.transform2DirectiveLiteral = exports.transform2StringLiteral = exports.transform2BooleanLiteral = exports.transformUpdateExpression2Assignment = exports.transform2Assignment = exports.transform2AnonymousFunction = exports.transformIdentifier = exports.transformSwitchStatement2Match = exports.transform2WhileStatement = exports.transform2Break = exports.transform2Continue = exports.transform2IfStatement = exports.transformArrayExpression = exports.transform2BinaryExpression = exports.transform2VariadicExpression = exports.transformCallExpressionToBinaryExpression = exports.fixLogicNode = exports.flatIfStatementForMatch = exports.flatMatchPatternsExpression = exports.getSelectMembers = exports.unflatMemberExpression = exports.flatMemberExpression = exports.fixExpression = exports.TransformManager = void 0;
|
|
4
|
+
exports.transform2LogicItem = exports.transform2DefaultValue = exports.transformNode2Directory = exports.transformCall2Paginate = exports.transformCall2GetCustomConfig = exports.transformCall2LogicWithAuth = exports.transformCall2Logic = exports.transformCall2CallViewLogic = exports.transformCall2Extension = exports.transformCall2Connector = exports.transformCall2Interface = void 0;
|
|
8
5
|
const utils_1 = require("../utils");
|
|
9
6
|
const misc_1 = require("./utils/misc");
|
|
7
|
+
const flattenStatementsWithComments_1 = require("./utils/flattenStatementsWithComments");
|
|
10
8
|
const checkDataQueryCalleeNameOrder_1 = require("./checker/checkDataQueryCalleeNameOrder");
|
|
9
|
+
const checkIdentifierName_1 = require("./checker/checkIdentifierName");
|
|
11
10
|
const transform2TypeAnnotation_1 = require("./transform2TypeAnnotation");
|
|
12
11
|
const transform2Param_1 = require("./transform2Param");
|
|
13
|
-
const
|
|
12
|
+
const service_1 = require("@lcap/nasl-concepts/service");
|
|
14
13
|
const parseDecorator_1 = require("./utils/parseDecorator");
|
|
15
14
|
;
|
|
16
15
|
class TransformManager {
|
|
@@ -80,23 +79,13 @@ function transformTSCode2SubLogic(node, options) {
|
|
|
80
79
|
statements = [...node?.body?.directives, ...node?.body?.body];
|
|
81
80
|
}
|
|
82
81
|
parameters.forEach((node) => {
|
|
83
|
-
const param = (0, transform2Param_1.transform2Param)(node, options);
|
|
82
|
+
const param = (0, transform2Param_1.transform2Param)(node, options, undefined, true);
|
|
84
83
|
if (param && !param?.typeAnnotation) {
|
|
85
84
|
param.typeAnnotation = null;
|
|
86
85
|
}
|
|
87
86
|
param && logic.addParam(param);
|
|
88
87
|
});
|
|
89
|
-
|
|
90
|
-
statements.forEach((node, index) => {
|
|
91
|
-
if (node?.leadingComments?.length) {
|
|
92
|
-
newStatements.push(...node?.leadingComments);
|
|
93
|
-
}
|
|
94
|
-
if (node?.trailingComments?.length && index === statements.length - 1) {
|
|
95
|
-
newStatements.push(...node?.trailingComments);
|
|
96
|
-
}
|
|
97
|
-
newStatements.push(node);
|
|
98
|
-
});
|
|
99
|
-
statements = newStatements;
|
|
88
|
+
statements = (0, flattenStatementsWithComments_1.flattenStatementsWithComments)(statements);
|
|
100
89
|
const body = statements.map((node) => transformNodeFunction(node, {
|
|
101
90
|
...options,
|
|
102
91
|
logic,
|
|
@@ -431,6 +420,9 @@ function transformConditionalExpression(node, options) {
|
|
|
431
420
|
});
|
|
432
421
|
}
|
|
433
422
|
function transformArrayExpression(node, options) {
|
|
423
|
+
if (options?.inCallQueryComponentField) {
|
|
424
|
+
return (0, utils_1.throwError)(options, '数据查询中不支持使用 NewList(直接声明数组),请将对应操作放在数据查询外部进行处理', node);
|
|
425
|
+
}
|
|
434
426
|
let typeAnnotation = options.typeAnnotation;
|
|
435
427
|
delete options.typeAnnotation;
|
|
436
428
|
const transformNodeFunction = options?.transformNodeFunction || transform2LogicItem;
|
|
@@ -439,7 +431,11 @@ function transformArrayExpression(node, options) {
|
|
|
439
431
|
items: node?.elements?.map((arg) => transformNodeFunction(arg, { ...options, typeAnnotation: undefined })).filter(Boolean),
|
|
440
432
|
});
|
|
441
433
|
}
|
|
434
|
+
exports.transformArrayExpression = transformArrayExpression;
|
|
442
435
|
function transform2NewAnonymousStructure(node, options) {
|
|
436
|
+
if (options?.inCallQueryComponentField) {
|
|
437
|
+
return (0, utils_1.throwError)(options, '数据查询中不支持使用 NewComposite(直接声明匿名结构),请将对应操作放在数据查询外部进行处理', node);
|
|
438
|
+
}
|
|
443
439
|
for (let i = 0; i < node.properties.length; i++) {
|
|
444
440
|
const item = node.properties[i];
|
|
445
441
|
const itemValue = item?.value;
|
|
@@ -462,7 +458,7 @@ function transform2NewAnonymousStructure(node, options) {
|
|
|
462
458
|
const structureProperties = [];
|
|
463
459
|
newProperties.forEach((arg, index) => {
|
|
464
460
|
structureProperties.push(new utils_1.naslTypes.StructureProperty({
|
|
465
|
-
name: arg.key.name,
|
|
461
|
+
name: arg.key.name ?? arg.key.value,
|
|
466
462
|
typeAnnotation: arg.naslType || null,
|
|
467
463
|
}));
|
|
468
464
|
});
|
|
@@ -478,6 +474,9 @@ function transform2NewStructure(namespaceAndName, objectExpression, options) {
|
|
|
478
474
|
return newComposite;
|
|
479
475
|
}
|
|
480
476
|
function transform2NewExpression(calleeName, node, options) {
|
|
477
|
+
if (options?.inCallQueryComponentField) {
|
|
478
|
+
return (0, utils_1.throwError)(options, `数据查询中不支持使用 ${calleeName},请将对应操作放在数据查询外部进行处理`, node);
|
|
479
|
+
}
|
|
481
480
|
const transformNodeFunction = options?.transformNodeFunction || transform2LogicItem;
|
|
482
481
|
if (calleeName === 'NewList') {
|
|
483
482
|
let typeAnnotation;
|
|
@@ -592,6 +591,7 @@ function transform2ArrayPattern(decl, options) {
|
|
|
592
591
|
if (element.type === 'Identifier') {
|
|
593
592
|
const varTypeAnnotation = element.typeAnnotation?.typeAnnotation;
|
|
594
593
|
if (options.transformType === 'logic') {
|
|
594
|
+
(0, checkIdentifierName_1.checkIdentifierName)(element.name, '变量', options, element);
|
|
595
595
|
options.logic.variables.push(new utils_1.naslTypes.Variable({
|
|
596
596
|
name: element.name,
|
|
597
597
|
typeAnnotation: varTypeAnnotation && (0, transform2TypeAnnotation_1.transform2TypeAnnotation)(varTypeAnnotation, options) || undefined,
|
|
@@ -636,6 +636,7 @@ function transform2VariableAndAddAssignment(node, options) {
|
|
|
636
636
|
}
|
|
637
637
|
let typeAnnotation;
|
|
638
638
|
if (options.transformType === 'logic' && ![...options.logic.variables, ...options.logic.returns].some((variable) => variable.name === variableName)) {
|
|
639
|
+
(0, checkIdentifierName_1.checkIdentifierName)(variableName, '变量', options, decl.id);
|
|
639
640
|
const varTypeAnnotation = decl.id.typeAnnotation?.typeAnnotation;
|
|
640
641
|
typeAnnotation = varTypeAnnotation && (0, transform2TypeAnnotation_1.transform2TypeAnnotation)(varTypeAnnotation, options) || undefined;
|
|
641
642
|
const variable = new utils_1.naslTypes.Variable({
|
|
@@ -680,15 +681,7 @@ function flatCommentWithNode(node) {
|
|
|
680
681
|
newNodeList = [...node?.innerComments];
|
|
681
682
|
}
|
|
682
683
|
if (node?.body?.length) {
|
|
683
|
-
|
|
684
|
-
if (item?.leadingComments?.length) {
|
|
685
|
-
newNodeList.push(...item?.leadingComments);
|
|
686
|
-
}
|
|
687
|
-
if (item?.trailingComments?.length && index === node?.body.length - 1) {
|
|
688
|
-
newNodeList.push(...item?.trailingComments);
|
|
689
|
-
}
|
|
690
|
-
newNodeList.push(item);
|
|
691
|
-
});
|
|
684
|
+
newNodeList.push(...(0, flattenStatementsWithComments_1.flattenStatementsWithComments)(node.body));
|
|
692
685
|
}
|
|
693
686
|
return newNodeList;
|
|
694
687
|
}
|
|
@@ -1005,16 +998,24 @@ function transform2StringInterpolation(node, options) {
|
|
|
1005
998
|
});
|
|
1006
999
|
}
|
|
1007
1000
|
exports.transform2StringInterpolation = transform2StringInterpolation;
|
|
1001
|
+
function transformRequire2JSBlock(node, calleeName, callee, options) {
|
|
1002
|
+
const arg0 = node.arguments[0].value;
|
|
1003
|
+
const filename = arg0.replace('./tmp/', '');
|
|
1004
|
+
return new utils_1.naslTypes.JSBlock({ code: options.externalFiles?.get(filename) ?? '' });
|
|
1005
|
+
}
|
|
1008
1006
|
function transform2Comment(node, options) {
|
|
1009
1007
|
if (node.type === 'EmptyStatement') {
|
|
1010
1008
|
if (node?.leadingComments) {
|
|
1011
|
-
|
|
1009
|
+
// trim() 防止 Babel 解析 /* ... */ 时将内侧空格存入 value,
|
|
1010
|
+
// 导致每次 files2nasl → nasl2files 轮回后注释空格累积 +1
|
|
1011
|
+
const newValue = node?.leadingComments?.[0]?.value?.trim().replace(/\n/g, '<br>');
|
|
1012
1012
|
return new utils_1.naslTypes.Comment({
|
|
1013
1013
|
value: String(newValue),
|
|
1014
1014
|
});
|
|
1015
1015
|
}
|
|
1016
1016
|
}
|
|
1017
|
-
|
|
1017
|
+
// trim() 同上,防止空格在每次 prepare-src 轮回中递增
|
|
1018
|
+
const newValue = node?.value?.trim().replace(/\n/g, '<br>');
|
|
1018
1019
|
return new utils_1.naslTypes.Comment({
|
|
1019
1020
|
value: String(newValue || ''),
|
|
1020
1021
|
});
|
|
@@ -1037,7 +1038,16 @@ function transform2PartialNewComposite(node, options) {
|
|
|
1037
1038
|
const newProperties = (node?.properties || node?.arguments?.[0]?.properties);
|
|
1038
1039
|
let idx = 0;
|
|
1039
1040
|
newProperties?.forEach((arg, index) => {
|
|
1040
|
-
|
|
1041
|
+
// StringLiteral 类型的键(如 JSON 格式的 "name")统一转换为 Identifier 处理,并校验命名规则
|
|
1042
|
+
let keyNode;
|
|
1043
|
+
if (arg.key?.type === 'StringLiteral') {
|
|
1044
|
+
(0, checkIdentifierName_1.checkIdentifierName)(arg.key.value, '属性', options, arg.key);
|
|
1045
|
+
keyNode = utils_1.babelTypes.identifier(arg.key.value);
|
|
1046
|
+
}
|
|
1047
|
+
else {
|
|
1048
|
+
keyNode = arg.key;
|
|
1049
|
+
}
|
|
1050
|
+
properties.push(transformNodeFunction(keyNode, options));
|
|
1041
1051
|
const calleeName = (0, utils_1.generate)(arg.value).code;
|
|
1042
1052
|
let sliceMembers = false;
|
|
1043
1053
|
if (arg.value.type === 'MemberExpression') {
|
|
@@ -1103,7 +1113,7 @@ function transform2PartialNewComposite(node, options) {
|
|
|
1103
1113
|
}
|
|
1104
1114
|
}
|
|
1105
1115
|
structureProperties.push(new utils_1.naslTypes.StructureProperty({
|
|
1106
|
-
name: arg?.key?.name,
|
|
1116
|
+
name: arg?.key?.name ?? arg?.key?.value,
|
|
1107
1117
|
typeAnnotation: null
|
|
1108
1118
|
}));
|
|
1109
1119
|
});
|
|
@@ -1148,6 +1158,9 @@ function transformNewExpression(node, options) {
|
|
|
1148
1158
|
return transform2NewRegex(node, options);
|
|
1149
1159
|
}
|
|
1150
1160
|
else if (calleeName.includes('.entities.') || calleeName.includes('.structures.')) {
|
|
1161
|
+
if (options?.inCallQueryComponentField) {
|
|
1162
|
+
return (0, utils_1.throwError)(options, `数据查询中不支持使用 new ${calleeName},请将对应操作放在数据查询外部进行处理`, node);
|
|
1163
|
+
}
|
|
1151
1164
|
return transform2NewStructure(calleeName, node.arguments[0], options);
|
|
1152
1165
|
}
|
|
1153
1166
|
return (0, utils_1.throwError)(options, '在新建表达式中不支持节点类型', node.type, node);
|
|
@@ -1258,6 +1271,14 @@ function transformMemberExpression(node, options) {
|
|
|
1258
1271
|
return newNode;
|
|
1259
1272
|
}
|
|
1260
1273
|
}
|
|
1274
|
+
const configPropertyRegex = /^(app|extensions\.\w+)\.configuration\.(?:groups\.)?(\w+)\.(?:properties\.)?(\w+)$/;
|
|
1275
|
+
if (configPropertyRegex.test(calleeName)) {
|
|
1276
|
+
const [, prefix, groupName, propName] = calleeName.match(configPropertyRegex);
|
|
1277
|
+
return new utils_1.naslTypes.Identifier({
|
|
1278
|
+
namespace: `${prefix}.configuration.groups.${groupName}.properties`,
|
|
1279
|
+
name: propName,
|
|
1280
|
+
});
|
|
1281
|
+
}
|
|
1261
1282
|
if (node.property.type === 'NumericLiteral' || node?.property?.type === 'BinaryExpression') {
|
|
1262
1283
|
return new utils_1.naslTypes.CallFunction({
|
|
1263
1284
|
calleeNamespace: 'nasl.util',
|
|
@@ -1470,6 +1491,7 @@ function transformCall2CallDataSourceLogic(node, calleeName, callee, options) {
|
|
|
1470
1491
|
if (newArguments?.[0])
|
|
1471
1492
|
newArguments[0].keyword = 'body';
|
|
1472
1493
|
if (newArguments?.[1]) {
|
|
1494
|
+
newArguments[1].keyword = 'properties';
|
|
1473
1495
|
if (newArguments[1]?.expression.concept === 'AnonymousFunction' && newArguments[1]?.expression?.params?.[0]?.name) {
|
|
1474
1496
|
newArguments[1].expression.params[0].typeAnnotation = utils_1.naslTypes.TypeAnnotation.createReference(entityName, {
|
|
1475
1497
|
typeNamespace: calleeNamespace,
|
|
@@ -1497,6 +1519,7 @@ function transformCall2CallDataSourceLogic(node, calleeName, callee, options) {
|
|
|
1497
1519
|
}
|
|
1498
1520
|
const expressionJson = expression?.toJSON();
|
|
1499
1521
|
const argument2 = newArguments?.[1];
|
|
1522
|
+
const argument3 = newArguments?.[2];
|
|
1500
1523
|
newArguments = [new utils_1.naslTypes.Argument({
|
|
1501
1524
|
expression: new utils_1.naslTypes.Function({
|
|
1502
1525
|
name: "filter",
|
|
@@ -1523,6 +1546,10 @@ function transformCall2CallDataSourceLogic(node, calleeName, callee, options) {
|
|
|
1523
1546
|
else {
|
|
1524
1547
|
newArguments.push(new utils_1.naslTypes.Argument({}));
|
|
1525
1548
|
}
|
|
1549
|
+
if (argument3?.expression?.concept === 'AnonymousFunction') {
|
|
1550
|
+
argument3.keyword = 'properties';
|
|
1551
|
+
newArguments.push(argument3);
|
|
1552
|
+
}
|
|
1526
1553
|
}
|
|
1527
1554
|
}
|
|
1528
1555
|
return new utils_1.naslTypes.CallLogic({
|
|
@@ -1633,7 +1660,7 @@ function transform2CallOtherNASLLogic(node, calleeName, callee, options) {
|
|
|
1633
1660
|
exports.transform2CallOtherNASLLogic = transform2CallOtherNASLLogic;
|
|
1634
1661
|
function transform2CallFunction(node, calleeName, argument, options) {
|
|
1635
1662
|
calleeName = misc_1.replaceCallFunctionMap?.[calleeName] || calleeName;
|
|
1636
|
-
const func =
|
|
1663
|
+
const func = (0, service_1.getBuildInFunction)(calleeName);
|
|
1637
1664
|
let newArguments = argument.map((arg, index) => {
|
|
1638
1665
|
let supportSubLogic = false;
|
|
1639
1666
|
if (arg?.type === 'FunctionExpression' || (arg?.type === 'ArrowFunctionExpression' && arg?.body?.type === 'BlockStatement')) {
|
|
@@ -1674,11 +1701,6 @@ function transform2CallFunction(node, calleeName, argument, options) {
|
|
|
1674
1701
|
});
|
|
1675
1702
|
}
|
|
1676
1703
|
}
|
|
1677
|
-
if (calleeName === 'Convert' && !newTypeArguments) {
|
|
1678
|
-
newTypeArguments = [
|
|
1679
|
-
new utils_1.naslTypes.TypeAnnotation()
|
|
1680
|
-
];
|
|
1681
|
-
}
|
|
1682
1704
|
if (calleeName === 'FromString') {
|
|
1683
1705
|
if (newTypeArguments?.[0]?.typeName === 'Time' && newArguments?.[0]?.expression?.concept === 'StringLiteral') {
|
|
1684
1706
|
const timeValue = newArguments?.[0]?.expression?.value;
|
|
@@ -1772,16 +1794,16 @@ function transform2CallFunction(node, calleeName, argument, options) {
|
|
|
1772
1794
|
else {
|
|
1773
1795
|
// 最后判断一下参数数量是否匹配
|
|
1774
1796
|
// 这两个参数比较特殊,可以无限加参数,不再判断参数数量
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
}
|
|
1779
|
-
else {
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
}
|
|
1797
|
+
// 走LS检查,不在transform中判断了
|
|
1798
|
+
// const excludes = ['HasValue', 'ListSort']
|
|
1799
|
+
// if (func.params?.length !== newArguments?.length && !excludes.includes(calleeName)) {
|
|
1800
|
+
// return throwError(options, `函数${calleeName}生成不符合标准的函数调用,参数数量不匹配`, node.callee, node);
|
|
1801
|
+
// } else {
|
|
1802
|
+
// }
|
|
1803
|
+
newArguments?.forEach((arg, idx) => {
|
|
1804
|
+
if (func?.params[idx]?.name)
|
|
1805
|
+
arg.keyword = func?.params[idx]?.name;
|
|
1806
|
+
});
|
|
1785
1807
|
}
|
|
1786
1808
|
const nodeElement = new utils_1.naslTypes.CallFunction({
|
|
1787
1809
|
calleeNamespace: 'nasl.util',
|
|
@@ -1809,7 +1831,7 @@ function transform2SqlFunction(node, calleeName, argument, options) {
|
|
|
1809
1831
|
}
|
|
1810
1832
|
const specFunList = ['COUNT', 'COUNTD', 'SUM', 'AVG', 'MAX', 'MIN'];
|
|
1811
1833
|
// TODO: 先写死了 mysql,后续需要传入: 参考 requestSqlFunctions
|
|
1812
|
-
const func =
|
|
1834
|
+
const func = (0, service_1.getSqlFunction)('mysql', calleeName);
|
|
1813
1835
|
let addArguments = [];
|
|
1814
1836
|
if (specFunList.includes(calleeName)) {
|
|
1815
1837
|
const value = calleeName === 'COUNTD' ? 'DISTINCT' : 'ALL';
|
|
@@ -1853,8 +1875,15 @@ function transformCall2CallFunction(node, calleeName, callee, options) {
|
|
|
1853
1875
|
return transform2CallFunction(node, curCalleeName, argument, options);
|
|
1854
1876
|
}
|
|
1855
1877
|
exports.transformCall2CallFunction = transformCall2CallFunction;
|
|
1878
|
+
const SUPPORTED_NASL_UI_FUNCTIONS = ['showMessage', 'destination', 'gotoLink'];
|
|
1856
1879
|
function transform2UIFunction(node, calleeName, callee, options) {
|
|
1857
|
-
|
|
1880
|
+
const uiFunctionName = callee[2].name;
|
|
1881
|
+
if (!SUPPORTED_NASL_UI_FUNCTIONS.includes(uiFunctionName)) {
|
|
1882
|
+
return (0, utils_1.throwError)(options, `nasl.ui 仅支持 ${SUPPORTED_NASL_UI_FUNCTIONS.map((f) => `nasl.ui.${f}`).join('、')},不支持 nasl.ui.${uiFunctionName}`, node);
|
|
1883
|
+
}
|
|
1884
|
+
if (uiFunctionName === 'destination') {
|
|
1885
|
+
if (!node.arguments[0])
|
|
1886
|
+
return (0, utils_1.throwError)(options, 'nasl.ui.destination 缺少目标页面参数', node);
|
|
1858
1887
|
let namespaceNode = node.arguments[0];
|
|
1859
1888
|
let namespace = '';
|
|
1860
1889
|
if (namespaceNode.type === 'TemplateLiteral') {
|
|
@@ -1900,7 +1929,9 @@ function transform2UIFunction(node, calleeName, callee, options) {
|
|
|
1900
1929
|
arguments: argument,
|
|
1901
1930
|
});
|
|
1902
1931
|
}
|
|
1903
|
-
if (
|
|
1932
|
+
if (uiFunctionName === 'gotoLink') {
|
|
1933
|
+
if (!node.arguments[0])
|
|
1934
|
+
return (0, utils_1.throwError)(options, 'nasl.ui.gotoLink 缺少链接参数', node);
|
|
1904
1935
|
return new utils_1.naslTypes.ExternalDestination({
|
|
1905
1936
|
link: fixExpression(node?.arguments[0], options),
|
|
1906
1937
|
});
|
|
@@ -1912,7 +1943,7 @@ function transform2UIFunction(node, calleeName, callee, options) {
|
|
|
1912
1943
|
// }
|
|
1913
1944
|
return new utils_1.naslTypes.CallLogic({
|
|
1914
1945
|
calleeNamespace: 'nasl.ui',
|
|
1915
|
-
calleeName:
|
|
1946
|
+
calleeName: uiFunctionName,
|
|
1916
1947
|
shortcut: true,
|
|
1917
1948
|
/**
|
|
1918
1949
|
* 这个函数是修复 AI 翻译出错的情况,与正常的 transform 做个区分
|
|
@@ -2140,7 +2171,7 @@ function transformCall2Logic(node, calleeName, callee, options) {
|
|
|
2140
2171
|
// 未带前缀,补一下
|
|
2141
2172
|
return transform2CallFunction(node, calleeName, node?.arguments || [], options);
|
|
2142
2173
|
}
|
|
2143
|
-
else if (
|
|
2174
|
+
else if ((0, service_1.getSqlFunction)('mysql', calleeName) || calleeName === 'COUNTD') {
|
|
2144
2175
|
return transform2SqlFunction(node, calleeName, node?.arguments || [], options);
|
|
2145
2176
|
}
|
|
2146
2177
|
let newCalleeName = calleeName?.includes('__IDENTIFIER__') ? undefined : calleeName;
|
|
@@ -2171,6 +2202,30 @@ function transformCall2LogicWithAuth(node, calleeName, callee, options) {
|
|
|
2171
2202
|
});
|
|
2172
2203
|
}
|
|
2173
2204
|
exports.transformCall2LogicWithAuth = transformCall2LogicWithAuth;
|
|
2205
|
+
function transformCall2GetCustomConfig(node, calleeName, callee, options) {
|
|
2206
|
+
const transformNodeFunction = options?.transformNodeFunction || transform2LogicItem;
|
|
2207
|
+
const arg = node.arguments?.[0];
|
|
2208
|
+
if (!arg || arg.type !== 'MemberExpression') {
|
|
2209
|
+
return (0, utils_1.throwError)(options, 'nasl.configuration.getCustomConfig 的参数必须是 {app|extensions.xxx}.configuration.{group}.{name} 形式的成员访问', node);
|
|
2210
|
+
}
|
|
2211
|
+
const flatCallee = flatMemberExpression(arg);
|
|
2212
|
+
const argName = flatCallee.map((n) => n.name).join('.');
|
|
2213
|
+
const configPropertyRegex = /^(app|extensions\.\w+)\.configuration\.(\w+)\.(\w+)$/;
|
|
2214
|
+
if (!configPropertyRegex.test(argName)) {
|
|
2215
|
+
return (0, utils_1.throwError)(options, `nasl.configuration.getCustomConfig 参数路径格式不正确,期望 {app|extensions.xxx}.configuration.{group}.{name},实际为 ${argName}`, node);
|
|
2216
|
+
}
|
|
2217
|
+
return new utils_1.naslTypes.CallLogic({
|
|
2218
|
+
calleeNamespace: 'nasl.configuration',
|
|
2219
|
+
calleeName: 'getCustomConfig',
|
|
2220
|
+
arguments: [
|
|
2221
|
+
new utils_1.naslTypes.Argument({
|
|
2222
|
+
keyword: 'name',
|
|
2223
|
+
expression: transformNodeFunction(arg, options),
|
|
2224
|
+
}),
|
|
2225
|
+
],
|
|
2226
|
+
});
|
|
2227
|
+
}
|
|
2228
|
+
exports.transformCall2GetCustomConfig = transformCall2GetCustomConfig;
|
|
2174
2229
|
function transformCall2Paginate(node, calleeName, callee, options) {
|
|
2175
2230
|
const transformNodeFunction = options?.transformNodeFunction || transform2LogicItem;
|
|
2176
2231
|
const newCallee = node.arguments || [];
|
|
@@ -2648,10 +2703,12 @@ function transform2LogicItem(node, options) {
|
|
|
2648
2703
|
});
|
|
2649
2704
|
transformManager.register('MemberExpression', transformMemberExpression);
|
|
2650
2705
|
transformManager.register('OptionalMemberExpression', transformMemberExpression);
|
|
2706
|
+
transformManager.registerCallExpression((node, calleeName) => calleeName === 'require' && node.arguments[0]?.value?.startsWith('./tmp/'), transformRequire2JSBlock);
|
|
2651
2707
|
transformManager.registerCallExpression((node, calleeName, callee) => callee.length === 1 && (node.callee.type === 'FunctionExpression' && node.callee.id?.name === 'match' || node.callee.type === 'ArrowFunctionExpression'), transformCallFunctionExpression2Match);
|
|
2652
2708
|
transformManager.registerCallExpression((node, calleeName) => /^\$refs\./.test(calleeName), transformCall2CallViewElementLogic);
|
|
2653
2709
|
transformManager.registerCallExpression((node, calleeName, callee) => callee.length === 2 && callee[0].type === 'Identifier' && callee[0].name.endsWith('Entity'), transformCall2CallEntityLogic);
|
|
2654
2710
|
transformManager.registerCallExpression('nasl.oql.query', transformCall2OQLQuery);
|
|
2711
|
+
transformManager.registerCallExpression('nasl.configuration.getCustomConfig', transformCall2GetCustomConfig);
|
|
2655
2712
|
transformManager.registerCallExpression('nasl.util.consoleLog', transformCall2ConsoleLog);
|
|
2656
2713
|
transformManager.registerCallExpression('console.log', transformCall2ConsoleLog);
|
|
2657
2714
|
transformManager.registerCallExpression((node, calleeName) => calleeName.startsWith('nasl.logging.'), transformCall2Logging);
|