@lcap/nasl 3.8.0-beta.8 → 3.8.2-alpha.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/.nyc_output/fe4ca6db-1eb6-4898-8aa5-ba8f8d4128f2.json +1 -0
- package/.nyc_output/processinfo/fe4ca6db-1eb6-4898-8aa5-ba8f8d4128f2.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/coverage/cobertura-coverage.xml +9325 -77393
- package/out/concepts/AuthLogicForCallInterface__.js +13 -2
- package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
- package/out/concepts/BackendVariable__.js +11 -1
- package/out/concepts/BackendVariable__.js.map +1 -1
- package/out/concepts/BindDirective__.js +1 -1
- package/out/concepts/BindDirective__.js.map +1 -1
- package/out/concepts/BindStyle__.js +1 -1
- package/out/concepts/BindStyle__.js.map +1 -1
- package/out/concepts/BusinessComponent__.js +14 -3
- package/out/concepts/BusinessComponent__.js.map +1 -1
- package/out/concepts/BusinessLogic__.js +13 -2
- package/out/concepts/BusinessLogic__.js.map +1 -1
- package/out/concepts/CallConnector__.js +2 -1
- package/out/concepts/CallConnector__.js.map +1 -1
- package/out/concepts/CallInterface__.js +12 -3
- package/out/concepts/CallInterface__.js.map +1 -1
- package/out/concepts/CallLogic__.js +24 -1
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/EntityProperty__.js +3 -2
- package/out/concepts/EntityProperty__.js.map +1 -1
- package/out/concepts/Entity__.js +1 -1
- package/out/concepts/Entity__.js.map +1 -1
- package/out/concepts/EnumItem__.js +2 -2
- package/out/concepts/EnumItem__.js.map +1 -1
- package/out/concepts/Interface__.js +1 -1
- package/out/concepts/Interface__.js.map +1 -1
- package/out/concepts/Logic__.js +13 -2
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/NewComposite__.d.ts +1 -0
- package/out/concepts/NewComposite__.js +23 -0
- package/out/concepts/NewComposite__.js.map +1 -1
- package/out/concepts/OverriddenLogic__.js +13 -2
- package/out/concepts/OverriddenLogic__.js.map +1 -1
- package/out/concepts/Param__.js +1 -1
- package/out/concepts/Param__.js.map +1 -1
- package/out/concepts/Structure__.js +1 -3
- package/out/concepts/Structure__.js.map +1 -1
- package/out/concepts/SubLogic__.js +13 -2
- package/out/concepts/SubLogic__.js.map +1 -1
- package/out/concepts/TypeAnnotation__.js +6 -3
- package/out/concepts/TypeAnnotation__.js.map +1 -1
- package/out/concepts/ViewComponentDeclaration__.js +3 -3
- package/out/concepts/ViewComponentDeclaration__.js.map +1 -1
- package/out/concepts/ViewElement__.d.ts +2 -0
- package/out/concepts/ViewElement__.js +60 -19
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.js +24 -2
- package/out/concepts/View__.js.map +1 -1
- package/out/generator/genBundleFiles.js +1 -1
- package/out/generator/genBundleFiles.js.map +1 -1
- package/out/natural/genNaturalTS.d.ts +69 -16
- package/out/natural/genNaturalTS.js +198 -117
- package/out/natural/genNaturalTS.js.map +1 -1
- package/out/natural/getContext/index.d.ts +38 -26
- package/out/natural/getContext/index.js +318 -160
- package/out/natural/getContext/index.js.map +1 -1
- package/out/natural/index.d.ts +1 -0
- package/out/natural/index.js +1 -0
- package/out/natural/index.js.map +1 -1
- package/out/natural/tools.d.ts +11 -0
- package/out/natural/tools.js +162 -0
- package/out/natural/tools.js.map +1 -0
- package/out/natural/transformTS2UI.js +63 -26
- package/out/natural/transformTS2UI.js.map +1 -1
- package/out/natural/transformTSCode.js +26 -15
- package/out/natural/transformTSCode.js.map +1 -1
- package/out/server/naslServer.js +1 -0
- package/out/server/naslServer.js.map +1 -1
- package/out/translator/utils.js +1 -1
- package/out/translator/utils.js.map +1 -1
- package/package.json +1 -1
- package/sandbox/stdlib/nasl.util.ts +2 -2
- package/sandbox-natural/stdlib/nasl.core.ts +11 -0
- package/sandbox-natural/stdlib/nasl.ui.pre.d.ts +37 -37
- package/sandbox-natural/stdlib/nasl.util.ts +6 -6
- package/src/concepts/AuthLogicForCallInterface__.ts +13 -1
- package/src/concepts/BackendVariable__.ts +11 -1
- package/src/concepts/BindDirective__.ts +1 -1
- package/src/concepts/BindStyle__.ts +1 -1
- package/src/concepts/BusinessComponent__.ts +14 -2
- package/src/concepts/BusinessLogic__.ts +13 -1
- package/src/concepts/CallConnector__.ts +2 -1
- package/src/concepts/CallInterface__.ts +10 -3
- package/src/concepts/CallLogic__.ts +34 -14
- package/src/concepts/EntityProperty__.ts +5 -5
- package/src/concepts/Entity__.ts +1 -1
- package/src/concepts/EnumItem__.ts +2 -2
- package/src/concepts/Interface__.ts +1 -1
- package/src/concepts/Logic__.ts +13 -1
- package/src/concepts/NewComposite__.ts +24 -0
- package/src/concepts/OverriddenLogic__.ts +13 -1
- package/src/concepts/Param__.ts +1 -1
- package/src/concepts/Structure__.ts +1 -3
- package/src/concepts/SubLogic__.ts +13 -1
- package/src/concepts/TypeAnnotation__.ts +5 -3
- package/src/concepts/ViewComponentDeclaration__.ts +3 -3
- package/src/concepts/ViewElement__.ts +78 -19
- package/src/concepts/View__.ts +48 -24
- package/src/generator/genBundleFiles.ts +1 -1
- package/src/natural/genNaturalTS.ts +363 -147
- package/src/natural/getContext/index.ts +363 -175
- package/src/natural/index.ts +1 -0
- package/src/natural/tools.ts +138 -0
- package/src/natural/transformTS2UI.ts +60 -25
- package/src/natural/transformTSCode.ts +26 -16
- package/src/server/naslServer.ts +1 -0
- package/src/translator/utils.ts +1 -1
- package/.nyc_output/047fb941-6e69-4829-8b3c-14d37e06c63b.json +0 -1
- package/.nyc_output/processinfo/047fb941-6e69-4829-8b3c-14d37e06c63b.json +0 -1
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { App, BaseNode } from '../concepts';
|
|
2
|
+
export * as getNaturalContext from './getContext';
|
|
2
3
|
export declare function genNaturalTS(app: App, currentNode?: BaseNode, focusedNodePath?: string): string;
|
|
3
|
-
export declare function
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
export declare function genNaturalTSContextJSONForLogic(app: App, currentNode?: BaseNode, focusedNodePath?: string, experimental?: boolean, material?: {
|
|
5
|
+
moduleInterfaces: any;
|
|
6
|
+
connectors: any;
|
|
7
|
+
dependencies: any;
|
|
8
|
+
basicMaterials: 'pc' | 'h5' | {
|
|
7
9
|
json: any;
|
|
8
10
|
tsDeclaration: string;
|
|
9
11
|
};
|
|
@@ -13,11 +15,11 @@ export declare function genNaturalTSContextForUI(app: App, currentNode: BaseNode
|
|
|
13
15
|
description: string;
|
|
14
16
|
tsDescription: string;
|
|
15
17
|
}[];
|
|
16
|
-
}):
|
|
17
|
-
export declare function genNaturalTSContextJSONForLogic(app: App, currentNode?: BaseNode, focusedNodePath?: string, experimental?: boolean): {
|
|
18
|
+
}): {
|
|
18
19
|
naslCore: string;
|
|
19
20
|
naslUtil: string;
|
|
20
21
|
naslUI: string;
|
|
22
|
+
components: any;
|
|
21
23
|
naslOql: string;
|
|
22
24
|
enums: {
|
|
23
25
|
namespace: string;
|
|
@@ -47,17 +49,29 @@ export declare function genNaturalTSContextJSONForLogic(app: App, currentNode?:
|
|
|
47
49
|
structures: import("./getContext").SnippetBlock;
|
|
48
50
|
logics: import("./getContext").SnippetBlock;
|
|
49
51
|
}[];
|
|
50
|
-
frontendVar: string;
|
|
51
52
|
frontendVariables: string;
|
|
53
|
+
backendVariables: string;
|
|
52
54
|
views: {
|
|
53
55
|
namespace: string;
|
|
54
56
|
data: import("./getContext").Snippet[];
|
|
55
57
|
};
|
|
56
58
|
currentLogic: string;
|
|
59
|
+
logicType: string;
|
|
57
60
|
};
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
+
/**
|
|
62
|
+
* 生成 Logic 的 TypeScript 上下文
|
|
63
|
+
* @param tsContextJSON: 通过 genNaturalTSContextForLogic 获得到 tsContextJSON
|
|
64
|
+
* @param codeType: 'detail' | 'short'。detail 为详细代码,short 为简短代码
|
|
65
|
+
* 'detail' 将所有的code都返回(拼接成详细的code)。RAG召回,分析和执行阶段使用
|
|
66
|
+
* 'short' 只返回简短的code。模型召回,对应的分析阶段使用
|
|
67
|
+
* @param requiredIndexes?: 通过索引获取对应的 code。可挑选需要的 code
|
|
68
|
+
**/
|
|
69
|
+
export declare const genNaturalTSContextFromJSONForLogic: (tsContextJSON: any, codeType: 'detail' | 'short', requiredIndexes?: string[]) => string;
|
|
70
|
+
export declare function genNaturalTSContextForLogic(app: App, currentNode?: BaseNode, focusedNodePath?: string, requiredIndexes?: string[], experimental?: boolean, material?: {
|
|
71
|
+
moduleInterfaces: any;
|
|
72
|
+
connectors: any;
|
|
73
|
+
dependencies: any;
|
|
74
|
+
basicMaterials: 'pc' | 'h5' | {
|
|
61
75
|
json: any;
|
|
62
76
|
tsDeclaration: string;
|
|
63
77
|
};
|
|
@@ -67,15 +81,29 @@ export declare function genNaturalTSContextJSONForUI(app: App, currentNode: Base
|
|
|
67
81
|
description: string;
|
|
68
82
|
tsDescription: string;
|
|
69
83
|
}[];
|
|
70
|
-
},
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
84
|
+
}, restParams?: {
|
|
85
|
+
codeType?: 'detail' | 'short';
|
|
86
|
+
}): string;
|
|
87
|
+
export declare const genNaturalTSContext: typeof genNaturalTSContextForLogic;
|
|
88
|
+
export declare const genNaturalTsContextJson: typeof genNaturalTSContextJSONForLogic;
|
|
89
|
+
export declare function genNaturalTSContextJSONForUI(app: App, currentNode: BaseNode, material?: {
|
|
90
|
+
basicMaterials: 'pc' | 'h5' | {
|
|
91
|
+
json: any;
|
|
92
|
+
tsDeclaration: string;
|
|
93
|
+
};
|
|
94
|
+
extensionMaterials: {
|
|
74
95
|
name: string;
|
|
75
96
|
title: string;
|
|
76
97
|
description: string;
|
|
77
|
-
|
|
98
|
+
tsDescription: string;
|
|
78
99
|
}[];
|
|
100
|
+
moduleInterfaces: any;
|
|
101
|
+
connectors: any;
|
|
102
|
+
dependencies: any;
|
|
103
|
+
}): {
|
|
104
|
+
naslCore: string;
|
|
105
|
+
naslUtil: string;
|
|
106
|
+
naslUI: any;
|
|
79
107
|
enums: {
|
|
80
108
|
namespace: string;
|
|
81
109
|
data: import("./getContext").Snippet[];
|
|
@@ -106,4 +134,29 @@ export declare function genNaturalTSContextJSONForUI(app: App, currentNode: Base
|
|
|
106
134
|
};
|
|
107
135
|
currentPage: string;
|
|
108
136
|
};
|
|
109
|
-
|
|
137
|
+
/**
|
|
138
|
+
* 根据 tsContextJSON 生成 View 的 TypeScript 上下文
|
|
139
|
+
* @param tsContextJSON: 通过 genNaturalTSContextJSONForUI 获得到 tsContextJSON
|
|
140
|
+
* @param codeType: 'detail' | 'short'。detail 为详细代码,short 为简短代码
|
|
141
|
+
* 'detail' 将所有的code都返回(拼接成详细的code)。RAG召回,分析和执行阶段使用
|
|
142
|
+
* 'short' 只返回简短的code。模型召回,对应的分析阶段使用
|
|
143
|
+
* @param requiredIndexes?: 通过索引获取对应的 code。可挑选需要的 code
|
|
144
|
+
**/
|
|
145
|
+
export declare const genNaturalTSContextFromJSONForUI: (tsContextJSON: any, codeType: 'detail' | 'short', requiredIndexes?: string[]) => string;
|
|
146
|
+
export declare function genNaturalTSContextForUI(app: App, currentNode: BaseNode, focusedNodePath?: string, requiredIndexes?: string[], material?: {
|
|
147
|
+
basicMaterials: 'pc' | 'h5' | {
|
|
148
|
+
json: any;
|
|
149
|
+
tsDeclaration: string;
|
|
150
|
+
};
|
|
151
|
+
extensionMaterials: {
|
|
152
|
+
name: string;
|
|
153
|
+
title: string;
|
|
154
|
+
description: string;
|
|
155
|
+
tsDescription: string;
|
|
156
|
+
}[];
|
|
157
|
+
moduleInterfaces: any;
|
|
158
|
+
connectors: any;
|
|
159
|
+
dependencies: any;
|
|
160
|
+
}, restParams?: {
|
|
161
|
+
codeType?: 'detail' | 'short';
|
|
162
|
+
}): string;
|
|
@@ -23,9 +23,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.genNaturalTSContextForUI = exports.genNaturalTSContextFromJSONForUI = exports.genNaturalTSContextJSONForUI = exports.genNaturalTsContextJson = exports.genNaturalTSContext = exports.genNaturalTSContextForLogic = exports.genNaturalTSContextFromJSONForLogic = exports.genNaturalTSContextJSONForLogic = exports.genNaturalTS = exports.getNaturalContext = void 0;
|
|
27
27
|
const getContext_1 = require("./getContext");
|
|
28
28
|
const translator_1 = require("../translator");
|
|
29
|
+
exports.getNaturalContext = __importStar(require("./getContext"));
|
|
29
30
|
function genNaturalTS(app, currentNode, focusedNodePath) {
|
|
30
31
|
if (currentNode?.concept === 'Logic') {
|
|
31
32
|
const logic = currentNode;
|
|
@@ -39,123 +40,44 @@ function genNaturalTS(app, currentNode, focusedNodePath) {
|
|
|
39
40
|
return (0, getContext_1.getCurrentNodeContextForUI)(currentNode).code;
|
|
40
41
|
}
|
|
41
42
|
exports.genNaturalTS = genNaturalTS;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const logicType = currentNode?.parentNode?.concept === 'App' ? 'global_logic' : 'view_logic';
|
|
45
|
-
const state = (0, translator_1.createCompilerState)('', { descriptionComment: true });
|
|
46
|
-
let code = '';
|
|
47
|
-
code += '### [1] 标准库\n';
|
|
48
|
-
code += (0, getContext_1.getNaslCore)(logicType).code;
|
|
49
|
-
code += '\n### [2] nasl.util\n';
|
|
50
|
-
code += (0, getContext_1.getNaslUtil)().code;
|
|
51
|
-
if (frontend) {
|
|
52
|
-
code += '\n### [3] nasl.ui\n';
|
|
53
|
-
code += (0, getContext_1.getNaslUIOld)().code;
|
|
54
|
-
}
|
|
55
|
-
if (logicType === 'global_logic') {
|
|
56
|
-
code += '\n### [4] nasl.oql\n';
|
|
57
|
-
code += (0, getContext_1.getNaslOQL)().code;
|
|
58
|
-
}
|
|
59
|
-
code += '\n### [5] 全局上下文\n';
|
|
60
|
-
code += '\n#### [5-0] 枚举\n';
|
|
61
|
-
code += (0, getContext_1.getEnums)(app, state, requiredIndexes).code;
|
|
62
|
-
code += '\n#### [5-1] 实体\n';
|
|
63
|
-
code += (0, getContext_1.getEntities)(app, state, requiredIndexes).code;
|
|
64
|
-
code += '\n#### [5-2] 可用的数据结构\n';
|
|
65
|
-
code += (0, getContext_1.getStructures)(app, state, requiredIndexes).code;
|
|
66
|
-
code += '\n### [6] 服务端逻辑\n';
|
|
67
|
-
code += (0, getContext_1.getLogics)(app, currentNode, requiredIndexes).code;
|
|
68
|
-
code += '\n### [7] 可调用的接口列表\n';
|
|
69
|
-
code += (0, getContext_1.getModuleInterfaces)(app, state, requiredIndexes).code;
|
|
70
|
-
if (app?.connections?.length > 0 && logicType === 'global_logic') {
|
|
71
|
-
code += '\n### [8] 连接器逻辑列表\n';
|
|
72
|
-
code += (0, getContext_1.getConnectors)(app, state, requiredIndexes).code;
|
|
73
|
-
}
|
|
74
|
-
if (app?.dependencies?.length > 0) {
|
|
75
|
-
code += '\n### [9] 依赖库逻辑列表\n';
|
|
76
|
-
code += (0, getContext_1.getDependencies)(app, state, requiredIndexes).code;
|
|
77
|
-
}
|
|
78
|
-
if (frontend) {
|
|
79
|
-
code += '\n### [10] 页面上下文\n';
|
|
80
|
-
if (frontend?.variables?.length > 0) {
|
|
81
|
-
code += '\n#### [10-0] 前端全局变量\n';
|
|
82
|
-
code += (0, getContext_1.getFrontendVariables)(frontend, state).code;
|
|
83
|
-
}
|
|
84
|
-
code += '\n#### [10-1] 前端页面列表\n';
|
|
85
|
-
code += (0, getContext_1.getFrontendViews)(frontend, state, currentNode, true).code;
|
|
86
|
-
}
|
|
87
|
-
if (focusedNodePath) {
|
|
88
|
-
code += '\n### 当前逻辑上下文\n';
|
|
89
|
-
code += (0, getContext_1.getCurrentNodeContext)(currentNode, focusedNodePath, experimental).code;
|
|
90
|
-
}
|
|
91
|
-
return code;
|
|
92
|
-
}
|
|
93
|
-
exports.genNaturalTSContextForLogic = genNaturalTSContextForLogic;
|
|
94
|
-
exports.genNaturalTSContext = genNaturalTSContextForLogic;
|
|
95
|
-
function genNaturalTSContextForUI(app, currentNode, focusedNodePath, requiredIndexes, material) {
|
|
96
|
-
const frontend = currentNode.getAncestor('Frontend');
|
|
97
|
-
const state = (0, translator_1.createCompilerState)('', { descriptionComment: true });
|
|
98
|
-
let code = '';
|
|
99
|
-
code += '### [1] 标准库\n';
|
|
100
|
-
code += (0, getContext_1.getNaslCore)('view_logic').code;
|
|
101
|
-
code += '\n### [2] nasl.util\n';
|
|
102
|
-
code += (0, getContext_1.getNaslUtil)().code;
|
|
103
|
-
if (frontend) {
|
|
104
|
-
code += '\n### [3] nasl.ui\n';
|
|
105
|
-
code += (0, getContext_1.getNaslUI)(app, frontend.type, material || frontend.type, requiredIndexes).code;
|
|
106
|
-
code += '\n';
|
|
107
|
-
}
|
|
108
|
-
code += '\n### [5] 全局上下文\n';
|
|
109
|
-
code += '\n#### [5-0] 枚举\n';
|
|
110
|
-
code += (0, getContext_1.getEnums)(app, state, requiredIndexes).code;
|
|
111
|
-
code += '\n#### [5-1] 实体\n';
|
|
112
|
-
code += (0, getContext_1.getEntities)(app, state, requiredIndexes).code;
|
|
113
|
-
code += '\n#### [5-2] 可用的数据结构\n';
|
|
114
|
-
code += (0, getContext_1.getStructures)(app, state, requiredIndexes).code;
|
|
115
|
-
code += '\n### [6] 服务端逻辑\n';
|
|
116
|
-
code += (0, getContext_1.getLogics)(app, currentNode, requiredIndexes).code;
|
|
117
|
-
code += '\n### [7] 可调用的接口列表\n';
|
|
118
|
-
code += (0, getContext_1.getModuleInterfaces)(app, state, requiredIndexes).code;
|
|
119
|
-
if (app?.dependencies?.length > 0) {
|
|
120
|
-
code += '\n### [9] 依赖库逻辑列表\n';
|
|
121
|
-
code += (0, getContext_1.getDependencies)(app, state, requiredIndexes).code;
|
|
122
|
-
}
|
|
123
|
-
if (frontend) {
|
|
124
|
-
code += '\n### [10] 页面上下文\n';
|
|
125
|
-
if (frontend?.variables?.length > 0) {
|
|
126
|
-
code += '\n#### [10-0] 前端全局变量\n';
|
|
127
|
-
code += (0, getContext_1.getFrontendVariables)(frontend, state).code;
|
|
128
|
-
}
|
|
129
|
-
code += '\n#### [10-1] 前端页面列表\n';
|
|
130
|
-
code += (0, getContext_1.getFrontendViews)(frontend, state, currentNode, true).code;
|
|
131
|
-
}
|
|
132
|
-
code += '\n### 当前页面上下文\n';
|
|
133
|
-
code += (0, getContext_1.getCurrentNodeContextForUI)(currentNode).code;
|
|
134
|
-
return code;
|
|
135
|
-
}
|
|
136
|
-
exports.genNaturalTSContextForUI = genNaturalTSContextForUI;
|
|
137
|
-
function genNaturalTSContextJSONForLogic(app, currentNode, focusedNodePath, experimental) {
|
|
43
|
+
// =========================== logic ===========================
|
|
44
|
+
function genNaturalTSContextJSONForLogic(app, currentNode, focusedNodePath, experimental, material) {
|
|
138
45
|
const frontend = currentNode?.getAncestor('Frontend');
|
|
139
46
|
const logicType = currentNode?.parentNode?.concept === 'App' ? 'global_logic' : 'view_logic';
|
|
140
47
|
const state = (0, translator_1.createCompilerState)('', { descriptionComment: true });
|
|
141
48
|
const { naslCore } = (0, getContext_1.getNaslCore)(logicType);
|
|
142
49
|
const { naslUtil } = (0, getContext_1.getNaslUtil)();
|
|
143
50
|
const { naslUI } = (0, getContext_1.getNaslUIOld)();
|
|
51
|
+
let components = [];
|
|
52
|
+
if (logicType === 'view_logic' && material?.basicMaterials && material?.extensionMaterials) {
|
|
53
|
+
components = (0, getContext_1.getNaslUI)(app, frontend.type, {
|
|
54
|
+
basicMaterials: material?.basicMaterials,
|
|
55
|
+
extensionMaterials: material?.extensionMaterials,
|
|
56
|
+
}).naslUI;
|
|
57
|
+
}
|
|
144
58
|
const { naslOql } = (0, getContext_1.getNaslOQL)();
|
|
145
|
-
const { enums } = (0, getContext_1.getEnums)(app, state
|
|
146
|
-
const { entities } = (0, getContext_1.getEntities)(app, state
|
|
147
|
-
const { structures } = (0, getContext_1.getStructures)(app, state
|
|
148
|
-
const { appLogics } = (0, getContext_1.getLogics)(app, currentNode,
|
|
149
|
-
const { interfaceDependencies } = (0, getContext_1.getModuleInterfaces)(app, state
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
59
|
+
const { enums } = (0, getContext_1.getEnums)(app, state);
|
|
60
|
+
const { entities } = (0, getContext_1.getEntities)(app, state);
|
|
61
|
+
const { structures } = (0, getContext_1.getStructures)(app, state);
|
|
62
|
+
const { appLogics } = (0, getContext_1.getLogics)(app, currentNode, state);
|
|
63
|
+
const { interfaceDependencies } = (0, getContext_1.getModuleInterfaces)(material?.moduleInterfaces || app?.interfaceDependencies, state);
|
|
64
|
+
let connections = [];
|
|
65
|
+
if (material?.connectors?.length) {
|
|
66
|
+
connections = (0, getContext_1.getConnectors)(material.connectors, state).connectors;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
connections = (0, getContext_1.getConnections)(material?.connectors || app.connections, state).connections;
|
|
70
|
+
}
|
|
71
|
+
const { dependencies } = (0, getContext_1.getDependencies)(material?.dependencies || app?.dependencies, state, logicType, frontend?.type);
|
|
72
|
+
const { frontendVariables } = (0, getContext_1.getFrontendVariables)(currentNode?.getAncestor('Frontend'), state);
|
|
73
|
+
const { backendVariables } = (0, getContext_1.getServerVariables)(app, state);
|
|
153
74
|
const { views } = (0, getContext_1.getFrontendViews)(frontend, state, currentNode, false);
|
|
154
75
|
const { currentLogic } = (0, getContext_1.getCurrentNodeContext)(currentNode, focusedNodePath, experimental);
|
|
155
76
|
return {
|
|
156
77
|
naslCore,
|
|
157
78
|
naslUtil,
|
|
158
79
|
naslUI,
|
|
80
|
+
components,
|
|
159
81
|
naslOql,
|
|
160
82
|
enums,
|
|
161
83
|
entities,
|
|
@@ -164,28 +86,118 @@ function genNaturalTSContextJSONForLogic(app, currentNode, focusedNodePath, expe
|
|
|
164
86
|
interfaceDependencies,
|
|
165
87
|
connections,
|
|
166
88
|
dependencies,
|
|
167
|
-
frontendVar,
|
|
168
89
|
frontendVariables,
|
|
90
|
+
backendVariables,
|
|
169
91
|
views,
|
|
170
92
|
currentLogic,
|
|
93
|
+
logicType,
|
|
171
94
|
};
|
|
172
95
|
}
|
|
173
96
|
exports.genNaturalTSContextJSONForLogic = genNaturalTSContextJSONForLogic;
|
|
97
|
+
/**
|
|
98
|
+
* 生成 Logic 的 TypeScript 上下文
|
|
99
|
+
* @param tsContextJSON: 通过 genNaturalTSContextForLogic 获得到 tsContextJSON
|
|
100
|
+
* @param codeType: 'detail' | 'short'。detail 为详细代码,short 为简短代码
|
|
101
|
+
* 'detail' 将所有的code都返回(拼接成详细的code)。RAG召回,分析和执行阶段使用
|
|
102
|
+
* 'short' 只返回简短的code。模型召回,对应的分析阶段使用
|
|
103
|
+
* @param requiredIndexes?: 通过索引获取对应的 code。可挑选需要的 code
|
|
104
|
+
**/
|
|
105
|
+
const genNaturalTSContextFromJSONForLogic = (tsContextJSON, codeType, requiredIndexes) => {
|
|
106
|
+
const { naslCore, naslUtil, naslUI, naslOql, enums, entities, structures, appLogics, interfaceDependencies, connections, dependencies, frontendVariables, backendVariables, views, currentLogic, logicType, } = tsContextJSON;
|
|
107
|
+
let code = '';
|
|
108
|
+
code += '### [1] 标准库\n';
|
|
109
|
+
code += (0, getContext_1.wrapTSBlock)(naslCore);
|
|
110
|
+
code += '\n### [2] nasl.util\n';
|
|
111
|
+
code += (0, getContext_1.wrapTSBlock)(naslUtil);
|
|
112
|
+
if (naslUI && logicType === 'view_logic') {
|
|
113
|
+
code += '\n### [3] nasl.ui\n';
|
|
114
|
+
if (typeof naslUI === 'string') {
|
|
115
|
+
code += (0, getContext_1.wrapTSBlock)(naslUI);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
code += (0, getContext_1.getNaslUICode)(naslUI, codeType, requiredIndexes);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (naslOql && logicType === 'global_logic') {
|
|
122
|
+
code += '\n### [4] nasl.oql\n';
|
|
123
|
+
code += (0, getContext_1.wrapTSBlock)(naslOql);
|
|
124
|
+
}
|
|
125
|
+
code += '\n### [5] 全局上下文\n';
|
|
126
|
+
if (enums.data?.length) {
|
|
127
|
+
code += '\n#### [5-0] 枚举\n';
|
|
128
|
+
code += (0, getContext_1.getEnumsCode)(enums);
|
|
129
|
+
}
|
|
130
|
+
if (entities?.length) {
|
|
131
|
+
code += '\n#### [5-1] 实体\n';
|
|
132
|
+
code += (0, getContext_1.getEntitiesCode)(entities);
|
|
133
|
+
}
|
|
134
|
+
if (structures.data?.length) {
|
|
135
|
+
code += '\n#### [5-2] 可用的数据结构\n';
|
|
136
|
+
code += (0, getContext_1.getStructuresCode)(structures);
|
|
137
|
+
}
|
|
138
|
+
if (appLogics.data?.length) {
|
|
139
|
+
code += '\n### [6] 服务端逻辑\n';
|
|
140
|
+
code += (0, getContext_1.getLogicsCode)(appLogics, codeType, requiredIndexes);
|
|
141
|
+
}
|
|
142
|
+
if (interfaceDependencies) {
|
|
143
|
+
code += '\n### [7] 可调用的接口列表\n';
|
|
144
|
+
code += (0, getContext_1.getModuleInterfacesCode)(interfaceDependencies, codeType, requiredIndexes);
|
|
145
|
+
}
|
|
146
|
+
if (logicType === 'global_logic' && connections) {
|
|
147
|
+
code += '\n### [8] 连接器逻辑列表\n';
|
|
148
|
+
code += (0, getContext_1.getConnectorsCode)(connections, codeType, requiredIndexes);
|
|
149
|
+
}
|
|
150
|
+
if (dependencies) {
|
|
151
|
+
code += '\n### [9] 依赖库逻辑列表\n';
|
|
152
|
+
code += (0, getContext_1.getDependenciesCode)(dependencies, codeType, requiredIndexes);
|
|
153
|
+
}
|
|
154
|
+
if (logicType === 'view_logic') {
|
|
155
|
+
code += '\n### [10] 页面上下文\n';
|
|
156
|
+
if (frontendVariables) {
|
|
157
|
+
code += '\n#### [10-0] 前端全局变量\n';
|
|
158
|
+
code += frontendVariables;
|
|
159
|
+
}
|
|
160
|
+
if (views?.data?.length) {
|
|
161
|
+
code += '\n#### [10-1] 前端页面列表\n';
|
|
162
|
+
code += (0, getContext_1.getFrontendViewsCode)(views);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
code += '\n### [10] 全局变量\n';
|
|
167
|
+
code += backendVariables;
|
|
168
|
+
}
|
|
169
|
+
code += '\n### 当前逻辑上下文\n';
|
|
170
|
+
code += (0, getContext_1.wrapTSBlock)(currentLogic);
|
|
171
|
+
return code;
|
|
172
|
+
};
|
|
173
|
+
exports.genNaturalTSContextFromJSONForLogic = genNaturalTSContextFromJSONForLogic;
|
|
174
|
+
function genNaturalTSContextForLogic(app, currentNode, focusedNodePath, requiredIndexes, experimental, material, restParams) {
|
|
175
|
+
const tsContextJSON = genNaturalTSContextJSONForLogic(app, currentNode, focusedNodePath, experimental, material);
|
|
176
|
+
const code = (0, exports.genNaturalTSContextFromJSONForLogic)(tsContextJSON, restParams.codeType, requiredIndexes);
|
|
177
|
+
return code;
|
|
178
|
+
}
|
|
179
|
+
exports.genNaturalTSContextForLogic = genNaturalTSContextForLogic;
|
|
180
|
+
exports.genNaturalTSContext = genNaturalTSContextForLogic;
|
|
174
181
|
exports.genNaturalTsContextJson = genNaturalTSContextJSONForLogic;
|
|
175
|
-
|
|
182
|
+
// =========================== view ===========================
|
|
183
|
+
// 生成 View 的 tsJson
|
|
184
|
+
function genNaturalTSContextJSONForUI(app, currentNode, material) {
|
|
176
185
|
const frontend = currentNode.getAncestor('Frontend');
|
|
177
|
-
const state = (0, translator_1.createCompilerState)();
|
|
186
|
+
const state = (0, translator_1.createCompilerState)('', { descriptionComment: true, needNamespace: true });
|
|
178
187
|
const { naslCore } = (0, getContext_1.getNaslCore)('view_logic');
|
|
179
188
|
const { naslUtil } = (0, getContext_1.getNaslUtil)();
|
|
180
|
-
const { naslUI } = (0, getContext_1.getNaslUI)(app, frontend.type,
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
const {
|
|
185
|
-
const {
|
|
186
|
-
const {
|
|
189
|
+
const { naslUI } = (0, getContext_1.getNaslUI)(app, frontend.type, {
|
|
190
|
+
basicMaterials: material?.basicMaterials,
|
|
191
|
+
extensionMaterials: material?.extensionMaterials,
|
|
192
|
+
});
|
|
193
|
+
const { enums } = (0, getContext_1.getEnums)(app, state);
|
|
194
|
+
const { entities } = (0, getContext_1.getEntities)(app, state);
|
|
195
|
+
const { structures } = (0, getContext_1.getStructures)(app, state);
|
|
196
|
+
const { appLogics } = (0, getContext_1.getLogics)(app, currentNode, state);
|
|
197
|
+
const { interfaceDependencies } = (0, getContext_1.getModuleInterfaces)(material?.moduleInterfaces || app?.interfaceDependencies, state);
|
|
198
|
+
const { dependencies } = (0, getContext_1.getDependencies)(material?.dependencies || app?.dependencies, state, 'view_logic', frontend?.type);
|
|
187
199
|
const { frontendVariables } = (0, getContext_1.getFrontendVariables)(frontend, state);
|
|
188
|
-
const { views } = (0, getContext_1.getFrontendViews)(frontend, state, currentNode,
|
|
200
|
+
const { views } = (0, getContext_1.getFrontendViews)(frontend, state, currentNode, false);
|
|
189
201
|
const { currentLogic } = (0, getContext_1.getCurrentNodeContextForUI)(currentNode);
|
|
190
202
|
return {
|
|
191
203
|
naslCore,
|
|
@@ -203,5 +215,74 @@ function genNaturalTSContextJSONForUI(app, currentNode, material, requiredIndexe
|
|
|
203
215
|
};
|
|
204
216
|
}
|
|
205
217
|
exports.genNaturalTSContextJSONForUI = genNaturalTSContextJSONForUI;
|
|
206
|
-
|
|
218
|
+
/**
|
|
219
|
+
* 根据 tsContextJSON 生成 View 的 TypeScript 上下文
|
|
220
|
+
* @param tsContextJSON: 通过 genNaturalTSContextJSONForUI 获得到 tsContextJSON
|
|
221
|
+
* @param codeType: 'detail' | 'short'。detail 为详细代码,short 为简短代码
|
|
222
|
+
* 'detail' 将所有的code都返回(拼接成详细的code)。RAG召回,分析和执行阶段使用
|
|
223
|
+
* 'short' 只返回简短的code。模型召回,对应的分析阶段使用
|
|
224
|
+
* @param requiredIndexes?: 通过索引获取对应的 code。可挑选需要的 code
|
|
225
|
+
**/
|
|
226
|
+
const genNaturalTSContextFromJSONForUI = (tsContextJSON, codeType, requiredIndexes) => {
|
|
227
|
+
const { naslCore, naslUtil, naslUI, enums, entities, structures, appLogics, interfaceDependencies, dependencies, frontendVariables, views, currentPage, } = tsContextJSON;
|
|
228
|
+
let code = '';
|
|
229
|
+
code += '### [1] 标准库\n';
|
|
230
|
+
code += (0, getContext_1.wrapTSBlock)(naslCore);
|
|
231
|
+
code += '\n### [2] nasl.util\n';
|
|
232
|
+
code += (0, getContext_1.wrapTSBlock)(naslUtil);
|
|
233
|
+
if (naslUI) {
|
|
234
|
+
code += '\n### [3] nasl.ui\n';
|
|
235
|
+
if (typeof naslUI === 'string') {
|
|
236
|
+
code += (0, getContext_1.wrapTSBlock)(naslUI);
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
code += (0, getContext_1.getNaslUICode)(naslUI, codeType, requiredIndexes);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
code += '\n### [5] 全局上下文\n';
|
|
243
|
+
if (enums.data?.length) {
|
|
244
|
+
code += '\n#### [5-0] 枚举\n';
|
|
245
|
+
code += (0, getContext_1.getEnumsCode)(enums);
|
|
246
|
+
}
|
|
247
|
+
if (entities?.length) {
|
|
248
|
+
code += '\n#### [5-1] 实体\n';
|
|
249
|
+
code += (0, getContext_1.getEntitiesCode)(entities);
|
|
250
|
+
}
|
|
251
|
+
if (structures.data?.length) {
|
|
252
|
+
code += '\n#### [5-2] 可用的数据结构\n';
|
|
253
|
+
code += (0, getContext_1.getStructuresCode)(structures);
|
|
254
|
+
}
|
|
255
|
+
if (appLogics.data?.length) {
|
|
256
|
+
code += '\n### [6] 服务端逻辑\n';
|
|
257
|
+
code += (0, getContext_1.getLogicsCode)(appLogics, codeType, requiredIndexes);
|
|
258
|
+
}
|
|
259
|
+
if (interfaceDependencies) {
|
|
260
|
+
code += '\n### [7] 可调用的接口列表\n';
|
|
261
|
+
code += (0, getContext_1.getModuleInterfacesCode)(interfaceDependencies, codeType, requiredIndexes);
|
|
262
|
+
}
|
|
263
|
+
if (dependencies) {
|
|
264
|
+
code += '\n### [9] 依赖库逻辑列表\n';
|
|
265
|
+
code += (0, getContext_1.getDependenciesCode)(dependencies, codeType, requiredIndexes);
|
|
266
|
+
}
|
|
267
|
+
code += '\n### [10] 页面上下文\n';
|
|
268
|
+
if (frontendVariables) {
|
|
269
|
+
code += '\n#### [10-0] 前端全局变量\n';
|
|
270
|
+
code += frontendVariables;
|
|
271
|
+
}
|
|
272
|
+
if (views?.data?.length) {
|
|
273
|
+
code += '\n#### [10-1] 前端页面列表\n';
|
|
274
|
+
code += (0, getContext_1.getFrontendViewsCode)(views);
|
|
275
|
+
}
|
|
276
|
+
code += '\n### 当前页面上下文\n';
|
|
277
|
+
code += (0, getContext_1.wrapTSBlock)(currentPage);
|
|
278
|
+
return code;
|
|
279
|
+
};
|
|
280
|
+
exports.genNaturalTSContextFromJSONForUI = genNaturalTSContextFromJSONForUI;
|
|
281
|
+
// 兼容各版本,统一调用 genNaturalTSContextForUI 方法
|
|
282
|
+
function genNaturalTSContextForUI(app, currentNode, focusedNodePath, requiredIndexes, material, restParams) {
|
|
283
|
+
const tsContextJSON = genNaturalTSContextJSONForUI(app, currentNode, material);
|
|
284
|
+
const code = (0, exports.genNaturalTSContextFromJSONForUI)(tsContextJSON, restParams.codeType, requiredIndexes);
|
|
285
|
+
return code;
|
|
286
|
+
}
|
|
287
|
+
exports.genNaturalTSContextForUI = genNaturalTSContextForUI;
|
|
207
288
|
//# sourceMappingURL=genNaturalTS.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genNaturalTS.js","sourceRoot":"","sources":["../../src/natural/genNaturalTS.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"genNaturalTS.js","sourceRoot":"","sources":["../../src/natural/genNaturalTS.ts"],"names":[],"mappings":"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"}
|