@lcap/nasl 1.0.1 → 2.12.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.d.ts +1 -0
- package/out/automate/engine/index.js +34 -12
- package/out/automate/engine/index.js.map +1 -1
- package/out/automate/engine/operators.d.ts +10 -2
- package/out/automate/engine/operators.js +105 -7
- package/out/automate/engine/operators.js.map +1 -1
- package/out/automate/engine/uniqueName.d.ts +8 -2
- package/out/automate/engine/uniqueName.js +72 -4
- package/out/automate/engine/uniqueName.js.map +1 -1
- package/out/automate/engine/utils.d.ts +1 -0
- package/out/automate/engine/utils.js +108 -67
- package/out/automate/engine/utils.js.map +1 -1
- package/out/automate/template/process.d.ts +9 -0
- package/out/automate/template/process.js +10976 -0
- package/out/automate/template/process.js.map +1 -0
- package/out/bak/translator.js +1 -0
- package/out/bak/translator.js.map +1 -1
- package/out/common/BaseNode.d.ts +6 -1
- package/out/common/BaseNode.js +37 -6
- package/out/common/BaseNode.js.map +1 -1
- package/out/concepts/App__.d.ts +52 -49
- package/out/concepts/App__.js +89 -53
- package/out/concepts/App__.js.map +1 -1
- package/out/concepts/Assignee__.d.ts +11 -0
- package/out/concepts/Assignee__.js +34 -0
- package/out/concepts/Assignee__.js.map +1 -1
- package/out/concepts/BindAttribute__.js +2 -2
- package/out/concepts/BindAttribute__.js.map +1 -1
- package/out/concepts/BindDirective__.js +10 -3
- package/out/concepts/BindDirective__.js.map +1 -1
- package/out/concepts/BindEvent__.js +15 -6
- package/out/concepts/BindEvent__.js.map +1 -1
- package/out/concepts/BooleanLiteral__.d.ts +4 -0
- package/out/concepts/BooleanLiteral__.js +11 -0
- package/out/concepts/BooleanLiteral__.js.map +1 -1
- package/out/concepts/CallFunction__.js +9 -4
- package/out/concepts/CallFunction__.js.map +1 -1
- package/out/concepts/CallLogic__.js +48 -30
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/CallQueryComponent__.d.ts +34 -4
- package/out/concepts/CallQueryComponent__.js +340 -95
- package/out/concepts/CallQueryComponent__.js.map +1 -1
- package/out/concepts/Comment__.js +1 -1
- package/out/concepts/Comment__.js.map +1 -1
- package/out/concepts/ConfigGroup__.d.ts +1 -0
- package/out/concepts/ConfigGroup__.js +7 -0
- package/out/concepts/ConfigGroup__.js.map +1 -1
- package/out/concepts/ConfigProperty__.d.ts +1 -0
- package/out/concepts/ConfigProperty__.js +3 -0
- package/out/concepts/ConfigProperty__.js.map +1 -1
- package/out/concepts/Configuration__.d.ts +1 -0
- package/out/concepts/Configuration__.js +3 -0
- package/out/concepts/Configuration__.js.map +1 -1
- package/out/concepts/Constant__.js +6 -6
- package/out/concepts/Constant__.js.map +1 -1
- package/out/concepts/DataSource__.d.ts +143 -0
- package/out/concepts/DataSource__.js +318 -0
- package/out/concepts/DataSource__.js.map +1 -0
- package/out/concepts/Destination__.js +22 -8
- package/out/concepts/Destination__.js.map +1 -1
- package/out/concepts/End__.js +2 -2
- package/out/concepts/End__.js.map +1 -1
- package/out/concepts/EntityIndex__.d.ts +5 -0
- package/out/concepts/EntityIndex__.js +10 -2
- package/out/concepts/EntityIndex__.js.map +1 -1
- package/out/concepts/EntityProperty__.d.ts +9 -0
- package/out/concepts/EntityProperty__.js +22 -7
- package/out/concepts/EntityProperty__.js.map +1 -1
- package/out/concepts/Entity__.d.ts +6 -0
- package/out/concepts/Entity__.js +27 -11
- package/out/concepts/Entity__.js.map +1 -1
- package/out/concepts/Enum__.d.ts +1 -0
- package/out/concepts/Enum__.js +14 -4
- package/out/concepts/Enum__.js.map +1 -1
- package/out/concepts/ForEachStatement__.js +2 -2
- package/out/concepts/ForEachStatement__.js.map +1 -1
- package/out/concepts/Function__.d.ts +18 -0
- package/out/concepts/Function__.js +96 -1
- package/out/concepts/Function__.js.map +1 -1
- package/out/concepts/Identifier__.js +5 -14
- package/out/concepts/Identifier__.js.map +1 -1
- package/out/concepts/IfStatement__.js +8 -8
- package/out/concepts/IfStatement__.js.map +1 -1
- package/out/concepts/InterfaceParam__.js +9 -4
- package/out/concepts/InterfaceParam__.js.map +1 -1
- package/out/concepts/Interface__.js +19 -12
- package/out/concepts/Interface__.js.map +1 -1
- package/out/concepts/JSBlock__.js +3 -5
- package/out/concepts/JSBlock__.js.map +1 -1
- package/out/concepts/Logic__.js +44 -44
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/Module__.d.ts +116 -194
- package/out/concepts/Module__.js +31 -114
- package/out/concepts/Module__.js.map +1 -1
- package/out/concepts/Namespace__.d.ts +0 -86
- package/out/concepts/Namespace__.js +1 -108
- package/out/concepts/Namespace__.js.map +1 -1
- package/out/concepts/Param__.d.ts +3 -2
- package/out/concepts/Param__.js +15 -8
- package/out/concepts/Param__.js.map +1 -1
- package/out/concepts/ProcessElement__.js +38 -12
- package/out/concepts/ProcessElement__.js.map +1 -1
- package/out/concepts/Process__.d.ts +1 -1
- package/out/concepts/Process__.js +17 -10
- package/out/concepts/Process__.js.map +1 -1
- package/out/concepts/QueryAggregateExpression__.js +1 -1
- package/out/concepts/QueryAggregateExpression__.js.map +1 -1
- package/out/concepts/QueryFieldExpression__.d.ts +1 -0
- package/out/concepts/QueryFieldExpression__.js +11 -1
- package/out/concepts/QueryFieldExpression__.js.map +1 -1
- package/out/concepts/QueryFromExpression__.d.ts +4 -0
- package/out/concepts/QueryFromExpression__.js +13 -2
- package/out/concepts/QueryFromExpression__.js.map +1 -1
- package/out/concepts/QueryGroupByExpression__.d.ts +3 -0
- package/out/concepts/QueryGroupByExpression__.js +20 -0
- package/out/concepts/QueryGroupByExpression__.js.map +1 -1
- package/out/concepts/QueryJoinExpression__.d.ts +4 -0
- package/out/concepts/QueryJoinExpression__.js +14 -3
- package/out/concepts/QueryJoinExpression__.js.map +1 -1
- package/out/concepts/Return__.d.ts +1 -1
- package/out/concepts/Return__.js +16 -11
- package/out/concepts/Return__.js.map +1 -1
- package/out/concepts/Role__.js +10 -3
- package/out/concepts/Role__.js.map +1 -1
- package/out/concepts/SqlQueryComponent__.d.ts +14 -0
- package/out/concepts/SqlQueryComponent__.js +48 -5
- package/out/concepts/SqlQueryComponent__.js.map +1 -1
- package/out/concepts/StringLiteral__.d.ts +1 -1
- package/out/concepts/StringLiteral__.js +2 -9
- package/out/concepts/StringLiteral__.js.map +1 -1
- package/out/concepts/StructureProperty__.js +11 -10
- package/out/concepts/StructureProperty__.js.map +1 -1
- package/out/concepts/Structure__.js +19 -12
- package/out/concepts/Structure__.js.map +1 -1
- package/out/concepts/SwitchCase__.d.ts +1 -1
- package/out/concepts/SwitchCase__.js +23 -25
- package/out/concepts/SwitchCase__.js.map +1 -1
- package/out/concepts/SwitchStatement__.js +1 -6
- package/out/concepts/SwitchStatement__.js.map +1 -1
- package/out/concepts/TypeAnnotation__.d.ts +8 -0
- package/out/concepts/TypeAnnotation__.js +53 -3
- package/out/concepts/TypeAnnotation__.js.map +1 -1
- package/out/concepts/Variable__.d.ts +1 -1
- package/out/concepts/Variable__.js +16 -11
- package/out/concepts/Variable__.js.map +1 -1
- package/out/concepts/ViewElement__.js +25 -20
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.d.ts +1 -3
- package/out/concepts/View__.js +42 -36
- package/out/concepts/View__.js.map +1 -1
- package/out/concepts/WhileStatement__.js +4 -4
- package/out/concepts/WhileStatement__.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.auth.js +20 -0
- package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.configuration.js +1 -1
- package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.interface.d.ts +2 -0
- package/out/concepts/basics/stdlib/nasl.interface.js +4 -4
- package/out/concepts/basics/stdlib/nasl.interface.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.process.d.ts +4 -0
- package/out/concepts/basics/stdlib/nasl.process.js +410 -0
- package/out/concepts/basics/stdlib/nasl.process.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.ui.js +1 -11
- package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.util.js +270 -8
- package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
- package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js +1 -1
- package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js.map +1 -1
- package/out/concepts/basics/types/index.d.ts +2 -0
- package/out/concepts/basics/types/index.js +6 -1
- package/out/concepts/basics/types/index.js.map +1 -1
- package/out/concepts/index__.d.ts +1 -0
- package/out/concepts/index__.js +1 -0
- package/out/concepts/index__.js.map +1 -1
- package/out/enums/KEYWORDS.js +0 -7
- package/out/enums/KEYWORDS.js.map +1 -1
- package/out/generator/genBundleFiles.d.ts +3 -1
- package/out/generator/genBundleFiles.js +23 -5
- package/out/generator/genBundleFiles.js.map +1 -1
- package/out/generator/genMetaData.d.ts +1 -0
- package/out/generator/genMetaData.js +20 -12
- package/out/generator/genMetaData.js.map +1 -1
- package/out/index.d.ts +1 -1
- package/out/index.js +2 -1
- package/out/index.js.map +1 -1
- package/out/manager/diagnostic.d.ts +1 -1
- package/out/server/createUiTs.js +1 -0
- package/out/server/createUiTs.js.map +1 -1
- package/out/{test/integration/connect-file copy.d.ts → server/extendBaseNode.d.ts} +0 -0
- package/out/server/extendBaseNode.js +323 -0
- package/out/server/extendBaseNode.js.map +1 -0
- package/out/server/getLogics.js +49 -2
- package/out/server/getLogics.js.map +1 -1
- package/out/server/getMemberIdentifier.js +52 -2
- package/out/server/getMemberIdentifier.js.map +1 -1
- package/out/server/getProcesses.d.ts +8 -2
- package/out/server/getProcesses.js +228 -20
- package/out/server/getProcesses.js.map +1 -1
- package/out/server/getScope.d.ts +1 -0
- package/out/server/getScope.js +4 -0
- package/out/server/getScope.js.map +1 -1
- package/out/server/index.d.ts +1 -0
- package/out/server/index.js +1 -0
- package/out/server/index.js.map +1 -1
- package/out/server/naslServer.d.ts +8 -5
- package/out/server/naslServer.js +314 -383
- package/out/server/naslServer.js.map +1 -1
- package/out/server/process2LogicNamespace.js +10 -1
- package/out/server/process2LogicNamespace.js.map +1 -1
- package/out/server/translator.d.ts +1 -1
- package/out/server/translator.js +40 -2
- package/out/server/translator.js.map +1 -1
- package/out/service/creator/errHandles.js +5 -0
- package/out/service/creator/errHandles.js.map +1 -1
- package/out/service/storage/init.d.ts +1 -0
- package/out/service/storage/init.js +113 -94
- package/out/service/storage/init.js.map +1 -1
- package/out/templator/genCreateBlock.js +34 -24
- package/out/templator/genCreateBlock.js.map +1 -1
- package/out/templator/genCurdEditMultipleKeyBlock.js +28 -18
- package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
- package/out/templator/genCurdMultipleKeyBlock.js +45 -29
- package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
- package/out/templator/genEditTableBlock.js +15 -13
- package/out/templator/genEditTableBlock.js.map +1 -1
- package/out/templator/genEnumSelectBlock.js +1 -1
- package/out/templator/genEnumSelectBlock.js.map +1 -1
- package/out/templator/genGetBlock.js +1 -1
- package/out/templator/genGetBlock.js.map +1 -1
- package/out/templator/genGridViewBlock.js +29 -24
- package/out/templator/genGridViewBlock.js.map +1 -1
- package/out/templator/genListViewBlock.js +7 -5
- package/out/templator/genListViewBlock.js.map +1 -1
- package/out/templator/genQueryComponent.js +31 -29
- package/out/templator/genQueryComponent.js.map +1 -1
- package/out/templator/genSelectBlock.js +13 -22
- package/out/templator/genSelectBlock.js.map +1 -1
- package/out/templator/genTableBlock.js +31 -21
- package/out/templator/genTableBlock.js.map +1 -1
- package/out/templator/genUpdateBlock.js +35 -25
- package/out/templator/genUpdateBlock.js.map +1 -1
- package/out/templator/utils.d.ts +5 -3
- package/out/templator/utils.js +2 -1
- package/out/templator/utils.js.map +1 -1
- package/out/test/integration/connect-file.js +6 -6
- package/out/test/integration/connect-file.js.map +1 -1
- package/out/translator/index.js +1 -1
- package/out/translator/index.js.map +1 -1
- package/out/utils/index.d.ts +5 -0
- package/out/utils/index.js +50 -1
- package/out/utils/index.js.map +1 -1
- package/package.json +1 -2
- package/src/automate/engine/index.js +33 -8
- package/src/automate/engine/operators.js +114 -17
- package/src/automate/engine/uniqueName.js +77 -9
- package/src/automate/engine/utils.js +110 -69
- package/src/automate/template/process.js +10999 -0
- package/src/bak/translator.js +1 -0
- package/src/common/BaseNode.ts +35 -7
- package/src/concepts/App__.ts +132 -131
- package/src/concepts/Assignee__.ts +30 -0
- package/src/concepts/BindAttribute__.ts +2 -2
- package/src/concepts/BindDirective__.ts +9 -7
- package/src/concepts/BindEvent__.ts +14 -6
- package/src/concepts/BooleanLiteral__.ts +12 -0
- package/src/concepts/CallFunction__.ts +7 -4
- package/src/concepts/CallLogic__.ts +47 -32
- package/src/concepts/CallQueryComponent__.ts +352 -101
- package/src/concepts/Comment__.ts +1 -1
- package/src/concepts/ConfigGroup__.ts +3 -1
- package/src/concepts/ConfigProperty__.ts +4 -0
- package/src/concepts/Configuration__.ts +3 -0
- package/src/concepts/Constant__.ts +6 -6
- package/src/concepts/DataSource__.ts +391 -0
- package/src/concepts/Destination__.ts +22 -8
- package/src/concepts/End__.ts +2 -2
- package/src/concepts/EntityIndex__.ts +11 -2
- package/src/concepts/EntityProperty__.ts +23 -7
- package/src/concepts/Entity__.ts +38 -14
- package/src/concepts/Enum__.ts +15 -4
- package/src/concepts/ForEachStatement__.ts +2 -2
- package/src/concepts/Function__.ts +95 -1
- package/src/concepts/Identifier__.ts +5 -14
- package/src/concepts/IfStatement__.ts +9 -9
- package/src/concepts/InterfaceParam__.ts +9 -4
- package/src/concepts/Interface__.ts +20 -12
- package/src/concepts/JSBlock__.ts +3 -12
- package/src/concepts/Logic__.ts +45 -79
- package/src/concepts/Module__.ts +141 -342
- package/src/concepts/Namespace__.ts +1 -204
- package/src/concepts/Param__.ts +17 -9
- package/src/concepts/ProcessElement__.ts +42 -15
- package/src/concepts/Process__.ts +18 -12
- package/src/concepts/QueryAggregateExpression__.ts +1 -1
- package/src/concepts/QueryFieldExpression__.ts +13 -1
- package/src/concepts/QueryFromExpression__.ts +13 -2
- package/src/concepts/QueryGroupByExpression__.ts +23 -0
- package/src/concepts/QueryJoinExpression__.ts +14 -3
- package/src/concepts/Return__.ts +16 -11
- package/src/concepts/Role__.ts +10 -4
- package/src/concepts/SqlQueryComponent__.ts +47 -11
- package/src/concepts/StringLiteral__.ts +2 -9
- package/src/concepts/StructureProperty__.ts +11 -14
- package/src/concepts/Structure__.ts +19 -11
- package/src/concepts/SwitchCase__.ts +23 -27
- package/src/concepts/SwitchStatement__.ts +1 -5
- package/src/concepts/TypeAnnotation__.ts +52 -3
- package/src/concepts/Variable__.ts +16 -11
- package/src/concepts/ViewElement__.ts +26 -39
- package/src/concepts/View__.ts +45 -38
- package/src/concepts/WhileStatement__.ts +4 -4
- package/src/concepts/basics/stdlib/nasl.auth.ts +20 -0
- package/src/concepts/basics/stdlib/nasl.configuration.ts +1 -1
- package/src/concepts/basics/stdlib/nasl.interface.ts +1 -1
- package/src/concepts/basics/stdlib/nasl.process.ts +406 -0
- package/src/concepts/basics/stdlib/nasl.ui.ts +1 -11
- package/src/concepts/basics/stdlib/nasl.util.ts +271 -8
- package/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts +1 -1
- package/src/concepts/basics/types/index.ts +2 -0
- package/src/concepts/index__.ts +1 -0
- package/src/enums/KEYWORDS.ts +0 -7
- package/src/generator/genBundleFiles.ts +28 -7
- package/src/generator/genMetaData.ts +22 -13
- package/src/index.ts +1 -1
- package/src/manager/diagnostic.ts +1 -1
- package/src/server/createUiTs.ts +1 -0
- package/src/server/extendBaseNode.ts +318 -0
- package/src/server/getLogics.ts +51 -5
- package/src/server/getMemberIdentifier.ts +53 -2
- package/src/server/getProcesses.ts +238 -21
- package/src/server/getScope.ts +5 -0
- package/src/server/index.ts +1 -0
- package/src/server/naslServer.ts +322 -380
- package/src/server/process2LogicNamespace.ts +29 -19
- package/src/server/translator.ts +42 -2
- package/src/service/creator/errHandles.js +6 -0
- package/src/service/storage/init.ts +115 -97
- package/src/templator/genCreateBlock.ts +35 -26
- package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -21
- package/src/templator/genCurdMultipleKeyBlock.ts +46 -31
- package/src/templator/genEditTableBlock.ts +17 -14
- package/src/templator/genEnumSelectBlock.ts +1 -1
- package/src/templator/genGetBlock.ts +1 -1
- package/src/templator/genGridViewBlock.ts +30 -25
- package/src/templator/genListViewBlock.ts +10 -7
- package/src/templator/genQueryComponent.ts +34 -30
- package/src/templator/genSelectBlock.ts +14 -23
- package/src/templator/genTableBlock.ts +32 -23
- package/src/templator/genUpdateBlock.ts +36 -26
- package/src/templator/utils.ts +5 -2
- package/src/test/integration/connect-file.ts +6 -6
- package/src/translator/index.ts +1 -1
- package/src/utils/index.ts +51 -0
- package/out/concepts/basics/stdlib/nasl.browser copy.d.ts +0 -3
- package/out/concepts/basics/stdlib/nasl.browser copy.js +0 -70
- package/out/concepts/basics/stdlib/nasl.browser copy.js.map +0 -1
- package/out/terms/LEVEL_NAME_MAP.d.ts +0 -26
- package/out/terms/LEVEL_NAME_MAP.js +0 -30
- package/out/terms/LEVEL_NAME_MAP.js.map +0 -1
- package/out/test/integration/connect-file copy.js +0 -50
- package/out/test/integration/connect-file copy.js.map +0 -1
- package/out/test/integration/node-nasl-server.d.ts +0 -1
- package/out/test/integration/node-nasl-server.js +0 -41
- package/out/test/integration/node-nasl-server.js.map +0 -1
package/out/utils/index.js
CHANGED
|
@@ -14,12 +14,61 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.shouldLoadCss = exports.specialOfficialCustoms = exports.officialCustoms = exports.waitPromise = exports.clearObjectDeep = exports.clearObject = exports.throttle = exports.getGlobalEnv = void 0;
|
|
17
|
+
exports.shouldLoadCss = exports.specialOfficialCustoms = exports.officialCustoms = exports.waitPromise = exports.clearObjectDeep = exports.clearObject = exports.throttle = exports.getGlobalEnv = exports.findConceptValueFromNamespace = exports.findConceptKeyWordIndexFromNamespace = exports.findConceptKeyWordByNamespace = exports.findClosestModule = void 0;
|
|
18
18
|
__exportStar(require("./string"), exports);
|
|
19
19
|
__exportStar(require("./traverse"), exports);
|
|
20
20
|
__exportStar(require("./logger"), exports);
|
|
21
21
|
const compare_versions_1 = require("compare-versions");
|
|
22
22
|
const traverse_1 = require("./traverse");
|
|
23
|
+
// 查找最近的模块
|
|
24
|
+
function findClosestModule(node) {
|
|
25
|
+
let moduleNode = node;
|
|
26
|
+
while (moduleNode && !['App', 'Module'].includes(moduleNode.concept)) {
|
|
27
|
+
moduleNode = moduleNode.parentNode;
|
|
28
|
+
}
|
|
29
|
+
return moduleNode;
|
|
30
|
+
}
|
|
31
|
+
exports.findClosestModule = findClosestModule;
|
|
32
|
+
// 从namespace获取关键字
|
|
33
|
+
function findConceptKeyWordByNamespace(namespace) {
|
|
34
|
+
const namespaceArr = namespace?.split('.') || [];
|
|
35
|
+
const start = namespaceArr[0];
|
|
36
|
+
const mod = start === 'app' ? 1 : 0;
|
|
37
|
+
const keywordViews = namespaceArr.filter((namespaceItem, index) => index % 2 === mod);
|
|
38
|
+
return keywordViews.pop();
|
|
39
|
+
}
|
|
40
|
+
exports.findConceptKeyWordByNamespace = findConceptKeyWordByNamespace;
|
|
41
|
+
// 从namespace中查找concept关键字
|
|
42
|
+
function findConceptKeyWordIndexFromNamespace(namespace, keyword) {
|
|
43
|
+
const namespaceArr = namespace?.split('.') || [];
|
|
44
|
+
const start = namespaceArr[0];
|
|
45
|
+
const mod = start === 'app' ? 1 : 0;
|
|
46
|
+
return namespaceArr.findIndex((namespaceItem, index) => {
|
|
47
|
+
if (index % 2 === mod) {
|
|
48
|
+
return namespaceItem === keyword;
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
exports.findConceptKeyWordIndexFromNamespace = findConceptKeyWordIndexFromNamespace;
|
|
54
|
+
// 从namespace中查找concept,返回找到类型对应的值
|
|
55
|
+
// 如 namespace : app.datasource.defaultDS keyword: datasource
|
|
56
|
+
// 返回 defaultDS
|
|
57
|
+
function findConceptValueFromNamespace(namespace, keyword) {
|
|
58
|
+
const namespaceArr = namespace?.split('.') || [];
|
|
59
|
+
const start = namespaceArr[0];
|
|
60
|
+
const mod = start === 'app' ? 1 : 0;
|
|
61
|
+
const findIndex = namespaceArr.findIndex((namespaceItem, index) => {
|
|
62
|
+
if (index % 2 === mod) {
|
|
63
|
+
return namespaceItem === keyword;
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
});
|
|
67
|
+
if (findIndex)
|
|
68
|
+
return namespaceArr[findIndex + 1];
|
|
69
|
+
return '';
|
|
70
|
+
}
|
|
71
|
+
exports.findConceptValueFromNamespace = findConceptValueFromNamespace;
|
|
23
72
|
function getGlobalEnv() {
|
|
24
73
|
return typeof window !== 'undefined' ? window.appInfo.env : global.appInfoEnv;
|
|
25
74
|
}
|
package/out/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,6CAA2B;AAC3B,2CAAyB;AAEzB,uDAA2C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lcap/nasl",
|
|
3
3
|
"description": "NetEase Application Specific Language",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "2.12.0-beta.1",
|
|
5
5
|
"author": "Forrest <rainforest92@126.com>",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "tsc -watch -p ./",
|
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
"fs-extra": "^10.1.0",
|
|
39
39
|
"json-stringify-safe": "^5.0.1",
|
|
40
40
|
"lodash": "^4.17.21",
|
|
41
|
-
"module-alias": "^2.2.2",
|
|
42
41
|
"pluralize": "^8.0.0",
|
|
43
42
|
"postcss": "^8.4.14",
|
|
44
43
|
"qs": "^6.10.1",
|
|
@@ -3,8 +3,9 @@ import { BaseNode } from '../../common/BaseNode';
|
|
|
3
3
|
import { tracking, TRACK_TYPE, IGNORE_PROPERTY } from './utils';
|
|
4
4
|
import { getConceptConstructor, getConceptMeta } from '../../decorators/index';
|
|
5
5
|
// import { unique, firstUpperCase } from '../../utils/string';
|
|
6
|
-
import
|
|
7
|
-
import operatorModule from './operators';
|
|
6
|
+
import {uniqueName, componentUniqueName} from './uniqueName';
|
|
7
|
+
import { ops as operatorModule, ComponentOps } from './operators';
|
|
8
|
+
import { processComponent } from '../template/process';
|
|
8
9
|
|
|
9
10
|
let id = 0;
|
|
10
11
|
class TemplateMeta {
|
|
@@ -23,10 +24,12 @@ class TemplateMeta {
|
|
|
23
24
|
|
|
24
25
|
addRootBinds(propertyName, templateMeta) {
|
|
25
26
|
// App.[propertyName].push(templateMeta.name)
|
|
26
|
-
this.rootBinds.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
if(!this.rootBinds.find(b => b.propertyName === propertyName)) {
|
|
28
|
+
this.rootBinds.push({
|
|
29
|
+
propertyName,
|
|
30
|
+
value: templateMeta.name,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
30
33
|
}
|
|
31
34
|
|
|
32
35
|
addBinds(type, propertyName, templateMeta) {
|
|
@@ -324,6 +327,7 @@ export function autoTemplate(node) {
|
|
|
324
327
|
const stack = [];
|
|
325
328
|
const startNode = node;
|
|
326
329
|
let rootNode = true;
|
|
330
|
+
const finalOps = [];
|
|
327
331
|
function iterator(node) {
|
|
328
332
|
if (node && !visitedMap.has(node)) {
|
|
329
333
|
const meta = new TemplateMeta(node);
|
|
@@ -341,12 +345,21 @@ export function autoTemplate(node) {
|
|
|
341
345
|
break;
|
|
342
346
|
case TRACK_TYPE.PROPERTY:
|
|
343
347
|
case TRACK_TYPE.ARRAY:
|
|
344
|
-
iterator(property);
|
|
348
|
+
iterator(property);
|
|
345
349
|
const pmeta = visitedMap.get(property);
|
|
346
350
|
meta.addBinds(type, propertyName, pmeta);
|
|
347
351
|
break;
|
|
352
|
+
case TRACK_TYPE.ARRAY_NO_FURTHER:
|
|
353
|
+
finalOps.push(() => {
|
|
354
|
+
const pmeta = visitedMap.get(property);
|
|
355
|
+
if(pmeta) {
|
|
356
|
+
meta.addBinds(TRACK_TYPE.ARRAY, propertyName, pmeta);
|
|
357
|
+
}
|
|
358
|
+
})
|
|
359
|
+
break;
|
|
348
360
|
case TRACK_TYPE.CALLEE:
|
|
349
361
|
iterator(rootNode);
|
|
362
|
+
iterator(calleeNode);
|
|
350
363
|
const cmeta = visitedMap.get(calleeNode);
|
|
351
364
|
if (AppPropertyName) {
|
|
352
365
|
meta.addRootBinds(AppPropertyName, visitedMap.get(rootNode));
|
|
@@ -399,6 +412,7 @@ export function autoTemplate(node) {
|
|
|
399
412
|
}
|
|
400
413
|
|
|
401
414
|
iterator(node);
|
|
415
|
+
finalOps.forEach(f => { f(); });
|
|
402
416
|
return autoScript(stack);
|
|
403
417
|
}
|
|
404
418
|
|
|
@@ -425,7 +439,18 @@ export function applyTemplate(script, app, rootBindCallback, roleCallback, final
|
|
|
425
439
|
// 为了兼容 2.11 老模板
|
|
426
440
|
if(importModule) {
|
|
427
441
|
importModule('operators', operatorModule);
|
|
428
|
-
importModule('uniqueName',
|
|
442
|
+
importModule('uniqueName', uniqueName);
|
|
429
443
|
}
|
|
430
444
|
execTemplate(app, getConceptConstructor, getConceptMeta, BaseNode, rootBindCallback, roleCallback, finalCallback);
|
|
431
445
|
}
|
|
446
|
+
|
|
447
|
+
export function applyDropComponent(app, view, element) {
|
|
448
|
+
const { execTemplate, importModule } = processComponent;
|
|
449
|
+
// 为了兼容 2.11 老模板
|
|
450
|
+
if (importModule) {
|
|
451
|
+
importModule('operators', ComponentOps);
|
|
452
|
+
importModule('uniqueName', componentUniqueName);
|
|
453
|
+
}
|
|
454
|
+
view.collectExistingViewElementName();
|
|
455
|
+
return execTemplate(app, view, element);
|
|
456
|
+
}
|
|
@@ -1,28 +1,76 @@
|
|
|
1
1
|
import { BaseNode } from '../../common/BaseNode';
|
|
2
2
|
import { getConceptConstructor, getConceptMeta } from '../../decorators/index';
|
|
3
|
-
import { firstUpperCase } from '../../utils/string';
|
|
3
|
+
import { firstUpperCase, unique } from '../../utils/string';
|
|
4
4
|
|
|
5
5
|
function instanceOfBaseNode(item) {
|
|
6
6
|
return (item instanceof BaseNode);
|
|
7
7
|
}
|
|
8
|
-
const ops = {
|
|
8
|
+
export const ops = {
|
|
9
9
|
_set(item, propertyName, value, callback) {
|
|
10
|
-
if(instanceOfBaseNode(value)) {
|
|
10
|
+
if (instanceOfBaseNode(value)) {
|
|
11
11
|
value.parentNode = item;
|
|
12
12
|
value.parentKey = propertyName;
|
|
13
13
|
}
|
|
14
|
-
if(item[propertyName] !== value) {
|
|
14
|
+
if (item[propertyName] !== value) {
|
|
15
15
|
item.update({
|
|
16
16
|
[propertyName]: value,
|
|
17
17
|
});
|
|
18
|
-
|
|
19
|
-
if(instanceOfBaseNode(value) && callback) {
|
|
18
|
+
|
|
19
|
+
if (instanceOfBaseNode(value) && callback) {
|
|
20
20
|
callback(item[propertyName]);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
_push(item, propertyName, value) {
|
|
25
|
-
if(
|
|
25
|
+
if (propertyName === 'dataSources' && value.concept === 'DataSource') {
|
|
26
|
+
// 合并策略
|
|
27
|
+
const exsitDataSource = item.dataSources.find((d) => d.name === value.name);
|
|
28
|
+
if (exsitDataSource) {
|
|
29
|
+
const nameSet = new Set(exsitDataSource.getEntityExistingNames());
|
|
30
|
+
value.entities.forEach((e) => {
|
|
31
|
+
const n = unique(e.name, nameSet, 1, true);
|
|
32
|
+
nameSet.add(n);
|
|
33
|
+
e.update({
|
|
34
|
+
name: n,
|
|
35
|
+
});
|
|
36
|
+
e.parentNode = exsitDataSource;
|
|
37
|
+
exsitDataSource.entities.push(e);
|
|
38
|
+
const index = exsitDataSource.entities.length;
|
|
39
|
+
e.create({
|
|
40
|
+
index,
|
|
41
|
+
parentNode: exsitDataSource,
|
|
42
|
+
parentKey: 'entities',
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
return;
|
|
46
|
+
} else {
|
|
47
|
+
const dataSourceGroup = item.configuration?.getGroup('dataSource');
|
|
48
|
+
dataSourceGroup.addConfigProperty({
|
|
49
|
+
name: value.name,
|
|
50
|
+
description: '',
|
|
51
|
+
values: [
|
|
52
|
+
{ env: 'dev', value: '', concept: 'ConfigPropertyValue' },
|
|
53
|
+
{ env: 'online', value: '', concept: 'ConfigPropertyValue' },
|
|
54
|
+
],
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (item.concept === 'App' && propertyName === 'entities' && value.concept === 'Entity') {
|
|
59
|
+
// 兼容 2.11之前无 datasource 模板
|
|
60
|
+
const defaultDS = item.dataSources.find((d) => d.name === 'defaultDS');
|
|
61
|
+
// defaultDS.addEntity(value);
|
|
62
|
+
value.parentNode = defaultDS;
|
|
63
|
+
value.parentKey = 'entities';
|
|
64
|
+
defaultDS.entities.push(value);
|
|
65
|
+
const index = defaultDS.entities.length;
|
|
66
|
+
value.create({
|
|
67
|
+
index,
|
|
68
|
+
parentNode: defaultDS,
|
|
69
|
+
parentKey: 'entities',
|
|
70
|
+
});
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (!item[propertyName]) {
|
|
26
74
|
item[propertyName] = [];
|
|
27
75
|
}
|
|
28
76
|
value.parentNode = item;
|
|
@@ -39,10 +87,10 @@ const ops = {
|
|
|
39
87
|
const _ctor = getConceptConstructor(concept);
|
|
40
88
|
const item = new _ctor();
|
|
41
89
|
const { propertyMap } = getConceptMeta(concept);
|
|
42
|
-
for(const p of propertyMap) {
|
|
90
|
+
for (const p of propertyMap) {
|
|
43
91
|
const [propertyName] = p;
|
|
44
92
|
const t = item[propertyName];
|
|
45
|
-
if(Array.isArray(t)) {
|
|
93
|
+
if (Array.isArray(t)) {
|
|
46
94
|
ops._set(item, propertyName, []);
|
|
47
95
|
}
|
|
48
96
|
}
|
|
@@ -50,14 +98,63 @@ const ops = {
|
|
|
50
98
|
},
|
|
51
99
|
_addModule(app, name, belongs, data) {
|
|
52
100
|
const ms = app[belongs];
|
|
53
|
-
const exist = ms.find(m => m.name === name);
|
|
54
|
-
if(!exist) {
|
|
55
|
-
app[
|
|
101
|
+
const exist = ms.find((m) => m.name === name);
|
|
102
|
+
if (!exist) {
|
|
103
|
+
app['addModuleIn' + firstUpperCase(belongs)](data);
|
|
56
104
|
}
|
|
57
105
|
},
|
|
58
|
-
_bindRoles(){
|
|
59
|
-
return Array.prototype.map.call(arguments, r => r.name);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
106
|
+
_bindRoles() {
|
|
107
|
+
return Array.prototype.map.call(arguments, (r) => r.name);
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
//组件模板的导入有些不同
|
|
111
|
+
let handleDatas = [];
|
|
112
|
+
let dynamicNames = {};
|
|
113
|
+
export const ComponentOps = {
|
|
114
|
+
...ops,
|
|
115
|
+
_set(item, propertyName, value, callback) {
|
|
116
|
+
if (instanceOfBaseNode(value)) {
|
|
117
|
+
value.parentNode = item;
|
|
118
|
+
value.parentKey = propertyName;
|
|
119
|
+
}
|
|
120
|
+
if (item[propertyName] !== value) {
|
|
121
|
+
//指view的全局逻辑或全局变量名称修改
|
|
122
|
+
if (propertyName === 'name' && dynamicNames[item.name]) {
|
|
123
|
+
dynamicNames[item.name] = value;
|
|
124
|
+
}
|
|
125
|
+
item.update({
|
|
126
|
+
[propertyName]: value,
|
|
127
|
+
});
|
|
128
|
+
//有函数或者组件引用了view的全局逻辑或全局变量名称
|
|
129
|
+
if ((propertyName === 'name' || propertyName === 'calleeName') && dynamicNames[value]
|
|
130
|
+
&& item.parentKey !== 'property' && item.concept !== 'StructureProperty') {
|
|
131
|
+
handleDatas.push({
|
|
132
|
+
item,
|
|
133
|
+
propertyName,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
if (instanceOfBaseNode(value) && callback) {
|
|
138
|
+
callback(item[propertyName]);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
_rename() {
|
|
143
|
+
handleDatas.forEach(({ item, propertyName }) => {
|
|
144
|
+
const changeName = item[propertyName];
|
|
145
|
+
if (dynamicNames[changeName] && changeName !== dynamicNames[changeName])
|
|
146
|
+
item.update({
|
|
147
|
+
[propertyName]: dynamicNames[changeName],
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
handleDatas = [];
|
|
151
|
+
dynamicNames = {};
|
|
152
|
+
},
|
|
153
|
+
_startNames(...initialNames) {
|
|
154
|
+
initialNames.forEach((name) => {
|
|
155
|
+
dynamicNames[name] = name;
|
|
156
|
+
});
|
|
157
|
+
},
|
|
158
|
+
};
|
|
62
159
|
|
|
63
|
-
export default ops;
|
|
160
|
+
export default ops;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { unique } from '../../utils/string';
|
|
2
|
-
class uniqueName {
|
|
2
|
+
export class uniqueName {
|
|
3
3
|
NamesWeakMap = new Map();
|
|
4
4
|
initAppUniqueNames(app) {
|
|
5
5
|
const NamesWeakMap = this.NamesWeakMap;
|
|
6
|
-
|
|
6
|
+
const defaultDS = app.dataSources.find(d => d.name === 'defaultDS');
|
|
7
|
+
NamesWeakMap.set('defaultDS', new Set(defaultDS.getEntityExistingNames()));
|
|
8
|
+
|
|
9
|
+
// NamesWeakMap.set('DataSource', new Set(app.getDataSourceExistingNames()));
|
|
7
10
|
NamesWeakMap.set('Structure', new Set(app.getStructureExistingNames()));
|
|
8
11
|
NamesWeakMap.set('Enum', new Set(app.getEnumExistingNames()));
|
|
9
12
|
NamesWeakMap.set('Logic', new Set(app.getLogicExistingNames()));
|
|
@@ -15,22 +18,87 @@ class uniqueName {
|
|
|
15
18
|
getGenUniqNameFunctionName(item, concept) {
|
|
16
19
|
const p = item.parentNode;
|
|
17
20
|
const NamesWeakMap = this.NamesWeakMap;
|
|
18
|
-
if(!p) {
|
|
21
|
+
if (!p) {
|
|
22
|
+
// 添加至顶层 App 的对象
|
|
23
|
+
if(concept === 'DataSource') {
|
|
24
|
+
return item.name;
|
|
25
|
+
}
|
|
26
|
+
if(concept === 'Entity') {
|
|
27
|
+
// Entity 是为了兼容 2.11 及之前的模板
|
|
28
|
+
concept = 'defaultDS';
|
|
29
|
+
}
|
|
30
|
+
const nameSet = NamesWeakMap.get(concept);
|
|
31
|
+
const n = unique(item.name, nameSet, 1, true);
|
|
32
|
+
nameSet.add(n);
|
|
33
|
+
return n;
|
|
34
|
+
}
|
|
35
|
+
const f1 = p['get' + concept + 'UniqueName'];
|
|
36
|
+
const f2 = p['get' + concept + 'ExistingNames'];
|
|
37
|
+
if (f1 && f2) {
|
|
38
|
+
const names = f2.call(p);
|
|
39
|
+
const t = names.filter((n) => n === item.name);
|
|
40
|
+
if (t.length > 1) {
|
|
41
|
+
return f1.call(p, item.name);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return item.name;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export class componentUniqueName {
|
|
49
|
+
NamesWeakMap = new Map();
|
|
50
|
+
view = null;
|
|
51
|
+
initAppUniqueNames(app, view) {
|
|
52
|
+
const NamesWeakMap = this.NamesWeakMap;
|
|
53
|
+
this.view = view;
|
|
54
|
+
NamesWeakMap.set('DataSource', new Set(app.getDataSourceExistingNames()));
|
|
55
|
+
NamesWeakMap.set('Structure', new Set(app.getStructureExistingNames()));
|
|
56
|
+
NamesWeakMap.set('Enum', new Set(app.getEnumExistingNames()));
|
|
57
|
+
NamesWeakMap.set('Logic', new Set(app.getLogicExistingNames()));
|
|
58
|
+
NamesWeakMap.set('Interface', new Set(app.getInterfaceExistingNames()));
|
|
59
|
+
NamesWeakMap.set('View', new Set(app.getViewExistingNames()));
|
|
60
|
+
NamesWeakMap.set('Process', new Set(app.getProcessExistingNames()));
|
|
61
|
+
NamesWeakMap.set('Role', new Set(app.getRoleExistingNames()));
|
|
62
|
+
// .... 这里要补一下 view 下面 variable, logics的名字
|
|
63
|
+
NamesWeakMap.set('Variable', new Set(view.getVarExistingNames()));
|
|
64
|
+
NamesWeakMap.set('Logic', new Set(view.getLogicExistingNames()));
|
|
65
|
+
}
|
|
66
|
+
getGenUniqNameFunctionName(item, concept) {
|
|
67
|
+
const p = concept === 'ViewElement' ? this.view : item.parentNode;
|
|
68
|
+
const NamesWeakMap = this.NamesWeakMap;
|
|
69
|
+
if (!p) {
|
|
19
70
|
const nameSet = NamesWeakMap.get(concept);
|
|
20
71
|
const n = unique(item.name, nameSet, 1, true);
|
|
21
72
|
nameSet.add(n);
|
|
22
73
|
return n;
|
|
23
74
|
}
|
|
24
|
-
const f1 = p[
|
|
25
|
-
const f2 = p[
|
|
26
|
-
if(f1 && f2) {
|
|
75
|
+
const f1 = p['get' + concept + 'UniqueName'];
|
|
76
|
+
const f2 = p['get' + concept + 'ExistingNames'];
|
|
77
|
+
if (f1 && f2) {
|
|
27
78
|
const names = f2.call(p);
|
|
28
|
-
const t = names.filter(n => n === item.name);
|
|
29
|
-
if(t.length > 1) {
|
|
79
|
+
const t = names.filter((n) => n === item.name);
|
|
80
|
+
if (t.length > 1) {
|
|
81
|
+
return f1.call(p, item.name);
|
|
82
|
+
}
|
|
83
|
+
if (concept === 'ViewElement' && t.length)
|
|
84
|
+
return f1.call(p, item.name);
|
|
85
|
+
}
|
|
86
|
+
// 逻辑里面的变量也需要再判断
|
|
87
|
+
if (concept === 'Variable' && f1) {
|
|
88
|
+
const variables = p.getVarExistingNames();
|
|
89
|
+
if (Array.isArray(this.view.params)) {
|
|
90
|
+
variables.push(...this.view.params.map((item) => item.name));
|
|
91
|
+
}
|
|
92
|
+
if (Array.isArray(this.view.variables)) {
|
|
93
|
+
variables.push(...this.view.variables.map((item) => item.name));
|
|
94
|
+
}
|
|
95
|
+
const t = variables.filter((n) => n === item.name);
|
|
96
|
+
if (t.length > 1) {
|
|
30
97
|
return f1.call(p, item.name);
|
|
31
98
|
}
|
|
32
99
|
}
|
|
33
100
|
return item.name;
|
|
34
101
|
}
|
|
35
102
|
}
|
|
36
|
-
|
|
103
|
+
|
|
104
|
+
export default uniqueName;
|