@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.
Files changed (323) hide show
  1. package/out/automate/engine/index.d.ts +1 -1
  2. package/out/automate/engine/index.js +2 -3
  3. package/out/automate/engine/index.js.map +1 -1
  4. package/out/automate/engine/uniqueName.d.ts +1 -1
  5. package/out/automate/engine/uniqueName.js +2 -2
  6. package/out/automate/engine/uniqueName.js.map +1 -1
  7. package/out/automate/engine/utils.js +4 -1
  8. package/out/automate/engine/utils.js.map +1 -1
  9. package/out/automate/template/myProcess.d.ts +1 -1
  10. package/out/automate/template/myProcess.js +2 -2
  11. package/out/automate/template/myProcess.js.map +1 -1
  12. package/out/bak/translator.js +14 -22
  13. package/out/bak/translator.js.map +1 -1
  14. package/out/common/BaseNode.js +4 -1
  15. package/out/common/BaseNode.js.map +1 -1
  16. package/out/common/Command.d.ts +1 -0
  17. package/out/common/Command.js +5 -1
  18. package/out/common/Command.js.map +1 -1
  19. package/out/concepts/App__.d.ts +4 -0
  20. package/out/concepts/App__.js +30 -6
  21. package/out/concepts/App__.js.map +1 -1
  22. package/out/concepts/Assignee__.js +4 -3
  23. package/out/concepts/Assignee__.js.map +1 -1
  24. package/out/concepts/BatchAssignment__.js +3 -3
  25. package/out/concepts/BatchAssignment__.js.map +1 -1
  26. package/out/concepts/BindAttribute__.d.ts +7 -0
  27. package/out/concepts/BindAttribute__.js +270 -39
  28. package/out/concepts/BindAttribute__.js.map +1 -1
  29. package/out/concepts/BindDirective__.d.ts +7 -0
  30. package/out/concepts/BindDirective__.js +215 -17
  31. package/out/concepts/BindDirective__.js.map +1 -1
  32. package/out/concepts/BindStyle__.d.ts +7 -0
  33. package/out/concepts/BindStyle__.js +194 -4
  34. package/out/concepts/BindStyle__.js.map +1 -1
  35. package/out/concepts/CallFunction__.js +22 -8
  36. package/out/concepts/CallFunction__.js.map +1 -1
  37. package/out/concepts/CallInterface__.js +3 -2
  38. package/out/concepts/CallInterface__.js.map +1 -1
  39. package/out/concepts/CallLogic__.d.ts +3 -0
  40. package/out/concepts/CallLogic__.js +78 -89
  41. package/out/concepts/CallLogic__.js.map +1 -1
  42. package/out/concepts/CallQueryComponent__.js +20 -3
  43. package/out/concepts/CallQueryComponent__.js.map +1 -1
  44. package/out/concepts/ConfigGroup__.d.ts +1 -0
  45. package/out/concepts/ConfigGroup__.js +13 -0
  46. package/out/concepts/ConfigGroup__.js.map +1 -1
  47. package/out/concepts/ConfigProperty__.d.ts +19 -0
  48. package/out/concepts/ConfigProperty__.js +61 -0
  49. package/out/concepts/ConfigProperty__.js.map +1 -1
  50. package/out/concepts/Configuration__.d.ts +1 -0
  51. package/out/concepts/Configuration__.js +13 -0
  52. package/out/concepts/Configuration__.js.map +1 -1
  53. package/out/concepts/DataSource__.js.map +1 -1
  54. package/out/concepts/Destination__.d.ts +1 -0
  55. package/out/concepts/Destination__.js +61 -7
  56. package/out/concepts/Destination__.js.map +1 -1
  57. package/out/concepts/EntityProperty__.js +9 -1
  58. package/out/concepts/EntityProperty__.js.map +1 -1
  59. package/out/concepts/EnumItem__.d.ts +5 -5
  60. package/out/concepts/EnumItem__.js +6 -6
  61. package/out/concepts/Enum__.d.ts +20 -19
  62. package/out/concepts/Enum__.js +28 -1
  63. package/out/concepts/Enum__.js.map +1 -1
  64. package/out/concepts/ExternalDestination__.d.ts +1 -0
  65. package/out/concepts/ExternalDestination__.js +21 -3
  66. package/out/concepts/ExternalDestination__.js.map +1 -1
  67. package/out/concepts/ForEachStatement__.js +2 -0
  68. package/out/concepts/ForEachStatement__.js.map +1 -1
  69. package/out/concepts/Frontend__.d.ts +2 -1
  70. package/out/concepts/Frontend__.js.map +1 -1
  71. package/out/concepts/Identifier__.js +16 -5
  72. package/out/concepts/Identifier__.js.map +1 -1
  73. package/out/concepts/InterfaceParam__.js +9 -1
  74. package/out/concepts/InterfaceParam__.js.map +1 -1
  75. package/out/concepts/JSBlock__.js +5 -1
  76. package/out/concepts/JSBlock__.js.map +1 -1
  77. package/out/concepts/Logic__.d.ts +79 -79
  78. package/out/concepts/Logic__.js +16 -3
  79. package/out/concepts/Logic__.js.map +1 -1
  80. package/out/concepts/Match__.d.ts +0 -3
  81. package/out/concepts/Match__.js +11 -66
  82. package/out/concepts/Match__.js.map +1 -1
  83. package/out/concepts/MemberExpression__.js +9 -0
  84. package/out/concepts/MemberExpression__.js.map +1 -1
  85. package/out/concepts/Module__.d.ts +16 -0
  86. package/out/concepts/Module__.js +43 -0
  87. package/out/concepts/Module__.js.map +1 -1
  88. package/out/concepts/NewComposite__.d.ts +2 -4
  89. package/out/concepts/NewComposite__.js +91 -126
  90. package/out/concepts/NewComposite__.js.map +1 -1
  91. package/out/concepts/NewList__.d.ts +1 -0
  92. package/out/concepts/NewList__.js +22 -2
  93. package/out/concepts/NewList__.js.map +1 -1
  94. package/out/concepts/NewMap__.d.ts +1 -0
  95. package/out/concepts/NewMap__.js +43 -11
  96. package/out/concepts/NewMap__.js.map +1 -1
  97. package/out/concepts/OqlQueryComponent__.js +40 -12
  98. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  99. package/out/concepts/Param__.js +10 -2
  100. package/out/concepts/Param__.js.map +1 -1
  101. package/out/concepts/ProcessElement__.js +2 -1
  102. package/out/concepts/ProcessElement__.js.map +1 -1
  103. package/out/concepts/ProcessOutcome__.js +1 -1
  104. package/out/concepts/ProcessOutcome__.js.map +1 -1
  105. package/out/concepts/ProcessOutcomes__.js +1 -1
  106. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  107. package/out/concepts/Process__.js +1 -0
  108. package/out/concepts/Process__.js.map +1 -1
  109. package/out/concepts/Return__.js +10 -2
  110. package/out/concepts/Return__.js.map +1 -1
  111. package/out/concepts/StringInterpolation__.js +14 -2
  112. package/out/concepts/StringInterpolation__.js.map +1 -1
  113. package/out/concepts/StringLiteral__.js +6 -6
  114. package/out/concepts/StringLiteral__.js.map +1 -1
  115. package/out/concepts/StructureProperty__.js +9 -1
  116. package/out/concepts/StructureProperty__.js.map +1 -1
  117. package/out/concepts/TypeAnnotation__.d.ts +6 -3
  118. package/out/concepts/TypeAnnotation__.js +67 -13
  119. package/out/concepts/TypeAnnotation__.js.map +1 -1
  120. package/out/concepts/ValidationRule__.d.ts +1 -0
  121. package/out/concepts/ValidationRule__.js +53 -0
  122. package/out/concepts/ValidationRule__.js.map +1 -1
  123. package/out/concepts/Variable__.js +9 -1
  124. package/out/concepts/Variable__.js.map +1 -1
  125. package/out/concepts/ViewElement__.js +17 -1
  126. package/out/concepts/ViewElement__.js.map +1 -1
  127. package/out/concepts/View__.d.ts +1 -3
  128. package/out/concepts/View__.js +22 -11
  129. package/out/concepts/View__.js.map +1 -1
  130. package/out/concepts/basics/stdlib/nasl.collection.js +6 -1
  131. package/out/concepts/basics/stdlib/nasl.collection.js.map +1 -1
  132. package/out/concepts/basics/stdlib/nasl.configuration.js +3 -0
  133. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -1
  134. package/out/concepts/basics/stdlib/nasl.core.d.ts +2 -0
  135. package/out/concepts/basics/stdlib/nasl.core.js +34 -0
  136. package/out/concepts/basics/stdlib/nasl.core.js.map +1 -1
  137. package/out/concepts/basics/stdlib/nasl.util.js +4 -2
  138. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  139. package/out/concepts/basics/types/index.d.ts +1 -0
  140. package/out/concepts/basics/types/index.js +3 -1
  141. package/out/concepts/basics/types/index.js.map +1 -1
  142. package/out/concepts/index__.d.ts +0 -1
  143. package/out/concepts/index__.js +0 -1
  144. package/out/concepts/index__.js.map +1 -1
  145. package/out/enums/KEYWORDS.js +8 -0
  146. package/out/enums/KEYWORDS.js.map +1 -1
  147. package/out/generator/genBundleFiles.js +24 -5
  148. package/out/generator/genBundleFiles.js.map +1 -1
  149. package/out/generator/genReleaseBody.d.ts +2 -3
  150. package/out/generator/genReleaseBody.js +97 -23
  151. package/out/generator/genReleaseBody.js.map +1 -1
  152. package/out/generator/permission.d.ts +2 -10
  153. package/out/generator/permission.js +27 -14
  154. package/out/generator/permission.js.map +1 -1
  155. package/out/server/entity2LogicNamespace.js +2 -20
  156. package/out/server/entity2LogicNamespace.js.map +1 -1
  157. package/out/server/extendBaseNode.js +16 -5
  158. package/out/server/extendBaseNode.js.map +1 -1
  159. package/out/server/formatTsUtils.d.ts +2 -1
  160. package/out/server/formatTsUtils.js +40 -10
  161. package/out/server/formatTsUtils.js.map +1 -1
  162. package/out/server/getLogics.d.ts +2 -2
  163. package/out/server/getLogics.js +3 -3
  164. package/out/server/getLogics.js.map +1 -1
  165. package/out/server/getMemberIdentifier.d.ts +1 -0
  166. package/out/server/getMemberIdentifier.js +27 -1
  167. package/out/server/getMemberIdentifier.js.map +1 -1
  168. package/out/server/index.js +1 -0
  169. package/out/server/index.js.map +1 -1
  170. package/out/server/naslServer.d.ts +7 -1
  171. package/out/server/naslServer.js +519 -46
  172. package/out/server/naslServer.js.map +1 -1
  173. package/out/server/translator.js +109 -33
  174. package/out/server/translator.js.map +1 -1
  175. package/out/service/storage/init.js +21 -1
  176. package/out/service/storage/init.js.map +1 -1
  177. package/out/templator/genCreateBlock.js +1 -3
  178. package/out/templator/genCreateBlock.js.map +1 -1
  179. package/out/templator/genCurdEditMultipleKeyBlock.js +1 -3
  180. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  181. package/out/templator/genCurdMultipleKeyBlock.js +2 -4
  182. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  183. package/out/templator/genGetBlock.js +1 -1
  184. package/out/templator/genGetBlock.js.map +1 -1
  185. package/out/templator/genGridViewBlock.js +2 -2
  186. package/out/templator/genGridViewBlock.js.map +1 -1
  187. package/out/templator/genListViewBlock.js +7 -1
  188. package/out/templator/genListViewBlock.js.map +1 -1
  189. package/out/templator/genSelectBlock.js +1 -1
  190. package/out/templator/genSelectBlock.js.map +1 -1
  191. package/out/templator/genTableBlock.js +2 -2
  192. package/out/templator/genTableBlock.js.map +1 -1
  193. package/out/templator/genUpdateBlock.js +2 -3
  194. package/out/templator/genUpdateBlock.js.map +1 -1
  195. package/out/utils/traverse.js +8 -2
  196. package/out/utils/traverse.js.map +1 -1
  197. package/package.json +2 -2
  198. package/sandbox/stdlib/dist/nasl.logging.js +0 -0
  199. package/sandbox/stdlib/dist/nasl.util.js +0 -0
  200. package/sandbox/stdlib/nasl.collection.ts +1 -0
  201. package/sandbox/stdlib/nasl.core.ts +34 -0
  202. package/sandbox/stdlib/nasl.oql.ts +71 -15
  203. package/sandbox/stdlib/nasl.util.ts +9 -3
  204. package/src/automate/engine/dist/index.dev.js +517 -0
  205. package/src/automate/engine/index.js +2 -3
  206. package/src/automate/engine/uniqueName.js +2 -2
  207. package/src/automate/engine/utils.js +4 -2
  208. package/src/automate/template/myProcess.js +2 -2
  209. package/src/bak/translator.js +16 -25
  210. package/src/common/BaseNode.ts +3 -1
  211. package/src/common/Command.ts +4 -0
  212. package/src/common/dist/BaseNode.js +1101 -0
  213. package/src/concepts/App__.ts +36 -7
  214. package/src/concepts/Assignee__.ts +4 -3
  215. package/src/concepts/BatchAssignment__.ts +3 -3
  216. package/src/concepts/BindAttribute__.ts +299 -38
  217. package/src/concepts/BindDirective__.ts +204 -31
  218. package/src/concepts/BindStyle__.ts +187 -24
  219. package/src/concepts/CallFunction__.ts +55 -10
  220. package/src/concepts/CallInterface__.ts +3 -2
  221. package/src/concepts/CallLogic__.ts +110 -90
  222. package/src/concepts/CallQueryComponent__.ts +18 -3
  223. package/src/concepts/ConfigGroup__.ts +17 -4
  224. package/src/concepts/ConfigProperty__.ts +70 -4
  225. package/src/concepts/Configuration__.ts +14 -5
  226. package/src/concepts/DataSource__.ts +4 -1
  227. package/src/concepts/Destination__.ts +61 -7
  228. package/src/concepts/EntityProperty__.ts +7 -1
  229. package/src/concepts/EnumItem__.ts +6 -6
  230. package/src/concepts/Enum__.ts +22 -19
  231. package/src/concepts/ExternalDestination__.ts +28 -8
  232. package/src/concepts/ForEachStatement__.ts +2 -0
  233. package/src/concepts/Frontend__.ts +2 -1
  234. package/src/concepts/Identifier__.ts +16 -5
  235. package/src/concepts/InterfaceParam__.ts +7 -1
  236. package/src/concepts/JSBlock__.ts +3 -2
  237. package/src/concepts/Logic__.ts +95 -83
  238. package/src/concepts/Match__.ts +31 -67
  239. package/src/concepts/MemberExpression__.ts +6 -0
  240. package/src/concepts/Module__.ts +57 -0
  241. package/src/concepts/NewComposite__.ts +95 -140
  242. package/src/concepts/NewList__.ts +23 -2
  243. package/src/concepts/NewMap__.ts +48 -24
  244. package/src/concepts/OqlQueryComponent__.ts +40 -20
  245. package/src/concepts/Param__.ts +178 -176
  246. package/src/concepts/ProcessElement__.ts +2 -1
  247. package/src/concepts/ProcessOutcome__.ts +1 -1
  248. package/src/concepts/ProcessOutcomes__.ts +1 -1
  249. package/src/concepts/Process__.ts +1 -0
  250. package/src/concepts/Return__.ts +8 -2
  251. package/src/concepts/StringInterpolation__.ts +19 -7
  252. package/src/concepts/StringLiteral__.ts +7 -6
  253. package/src/concepts/StructureProperty__.ts +7 -1
  254. package/src/concepts/TypeAnnotation__.ts +101 -14
  255. package/src/concepts/ValidationRule__.ts +58 -9
  256. package/src/concepts/Variable__.ts +11 -1
  257. package/src/concepts/ViewElement__.ts +39 -2
  258. package/src/concepts/View__.ts +26 -14
  259. package/src/concepts/basics/stdlib/dist/nasl.util.js +1602 -0
  260. package/src/concepts/basics/stdlib/dist/reference2TypeAnnotationList.js +24 -0
  261. package/src/concepts/basics/stdlib/nasl.collection.ts +6 -1
  262. package/src/concepts/basics/stdlib/nasl.configuration.ts +3 -0
  263. package/src/concepts/basics/stdlib/nasl.core.ts +33 -2
  264. package/src/concepts/basics/stdlib/nasl.util.ts +4 -2
  265. package/src/concepts/basics/types/index.ts +1 -0
  266. package/src/concepts/dist/BindAttribute__.js +795 -0
  267. package/src/concepts/dist/BindEvent__.js +732 -0
  268. package/src/concepts/dist/CallFunction__.js +527 -0
  269. package/src/concepts/dist/CallLogic__.js +932 -0
  270. package/src/concepts/dist/Destination__.js +708 -0
  271. package/src/concepts/dist/ExternalDestination__.js +298 -0
  272. package/src/concepts/dist/Identifier__.js +311 -0
  273. package/src/concepts/dist/StringInterpolation__.js +231 -0
  274. package/src/concepts/dist/TypeAnnotation__.js +834 -0
  275. package/src/concepts/dist/ViewElement__.js +1692 -0
  276. package/src/concepts/dist/View__.js +1601 -0
  277. package/src/concepts/index__.ts +0 -1
  278. package/src/enums/KEYWORDS.ts +8 -0
  279. package/src/generator/dist/genBundleFiles.js +261 -0
  280. package/src/generator/dist/genMetaData.js +245 -0
  281. package/src/generator/dist/permission.js +405 -0
  282. package/src/generator/genBundleFiles.ts +24 -5
  283. package/src/generator/genReleaseBody.ts +75 -30
  284. package/src/generator/permission.ts +31 -15
  285. package/src/server/entity2LogicNamespace.ts +2 -20
  286. package/src/server/extendBaseNode.ts +15 -5
  287. package/src/server/formatTsUtils.ts +41 -10
  288. package/src/server/getLogics.ts +4 -4
  289. package/src/server/getMemberIdentifier.ts +27 -1
  290. package/src/server/index.ts +2 -0
  291. package/src/server/naslServer.ts +520 -48
  292. package/src/server/translator.ts +96 -34
  293. package/src/service/storage/dist/init.js +579 -0
  294. package/src/service/storage/init.ts +22 -2
  295. package/src/templator/dist/genEditTableBlock.js +204 -0
  296. package/src/templator/dist/genGridViewBlock.js +265 -0
  297. package/src/templator/dist/genListViewBlock.js +84 -0
  298. package/src/templator/dist/genTableBlock.js +209 -0
  299. package/src/templator/dist/utils.js +527 -0
  300. package/src/templator/genCreateBlock.ts +1 -3
  301. package/src/templator/genCurdEditMultipleKeyBlock.ts +1 -3
  302. package/src/templator/genCurdMultipleKeyBlock.ts +2 -4
  303. package/src/templator/genGetBlock.ts +1 -1
  304. package/src/templator/genGridViewBlock.ts +3 -4
  305. package/src/templator/genListViewBlock.ts +9 -3
  306. package/src/templator/genSelectBlock.ts +1 -1
  307. package/src/templator/genTableBlock.ts +3 -3
  308. package/src/templator/genUpdateBlock.ts +2 -3
  309. package/src/utils/traverse.ts +10 -2
  310. package/ts-worker/lib/tsserver.js +10 -2
  311. package/ts-worker/package.json +1 -0
  312. package/ts-worker/webpack.config.js +11 -2
  313. package/out/concepts/ConstructArgument__.d.ts +0 -40
  314. package/out/concepts/ConstructArgument__.js +0 -108
  315. package/out/concepts/ConstructArgument__.js.map +0 -1
  316. package/out/concepts/Construct__.d.ts +0 -189
  317. package/out/concepts/Construct__.js +0 -340
  318. package/out/concepts/Construct__.js.map +0 -1
  319. package/out/templator/sql-parser/index.d.ts +0 -1
  320. package/out/templator/sql-parser/index.js +0 -228
  321. package/out/templator/sql-parser/index.js.map +0 -1
  322. package/out/templator/sql-parser/parser.js +0 -26664
  323. package/out/templator/sql-parser/parser.js.map +0 -1
