@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.
Files changed (113) hide show
  1. package/.nyc_output/fe4ca6db-1eb6-4898-8aa5-ba8f8d4128f2.json +1 -0
  2. package/.nyc_output/processinfo/fe4ca6db-1eb6-4898-8aa5-ba8f8d4128f2.json +1 -0
  3. package/.nyc_output/processinfo/index.json +1 -1
  4. package/coverage/cobertura-coverage.xml +9325 -77393
  5. package/out/concepts/AuthLogicForCallInterface__.js +13 -2
  6. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  7. package/out/concepts/BackendVariable__.js +11 -1
  8. package/out/concepts/BackendVariable__.js.map +1 -1
  9. package/out/concepts/BindDirective__.js +1 -1
  10. package/out/concepts/BindDirective__.js.map +1 -1
  11. package/out/concepts/BindStyle__.js +1 -1
  12. package/out/concepts/BindStyle__.js.map +1 -1
  13. package/out/concepts/BusinessComponent__.js +14 -3
  14. package/out/concepts/BusinessComponent__.js.map +1 -1
  15. package/out/concepts/BusinessLogic__.js +13 -2
  16. package/out/concepts/BusinessLogic__.js.map +1 -1
  17. package/out/concepts/CallConnector__.js +2 -1
  18. package/out/concepts/CallConnector__.js.map +1 -1
  19. package/out/concepts/CallInterface__.js +12 -3
  20. package/out/concepts/CallInterface__.js.map +1 -1
  21. package/out/concepts/CallLogic__.js +24 -1
  22. package/out/concepts/CallLogic__.js.map +1 -1
  23. package/out/concepts/EntityProperty__.js +3 -2
  24. package/out/concepts/EntityProperty__.js.map +1 -1
  25. package/out/concepts/Entity__.js +1 -1
  26. package/out/concepts/Entity__.js.map +1 -1
  27. package/out/concepts/EnumItem__.js +2 -2
  28. package/out/concepts/EnumItem__.js.map +1 -1
  29. package/out/concepts/Interface__.js +1 -1
  30. package/out/concepts/Interface__.js.map +1 -1
  31. package/out/concepts/Logic__.js +13 -2
  32. package/out/concepts/Logic__.js.map +1 -1
  33. package/out/concepts/NewComposite__.d.ts +1 -0
  34. package/out/concepts/NewComposite__.js +23 -0
  35. package/out/concepts/NewComposite__.js.map +1 -1
  36. package/out/concepts/OverriddenLogic__.js +13 -2
  37. package/out/concepts/OverriddenLogic__.js.map +1 -1
  38. package/out/concepts/Param__.js +1 -1
  39. package/out/concepts/Param__.js.map +1 -1
  40. package/out/concepts/Structure__.js +1 -3
  41. package/out/concepts/Structure__.js.map +1 -1
  42. package/out/concepts/SubLogic__.js +13 -2
  43. package/out/concepts/SubLogic__.js.map +1 -1
  44. package/out/concepts/TypeAnnotation__.js +6 -3
  45. package/out/concepts/TypeAnnotation__.js.map +1 -1
  46. package/out/concepts/ViewComponentDeclaration__.js +3 -3
  47. package/out/concepts/ViewComponentDeclaration__.js.map +1 -1
  48. package/out/concepts/ViewElement__.d.ts +2 -0
  49. package/out/concepts/ViewElement__.js +60 -19
  50. package/out/concepts/ViewElement__.js.map +1 -1
  51. package/out/concepts/View__.js +24 -2
  52. package/out/concepts/View__.js.map +1 -1
  53. package/out/generator/genBundleFiles.js +1 -1
  54. package/out/generator/genBundleFiles.js.map +1 -1
  55. package/out/natural/genNaturalTS.d.ts +69 -16
  56. package/out/natural/genNaturalTS.js +198 -117
  57. package/out/natural/genNaturalTS.js.map +1 -1
  58. package/out/natural/getContext/index.d.ts +38 -26
  59. package/out/natural/getContext/index.js +318 -160
  60. package/out/natural/getContext/index.js.map +1 -1
  61. package/out/natural/index.d.ts +1 -0
  62. package/out/natural/index.js +1 -0
  63. package/out/natural/index.js.map +1 -1
  64. package/out/natural/tools.d.ts +11 -0
  65. package/out/natural/tools.js +162 -0
  66. package/out/natural/tools.js.map +1 -0
  67. package/out/natural/transformTS2UI.js +63 -26
  68. package/out/natural/transformTS2UI.js.map +1 -1
  69. package/out/natural/transformTSCode.js +26 -15
  70. package/out/natural/transformTSCode.js.map +1 -1
  71. package/out/server/naslServer.js +1 -0
  72. package/out/server/naslServer.js.map +1 -1
  73. package/out/translator/utils.js +1 -1
  74. package/out/translator/utils.js.map +1 -1
  75. package/package.json +1 -1
  76. package/sandbox/stdlib/nasl.util.ts +2 -2
  77. package/sandbox-natural/stdlib/nasl.core.ts +11 -0
  78. package/sandbox-natural/stdlib/nasl.ui.pre.d.ts +37 -37
  79. package/sandbox-natural/stdlib/nasl.util.ts +6 -6
  80. package/src/concepts/AuthLogicForCallInterface__.ts +13 -1
  81. package/src/concepts/BackendVariable__.ts +11 -1
  82. package/src/concepts/BindDirective__.ts +1 -1
  83. package/src/concepts/BindStyle__.ts +1 -1
  84. package/src/concepts/BusinessComponent__.ts +14 -2
  85. package/src/concepts/BusinessLogic__.ts +13 -1
  86. package/src/concepts/CallConnector__.ts +2 -1
  87. package/src/concepts/CallInterface__.ts +10 -3
  88. package/src/concepts/CallLogic__.ts +34 -14
  89. package/src/concepts/EntityProperty__.ts +5 -5
  90. package/src/concepts/Entity__.ts +1 -1
  91. package/src/concepts/EnumItem__.ts +2 -2
  92. package/src/concepts/Interface__.ts +1 -1
  93. package/src/concepts/Logic__.ts +13 -1
  94. package/src/concepts/NewComposite__.ts +24 -0
  95. package/src/concepts/OverriddenLogic__.ts +13 -1
  96. package/src/concepts/Param__.ts +1 -1
  97. package/src/concepts/Structure__.ts +1 -3
  98. package/src/concepts/SubLogic__.ts +13 -1
  99. package/src/concepts/TypeAnnotation__.ts +5 -3
  100. package/src/concepts/ViewComponentDeclaration__.ts +3 -3
  101. package/src/concepts/ViewElement__.ts +78 -19
  102. package/src/concepts/View__.ts +48 -24
  103. package/src/generator/genBundleFiles.ts +1 -1
  104. package/src/natural/genNaturalTS.ts +363 -147
  105. package/src/natural/getContext/index.ts +363 -175
  106. package/src/natural/index.ts +1 -0
  107. package/src/natural/tools.ts +138 -0
  108. package/src/natural/transformTS2UI.ts +60 -25
  109. package/src/natural/transformTSCode.ts +26 -16
  110. package/src/server/naslServer.ts +1 -0
  111. package/src/translator/utils.ts +1 -1
  112. package/.nyc_output/047fb941-6e69-4829-8b3c-14d37e06c63b.json +0 -1
  113. 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 genNaturalTSContextForLogic(app: App, currentNode?: BaseNode, focusedNodePath?: string, requiredIndexes?: string[], experimental?: boolean): string;
