@lcap/nasl 1.0.0-alpha.13 → 1.0.0-alpha.16
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 -1
- package/out/automate/engine/index.js +73 -25
- package/out/automate/engine/index.js.map +1 -1
- package/out/automate/engine/utils.js +7 -6
- package/out/automate/engine/utils.js.map +1 -1
- package/out/common/BaseNode.d.ts +5 -4
- package/out/common/BaseNode.js +48 -41
- package/out/common/BaseNode.js.map +1 -1
- package/out/concepts/App__.d.ts +18 -1
- package/out/concepts/App__.js +64 -24
- package/out/concepts/App__.js.map +1 -1
- package/out/concepts/Argument__.js +2 -2
- package/out/concepts/Argument__.js.map +1 -1
- package/out/concepts/Assignee__.d.ts +190 -0
- package/out/concepts/Assignee__.js +264 -0
- package/out/concepts/Assignee__.js.map +1 -0
- package/out/concepts/BinaryExpression__.js +6 -6
- package/out/concepts/BinaryExpression__.js.map +1 -1
- package/out/concepts/BindAttribute__.d.ts +19 -0
- package/out/concepts/BindAttribute__.js +36 -2
- package/out/concepts/BindAttribute__.js.map +1 -1
- package/out/concepts/BindDirective__.js +21 -1
- package/out/concepts/BindDirective__.js.map +1 -1
- package/out/concepts/BindEvent__.d.ts +1 -0
- package/out/concepts/BindEvent__.js +38 -14
- package/out/concepts/BindEvent__.js.map +1 -1
- package/out/concepts/CallFunction__.js +20 -7
- package/out/concepts/CallFunction__.js.map +1 -1
- package/out/concepts/CallInterface__.d.ts +11 -8
- package/out/concepts/CallInterface__.js +160 -23
- package/out/concepts/CallInterface__.js.map +1 -1
- package/out/concepts/CallLogic__.d.ts +1 -0
- package/out/concepts/CallLogic__.js +17 -7
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/CallQueryComponent__.d.ts +5 -1
- package/out/concepts/CallQueryComponent__.js +15 -11
- package/out/concepts/CallQueryComponent__.js.map +1 -1
- package/out/concepts/Comment__.js +6 -2
- package/out/concepts/Comment__.js.map +1 -1
- package/out/concepts/ConfigGroup__.js +1 -1
- package/out/concepts/ConfigGroup__.js.map +1 -1
- package/out/concepts/ConfigProperty__.js +1 -1
- package/out/concepts/ConfigProperty__.js.map +1 -1
- package/out/concepts/Configuration__.js +1 -1
- package/out/concepts/Configuration__.js.map +1 -1
- package/out/concepts/Destination__.d.ts +11 -0
- package/out/concepts/Destination__.js +59 -19
- package/out/concepts/Destination__.js.map +1 -1
- package/out/concepts/End__.js +10 -2
- package/out/concepts/End__.js.map +1 -1
- package/out/concepts/EntityProperty__.d.ts +7 -0
- package/out/concepts/EntityProperty__.js +60 -3
- package/out/concepts/EntityProperty__.js.map +1 -1
- package/out/concepts/Entity__.d.ts +4 -1
- package/out/concepts/Entity__.js +29 -12
- package/out/concepts/Entity__.js.map +1 -1
- package/out/concepts/Enum__.d.ts +4 -0
- package/out/concepts/Enum__.js +9 -6
- package/out/concepts/Enum__.js.map +1 -1
- package/out/concepts/Event__.js +1 -1
- package/out/concepts/Event__.js.map +1 -1
- package/out/concepts/ForEachStatement__.js +8 -12
- package/out/concepts/ForEachStatement__.js.map +1 -1
- package/out/concepts/Function__.js +5 -5
- package/out/concepts/Function__.js.map +1 -1
- package/out/concepts/Identifier__.js +26 -24
- package/out/concepts/Identifier__.js.map +1 -1
- package/out/concepts/IfStatement__.js +2 -2
- package/out/concepts/IfStatement__.js.map +1 -1
- package/out/concepts/InterfaceParam__.d.ts +2 -0
- package/out/concepts/InterfaceParam__.js +41 -21
- package/out/concepts/InterfaceParam__.js.map +1 -1
- package/out/concepts/Interface__.d.ts +3 -0
- package/out/concepts/Interface__.js +105 -9
- package/out/concepts/Interface__.js.map +1 -1
- package/out/concepts/LogicItem__.d.ts +2 -1
- package/out/concepts/LogicItem__.js +14 -0
- package/out/concepts/LogicItem__.js.map +1 -1
- package/out/concepts/Logic__.d.ts +3 -0
- package/out/concepts/Logic__.js +57 -16
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/MemberExpression__.js +13 -6
- package/out/concepts/MemberExpression__.js.map +1 -1
- package/out/concepts/Module__.d.ts +6 -0
- package/out/concepts/Module__.js +18 -8
- package/out/concepts/Module__.js.map +1 -1
- package/out/concepts/Namespace__.d.ts +4 -0
- package/out/concepts/Namespace__.js +23 -12
- package/out/concepts/Namespace__.js.map +1 -1
- package/out/concepts/Param__.d.ts +2 -1
- package/out/concepts/Param__.js +35 -22
- package/out/concepts/Param__.js.map +1 -1
- package/out/concepts/ProcessComponent__.js +2 -2
- package/out/concepts/ProcessComponent__.js.map +1 -1
- package/out/concepts/ProcessElement__.js +20 -18
- package/out/concepts/ProcessElement__.js.map +1 -1
- package/out/concepts/ProcessOutcome__.js +1 -1
- package/out/concepts/ProcessOutcome__.js.map +1 -1
- package/out/concepts/Process__.d.ts +6 -1
- package/out/concepts/Process__.js +18 -14
- 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/QueryFromExpression__.js +1 -1
- package/out/concepts/QueryFromExpression__.js.map +1 -1
- package/out/concepts/QueryJoinExpression__.js +2 -2
- package/out/concepts/QueryJoinExpression__.js.map +1 -1
- package/out/concepts/QuerySelectExpression__.js +1 -1
- package/out/concepts/QuerySelectExpression__.js.map +1 -1
- package/out/concepts/Return__.d.ts +1 -0
- package/out/concepts/Return__.js +38 -25
- package/out/concepts/Return__.js.map +1 -1
- package/out/concepts/SqlQueryComponent__.js +1 -1
- package/out/concepts/SqlQueryComponent__.js.map +1 -1
- package/out/concepts/StringLiteral__.d.ts +1 -1
- package/out/concepts/StringLiteral__.js +2 -2
- package/out/concepts/StringLiteral__.js.map +1 -1
- package/out/concepts/StructureProperty__.d.ts +5 -4
- package/out/concepts/StructureProperty__.js +54 -31
- package/out/concepts/StructureProperty__.js.map +1 -1
- package/out/concepts/Structure__.d.ts +1 -0
- package/out/concepts/Structure__.js +18 -5
- package/out/concepts/Structure__.js.map +1 -1
- package/out/concepts/SwitchCase__.js +3 -3
- package/out/concepts/SwitchCase__.js.map +1 -1
- package/out/concepts/SwitchStatement__.js +1 -1
- package/out/concepts/SwitchStatement__.js.map +1 -1
- package/out/concepts/TypeAnnotation__.d.ts +3 -5
- package/out/concepts/TypeAnnotation__.js +36 -14
- package/out/concepts/TypeAnnotation__.js.map +1 -1
- package/out/concepts/UnaryExpression__.js +4 -2
- package/out/concepts/UnaryExpression__.js.map +1 -1
- package/out/concepts/ValidationRule__.d.ts +1 -0
- package/out/concepts/ValidationRule__.js +27 -1
- package/out/concepts/ValidationRule__.js.map +1 -1
- package/out/concepts/Variable__.d.ts +1 -0
- package/out/concepts/Variable__.js +38 -25
- package/out/concepts/Variable__.js.map +1 -1
- package/out/concepts/ViewComponent__.js +5 -5
- package/out/concepts/ViewComponent__.js.map +1 -1
- package/out/concepts/ViewElement__.d.ts +7 -1
- package/out/concepts/ViewElement__.js +154 -117
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.d.ts +4 -0
- package/out/concepts/View__.js +38 -25
- 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/index.js +3 -1
- package/out/concepts/basics/stdlib/index.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.auth.d.ts +3 -0
- package/out/concepts/basics/stdlib/nasl.auth.js +30 -0
- package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -0
- package/out/concepts/basics/stdlib/nasl.browser copy.d.ts +3 -0
- package/out/concepts/basics/stdlib/nasl.browser copy.js +70 -0
- package/out/concepts/basics/stdlib/nasl.browser copy.js.map +1 -0
- package/out/concepts/basics/stdlib/nasl.browser.js +6 -35
- package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.configuration.d.ts +3 -0
- package/out/concepts/basics/stdlib/nasl.configuration.js +25 -0
- package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -0
- package/out/concepts/basics/stdlib/nasl.util.js +49 -41
- package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.validation.js +26 -20
- package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
- package/out/concepts/basics/types/coreTypeList.js +11 -11
- package/out/concepts/basics/types/coreTypeList.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 +1 -1
- package/out/enums/KEYWORDS.js.map +1 -1
- package/out/generator/genBundleFiles.d.ts +1 -0
- package/out/generator/genBundleFiles.js +122 -93
- package/out/generator/genBundleFiles.js.map +1 -1
- package/out/manager/diagnostic.d.ts +1 -1
- package/out/server/createUiTs.d.ts +1 -0
- package/out/server/createUiTs.js +19 -2
- package/out/server/createUiTs.js.map +1 -1
- package/out/server/entity2LogicNamespace.js +24 -9
- package/out/server/entity2LogicNamespace.js.map +1 -1
- package/out/server/getExtensionModules.js +2 -0
- package/out/server/getExtensionModules.js.map +1 -1
- package/out/server/getLogics.js +40 -56
- package/out/server/getLogics.js.map +1 -1
- package/out/server/getMemberIdentifier.d.ts +4 -0
- package/out/server/getMemberIdentifier.js +90 -48
- package/out/server/getMemberIdentifier.js.map +1 -1
- package/out/server/getProcesses.d.ts +2 -2
- package/out/server/getProcesses.js +34 -11
- package/out/server/getProcesses.js.map +1 -1
- package/out/server/index.js +4 -0
- package/out/server/index.js.map +1 -1
- package/out/server/naslServer.d.ts +11 -30
- package/out/server/naslServer.js +410 -199
- package/out/server/naslServer.js.map +1 -1
- package/out/server/process2LogicNamespace.d.ts +10 -0
- package/out/server/process2LogicNamespace.js +16 -0
- package/out/server/process2LogicNamespace.js.map +1 -1
- package/out/server/translator.d.ts +22 -3
- package/out/server/translator.js +336 -130
- package/out/server/translator.js.map +1 -1
- package/out/service/storage/init.js +29 -15
- package/out/service/storage/init.js.map +1 -1
- package/out/templator/genCreateBlock.js +5 -5
- package/out/templator/genCreateBlock.js.map +1 -1
- package/out/templator/genCurdEditMultipleKeyBlock.js +9 -13
- package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
- package/out/templator/genCurdMultipleKeyBlock.js +7 -7
- package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
- package/out/templator/genEditTableBlock.js +2 -2
- package/out/templator/genEditTableBlock.js.map +1 -1
- package/out/templator/genGetBlock.js +4 -2
- package/out/templator/genGetBlock.js.map +1 -1
- package/out/templator/genGridViewBlock.d.ts +1 -1
- package/out/templator/genGridViewBlock.js +3 -3
- package/out/templator/genGridViewBlock.js.map +1 -1
- package/out/templator/genQueryComponent.d.ts +2 -0
- package/out/templator/genQueryComponent.js +1 -0
- package/out/templator/genQueryComponent.js.map +1 -1
- package/out/templator/genTableBlock.d.ts +1 -1
- package/out/templator/genTableBlock.js +3 -3
- package/out/templator/genTableBlock.js.map +1 -1
- package/out/templator/genUpdateBlock.js +7 -7
- package/out/templator/genUpdateBlock.js.map +1 -1
- package/out/templator/utils.d.ts +3 -1
- package/out/templator/utils.js +2 -1
- package/out/templator/utils.js.map +1 -1
- package/out/utils/index.d.ts +6 -0
- package/out/utils/index.js +20 -1
- package/out/utils/index.js.map +1 -1
- package/package.json +2 -1
- package/src/automate/engine/index.js +73 -25
- package/src/automate/engine/utils.js +7 -6
- package/src/common/BaseNode.ts +51 -42
- package/src/concepts/App__.ts +104 -26
- package/src/concepts/Argument__.ts +3 -2
- package/src/concepts/Assignee__.ts +437 -0
- package/src/concepts/BinaryExpression__.ts +7 -6
- package/src/concepts/BindAttribute__.ts +51 -2
- package/src/concepts/BindDirective__.ts +20 -1
- package/src/concepts/BindEvent__.ts +39 -16
- package/src/concepts/CallFunction__.ts +21 -8
- package/src/concepts/CallInterface__.ts +161 -42
- package/src/concepts/CallLogic__.ts +21 -9
- package/src/concepts/CallQueryComponent__.ts +15 -13
- package/src/concepts/Comment__.ts +6 -2
- package/src/concepts/ConfigGroup__.ts +1 -1
- package/src/concepts/ConfigProperty__.ts +1 -1
- package/src/concepts/Configuration__.ts +1 -1
- package/src/concepts/Destination__.ts +57 -19
- package/src/concepts/End__.ts +9 -11
- package/src/concepts/EntityProperty__.ts +56 -3
- package/src/concepts/Entity__.ts +33 -20
- package/src/concepts/Enum__.ts +8 -7
- package/src/concepts/Event__.ts +1 -1
- package/src/concepts/ForEachStatement__.ts +8 -13
- package/src/concepts/Function__.ts +5 -5
- package/src/concepts/Identifier__.ts +31 -26
- package/src/concepts/IfStatement__.ts +2 -2
- package/src/concepts/InterfaceParam__.ts +39 -20
- package/src/concepts/Interface__.ts +103 -9
- package/src/concepts/LogicItem__.ts +16 -1
- package/src/concepts/Logic__.ts +60 -18
- package/src/concepts/MemberExpression__.ts +18 -6
- package/src/concepts/Module__.ts +19 -8
- package/src/concepts/Namespace__.ts +24 -12
- package/src/concepts/Param__.ts +34 -23
- package/src/concepts/ProcessComponent__.ts +2 -2
- package/src/concepts/ProcessElement__.ts +51 -50
- package/src/concepts/ProcessOutcome__.ts +1 -1
- package/src/concepts/Process__.ts +32 -28
- package/src/concepts/QueryAggregateExpression__.ts +1 -1
- package/src/concepts/QueryFromExpression__.ts +1 -1
- package/src/concepts/QueryJoinExpression__.ts +2 -2
- package/src/concepts/QuerySelectExpression__.ts +1 -1
- package/src/concepts/Return__.ts +35 -25
- package/src/concepts/SqlQueryComponent__.ts +1 -1
- package/src/concepts/StringLiteral__.ts +2 -2
- package/src/concepts/StructureProperty__.ts +49 -29
- package/src/concepts/Structure__.ts +17 -5
- package/src/concepts/SwitchCase__.ts +3 -3
- package/src/concepts/SwitchStatement__.ts +1 -1
- package/src/concepts/TypeAnnotation__.ts +34 -12
- package/src/concepts/UnaryExpression__.ts +4 -2
- package/src/concepts/ValidationRule__.ts +24 -1
- package/src/concepts/Variable__.ts +35 -24
- package/src/concepts/ViewComponent__.ts +5 -5
- package/src/concepts/ViewElement__.ts +168 -113
- package/src/concepts/View__.ts +44 -25
- package/src/concepts/WhileStatement__.ts +1 -1
- package/src/concepts/basics/stdlib/index.ts +3 -1
- package/src/concepts/basics/stdlib/nasl.auth.ts +26 -0
- package/src/concepts/basics/stdlib/nasl.browser.ts +7 -41
- package/src/concepts/basics/stdlib/nasl.configuration.ts +21 -0
- package/src/concepts/basics/stdlib/nasl.util.ts +49 -41
- package/src/concepts/basics/stdlib/nasl.validation.ts +17 -11
- package/src/concepts/basics/types/coreTypeList.ts +11 -11
- package/src/concepts/index__.ts +1 -0
- package/src/enums/KEYWORDS.ts +1 -1
- package/src/generator/genBundleFiles.ts +131 -112
- package/src/manager/diagnostic.ts +1 -1
- package/src/server/createUiTs.ts +22 -4
- package/src/server/entity2LogicNamespace.ts +25 -9
- package/src/server/getExtensionModules.ts +2 -0
- package/src/server/getLogics.ts +42 -58
- package/src/server/getMemberIdentifier.ts +88 -46
- package/src/server/getProcesses.ts +32 -9
- package/src/server/index.ts +12 -1
- package/src/server/naslServer.ts +422 -215
- package/src/server/process2LogicNamespace.ts +17 -1
- package/src/server/translator.ts +392 -134
- package/src/service/storage/init.ts +27 -16
- package/src/templator/genCreateBlock.ts +5 -5
- package/src/templator/genCurdEditMultipleKeyBlock.ts +25 -26
- package/src/templator/genCurdMultipleKeyBlock.ts +7 -7
- package/src/templator/genEditTableBlock.ts +2 -2
- package/src/templator/genGetBlock.ts +5 -7
- package/src/templator/genGridViewBlock.ts +4 -7
- package/src/templator/genQueryComponent.ts +1 -0
- package/src/templator/genTableBlock.ts +4 -7
- package/src/templator/genUpdateBlock.ts +7 -8
- package/src/templator/utils.ts +2 -1
- package/src/utils/index.ts +19 -0
|
@@ -6,7 +6,7 @@ let id = 0;
|
|
|
6
6
|
class TemplateMeta {
|
|
7
7
|
constructor(node) {
|
|
8
8
|
// this.name = `t_${uuidv4().replace(/-/g, '')}`;
|
|
9
|
-
this.name = `t_${node.concept}_${node.name ? node.name.replace(
|
|
9
|
+
this.name = `t_${node.concept}_${node.name ? node.name.replace(/[-\.]/g, '') : 'unknown'}_${id++}`;
|
|
10
10
|
this.node = node;
|
|
11
11
|
this.isRoot = false;
|
|
12
12
|
this.rootBinds = [];
|
|
@@ -39,8 +39,10 @@ class TemplateMeta {
|
|
|
39
39
|
if (typeof value === 'string') {
|
|
40
40
|
value = value
|
|
41
41
|
.split(/\n/)
|
|
42
|
-
.map((c) => `"${c.
|
|
43
|
-
.
|
|
42
|
+
.map((c) => `"${c.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`)
|
|
43
|
+
// .map((c) => `"${c.replace(/([^\\])"/g, '$1\\"')}"`)
|
|
44
|
+
// .map((c) => `decodeURIComponent("${c.encodeURIComponent}")`)
|
|
45
|
+
.join(' + "\\n" +\n');
|
|
44
46
|
}
|
|
45
47
|
if (typeof value === 'object') {
|
|
46
48
|
value = JSON.stringify(value);
|
|
@@ -100,7 +102,8 @@ class TemplateMeta {
|
|
|
100
102
|
// _tempConstructor = getConceptConstructor("${this.node.concept}");
|
|
101
103
|
// const ${this.name} = new _tempConstructor();`
|
|
102
104
|
return `${this.genComment('create')}
|
|
103
|
-
let ${this.name} = _create("${this.node.concept}")
|
|
105
|
+
let ${this.name} = _create("${this.node.concept}");
|
|
106
|
+
_templateObjects.push(${this.name})`;
|
|
104
107
|
}
|
|
105
108
|
|
|
106
109
|
genBind() {
|
|
@@ -108,8 +111,9 @@ class TemplateMeta {
|
|
|
108
111
|
const { type, propertyName, value } = bind;
|
|
109
112
|
switch (type) {
|
|
110
113
|
case TRACK_TYPE.PROPERTY:
|
|
114
|
+
return `_set(${this.name}, "${propertyName}", ${value}, (updatedObj) => { ${value} = updatedObj; })`;
|
|
111
115
|
case TRACK_TYPE.PLAIN:
|
|
112
|
-
return `_set(${this.name}, "${propertyName}", ${value})
|
|
116
|
+
return `_set(${this.name}, "${propertyName}", ${value});`;
|
|
113
117
|
case TRACK_TYPE.ARRAY:
|
|
114
118
|
return `_push(${this.name}, "${propertyName}", ${value});`;
|
|
115
119
|
}
|
|
@@ -153,18 +157,18 @@ class TemplateMeta {
|
|
|
153
157
|
if (this.node.concept === 'Role') {
|
|
154
158
|
return '';
|
|
155
159
|
}
|
|
156
|
-
if (this.node.concept === 'Entity') {
|
|
157
|
-
|
|
158
|
-
${this.name}
|
|
159
|
-
}
|
|
160
|
-
return `_set(${this.name}, "name", getGenUniqNameFunctionName(${this.name}, "${this.node.concept}"))`;
|
|
160
|
+
// if (this.node.concept === 'Entity') {
|
|
161
|
+
// return `_set(${this.name}, "name", getGenUniqNameFunctionName(${this.name}, "${this.node.concept}"));`;
|
|
162
|
+
// _setTableName(${this.name}, ${this.name}.name + '_' + app.id.slice(0,6));`;
|
|
163
|
+
// }
|
|
164
|
+
return `_set(${this.name}, "name", getGenUniqNameFunctionName(${this.name}, "${this.node.concept}", app), (updatedObj) => { ${this.name} = updatedObj; })`;
|
|
161
165
|
}
|
|
162
166
|
|
|
163
167
|
genRoleBind() {
|
|
164
168
|
return this.rolebinds.map((role) => {
|
|
165
169
|
const { propertyName, arguVars } = role;
|
|
166
170
|
|
|
167
|
-
return `_set(${this.name}, "${propertyName}", _bindRoles(${arguVars}));`;
|
|
171
|
+
return `_set(${this.name}, "${propertyName}", _bindRoles(${arguVars}), (updatedObj) => { ${this.name} = updatedObj; });`;
|
|
168
172
|
});
|
|
169
173
|
}
|
|
170
174
|
|
|
@@ -180,8 +184,8 @@ class TemplateMeta {
|
|
|
180
184
|
} else {
|
|
181
185
|
// return `${this.name}.${propertyName} = ${targetVar}.getNamespace();
|
|
182
186
|
// ${this.name}.${relatedPropertyName} = ${targetVar}.name;`
|
|
183
|
-
return `_set(${this.name}, "${propertyName}", ${targetVar}.getNamespace());
|
|
184
|
-
_set(${this.name}, "${relatedPropertyName}", ${targetVar}.name);`;
|
|
187
|
+
return `_set(${this.name}, "${propertyName}", ${targetVar}.getNamespace(), (updatedObj) => { ${this.name} = updatedObj; });
|
|
188
|
+
_set(${this.name}, "${relatedPropertyName}", ${targetVar}.name, (updatedObj) => { ${this.name} = updatedObj; });`;
|
|
185
189
|
}
|
|
186
190
|
});
|
|
187
191
|
}
|
|
@@ -225,6 +229,21 @@ function autoScript(stack) {
|
|
|
225
229
|
|
|
226
230
|
return `
|
|
227
231
|
(function () {
|
|
232
|
+
function unique(key, set, start = 1) {
|
|
233
|
+
const has = (_key) => {
|
|
234
|
+
if (set instanceof Set || set instanceof Map)
|
|
235
|
+
return set.has(_key);
|
|
236
|
+
else if (Array.isArray(set))
|
|
237
|
+
return set.includes(_key);
|
|
238
|
+
else
|
|
239
|
+
return set[_key];
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
while (has(key))
|
|
243
|
+
key = key.replace(/\\d*$/, (m) => String(m === '' ? start : (+m) + 1));
|
|
244
|
+
return key;
|
|
245
|
+
}
|
|
246
|
+
|
|
228
247
|
function alphaUpper(name) {
|
|
229
248
|
if (!name) {
|
|
230
249
|
return '';
|
|
@@ -232,11 +251,27 @@ function autoScript(stack) {
|
|
|
232
251
|
return name[0].toUpperCase() + name.substring(1);
|
|
233
252
|
}
|
|
234
253
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
254
|
+
const NamesWeakMap = new Map();
|
|
255
|
+
|
|
256
|
+
function initAppUniqueNames(app) {
|
|
257
|
+
NamesWeakMap.set('Entity', new Set(app.getEntityExistingNames()));
|
|
258
|
+
NamesWeakMap.set('Structure', new Set(app.getStructureExistingNames()));
|
|
259
|
+
NamesWeakMap.set('Enum', new Set(app.getEnumExistingNames()));
|
|
260
|
+
NamesWeakMap.set('Logic', new Set(app.getLogicExistingNames()));
|
|
261
|
+
NamesWeakMap.set('Interface', new Set(app.getInterfaceExistingNames()));
|
|
262
|
+
NamesWeakMap.set('View', new Set(app.getViewExistingNames()));
|
|
263
|
+
NamesWeakMap.set('Process', new Set(app.getProcessExistingNames()));
|
|
264
|
+
NamesWeakMap.set('Role', new Set(app.getRoleExistingNames()));
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
function getGenUniqNameFunctionName(item, concept, app) {
|
|
239
268
|
const p = item.parentNode;
|
|
269
|
+
if(!p) {
|
|
270
|
+
const nameSet = NamesWeakMap.get(concept);
|
|
271
|
+
const n = unique(item.name, nameSet);
|
|
272
|
+
nameSet.add(n);
|
|
273
|
+
return n;
|
|
274
|
+
}
|
|
240
275
|
const f1 = p["get" + concept + "UniqueName"];
|
|
241
276
|
const f2 = p["get" + concept + "ExistingNames"]
|
|
242
277
|
if(f1 && f2) {
|
|
@@ -257,7 +292,7 @@ function autoScript(stack) {
|
|
|
257
292
|
return (item instanceof BaseNodeConstructor);
|
|
258
293
|
}
|
|
259
294
|
|
|
260
|
-
function _set(item, propertyName, value) {
|
|
295
|
+
function _set(item, propertyName, value, callback) {
|
|
261
296
|
if(instanceOfBaseNode(value)) {
|
|
262
297
|
value.parentNode = item;
|
|
263
298
|
value.parentKey = propertyName;
|
|
@@ -266,6 +301,10 @@ function autoScript(stack) {
|
|
|
266
301
|
item.update({
|
|
267
302
|
[propertyName]: value,
|
|
268
303
|
});
|
|
304
|
+
|
|
305
|
+
if(instanceOfBaseNode(value) && callback) {
|
|
306
|
+
callback(item[propertyName]);
|
|
307
|
+
}
|
|
269
308
|
}
|
|
270
309
|
}
|
|
271
310
|
|
|
@@ -315,10 +354,14 @@ function autoScript(stack) {
|
|
|
315
354
|
return ${JSON.stringify(roleNASL)};
|
|
316
355
|
}
|
|
317
356
|
|
|
318
|
-
const execTemplate = function(app, getCtor, getCMeta, base, rootBindCallback, roleCallback) {
|
|
357
|
+
const execTemplate = function(app, getCtor, getCMeta, base, rootBindCallback, roleCallback, finalCallback) {
|
|
358
|
+
let _templateObjects = [];
|
|
319
359
|
BaseNodeConstructor = base;
|
|
320
360
|
getConceptConstructor = getCtor;
|
|
321
361
|
getConceptMeta = getCMeta;
|
|
362
|
+
|
|
363
|
+
initAppUniqueNames(app);
|
|
364
|
+
|
|
322
365
|
app.emit('collect:start', {
|
|
323
366
|
actionMsg: '导入页面模板'
|
|
324
367
|
});
|
|
@@ -328,14 +371,14 @@ function autoScript(stack) {
|
|
|
328
371
|
/*---- bind ---- */
|
|
329
372
|
${bindBlock.join('\n\t\t')}
|
|
330
373
|
|
|
331
|
-
/*----
|
|
332
|
-
${
|
|
374
|
+
/*---- reset name ---- */
|
|
375
|
+
${nameBlock.join('\n\t\t')}
|
|
333
376
|
|
|
334
377
|
/*--- root bind ---*/
|
|
335
378
|
${rootBindBlock.join('\n\t\t')}
|
|
336
379
|
|
|
337
|
-
/*----
|
|
338
|
-
${
|
|
380
|
+
/*---- appbind ---- */
|
|
381
|
+
${appBindBlock.join('\n\t\t')}
|
|
339
382
|
|
|
340
383
|
/*--- role bind ---*/
|
|
341
384
|
${rolebindBlock.join('\n\t\t')}
|
|
@@ -345,6 +388,11 @@ function autoScript(stack) {
|
|
|
345
388
|
|
|
346
389
|
/*---- add module ----*/
|
|
347
390
|
${moduleBlock.join('\n\t\t')}
|
|
391
|
+
|
|
392
|
+
/*--- final callback ---*/
|
|
393
|
+
if(finalCallback) {
|
|
394
|
+
finalCallback(_templateObjects)
|
|
395
|
+
}
|
|
348
396
|
app.emit('collect:end');
|
|
349
397
|
|
|
350
398
|
/*---- return root -----*/
|
|
@@ -450,7 +498,7 @@ export function getRoles(script) {
|
|
|
450
498
|
const { exportRoles } = eval(script);
|
|
451
499
|
return exportRoles();
|
|
452
500
|
}
|
|
453
|
-
export function applyTemplate(script, app, rootBindCallback, roleCallback) {
|
|
501
|
+
export function applyTemplate(script, app, rootBindCallback, roleCallback, finalCallback) {
|
|
454
502
|
const { execTemplate } = eval(script);
|
|
455
|
-
execTemplate(app, getConceptConstructor, getConceptMeta, BaseNode, rootBindCallback, roleCallback);
|
|
503
|
+
execTemplate(app, getConceptConstructor, getConceptMeta, BaseNode, rootBindCallback, roleCallback, finalCallback);
|
|
456
504
|
}
|
|
@@ -69,9 +69,9 @@ export function getNodeByNodeCallee(AppInstance, namespace, callback) {
|
|
|
69
69
|
*/
|
|
70
70
|
export function getNaslNodeByNodeCallee(namespace, typeName) {
|
|
71
71
|
if (namespace === 'nasl.ui') {
|
|
72
|
-
return uiStructures.find(item => item.name === typeName);
|
|
72
|
+
return uiStructures.find((item) => item.name === typeName);
|
|
73
73
|
} else if (namespace === 'nasl.collection') {
|
|
74
|
-
return collectionStructures.find(item => item.name === typeName);
|
|
74
|
+
return collectionStructures.find((item) => item.name === typeName);
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
export const TRACK_TYPE = {
|
|
@@ -129,7 +129,8 @@ export const IGNORE_PROPERTY = [
|
|
|
129
129
|
'branchName',
|
|
130
130
|
'appId',
|
|
131
131
|
'isIndex',
|
|
132
|
-
'tableName',
|
|
132
|
+
// 'tableName',
|
|
133
|
+
// 'columnName',
|
|
133
134
|
];
|
|
134
135
|
|
|
135
136
|
const ROLE_PROPERTY = 'bindRoles';
|
|
@@ -247,7 +248,7 @@ export function tracking(node, startNode, callback) {
|
|
|
247
248
|
relatedPropertyName,
|
|
248
249
|
AppPropertyName: 'processes',
|
|
249
250
|
});
|
|
250
|
-
|
|
251
|
+
break;
|
|
251
252
|
}
|
|
252
253
|
|
|
253
254
|
const entity = rootNode.entities.find((e) => e.name === nodeName);
|
|
@@ -261,7 +262,7 @@ export function tracking(node, startNode, callback) {
|
|
|
261
262
|
relatedPropertyName,
|
|
262
263
|
AppPropertyName: 'entities',
|
|
263
264
|
});
|
|
264
|
-
|
|
265
|
+
break;
|
|
265
266
|
}
|
|
266
267
|
} else {
|
|
267
268
|
const nsPath = `${ns}.${calleeN}`;
|
|
@@ -285,7 +286,7 @@ export function tracking(node, startNode, callback) {
|
|
|
285
286
|
case BACKTACKING_PROPERTY.RELATION_NAMESPACE:
|
|
286
287
|
break;
|
|
287
288
|
default:
|
|
288
|
-
if (property !== undefined
|
|
289
|
+
if (property !== undefined) {
|
|
289
290
|
if (objectRef) {
|
|
290
291
|
callback(TRACK_TYPE.PROPERTY, propertyName, property);
|
|
291
292
|
} else {
|
package/src/common/BaseNode.ts
CHANGED
|
@@ -12,22 +12,6 @@ import * as utils from '../utils';
|
|
|
12
12
|
import classMap from '../common/classMap';
|
|
13
13
|
import { action, circular, excludedInJSON, property, getConceptConstructor, getConceptPropertyMap } from '../decorators';
|
|
14
14
|
import { Diagnostic } from '../manager/diagnostic';
|
|
15
|
-
import { CallQueryComponent } from '..';
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* 分割数组
|
|
19
|
-
* @param array 原数组
|
|
20
|
-
* @param subGroupLength 长度
|
|
21
|
-
* @returns
|
|
22
|
-
*/
|
|
23
|
-
function group(array: Array<any>, subGroupLength: number) {
|
|
24
|
-
let index = 0;
|
|
25
|
-
const newArray = [];
|
|
26
|
-
while (index < array.length) {
|
|
27
|
-
newArray.push(array.slice(index, (index += subGroupLength)));
|
|
28
|
-
}
|
|
29
|
-
return newArray;
|
|
30
|
-
}
|
|
31
15
|
|
|
32
16
|
/**
|
|
33
17
|
* 顶点类
|
|
@@ -183,6 +167,7 @@ export class BaseNode extends EventEmitter {
|
|
|
183
167
|
sourceItem.parentKey = key;
|
|
184
168
|
}
|
|
185
169
|
}
|
|
170
|
+
|
|
186
171
|
(this as any)[key] = objectRefCtor && sourceItem && !(sourceItem instanceof objectRefCtor) ? this.activeInside(sourceItem, objectRefCtor, this, key) : sourceItem;
|
|
187
172
|
} catch (e) {
|
|
188
173
|
// Function has non-object prototype 'undefined' in instanceof check
|
|
@@ -237,27 +222,28 @@ export class BaseNode extends EventEmitter {
|
|
|
237
222
|
* @returns
|
|
238
223
|
*/
|
|
239
224
|
genActionListener($event: EventPayload) {
|
|
225
|
+
if (!$event.eventList) {
|
|
226
|
+
$event.eventList = [];
|
|
227
|
+
}
|
|
228
|
+
if (!$event.eventStop) {
|
|
229
|
+
$event.eventList.push($event);
|
|
230
|
+
// 页面逻辑需要冒泡到页面
|
|
231
|
+
if (['App', 'Process', 'View', 'Interface', 'Entity', 'Structure', 'Enum', 'ConfigProperty'].includes(this.concept) || (this.concept === 'Logic' && this.parentNode?.concept !== 'View')) {
|
|
232
|
+
$event.eventStop = true;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
$event.originEvent = $event.originEvent || $event;
|
|
240
236
|
this.onChange($event);
|
|
241
237
|
if (this.concept === 'App') {
|
|
242
238
|
this.emit('storage', $event);
|
|
243
239
|
} else {
|
|
244
|
-
if (!$event.eventList) {
|
|
245
|
-
$event.eventList = [];
|
|
246
|
-
}
|
|
247
|
-
if (!$event.eventStop) {
|
|
248
|
-
$event.eventList.push($event);
|
|
249
|
-
// 页面逻辑需要冒泡到页面
|
|
250
|
-
if (['Process', 'View', 'Interface', 'Entity', 'Structure', 'Enum', 'ConfigProperty'].includes(this.concept) || (this.concept === 'Logic' && this.parentNode?.concept !== 'View')) {
|
|
251
|
-
$event.eventStop = true;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
240
|
const event: EventPayload = {
|
|
255
241
|
action: 'update',
|
|
256
242
|
path: this.parentNode?.getNodePath(false),
|
|
257
243
|
object: {},
|
|
258
244
|
oldObject: {},
|
|
259
|
-
originEvent: $event.originEvent
|
|
260
|
-
eventList: $event.eventList
|
|
245
|
+
originEvent: $event.originEvent,
|
|
246
|
+
eventList: $event.eventList,
|
|
261
247
|
eventStop: $event.eventStop,
|
|
262
248
|
};
|
|
263
249
|
this.parentNode?.emit('update', event);
|
|
@@ -301,6 +287,38 @@ export class BaseNode extends EventEmitter {
|
|
|
301
287
|
});
|
|
302
288
|
}
|
|
303
289
|
|
|
290
|
+
/**
|
|
291
|
+
* 如果有父节点,则删除节点,在添加时调用
|
|
292
|
+
*/
|
|
293
|
+
ensureDelete() {
|
|
294
|
+
if (this.parentNode && this.parentKey) {
|
|
295
|
+
const path = this.getNodePath(false);
|
|
296
|
+
const parentParams = this._delete();
|
|
297
|
+
if (parentParams && parentParams.index !== -1) {
|
|
298
|
+
if (Array.isArray((this.parentNode as any)[this.parentKey])) {
|
|
299
|
+
this.emit('delete', {
|
|
300
|
+
action: 'delete',
|
|
301
|
+
path,
|
|
302
|
+
object: null,
|
|
303
|
+
...parentParams,
|
|
304
|
+
});
|
|
305
|
+
} else {
|
|
306
|
+
const parentPath = this.parentNode.getNodePath(false);
|
|
307
|
+
this.parentNode.emit('update', {
|
|
308
|
+
action: 'update',
|
|
309
|
+
path: parentPath,
|
|
310
|
+
object: {
|
|
311
|
+
[this.parentKey]: null,
|
|
312
|
+
},
|
|
313
|
+
oldObject: {
|
|
314
|
+
[this.parentKey]: this.toJSON(),
|
|
315
|
+
},
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
|
|
304
322
|
/**
|
|
305
323
|
* 删除节点
|
|
306
324
|
*/
|
|
@@ -329,13 +347,6 @@ export class BaseNode extends EventEmitter {
|
|
|
329
347
|
});
|
|
330
348
|
}
|
|
331
349
|
}
|
|
332
|
-
|
|
333
|
-
// if(this.concept === 'Logic') {
|
|
334
|
-
// this.traverseChildren((ele: BaseNode) => {
|
|
335
|
-
// if(ele.concept === 'CallQueryComponent')
|
|
336
|
-
// (ele as CallQueryComponent).removeStructure();
|
|
337
|
-
// });
|
|
338
|
-
// }
|
|
339
350
|
}
|
|
340
351
|
|
|
341
352
|
/**
|
|
@@ -669,6 +680,10 @@ export class BaseNode extends EventEmitter {
|
|
|
669
680
|
/* override */
|
|
670
681
|
}
|
|
671
682
|
|
|
683
|
+
async findReadOnlyLogicUsage(): Promise<any> {
|
|
684
|
+
/* override */
|
|
685
|
+
}
|
|
686
|
+
|
|
672
687
|
/**
|
|
673
688
|
* 重命名
|
|
674
689
|
*/
|
|
@@ -692,13 +707,7 @@ export class BaseNode extends EventEmitter {
|
|
|
692
707
|
async addParamsPrepare(): Promise<any> {
|
|
693
708
|
/* override */
|
|
694
709
|
}
|
|
695
|
-
|
|
696
|
-
* 添加参数准备
|
|
697
|
-
*/
|
|
698
|
-
@action('页面删除')
|
|
699
|
-
async viewPrepareDelete(): Promise<any> {
|
|
700
|
-
/* override */
|
|
701
|
-
}
|
|
710
|
+
|
|
702
711
|
/**
|
|
703
712
|
* 销毁
|
|
704
713
|
* 从 Map 中删除点和子节点
|