@@ -66,6 +66,8 @@ export class CallFunction extends LogicItem {
66
66
  @property('Argument')
67
67
  arguments: Array<Argument> = [];
68
68
 
69
+
70
+
69
71
  /**
70
72
  * @param source 需要合并的部分参数
71
73
  */
@@ -79,6 +81,13 @@ export class CallFunction extends LogicItem {
79
81
  return super.from(source, parentNode, parentKey) as CallFunction;
80
82
  }
81
83
 
84
+
85
+
86
+
87
+
88
+
89
+
90
+
82
91
  /**
83
92
  * 插入类型标注
84
93
  * @internal
@@ -111,6 +120,8 @@ export class CallFunction extends LogicItem {
111
120
  return typeAnnotation;
112
121
  }
113
122
 
123
+
124
+
114
125
  /**
115
126
  * 插入类型标注
116
127
  * @param typeAnnotationOptions 类型标注参数
@@ -133,6 +144,8 @@ export class CallFunction extends LogicItem {
133
144
  return node;
134
145
  }
135
146
 
147
+
148
+
136
149
  /**
137
150
  * 添加类型标注
138
151
  * @internal
@@ -152,6 +165,8 @@ export class CallFunction extends LogicItem {
152
165
  return this._insertTypeAnnotationAt(options as any, index);
153
166
  }
154
167
 
168
+
169
+
155
170
  /**
156
171
  * 添加类型标注
157
172
  * @param typeAnnotationOptions 类型标注参数
@@ -175,6 +190,11 @@ export class CallFunction extends LogicItem {
175
190
  return node;
176
191
  }
177
192
 
193
+
194
+
195
+
196
+
197
+
178
198
  /**
179
199
  * 插入实际参数
180
200
  * @internal
@@ -207,6 +227,8 @@ export class CallFunction extends LogicItem {
207
227
  return argument;
208
228
  }
209
229
 
230
+
231
+
210
232
  /**
211
233
  * 插入实际参数
212
234
  * @param argumentOptions 实际参数参数
@@ -229,6 +251,8 @@ export class CallFunction extends LogicItem {
229
251
  return node;
230
252
  }
231
253
 
254
+
255
+
232
256
  /**
233
257
  * 添加实际参数
234
258
  * @internal
@@ -248,6 +272,8 @@ export class CallFunction extends LogicItem {
248
272
  return this._insertArgumentAt(options as any, index);
249
273
  }
250
274
 
275
+
276
+
251
277
  /**
252
278
  * 添加实际参数
253
279
  * @param argumentOptions 实际参数参数
@@ -271,6 +297,9 @@ export class CallFunction extends LogicItem {
271
297
  return node;
272
298
  }
273
299
 
300
+
301
+
302
+
274
303
  /**
275
304
  * 删除类型标注
276
305
  * @param typeAnnotation 已有的类型标注实例
@@ -278,7 +307,7 @@ export class CallFunction extends LogicItem {
278
307
  removeTypeAnnotation(typeAnnotation: TypeAnnotation): void;
279
308
 
280
309
  removeTypeAnnotation(options: TypeAnnotation) {
281
- const typeAnnotation: TypeAnnotation = options;
310
+ let typeAnnotation: TypeAnnotation = options;
282
311
  return typeAnnotation.delete();
283
312
  }
284
313
 
@@ -305,6 +334,8 @@ export class CallFunction extends LogicItem {
305
334
  return params;
306
335
  }
307
336
 
337
+
338
+
308
339
  /**
309
340
  * 删除实际参数
310
341
  * @param argument 已有的实际参数实例
@@ -312,7 +343,7 @@ export class CallFunction extends LogicItem {
312
343
  removeArgument(argument: Argument): void;
313
344
 
314
345
  removeArgument(options: Argument) {
315
- const argument: Argument = options;
346
+ let argument: Argument = options;
316
347
  return argument.delete();
317
348
  }
318
349
 
@@ -349,11 +380,19 @@ export class CallFunction extends LogicItem {
349
380
  } else {
350
381
  let code = `$utils['${this.calleeName}']`;
351
382
  code += '(';
352
- this.arguments?.forEach((arg, index) => {
353
- code += arg?.toVue(options);
354
- if (index !== this.arguments?.length - 1)
355
- code += ', ';
356
- });
383
+ if (Array.isArray(this.arguments) && this.arguments.length) {
384
+ const needToString = ['Concat'].includes(this.calleeName);
385
+ this.arguments?.forEach((arg: any, index) => {
386
+ let argStr = arg?.toVue(options);
387
+ if (needToString) {
388
+ const argTypeAnnotation = arg.typeAnnotation || arg.__TypeAnnotation;
389
+ argStr = `$utils['ToString'](${argStr}, '${argTypeAnnotation?.sortedTypeKey}')`;
390
+ }
391
+ code += argStr;
392
+ if (index !== this.arguments?.length - 1)
393
+ code += ', ';
394
+ });
395
+ }
357
396
  if (this.typeArguments && this.typeArguments.length) {
358
397
  if (this.arguments?.length)
359
398
  code += ', ';
@@ -393,8 +432,14 @@ export class CallFunction extends LogicItem {
393
432
  let code = `this.$utils['${this.calleeName}']`;
394
433
  code += '(';
395
434
  if (Array.isArray(this.arguments) && this.arguments.length) {
396
- this.arguments.forEach((arg, index) => {
397
- code += arg?.toJS(shiftState(state, code));
435
+ const needToString = ['Concat'].includes(this.calleeName);
436
+ this.arguments.forEach((arg: any, index) => {
437
+ let argStr = arg?.toJS(shiftState(state, code));
438
+ if (needToString) {
439
+ const argTypeAnnotation = arg.typeAnnotation || arg.__TypeAnnotation;
440
+ argStr = `this.$utils['ToString'](${argStr}, '${argTypeAnnotation?.sortedTypeKey}')`;
441
+ }
442
+ code += argStr;
398
443
  if (index !== this.arguments?.length - 1)
399
444
  code += ', ';
400
445
  });
@@ -426,7 +471,7 @@ export class CallFunction extends LogicItem {
426
471
  code += ')';
427
472
  const typeAnnotation = (this as any).typeAnnotation || this.__TypeAnnotation;
428
473
  const needGenInitFromSchema = typeAnnotation && (
429
- !['primitive', 'union'].includes(typeAnnotation.typeKind)
474
+ !['primitive', 'union'].includes(typeAnnotation.typeKind)
430
475
  || typeAnnotation.typeName === 'DateTime'
431
476
  );
432
477
  if (needGenInitFromSchema) {
@@ -554,8 +554,9 @@ export class CallInterface extends LogicItem {
554
554
  logicParam = node.params;
555
555
  }
556
556
  if (this.arguments?.length) {
557
- this.arguments.forEach((arg, index) => {
558
- const param = logicParam[index];
557
+ this.arguments.forEach((arg) => {
558
+ const idx = logicParam.findIndex((params) => arg.keyword === params.name);
559
+ const param = logicParam[idx];
559
560
 
560
561
  arg.paramRequired = param?.required;
561
562
  arg.paramTypeAnnotation = undefined;
@@ -6,6 +6,7 @@ import { ElementToVueOptions } from './ViewElement__';
6
6
  import { getNodeByNodeCallee, getNaslNodeByNodeCallee } from '../automate/engine/utils';
7
7
  import { findConceptKeyWordIndexFromNamespace } from '../utils';
8
8
  import * as JSON5 from 'json5';
9
+ import Identifier from './Identifier__';
9
10
 
10
11
  //================================================================================
11
12
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
@@ -21,7 +22,6 @@ import classMap from '../common/classMap';
21
22
  import TypeAnnotation from './TypeAnnotation__';
22
23
  import Argument from './Argument__';
23
24
  import LogicItem from './LogicItem__';
24
- import Identifier from './Identifier__';
25
25
 
26
26
  /**
27
27
  * 调用逻辑
@@ -70,6 +70,8 @@ export class CallLogic extends LogicItem {
70
70
  @property('Argument')
71
71
  arguments: Array<Argument> = [];
72
72
 
73
+
74
+
73
75
  /**
74
76
  * @param source 需要合并的部分参数
75
77
  */
@@ -83,6 +85,13 @@ export class CallLogic extends LogicItem {
83
85
  return super.from(source, parentNode, parentKey) as CallLogic;
84
86
  }
85
87
 
88
+
89
+
90
+
91
+
92
+
93
+
94
+
86
95
  /**
87
96
  * 插入类型标注
88
97
  * @internal
@@ -115,6 +124,8 @@ export class CallLogic extends LogicItem {
115
124
  return typeAnnotation;
116
125
  }
117
126
 
127
+
128
+
118
129
  /**
119
130
  * 插入类型标注
120
131
  * @param typeAnnotationOptions 类型标注参数
@@ -137,6 +148,8 @@ export class CallLogic extends LogicItem {
137
148
  return node;
138
149
  }
139
150
 
151
+
152
+
140
153
  /**
141
154
  * 添加类型标注
142
155
  * @internal
@@ -156,6 +169,8 @@ export class CallLogic extends LogicItem {
156
169
  return this._insertTypeAnnotationAt(options as any, index);
157
170
  }
158
171
 
172
+
173
+
159
174
  /**
160
175
  * 添加类型标注
161
176
  * @param typeAnnotationOptions 类型标注参数
@@ -179,6 +194,11 @@ export class CallLogic extends LogicItem {
179
194
  return node;
180
195
  }
181
196
 
197
+
198
+
199
+
200
+
201
+
182
202
  /**
183
203
  * 插入实际参数
184
204
  * @internal
@@ -211,6 +231,8 @@ export class CallLogic extends LogicItem {
211
231
  return argument;
212
232
  }
213
233
 
234
+
235
+
214
236
  /**
215
237
  * 插入实际参数
216
238
  * @param argumentOptions 实际参数参数
@@ -233,6 +255,8 @@ export class CallLogic extends LogicItem {
233
255
  return node;
234
256
  }
235
257
 
258
+
259
+
236
260
  /**
237
261
  * 添加实际参数
238
262
  * @internal
@@ -252,6 +276,8 @@ export class CallLogic extends LogicItem {
252
276
  return this._insertArgumentAt(options as any, index);
253
277
  }
254
278
 
279
+
280
+
255
281
  /**
256
282
  * 添加实际参数
257
283
  * @param argumentOptions 实际参数参数
@@ -275,6 +301,9 @@ export class CallLogic extends LogicItem {
275
301
  return node;
276
302
  }
277
303
 
304
+
305
+
306
+
278
307
  /**
279
308
  * 删除类型标注
280
309
  * @param typeAnnotation 已有的类型标注实例
@@ -282,7 +311,7 @@ export class CallLogic extends LogicItem {
282
311
  removeTypeAnnotation(typeAnnotation: TypeAnnotation): void;
283
312
 
284
313
  removeTypeAnnotation(options: TypeAnnotation) {
285
- const typeAnnotation: TypeAnnotation = options;
314
+ let typeAnnotation: TypeAnnotation = options;
286
315
  return typeAnnotation.delete();
287
316
  }
288
317
 
@@ -309,6 +338,8 @@ export class CallLogic extends LogicItem {
309
338
  return params;
310
339
  }
311
340
 
341
+
342
+
312
343
  /**
313
344
  * 删除实际参数
314
345
  * @param argument 已有的实际参数实例
@@ -316,7 +347,7 @@ export class CallLogic extends LogicItem {
316
347
  removeArgument(argument: Argument): void;
317
348
 
318
349
  removeArgument(options: Argument) {
319
- const argument: Argument = options;
350
+ let argument: Argument = options;
320
351
  return argument.delete();
321
352
  }
322
353
 
@@ -564,86 +595,72 @@ export class CallLogic extends LogicItem {
564
595
  toUI(state?: TranslatorState): string {
565
596
  let code = this.calleeName;
566
597
  code += '(';
567
- const completeArguments = this.completeArguments;
568
- completeArguments.forEach((arg, index) => {
569
- code += arg?.toUI();
570
- if (index !== completeArguments.length - 1)
571
- code += ', ';
572
- });
598
+
599
+ const node = this.getCallNode();
600
+ let logicParam: Param[] = [];
601
+ if (node) {
602
+ logicParam = node.params;
603
+ }
604
+ if (this.arguments?.length) {
605
+ this.arguments.forEach((arg, index) => {
606
+ const param = logicParam[index] || ({} as any);
607
+ // 打开了必填,
608
+ // 或者遗留问题,没有required = undefined 而且没有defaultValue,就是之前的必填项
609
+ const paramRequired = Boolean(param.required || (param.required === undefined && !param.defaultValue));
610
+ // 取到是不是必填放入参数中
611
+ if (param && !arg.expression && !paramRequired) {
612
+ // 非必填时 才会有默认值
613
+ code += param.defaultValue;
614
+ } else {
615
+ code += arg?.toUI();
616
+ }
617
+ if (index !== this.arguments?.length - 1)
618
+ code += ', ';
619
+ });
620
+ }
573
621
  code += ')';
574
622
 
575
623
  return code;
576
624
  }
577
625
 
578
- toJS(state?: TranslatorState): string {
579
- let code = '';
580
- if (this.calleeName === 'deleteBy' || this.calleeName === 'updateBy') {
581
- code += `
582
- var __resolveData = __resolveData || ((root) => {
583
- if (!root)
584
- return
585
- // console.log(root.concept)
586
- delete root.folded
587
-
588
- if (root.concept === 'NumericLiteral') {
589
- root.value = root.value
590
- } else if (root.concept === "StringLiteral") {
591
- root.value = root.value
592
- } else if (root.concept === "NullLiteral") {
593
- delete root.value
594
- } else if (root.concept === "BooleanLiteral") {
595
- root.value = root.value === 'true'
596
- } else if (root.concept === "Identifier") {
597
- __parseType(root, 'expression')
598
- } else if (root.concept === "MemberExpression") {
599
- if (root.expression) {
600
- __parseType(root, 'expression')
601
-
626
+ // 是否属于页面逻辑
627
+ get isViewLogic() {
628
+ // 页面逻辑
629
+ let flag = true;
630
+ const calleeNamespace = this.calleeNamespace;
631
+ // calleeNamespace不存在,一定是页面逻辑
632
+ if (calleeNamespace) {
633
+ const namespaceArr = calleeNamespace.split('.');
634
+ const start = namespaceArr[0];
635
+ if (start === 'app' || start === 'extensions') {
636
+ const keywordViewsIndex = findConceptKeyWordIndexFromNamespace(this.calleeNamespace, 'views');
637
+ if (keywordViewsIndex === -1) {
638
+ flag = false;
639
+ }
640
+ }
602
641
  }
642
+ return flag;
603
643
  }
604
644
 
605
- __resolveData(root.left)
606
- __resolveData(root.right)
607
- return root
608
- })
609
-
610
- var __parseType = __parseType || ((root, prop) => {
611
- const value = eval(root[prop])
612
- const type = typeof value
613
- // console.log('type:', type, value)
614
- if (type === 'number') {
615
- root.concept = 'NumericLiteral'
616
- root.value = value + ''
617
- } else if (type === 'string') {
618
- root.concept = 'StringLiteral'
619
- root.value = value
620
- } else if (type === 'boolean') {
621
- root.concept = 'BooleanLiteral'
622
- root.value = value
623
- } else if (type === 'object') {
624
- if (Array.isArray(value)) {
625
- var itemValue = value[0]
626
- if(itemValue !== undefined) {
627
- var itemType = typeof itemValue
628
- root.concept = 'ListLiteral'
629
- if (itemType === 'number') {
630
- root.value = value.map(v => v + '').join(',')
631
- } else if (itemType === 'string') {
632
- root.value = value.map(v => "'" + v + "'").join(',')
633
- } else if (itemType === 'boolean') {
634
- root.value = value.join(',')
635
- }
645
+ // 是否属于组件逻辑
646
+ get isComponentLogic() {
647
+ // 组件逻辑
648
+ let flag = false;
649
+ const calleeNamespace = this.calleeNamespace;
650
+ // calleeNamespace不存在,一定是页面逻辑
651
+ if (calleeNamespace) {
652
+ const namespaceArr = calleeNamespace.split('.');
653
+ const start = namespaceArr[0];
654
+ if (start === 'elements' && namespaceArr.length === 3 && namespaceArr[2] === 'logics') {
655
+ flag = true;
636
656
  }
637
657
  }
658
+ return flag;
638
659
  }
639
- })
640
- `;
641
- }
642
- code += 'await ';
643
- // 页面逻辑
644
- let isViewLogic = true;
645
- // 组件逻辑
646
- let isComponentLogic = false;
660
+
661
+ toJS(state?: TranslatorState): string {
662
+ let code = '';
663
+ code += 'await (';
647
664
  let componentName = '';
648
665
  const calleeNamespace = this.calleeNamespace;
649
666
  const keywordProcessIndex = findConceptKeyWordIndexFromNamespace(this.calleeNamespace, 'processes');
@@ -651,22 +668,13 @@ var __parseType = __parseType || ((root, prop) => {
651
668
  // calleeNamespace不存在,一定是页面逻辑
652
669
  if (calleeNamespace) {
653
670
  const namespaceArr = calleeNamespace.split('.');
654
- const start = namespaceArr[0];
655
- if (start === 'app' || start === 'extensions') {
656
- const keywordViewsIndex = findConceptKeyWordIndexFromNamespace(this.calleeNamespace, 'views');
657
- if (keywordViewsIndex === -1) {
658
- isViewLogic = false;
659
- }
660
- } else if (start === 'elements' && namespaceArr.length === 3 && namespaceArr[2] === 'logics') {
661
- isComponentLogic = true;
671
+ if (this.isComponentLogic) {
662
672
  componentName = namespaceArr[1];
663
673
  }
664
674
  }
665
-
666
675
  const completeArguments = this.completeArguments;
667
-
668
676
  // 全局逻辑
669
- if (!isViewLogic) {
677
+ if (!this.isViewLogic) {
670
678
  const logic = getNodeByNodeCallee(this.app, this.calleewholeKey, (key: string, tempPoint: any) => {
671
679
  // 处理 NASL 中未定义的假的节点
672
680
  if (key === tempPoint.name) {
@@ -759,7 +767,7 @@ var __parseType = __parseType || ((root, prop) => {
759
767
  return `${name}: {
760
768
  concept: 'Function',
761
769
  name: 'filter',
762
- returnExpression: __resolveData(${argsStr})
770
+ returnExpression: this.$resolveRequestData(${argsStr}, __eventArg, __currentArg)
763
771
  }`;
764
772
  } else {
765
773
  return `${name}: ${arg.expression.toJS(shiftState(state, code))}`;
@@ -778,7 +786,7 @@ var __parseType = __parseType || ((root, prop) => {
778
786
  code += `{
779
787
  concept: 'Function',
780
788
  name: 'filter',
781
- returnExpression: __resolveData(${argsStr})
789
+ returnExpression: this.$resolveRequestData(${argsStr}, __eventArg, __currentArg)
782
790
  }`;
783
791
  code += `,\n`;
784
792
  logicArgs = [];
@@ -817,8 +825,9 @@ var __parseType = __parseType || ((root, prop) => {
817
825
  }
818
826
  code += '\n})';
819
827
  } else {
820
- if (isComponentLogic) {
821
- code += `this.$refs.${componentName}.${this.calleeName}`;
828
+ if (this.isComponentLogic) {
829
+ // 组件ref元素的对象没有qu dao的容错
830
+ code += `this.$refs && this.$refs.${componentName} && this.$refs.${componentName}.${this.calleeName} && this.$refs.${componentName}.${this.calleeName}`;
822
831
  } else if (calleeNamespace === 'nasl.ui' || calleeNamespace === 'nasl.util') {
823
832
  switch (this.calleeName) {
824
833
  case 'showMessage':
@@ -912,7 +921,12 @@ var __parseType = __parseType || ((root, prop) => {
912
921
  };
913
922
  }
914
923
 
915
- const left = handleMember(root.left);
924
+ let left;
925
+ if (root.concept === 'UnaryExpression') {
926
+ left = handleMember(root.argument);
927
+ } else {
928
+ left = handleMember(root.left);
929
+ }
916
930
  const right = handleMember(root.right);
917
931
  return {
918
932
  concept: root.concept,
@@ -932,6 +946,7 @@ var __parseType = __parseType || ((root, prop) => {
932
946
  if (needGenInitFromSchema) {
933
947
  code = `this.$genInitFromSchema('${typeAnnotation?.sortedTypeKey}', ${code})`;
934
948
  }
949
+ code += ')';
935
950
  return code;
936
951
  }
937
952
 
@@ -948,13 +963,14 @@ var __parseType = __parseType || ((root, prop) => {
948
963
  code += `<`;
949
964
  code += `${typeAnnotation.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }))}>`;
950
965
  }
951
-
966
+ // 参数必填
967
+ const paramRequired = ['showMessage', 'consoleLog'].includes(this.calleeName);
952
968
  const tsCalleeNamespace = this.tsCalleeNamespace;
953
969
  if ((tsCalleeNamespace.startsWith('elements') && tsCalleeNamespace.endsWith('logics')) || tsCalleeNamespace.startsWith('nasl.')) {
954
970
  code += '(';
955
971
  this.arguments.forEach((arg, index) => {
956
972
  // 页面逻辑先都非必填
957
- code += arg.toEmbeddedTS(shiftState(state, code), false);
973
+ code += arg.toEmbeddedTS(shiftState(state, code), paramRequired);
958
974
  if (index !== this.arguments.length - 1)
959
975
  code += ', ';
960
976
  });
@@ -1072,6 +1088,10 @@ var __parseType = __parseType || ((root, prop) => {
1072
1088
  }
1073
1089
  return Arguments;
1074
1090
  }
1091
+
1092
+ static isSystem(node: CallLogic) {
1093
+ return ['nasl.process', 'nasl.browser', 'nasl.auth', 'nasl.configuration', 'nasl.io'].includes(node?.calleeNamespace);
1094
+ }
1075
1095
  //================================================================================
1076
1096
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1077
1097
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -1150,7 +1150,15 @@ export class CallQueryComponent extends LogicItem {
1150
1150
  if (['COUNT', 'COUNTD'].includes(item.aggregateName)) {
1151
1151
  typeName = 'Integer';
1152
1152
  } else if (['AVG'].includes(item.aggregateName)) {
1153
- typeName = 'Double';
1153
+ const { entityAsName, propertyName } = item.aggregateParam;
1154
+ const entity = entities.find((item: Entity) => item.name === entityAsName);
1155
+ const property = entity?.properties.find((item: any) => item.name === propertyName);
1156
+ const propertyTypeName = property?.typeAnnotation?.typeName;
1157
+ if (propertyTypeName === 'Decimal') {
1158
+ typeName = 'Decimal';
1159
+ } else {
1160
+ typeName = 'Double';
1161
+ }
1154
1162
  } else {
1155
1163
  const { entityAsName, propertyName } = item.aggregateParam;
1156
1164
  const entity = entities.find((item: Entity) => item.name === entityAsName);
@@ -1322,8 +1330,15 @@ export class CallQueryComponent extends LogicItem {
1322
1330
  // 2.1.1. `COUNT`、`COUNTD` 返回 `Integer`
1323
1331
  typeName = 'Integer';
1324
1332
  } else if (['AVG'].includes(selectElements[0].aggregateName)) {
1325
- // 2.1.2. `AVG` 返回 `Double`
1326
- typeName = 'Double';
1333
+ const { entityAsName, propertyName } = selectElements[0].aggregateParam;
1334
+ const entity = entities.find((item: Entity) => item.name === entityAsName);
1335
+ const property = entity?.properties.find((item: any) => item.name === propertyName);
1336
+ const propertyTypeName = property?.typeAnnotation?.typeName;
1337
+ if (propertyTypeName === 'Decimal') {
1338
+ typeName = 'Decimal';
1339
+ } else {
1340
+ typeName = 'Double';
1341
+ }
1327
1342
  } else {
1328
1343
  // 2.1.3. 其他返回列类型,包含:`Integer`、`Long`、`Double`
1329
1344
  const { entityAsName, propertyName } = selectElements[0].aggregateParam;
@@ -11,6 +11,8 @@ import BaseNode from '../common/BaseNode';
11
11
  import classMap from '../common/classMap';
12
12
  import ConfigProperty from './ConfigProperty__';
13
13
  import App from './App__';
14
+ import Namespace from './Namespace__';
15
+ import Configuration from './Configuration__';
14
16
 
15
17
  /**
16
18
  * 配置组
@@ -79,7 +81,7 @@ export class ConfigGroup extends BaseNode {
79
81
  });
80
82
  }
81
83
 
82
- getConfigPropertyExistingNames(excludedList: Array<ConfigProperty> = []) {
84
+ getConfigPropertyExistingNames(excludedList: Array<ConfigProperty> = []) {
83
85
  const excludedSet = new Set(excludedList);
84
86
  return ((this.properties as ConfigProperty[]) || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
85
87
  }
@@ -220,9 +222,6 @@ export class ConfigGroup extends BaseNode {
220
222
  return node;
221
223
  }
222
224
 
223
-
224
-
225
-
226
225
  /**
227
226
  * 删除配置属性
228
227
  * @param name 配置属性名称
@@ -278,6 +277,20 @@ export class ConfigGroup extends BaseNode {
278
277
  getProperty(name = '') {
279
278
  return this.properties.find((item) => item.name === name);
280
279
  }
280
+
281
+ getNamespace() {
282
+ if (this.parentNode && (this.parentNode as Namespace).getNamespace) {
283
+ const parentNamespace = (this.parentNode as Namespace).getNamespace();
284
+ const parentName = this.parentNode.name;
285
+ const arr = [parentNamespace];
286
+ if (this.parentNode.concept !== 'App' && parentName) {
287
+ arr.push(parentName);
288
+ }
289
+ return `${arr.join('.')}.groups`;
290
+ } else
291
+ throw new Error('无法获取命名空间,请设置 parentNode!');
292
+ }
293
+
281
294
  //================================================================================
282
295
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
283
296
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