4
- export declare const genNaturalTSContext: typeof genNaturalTSContextForLogic;
5
- export declare function genNaturalTSContextForUI(app: App, currentNode: BaseNode, focusedNodePath?: string, requiredIndexes?: string[], material?: {
6
- basicMaterials: {
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
- }): string;
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
- export declare const genNaturalTsContextJson: typeof genNaturalTSContextJSONForLogic;
59
- export declare function genNaturalTSContextJSONForUI(app: App, currentNode: BaseNode, material?: {
60
- basicMaterials: {
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
- }, requiredIndexes?: string[]): {
71
- naslCore: string;
72
- naslUtil: string;
73
- naslUI: {
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
- tsDeclaration: string;
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
- export * as getNaturalContext from './getContext';
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.getNaturalContext = exports.genNaturalTSContextJSONForUI = exports.genNaturalTsContextJson = exports.genNaturalTSContextJSONForLogic = exports.genNaturalTSContextForUI = exports.genNaturalTSContext = exports.genNaturalTSContextForLogic = exports.genNaturalTS = void 0;
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
- function genNaturalTSContextForLogic(app, currentNode, focusedNodePath, requiredIndexes, experimental) {
43
- const frontend = currentNode?.getAncestor('Frontend');
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
- const { connections } = (0, getContext_1.getConnectors)(app, state, []);
151
- const { dependencies } = (0, getContext_1.getDependencies)(app, state, []);
152
- const { frontendVar, frontendVariables } = (0, getContext_1.getFrontendVariables)(currentNode?.getAncestor('Frontend'), state);
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
- function genNaturalTSContextJSONForUI(app, currentNode, material, requiredIndexes) {
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, material || frontend.type, requiredIndexes);
181
- const { enums } = (0, getContext_1.getEnums)(app, state, requiredIndexes);
182
- const { entities } = (0, getContext_1.getEntities)(app, state, requiredIndexes);
183
- const { structures } = (0, getContext_1.getStructures)(app, state, requiredIndexes);
184
- const { appLogics } = (0, getContext_1.getLogics)(app, currentNode, requiredIndexes);
185
- const { interfaceDependencies } = (0, getContext_1.getModuleInterfaces)(app, state, requiredIndexes);
186
- const { dependencies } = (0, getContext_1.getDependencies)(app, state, requiredIndexes);
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, true);
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
- exports.getNaturalContext = __importStar(require("./getContext"));
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":"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"}
1
+ {"version":3,"file":"genNaturalTS.js","sourceRoot":"","sources":["../../src/natural/genNaturalTS.ts"],"names":[],"mappings":"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"}