@lcap/nasl 2.20.0-beta.2 → 2.20.0
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 +2 -3
- package/out/automate/engine/index.js.map +1 -1
- package/out/automate/engine/uniqueName.d.ts +1 -1
- package/out/automate/engine/uniqueName.js +2 -2
- package/out/automate/engine/uniqueName.js.map +1 -1
- package/out/automate/engine/utils.js +4 -1
- package/out/automate/engine/utils.js.map +1 -1
- package/out/automate/template/myProcess.d.ts +1 -1
- package/out/automate/template/myProcess.js +2 -2
- package/out/automate/template/myProcess.js.map +1 -1
- package/out/bak/translator.js +14 -22
- package/out/bak/translator.js.map +1 -1
- package/out/common/BaseNode.js +4 -1
- package/out/common/BaseNode.js.map +1 -1
- package/out/common/Command.d.ts +1 -0
- package/out/common/Command.js +5 -1
- package/out/common/Command.js.map +1 -1
- package/out/concepts/App__.d.ts +4 -0
- package/out/concepts/App__.js +30 -6
- package/out/concepts/App__.js.map +1 -1
- package/out/concepts/Assignee__.js +4 -3
- package/out/concepts/Assignee__.js.map +1 -1
- package/out/concepts/BatchAssignment__.js +3 -3
- package/out/concepts/BatchAssignment__.js.map +1 -1
- package/out/concepts/BindAttribute__.d.ts +7 -0
- package/out/concepts/BindAttribute__.js +270 -39
- package/out/concepts/BindAttribute__.js.map +1 -1
- package/out/concepts/BindDirective__.d.ts +7 -0
- package/out/concepts/BindDirective__.js +215 -17
- package/out/concepts/BindDirective__.js.map +1 -1
- package/out/concepts/BindStyle__.d.ts +7 -0
- package/out/concepts/BindStyle__.js +194 -4
- package/out/concepts/BindStyle__.js.map +1 -1
- package/out/concepts/CallFunction__.js +22 -8
- package/out/concepts/CallFunction__.js.map +1 -1
- package/out/concepts/CallInterface__.js +3 -2
- package/out/concepts/CallInterface__.js.map +1 -1
- package/out/concepts/CallLogic__.d.ts +3 -0
- package/out/concepts/CallLogic__.js +78 -89
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/CallQueryComponent__.js +20 -3
- package/out/concepts/CallQueryComponent__.js.map +1 -1
- package/out/concepts/ConfigGroup__.d.ts +1 -0
- package/out/concepts/ConfigGroup__.js +13 -0
- package/out/concepts/ConfigGroup__.js.map +1 -1
- package/out/concepts/ConfigProperty__.d.ts +19 -0
- package/out/concepts/ConfigProperty__.js +61 -0
- package/out/concepts/ConfigProperty__.js.map +1 -1
- package/out/concepts/Configuration__.d.ts +1 -0
- package/out/concepts/Configuration__.js +13 -0
- package/out/concepts/Configuration__.js.map +1 -1
- package/out/concepts/DataSource__.js.map +1 -1
- package/out/concepts/Destination__.d.ts +1 -0
- package/out/concepts/Destination__.js +61 -7
- package/out/concepts/Destination__.js.map +1 -1
- package/out/concepts/EntityProperty__.js +9 -1
- package/out/concepts/EntityProperty__.js.map +1 -1
- package/out/concepts/EnumItem__.d.ts +5 -5
- package/out/concepts/EnumItem__.js +6 -6
- package/out/concepts/Enum__.d.ts +20 -19
- package/out/concepts/Enum__.js +28 -1
- package/out/concepts/Enum__.js.map +1 -1
- package/out/concepts/ExternalDestination__.d.ts +1 -0
- package/out/concepts/ExternalDestination__.js +21 -3
- package/out/concepts/ExternalDestination__.js.map +1 -1
- package/out/concepts/ForEachStatement__.js +2 -0
- package/out/concepts/ForEachStatement__.js.map +1 -1
- package/out/concepts/Frontend__.d.ts +2 -1
- package/out/concepts/Frontend__.js.map +1 -1
- package/out/concepts/Identifier__.js +16 -5
- package/out/concepts/Identifier__.js.map +1 -1
- package/out/concepts/InterfaceParam__.js +9 -1
- package/out/concepts/InterfaceParam__.js.map +1 -1
- package/out/concepts/JSBlock__.js +5 -1
- package/out/concepts/JSBlock__.js.map +1 -1
- package/out/concepts/Logic__.d.ts +79 -79
- package/out/concepts/Logic__.js +16 -3
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/Match__.d.ts +0 -3
- package/out/concepts/Match__.js +11 -66
- package/out/concepts/Match__.js.map +1 -1
- package/out/concepts/MemberExpression__.js +9 -0
- package/out/concepts/MemberExpression__.js.map +1 -1
- package/out/concepts/Module__.d.ts +16 -0
- package/out/concepts/Module__.js +43 -0
- package/out/concepts/Module__.js.map +1 -1
- package/out/concepts/NewComposite__.d.ts +2 -4
- package/out/concepts/NewComposite__.js +91 -126
- package/out/concepts/NewComposite__.js.map +1 -1
- package/out/concepts/NewList__.d.ts +1 -0
- package/out/concepts/NewList__.js +22 -2
- package/out/concepts/NewList__.js.map +1 -1
- package/out/concepts/NewMap__.d.ts +1 -0
- package/out/concepts/NewMap__.js +43 -11
- package/out/concepts/NewMap__.js.map +1 -1
- package/out/concepts/OqlQueryComponent__.js +40 -12
- package/out/concepts/OqlQueryComponent__.js.map +1 -1
- package/out/concepts/Param__.js +10 -2
- package/out/concepts/Param__.js.map +1 -1
- package/out/concepts/ProcessElement__.js +2 -1
- 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/ProcessOutcomes__.js +1 -1
- package/out/concepts/ProcessOutcomes__.js.map +1 -1
- package/out/concepts/Process__.js +1 -0
- package/out/concepts/Process__.js.map +1 -1
- package/out/concepts/Return__.js +10 -2
- package/out/concepts/Return__.js.map +1 -1
- package/out/concepts/StringInterpolation__.js +14 -2
- package/out/concepts/StringInterpolation__.js.map +1 -1
- package/out/concepts/StringLiteral__.js +6 -6
- package/out/concepts/StringLiteral__.js.map +1 -1
- package/out/concepts/StructureProperty__.js +9 -1
- package/out/concepts/StructureProperty__.js.map +1 -1
- package/out/concepts/TypeAnnotation__.d.ts +6 -3
- package/out/concepts/TypeAnnotation__.js +67 -13
- package/out/concepts/TypeAnnotation__.js.map +1 -1
- package/out/concepts/ValidationRule__.d.ts +1 -0
- package/out/concepts/ValidationRule__.js +53 -0
- package/out/concepts/ValidationRule__.js.map +1 -1
- package/out/concepts/Variable__.js +9 -1
- package/out/concepts/Variable__.js.map +1 -1
- package/out/concepts/ViewElement__.js +17 -1
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.d.ts +1 -3
- package/out/concepts/View__.js +22 -11
- package/out/concepts/View__.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.collection.js +6 -1
- package/out/concepts/basics/stdlib/nasl.collection.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.configuration.js +3 -0
- package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.core.d.ts +2 -0
- package/out/concepts/basics/stdlib/nasl.core.js +34 -0
- package/out/concepts/basics/stdlib/nasl.core.js.map +1 -1
- package/out/concepts/basics/stdlib/nasl.util.js +4 -2
- package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
- package/out/concepts/basics/types/index.d.ts +1 -0
- package/out/concepts/basics/types/index.js +3 -1
- package/out/concepts/basics/types/index.js.map +1 -1
- package/out/concepts/index__.d.ts +0 -1
- package/out/concepts/index__.js +0 -1
- package/out/concepts/index__.js.map +1 -1
- package/out/enums/KEYWORDS.js +8 -0
- package/out/enums/KEYWORDS.js.map +1 -1
- package/out/generator/genBundleFiles.js +24 -5
- package/out/generator/genBundleFiles.js.map +1 -1
- package/out/generator/genReleaseBody.d.ts +2 -3
- package/out/generator/genReleaseBody.js +97 -23
- package/out/generator/genReleaseBody.js.map +1 -1
- package/out/generator/permission.d.ts +2 -10
- package/out/generator/permission.js +27 -14
- package/out/generator/permission.js.map +1 -1
- package/out/server/entity2LogicNamespace.js +2 -20
- package/out/server/entity2LogicNamespace.js.map +1 -1
- package/out/server/extendBaseNode.js +16 -5
- package/out/server/extendBaseNode.js.map +1 -1
- package/out/server/formatTsUtils.d.ts +2 -1
- package/out/server/formatTsUtils.js +40 -10
- package/out/server/formatTsUtils.js.map +1 -1
- package/out/server/getLogics.d.ts +2 -2
- package/out/server/getLogics.js +3 -3
- package/out/server/getLogics.js.map +1 -1
- package/out/server/getMemberIdentifier.d.ts +1 -0
- package/out/server/getMemberIdentifier.js +27 -1
- package/out/server/getMemberIdentifier.js.map +1 -1
- package/out/server/index.js +1 -0
- package/out/server/index.js.map +1 -1
- package/out/server/naslServer.d.ts +7 -1
- package/out/server/naslServer.js +519 -46
- package/out/server/naslServer.js.map +1 -1
- package/out/server/translator.js +109 -33
- package/out/server/translator.js.map +1 -1
- package/out/service/storage/init.js +21 -1
- package/out/service/storage/init.js.map +1 -1
- package/out/templator/genCreateBlock.js +1 -3
- package/out/templator/genCreateBlock.js.map +1 -1
- package/out/templator/genCurdEditMultipleKeyBlock.js +1 -3
- package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
- package/out/templator/genCurdMultipleKeyBlock.js +2 -4
- package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
- package/out/templator/genGetBlock.js +1 -1
- package/out/templator/genGetBlock.js.map +1 -1
- package/out/templator/genGridViewBlock.js +2 -2
- package/out/templator/genGridViewBlock.js.map +1 -1
- package/out/templator/genListViewBlock.js +7 -1
- package/out/templator/genListViewBlock.js.map +1 -1
- package/out/templator/genSelectBlock.js +1 -1
- package/out/templator/genSelectBlock.js.map +1 -1
- package/out/templator/genTableBlock.js +2 -2
- package/out/templator/genTableBlock.js.map +1 -1
- package/out/templator/genUpdateBlock.js +2 -3
- package/out/templator/genUpdateBlock.js.map +1 -1
- package/out/utils/traverse.js +8 -2
- package/out/utils/traverse.js.map +1 -1
- package/package.json +2 -2
- package/sandbox/stdlib/dist/nasl.logging.js +0 -0
- package/sandbox/stdlib/dist/nasl.util.js +0 -0
- package/sandbox/stdlib/nasl.collection.ts +1 -0
- package/sandbox/stdlib/nasl.core.ts +34 -0
- package/sandbox/stdlib/nasl.oql.ts +71 -15
- package/sandbox/stdlib/nasl.util.ts +9 -3
- package/src/automate/engine/dist/index.dev.js +517 -0
- package/src/automate/engine/index.js +2 -3
- package/src/automate/engine/uniqueName.js +2 -2
- package/src/automate/engine/utils.js +4 -2
- package/src/automate/template/myProcess.js +2 -2
- package/src/bak/translator.js +16 -25
- package/src/common/BaseNode.ts +3 -1
- package/src/common/Command.ts +4 -0
- package/src/common/dist/BaseNode.js +1101 -0
- package/src/concepts/App__.ts +36 -7
- package/src/concepts/Assignee__.ts +4 -3
- package/src/concepts/BatchAssignment__.ts +3 -3
- package/src/concepts/BindAttribute__.ts +299 -38
- package/src/concepts/BindDirective__.ts +204 -31
- package/src/concepts/BindStyle__.ts +187 -24
- package/src/concepts/CallFunction__.ts +55 -10
- package/src/concepts/CallInterface__.ts +3 -2
- package/src/concepts/CallLogic__.ts +110 -90
- package/src/concepts/CallQueryComponent__.ts +18 -3
- package/src/concepts/ConfigGroup__.ts +17 -4
- package/src/concepts/ConfigProperty__.ts +70 -4
- package/src/concepts/Configuration__.ts +14 -5
- package/src/concepts/DataSource__.ts +4 -1
- package/src/concepts/Destination__.ts +61 -7
- package/src/concepts/EntityProperty__.ts +7 -1
- package/src/concepts/EnumItem__.ts +6 -6
- package/src/concepts/Enum__.ts +22 -19
- package/src/concepts/ExternalDestination__.ts +28 -8
- package/src/concepts/ForEachStatement__.ts +2 -0
- package/src/concepts/Frontend__.ts +2 -1
- package/src/concepts/Identifier__.ts +16 -5
- package/src/concepts/InterfaceParam__.ts +7 -1
- package/src/concepts/JSBlock__.ts +3 -2
- package/src/concepts/Logic__.ts +95 -83
- package/src/concepts/Match__.ts +31 -67
- package/src/concepts/MemberExpression__.ts +6 -0
- package/src/concepts/Module__.ts +57 -0
- package/src/concepts/NewComposite__.ts +95 -140
- package/src/concepts/NewList__.ts +23 -2
- package/src/concepts/NewMap__.ts +48 -24
- package/src/concepts/OqlQueryComponent__.ts +40 -20
- package/src/concepts/Param__.ts +178 -176
- package/src/concepts/ProcessElement__.ts +2 -1
- package/src/concepts/ProcessOutcome__.ts +1 -1
- package/src/concepts/ProcessOutcomes__.ts +1 -1
- package/src/concepts/Process__.ts +1 -0
- package/src/concepts/Return__.ts +8 -2
- package/src/concepts/StringInterpolation__.ts +19 -7
- package/src/concepts/StringLiteral__.ts +7 -6
- package/src/concepts/StructureProperty__.ts +7 -1
- package/src/concepts/TypeAnnotation__.ts +101 -14
- package/src/concepts/ValidationRule__.ts +58 -9
- package/src/concepts/Variable__.ts +11 -1
- package/src/concepts/ViewElement__.ts +39 -2
- package/src/concepts/View__.ts +26 -14
- package/src/concepts/basics/stdlib/dist/nasl.util.js +1602 -0
- package/src/concepts/basics/stdlib/dist/reference2TypeAnnotationList.js +24 -0
- package/src/concepts/basics/stdlib/nasl.collection.ts +6 -1
- package/src/concepts/basics/stdlib/nasl.configuration.ts +3 -0
- package/src/concepts/basics/stdlib/nasl.core.ts +33 -2
- package/src/concepts/basics/stdlib/nasl.util.ts +4 -2
- package/src/concepts/basics/types/index.ts +1 -0
- package/src/concepts/dist/BindAttribute__.js +795 -0
- package/src/concepts/dist/BindEvent__.js +732 -0
- package/src/concepts/dist/CallFunction__.js +527 -0
- package/src/concepts/dist/CallLogic__.js +932 -0
- package/src/concepts/dist/Destination__.js +708 -0
- package/src/concepts/dist/ExternalDestination__.js +298 -0
- package/src/concepts/dist/Identifier__.js +311 -0
- package/src/concepts/dist/StringInterpolation__.js +231 -0
- package/src/concepts/dist/TypeAnnotation__.js +834 -0
- package/src/concepts/dist/ViewElement__.js +1692 -0
- package/src/concepts/dist/View__.js +1601 -0
- package/src/concepts/index__.ts +0 -1
- package/src/enums/KEYWORDS.ts +8 -0
- package/src/generator/dist/genBundleFiles.js +261 -0
- package/src/generator/dist/genMetaData.js +245 -0
- package/src/generator/dist/permission.js +405 -0
- package/src/generator/genBundleFiles.ts +24 -5
- package/src/generator/genReleaseBody.ts +75 -30
- package/src/generator/permission.ts +31 -15
- package/src/server/entity2LogicNamespace.ts +2 -20
- package/src/server/extendBaseNode.ts +15 -5
- package/src/server/formatTsUtils.ts +41 -10
- package/src/server/getLogics.ts +4 -4
- package/src/server/getMemberIdentifier.ts +27 -1
- package/src/server/index.ts +2 -0
- package/src/server/naslServer.ts +520 -48
- package/src/server/translator.ts +96 -34
- package/src/service/storage/dist/init.js +579 -0
- package/src/service/storage/init.ts +22 -2
- package/src/templator/dist/genEditTableBlock.js +204 -0
- package/src/templator/dist/genGridViewBlock.js +265 -0
- package/src/templator/dist/genListViewBlock.js +84 -0
- package/src/templator/dist/genTableBlock.js +209 -0
- package/src/templator/dist/utils.js +527 -0
- package/src/templator/genCreateBlock.ts +1 -3
- package/src/templator/genCurdEditMultipleKeyBlock.ts +1 -3
- package/src/templator/genCurdMultipleKeyBlock.ts +2 -4
- package/src/templator/genGetBlock.ts +1 -1
- package/src/templator/genGridViewBlock.ts +3 -4
- package/src/templator/genListViewBlock.ts +9 -3
- package/src/templator/genSelectBlock.ts +1 -1
- package/src/templator/genTableBlock.ts +3 -3
- package/src/templator/genUpdateBlock.ts +2 -3
- package/src/utils/traverse.ts +10 -2
- package/ts-worker/lib/tsserver.js +10 -2
- package/ts-worker/package.json +1 -0
- package/ts-worker/webpack.config.js +11 -2
- package/out/concepts/ConstructArgument__.d.ts +0 -40
- package/out/concepts/ConstructArgument__.js +0 -108
- package/out/concepts/ConstructArgument__.js.map +0 -1
- package/out/concepts/Construct__.d.ts +0 -189
- package/out/concepts/Construct__.js +0 -340
- package/out/concepts/Construct__.js.map +0 -1
- package/out/templator/sql-parser/index.d.ts +0 -1
- package/out/templator/sql-parser/index.js +0 -228
- package/out/templator/sql-parser/index.js.map +0 -1
- package/out/templator/sql-parser/parser.js +0 -26664
- package/out/templator/sql-parser/parser.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Logic, View, BaseNode, CallLogic, ViewElement, BindEvent, BindAttribute, App, Entity, Module, Frontend } from
|
|
2
|
-
import { processToTreeFragment } from '
|
|
1
|
+
import { Logic, View, BaseNode, CallLogic, ViewElement, BindEvent, BindAttribute, App, Entity, Module, Frontend, BindStyle, BindDirective } from "../concepts";
|
|
2
|
+
import { processToTreeFragment } from '../server/process2LogicNamespace';
|
|
3
3
|
|
|
4
4
|
type Usage = {
|
|
5
5
|
node: BaseNode,
|
|
@@ -48,7 +48,7 @@ async function findViewLogicReferences(logic: Logic, vis: Set<Logic> = new Set()
|
|
|
48
48
|
async function dfs(usage: Usage) {
|
|
49
49
|
if (usage.node instanceof CallLogic) {
|
|
50
50
|
const logic = usage.node.logic;
|
|
51
|
-
if (!vis.has(logic)) {
|
|
51
|
+
if (!vis.has(logic) && logic) {
|
|
52
52
|
vis.add(logic);
|
|
53
53
|
await findViewLogicReferences(logic, vis);
|
|
54
54
|
}
|
|
@@ -78,7 +78,7 @@ async function findUIReferences(logic: Logic) {
|
|
|
78
78
|
|
|
79
79
|
const res: Array<View | ViewElement> = [];
|
|
80
80
|
function dfs(usage: Usage, parent: Usage = null) {
|
|
81
|
-
if ((usage.node instanceof BindEvent || usage.node instanceof BindAttribute)
|
|
81
|
+
if ((usage.node instanceof BindEvent || usage.node instanceof BindAttribute || usage.node instanceof BindStyle || usage.node instanceof BindDirective)
|
|
82
82
|
&& (parent.node instanceof View || parent.node instanceof ViewElement))
|
|
83
83
|
res.push(parent.node);
|
|
84
84
|
|
|
@@ -160,7 +160,7 @@ function removeRedundantResourceData2(resources: ResourceNode[][]) {
|
|
|
160
160
|
});
|
|
161
161
|
}
|
|
162
162
|
|
|
163
|
-
async function findResourcesOfLogic(logic: Logic) {
|
|
163
|
+
async function findResourcesOfLogic(logic: Logic, uploaders: Map<string, ViewElement[]>) {
|
|
164
164
|
const logics = await findViewLogicReferences(logic);
|
|
165
165
|
logics.push(logic);
|
|
166
166
|
|
|
@@ -168,6 +168,12 @@ async function findResourcesOfLogic(logic: Logic) {
|
|
|
168
168
|
for (const logic of logics) {
|
|
169
169
|
UIs = UIs.concat(await findUIReferences(logic));
|
|
170
170
|
}
|
|
171
|
+
|
|
172
|
+
const service = logic.toService() as { url: { method: string, path: string } };
|
|
173
|
+
if (uploaders.has(service.url.path)) {
|
|
174
|
+
UIs = UIs.concat(uploaders.get(service.url.path));
|
|
175
|
+
}
|
|
176
|
+
|
|
171
177
|
UIs = Array.from(new Set(UIs));
|
|
172
178
|
|
|
173
179
|
const res = UIs.map((ui) => findResourcesOfUI(ui));
|
|
@@ -233,29 +239,39 @@ function getAllLogics(app: App) {
|
|
|
233
239
|
};
|
|
234
240
|
}
|
|
235
241
|
|
|
242
|
+
function findUploaders(app: App) {
|
|
243
|
+
const map = new Map<string, ViewElement[]>();
|
|
244
|
+
app.traverseChildren((node) => {
|
|
245
|
+
if (node instanceof ViewElement && node.tag?.includes('uploader')) {
|
|
246
|
+
const urlAttr = node.bindAttrs.find((item) => item.name === 'url');
|
|
247
|
+
const url = urlAttr?.value;
|
|
248
|
+
if (url) {
|
|
249
|
+
if (!map.has(url))
|
|
250
|
+
map.set(url, [node]);
|
|
251
|
+
else
|
|
252
|
+
map.get(url).push(node);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
return map;
|
|
257
|
+
}
|
|
258
|
+
|
|
236
259
|
export async function genPermissionData(app: App) {
|
|
237
260
|
// console.time('xxx');
|
|
238
261
|
openCache();
|
|
239
262
|
const logicPageResourceDtoList: { [key: string]: ResourceNode[][] } = {};
|
|
240
|
-
const resourceList: string[] = [];
|
|
241
|
-
const resourceDataList: { value: string, type: 'logic', description: string }[] = [];
|
|
242
263
|
const { logics, processLogics } = getAllLogics(app);
|
|
264
|
+
const uploaders = findUploaders(app);
|
|
243
265
|
for (const logic of [...logics, ...processLogics]) {
|
|
244
|
-
const resources = await findResourcesOfLogic(logic);
|
|
266
|
+
const resources = await findResourcesOfLogic(logic, uploaders);
|
|
245
267
|
if (resources.length === 0)
|
|
246
268
|
continue;
|
|
247
269
|
|
|
248
270
|
const service = logics.includes(logic) ? logic.toService() : logic.toProcessService() as { url: { method: string, path: string } };
|
|
249
271
|
const key = `${service.url.path}:${service.url.method}`;
|
|
250
272
|
logicPageResourceDtoList[key] = resources;
|
|
251
|
-
resourceList.push(key);
|
|
252
|
-
resourceDataList.push({
|
|
253
|
-
value: key,
|
|
254
|
-
type: 'logic',
|
|
255
|
-
description: logic.description,
|
|
256
|
-
});
|
|
257
273
|
}
|
|
258
274
|
closeCache();
|
|
259
275
|
// console.timeEnd('xxx');
|
|
260
|
-
return
|
|
276
|
+
return logicPageResourceDtoList;
|
|
261
277
|
}
|
|
@@ -138,26 +138,6 @@ export function entity2LogicNamespace(entity: Entity) {
|
|
|
138
138
|
}),
|
|
139
139
|
required: true,
|
|
140
140
|
}),
|
|
141
|
-
new Param({
|
|
142
|
-
name: 'properties',
|
|
143
|
-
defaultExpression: new AnonymousFunction({
|
|
144
|
-
description: '',
|
|
145
|
-
params: [
|
|
146
|
-
new Param({
|
|
147
|
-
name: 'item',
|
|
148
|
-
typeAnnotation: new TypeAnnotation({
|
|
149
|
-
typeKind: 'reference',
|
|
150
|
-
typeNamespace: entity.getNamespace(),
|
|
151
|
-
typeName: entity.name,
|
|
152
|
-
}),
|
|
153
|
-
}),
|
|
154
|
-
],
|
|
155
|
-
body: new NewList({
|
|
156
|
-
concept: 'NewList',
|
|
157
|
-
}),
|
|
158
|
-
}),
|
|
159
|
-
required: false,
|
|
160
|
-
}),
|
|
161
141
|
],
|
|
162
142
|
body: [],
|
|
163
143
|
returns: [
|
|
@@ -181,6 +161,7 @@ export function entity2LogicNamespace(entity: Entity) {
|
|
|
181
161
|
name: 'filter',
|
|
182
162
|
description: '',
|
|
183
163
|
params: [
|
|
164
|
+
// 实体的 updateBy、deleteBy 方法的 filter 参数后端要求使用 _ 变量名,类型为本实体
|
|
184
165
|
new Param({
|
|
185
166
|
name: '_',
|
|
186
167
|
typeAnnotation: new TypeAnnotation({
|
|
@@ -246,6 +227,7 @@ export function entity2LogicNamespace(entity: Entity) {
|
|
|
246
227
|
name: 'filter',
|
|
247
228
|
description: '',
|
|
248
229
|
params: [
|
|
230
|
+
// 实体的 updateBy、deleteBy 方法的 filter 参数后端要求使用 _ 变量名,类型为本实体
|
|
249
231
|
new Param({
|
|
250
232
|
name: '_',
|
|
251
233
|
typeAnnotation: new TypeAnnotation({
|
|
@@ -87,7 +87,10 @@ BaseNode.prototype.changeName = async function changeName(newValue: string, upda
|
|
|
87
87
|
*/
|
|
88
88
|
const res = naslServer._renamePrepare(this, refsList, newValue);
|
|
89
89
|
if (res.length <= 1) {
|
|
90
|
-
(this
|
|
90
|
+
if (this.concept === 'enumItem') {
|
|
91
|
+
(this as any).setValue(newValue);
|
|
92
|
+
} else
|
|
93
|
+
(this as SetNameNode).setName(newValue);
|
|
91
94
|
} else {
|
|
92
95
|
const callback = (value: boolean) => {
|
|
93
96
|
if (value) {
|
|
@@ -208,7 +211,11 @@ BaseNode.prototype.prepareDelete = async function prepareDelete() {
|
|
|
208
211
|
App.emit('collect:end');
|
|
209
212
|
} else {
|
|
210
213
|
this.delete();
|
|
214
|
+
if (node instanceof Frontend) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
211
217
|
}
|
|
218
|
+
return;
|
|
212
219
|
} else {
|
|
213
220
|
if (node instanceof Frontend) {
|
|
214
221
|
let viewPath = (this as FileNode).getEmbeddedFilePath();
|
|
@@ -226,7 +233,6 @@ BaseNode.prototype.prepareDelete = async function prepareDelete() {
|
|
|
226
233
|
}
|
|
227
234
|
return null;
|
|
228
235
|
}).filter((record) => !!record);
|
|
229
|
-
console.log(result);
|
|
230
236
|
const App = this.rootNode;
|
|
231
237
|
App.emit('collect:start', {
|
|
232
238
|
actionMsg: `删除端${node.name}`,
|
|
@@ -256,7 +262,11 @@ BaseNode.prototype.prepareDelete = async function prepareDelete() {
|
|
|
256
262
|
return null;
|
|
257
263
|
const minRange: MinRange = naslServer._findMinRange(record, fileNode as FileNode);
|
|
258
264
|
if (minRange) {
|
|
259
|
-
|
|
265
|
+
/**
|
|
266
|
+
* 调用方是 调用逻辑或者跳转页面, 去删除对应位置的内容
|
|
267
|
+
* 如果是跳转页面,因为流程下的特殊翻译,需要过滤下 非页面下的参数修改,查找到页面跳转
|
|
268
|
+
*/
|
|
269
|
+
if (minRange.node instanceof CallLogic || (node.parentNode instanceof View && minRange.node instanceof Destination)) {
|
|
260
270
|
minRange.node.deleteCalleeArg(Index);
|
|
261
271
|
}
|
|
262
272
|
}
|
|
@@ -365,14 +375,14 @@ BaseNode.prototype.addParamsPrepare = async function addParamsPrepare(needAdd =
|
|
|
365
375
|
/**
|
|
366
376
|
* 在原型上增加方法来调用
|
|
367
377
|
*/
|
|
368
|
-
BaseNode.prototype.getCurrentTypeAnnotation = async function getCurrentTypeAnnotation() {
|
|
378
|
+
BaseNode.prototype.getCurrentTypeAnnotation = async function getCurrentTypeAnnotation(outTime? :number) {
|
|
369
379
|
try {
|
|
370
380
|
/**
|
|
371
381
|
* 查找这个节点是不是有依赖
|
|
372
382
|
*/
|
|
373
383
|
const app = this.getAncestor('App');
|
|
374
384
|
const naslServer = (app as any).naslServer as NaslServer;
|
|
375
|
-
return naslServer.getCurrentTypeAnnotation(this);
|
|
385
|
+
return naslServer.getCurrentTypeAnnotation(this, outTime || 2000);
|
|
376
386
|
} catch (err) {
|
|
377
387
|
console.log(err);
|
|
378
388
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseNode, Identifier, TypeAnnotation, StructureProperty, Entity, Structure, EntityProperty, Param, MemberExpression, CompletionProperty, Variable, Return, Logic } from '..';
|
|
1
|
+
import { BaseNode, Identifier, TypeAnnotation, StructureProperty, Entity, Structure, EntityProperty, Param, MemberExpression, CompletionProperty, Variable, Return, Logic, ConfigProperty } from '..';
|
|
2
2
|
import { getNaslNodeByNodeCallee } from '../automate/engine/utils';
|
|
3
3
|
|
|
4
4
|
interface variableItem {
|
|
@@ -29,6 +29,11 @@ function formatTs2TypeString(displayParts: Array<{ text: string; kind: string }>
|
|
|
29
29
|
});
|
|
30
30
|
return str;
|
|
31
31
|
}
|
|
32
|
+
|
|
33
|
+
function isValidName(str: string) {
|
|
34
|
+
const regex = /^[a-zA-Z][a-zA-Z0-9_]*$/;
|
|
35
|
+
return regex.test(str);
|
|
36
|
+
}
|
|
32
37
|
/**
|
|
33
38
|
* 解析 Completion 和 QuickInfo 的 displayString
|
|
34
39
|
* 生成 TypeAnnotation
|
|
@@ -45,16 +50,19 @@ export function type2TypeAnnotation(oldType: Array<any> | {}): TypeAnnotation {
|
|
|
45
50
|
let typeAnnotation: TypeAnnotation;
|
|
46
51
|
try {
|
|
47
52
|
const { typeName, typeNamespace, typeArguments, typeKind, properties } = type as any;
|
|
48
|
-
if (typeKind === 'anonymousStructure'
|
|
53
|
+
if (typeKind === 'anonymousStructure') {
|
|
49
54
|
// 自定义类型
|
|
50
55
|
const newProperties: StructureProperty[] = [];
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
if (Array.isArray(properties) && properties.length) {
|
|
57
|
+
properties.forEach((item) => {
|
|
58
|
+
if (!item?.name?.startsWith('__')) {
|
|
59
|
+
// 如果没有获取到类型,就默认塞一个string
|
|
60
|
+
const itemType = type2TypeAnnotation(item.typeInfo) || TypeAnnotation.createPrimitive('String');
|
|
61
|
+
const structureProperty = StructureProperty.from({ name: item.name, typeAnnotation: itemType }, typeAnnotation, 'properties');
|
|
62
|
+
newProperties.push(structureProperty);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
58
66
|
typeAnnotation = TypeAnnotation.createTypeAnonymousStructure(newProperties);
|
|
59
67
|
} else if (!typeName || typeName === 'Promise' || typeName === 'nasl' || typeName === '___IDENTIFIER__') {
|
|
60
68
|
return null;
|
|
@@ -225,7 +233,7 @@ export function getPlatformType(type: string): string {
|
|
|
225
233
|
return tsType;
|
|
226
234
|
}
|
|
227
235
|
export function isNoChildType(type: String) {
|
|
228
|
-
return type?.startsWith('nasl.core') || type?.startsWith('app.enums');
|
|
236
|
+
return (type?.startsWith('nasl.core') && !['String', 'Text', 'Email'].includes(type.split('.')[2])) || type?.startsWith('app.enums');
|
|
229
237
|
}
|
|
230
238
|
function findNode(typeKey: string, node: BaseNode) {
|
|
231
239
|
let newType: Structure | Logic;
|
|
@@ -327,6 +335,11 @@ function getAStructureScopeType(type: string, parent: any, node: BaseNode) {
|
|
|
327
335
|
if (typeKey && typeKey.startsWith('dataSources')) {
|
|
328
336
|
typeKey = 'app.' + typeKey;
|
|
329
337
|
}
|
|
338
|
+
// 如果ls传过来的名字是不合法的就隐藏
|
|
339
|
+
if (!isValidName(name)) {
|
|
340
|
+
console.warn(item, '获取变量不展示');
|
|
341
|
+
return null;
|
|
342
|
+
}
|
|
330
343
|
res.push({
|
|
331
344
|
name,
|
|
332
345
|
typeKey,
|
|
@@ -644,3 +657,21 @@ export function formatFrontEndVariables(frontEndVariables: Array<Variable>) {
|
|
|
644
657
|
});
|
|
645
658
|
return result;
|
|
646
659
|
}
|
|
660
|
+
|
|
661
|
+
export function formatConfigProperties(configProperties: Array<ConfigProperty>) {
|
|
662
|
+
const result = configProperties.map((item) => {
|
|
663
|
+
const namespace = item.getNamespace();
|
|
664
|
+
const newItem: any = {
|
|
665
|
+
name: item.name,
|
|
666
|
+
value: item.name,
|
|
667
|
+
expression: new Identifier({
|
|
668
|
+
name: item.name,
|
|
669
|
+
namespace,
|
|
670
|
+
}),
|
|
671
|
+
icon: 'configProperty',
|
|
672
|
+
calleewholeKey: item.calleewholeKey,
|
|
673
|
+
};
|
|
674
|
+
return newItem;
|
|
675
|
+
});
|
|
676
|
+
return result;
|
|
677
|
+
}
|
package/src/server/getLogics.ts
CHANGED
|
@@ -57,9 +57,9 @@ function iterator(tree: FakeNode | FakeProcessNode, searchContent: string, fakeN
|
|
|
57
57
|
function toHump(name: string): string {
|
|
58
58
|
return name.replace(/\-(\w)/g, (all, letter) => letter.toUpperCase());
|
|
59
59
|
}
|
|
60
|
-
export async function getLogics(node: CallLogic | BindEvent| Identifier, needAllLogic: boolean = true) {
|
|
60
|
+
export async function getLogics(node: CallLogic | BindEvent| Identifier | Logic, needAllLogic: boolean = true) {
|
|
61
61
|
const app = node.rootNode as App;
|
|
62
|
-
if (node.concept === 'CallLogic' || node.concept === 'BindEvent') {
|
|
62
|
+
if (node.concept === 'CallLogic' || node.concept === 'BindEvent' || node.concept === 'Logic') {
|
|
63
63
|
const result = [];
|
|
64
64
|
|
|
65
65
|
if (needAllLogic) {
|
|
@@ -202,7 +202,7 @@ export async function getLogics(node: CallLogic | BindEvent| Identifier, needAll
|
|
|
202
202
|
new Namespace({
|
|
203
203
|
name: 'category',
|
|
204
204
|
path: `configuration`,
|
|
205
|
-
title: '
|
|
205
|
+
title: '应用信息',
|
|
206
206
|
logics: stdlibNamespace.findChild('configuration').logics,
|
|
207
207
|
expanded: false,
|
|
208
208
|
}),
|
|
@@ -243,7 +243,7 @@ export async function getLogics(node: CallLogic | BindEvent| Identifier, needAll
|
|
|
243
243
|
new Namespace({
|
|
244
244
|
name: 'category',
|
|
245
245
|
path: `configuration`,
|
|
246
|
-
title: '
|
|
246
|
+
title: '应用信息',
|
|
247
247
|
logics: stdlibNamespace.findChild('configuration').logics.filter((item) => item.name !== 'getCurrentIp'),
|
|
248
248
|
expanded: false,
|
|
249
249
|
}),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseNode, CompletionProperty, App, Variable, Identifier, MemberExpression, Enum, NullLiteral, BooleanLiteral, Param, BindAttribute, LogicItem, TypeAnnotation, StructureProperty, Entity, Structure, EntityProperty, Frontend, View } from '..';
|
|
2
|
-
import { formatVariableData, formatFrontEndVariables } from './formatTsUtils';
|
|
2
|
+
import { formatVariableData, formatFrontEndVariables, formatConfigProperties } from './formatTsUtils';
|
|
3
3
|
|
|
4
4
|
// 简单实现一版本的格式化nums
|
|
5
5
|
export function formatEnums(enums: Array<Enum>) {
|
|
@@ -274,3 +274,29 @@ export async function getSelectNextCompletionData(node: Identifier, completionPr
|
|
|
274
274
|
return completionData;
|
|
275
275
|
}
|
|
276
276
|
}
|
|
277
|
+
|
|
278
|
+
// 获取枚举
|
|
279
|
+
export function getConfigsIdentifier(node: BaseNode): CompletionProperty[] {
|
|
280
|
+
const app = node.rootNode as App;
|
|
281
|
+
const groups = app?.configuration.groups;
|
|
282
|
+
const customGroup = groups.find((group) => group.name === 'custom');
|
|
283
|
+
const properties = customGroup ? customGroup.properties : [];
|
|
284
|
+
const newProperties = formatConfigProperties(properties);
|
|
285
|
+
// 添加依赖库的枚举选择
|
|
286
|
+
const modules = app?.dependencies?.filter((module) => module.type === 'extension') || [];
|
|
287
|
+
const extensionConfigProperties: any[] = [];
|
|
288
|
+
modules.forEach((module) => {
|
|
289
|
+
const groups = module?.configuration?.groups || [];
|
|
290
|
+
const customGroup = groups.find((group) => group.name === 'custom');
|
|
291
|
+
const properties = customGroup ? customGroup.properties : [];
|
|
292
|
+
if (properties.length) {
|
|
293
|
+
extensionConfigProperties.push({
|
|
294
|
+
name: module.name,
|
|
295
|
+
concept: 'Module',
|
|
296
|
+
icon: 'depend-dataSource',
|
|
297
|
+
children: formatConfigProperties(properties),
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
});
|
|
301
|
+
return newProperties.concat(extensionConfigProperties);
|
|
302
|
+
}
|
package/src/server/index.ts
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
getGlobalVariableIdentifier,
|
|
12
12
|
getLiteralsIdentifier,
|
|
13
13
|
getSelectNextCompletionData,
|
|
14
|
+
getConfigsIdentifier,
|
|
14
15
|
} from './getMemberIdentifier';
|
|
15
16
|
import { NaslServer as NaslServerClass } from './naslServer';
|
|
16
17
|
import './extendBaseNode';
|
|
@@ -35,6 +36,7 @@ const server: any = {
|
|
|
35
36
|
getAllComponentEventMap,
|
|
36
37
|
getLogging,
|
|
37
38
|
displayString2TypeAnnotation,
|
|
39
|
+
getConfigsIdentifier,
|
|
38
40
|
};
|
|
39
41
|
export default server;
|
|
40
42
|
export const NaslServer = NaslServerClass;
|