@lcap/nasl 1.0.0-alpha.7 → 1.0.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 (441) hide show
  1. package/out/automate/engine/index.d.ts +3 -0
  2. package/out/automate/engine/index.js +513 -0
  3. package/out/automate/engine/index.js.map +1 -0
  4. package/out/automate/engine/utils.d.ts +24 -0
  5. package/out/automate/engine/utils.js +363 -0
  6. package/out/automate/engine/utils.js.map +1 -0
  7. package/out/common/BaseNode.d.ts +20 -0
  8. package/out/common/BaseNode.js +219 -81
  9. package/out/common/BaseNode.js.map +1 -1
  10. package/out/concepts/App__.d.ts +18 -1
  11. package/out/concepts/App__.js +75 -35
  12. package/out/concepts/App__.js.map +1 -1
  13. package/out/concepts/Argument__.d.ts +5 -1
  14. package/out/concepts/Argument__.js +21 -3
  15. package/out/concepts/Argument__.js.map +1 -1
  16. package/out/concepts/Assignee__.d.ts +190 -0
  17. package/out/concepts/Assignee__.js +264 -0
  18. package/out/concepts/Assignee__.js.map +1 -0
  19. package/out/concepts/Assignment__.js +5 -0
  20. package/out/concepts/Assignment__.js.map +1 -1
  21. package/out/concepts/BinaryExpression__.js +8 -7
  22. package/out/concepts/BinaryExpression__.js.map +1 -1
  23. package/out/concepts/BindAttribute__.d.ts +19 -0
  24. package/out/concepts/BindAttribute__.js +54 -9
  25. package/out/concepts/BindAttribute__.js.map +1 -1
  26. package/out/concepts/BindDirective__.js +22 -2
  27. package/out/concepts/BindDirective__.js.map +1 -1
  28. package/out/concepts/BindEvent__.d.ts +2 -2
  29. package/out/concepts/BindEvent__.js +67 -34
  30. package/out/concepts/BindEvent__.js.map +1 -1
  31. package/out/concepts/BooleanLiteral__.d.ts +2 -0
  32. package/out/concepts/BooleanLiteral__.js +10 -0
  33. package/out/concepts/BooleanLiteral__.js.map +1 -1
  34. package/out/concepts/CallFunction__.js +41 -23
  35. package/out/concepts/CallFunction__.js.map +1 -1
  36. package/out/concepts/CallInterface__.d.ts +5 -0
  37. package/out/concepts/CallInterface__.js +238 -31
  38. package/out/concepts/CallInterface__.js.map +1 -1
  39. package/out/concepts/CallLogic__.d.ts +4 -4
  40. package/out/concepts/CallLogic__.js +110 -53
  41. package/out/concepts/CallLogic__.js.map +1 -1
  42. package/out/concepts/CallQueryComponent__.d.ts +7 -1
  43. package/out/concepts/CallQueryComponent__.js +44 -25
  44. package/out/concepts/CallQueryComponent__.js.map +1 -1
  45. package/out/concepts/Comment__.js +6 -2
  46. package/out/concepts/Comment__.js.map +1 -1
  47. package/out/concepts/CompletionProperty__.d.ts +3 -1
  48. package/out/concepts/CompletionProperty__.js +2 -0
  49. package/out/concepts/CompletionProperty__.js.map +1 -1
  50. package/out/concepts/ConfigGroup__.js +2 -2
  51. package/out/concepts/ConfigGroup__.js.map +1 -1
  52. package/out/concepts/ConfigProperty__.js +2 -2
  53. package/out/concepts/ConfigProperty__.js.map +1 -1
  54. package/out/concepts/Configuration__.js +2 -2
  55. package/out/concepts/Configuration__.js.map +1 -1
  56. package/out/concepts/Constant__.d.ts +1 -0
  57. package/out/concepts/Constant__.js +14 -0
  58. package/out/concepts/Constant__.js.map +1 -1
  59. package/out/concepts/Destination__.d.ts +12 -0
  60. package/out/concepts/Destination__.js +94 -18
  61. package/out/concepts/Destination__.js.map +1 -1
  62. package/out/concepts/End__.js +9 -1
  63. package/out/concepts/End__.js.map +1 -1
  64. package/out/concepts/EntityProperty__.d.ts +11 -0
  65. package/out/concepts/EntityProperty__.js +73 -5
  66. package/out/concepts/EntityProperty__.js.map +1 -1
  67. package/out/concepts/Entity__.d.ts +4 -1
  68. package/out/concepts/Entity__.js +37 -15
  69. package/out/concepts/Entity__.js.map +1 -1
  70. package/out/concepts/Enum__.d.ts +4 -0
  71. package/out/concepts/Enum__.js +18 -10
  72. package/out/concepts/Enum__.js.map +1 -1
  73. package/out/concepts/Event__.js +2 -2
  74. package/out/concepts/Event__.js.map +1 -1
  75. package/out/concepts/ForEachStatement__.js +9 -13
  76. package/out/concepts/ForEachStatement__.js.map +1 -1
  77. package/out/concepts/Function__.js +9 -9
  78. package/out/concepts/Function__.js.map +1 -1
  79. package/out/concepts/Identifier__.d.ts +3 -0
  80. package/out/concepts/Identifier__.js +76 -29
  81. package/out/concepts/Identifier__.js.map +1 -1
  82. package/out/concepts/IfStatement__.js +4 -4
  83. package/out/concepts/IfStatement__.js.map +1 -1
  84. package/out/concepts/InterfaceParam__.d.ts +6 -4
  85. package/out/concepts/InterfaceParam__.js +52 -19
  86. package/out/concepts/InterfaceParam__.js.map +1 -1
  87. package/out/concepts/Interface__.d.ts +42 -30
  88. package/out/concepts/Interface__.js +131 -15
  89. package/out/concepts/Interface__.js.map +1 -1
  90. package/out/concepts/JSBlock__.d.ts +1 -0
  91. package/out/concepts/JSBlock__.js +3 -0
  92. package/out/concepts/JSBlock__.js.map +1 -1
  93. package/out/concepts/LogicItem__.d.ts +2 -1
  94. package/out/concepts/LogicItem__.js +14 -0
  95. package/out/concepts/LogicItem__.js.map +1 -1
  96. package/out/concepts/Logic__.d.ts +16 -1
  97. package/out/concepts/Logic__.js +176 -33
  98. package/out/concepts/Logic__.js.map +1 -1
  99. package/out/concepts/MemberExpression__.d.ts +2 -0
  100. package/out/concepts/MemberExpression__.js +49 -12
  101. package/out/concepts/MemberExpression__.js.map +1 -1
  102. package/out/concepts/Module__.d.ts +126 -120
  103. package/out/concepts/Module__.js +28 -18
  104. package/out/concepts/Module__.js.map +1 -1
  105. package/out/concepts/Namespace__.d.ts +5 -1
  106. package/out/concepts/Namespace__.js +36 -25
  107. package/out/concepts/Namespace__.js.map +1 -1
  108. package/out/concepts/NullLiteral__.d.ts +3 -0
  109. package/out/concepts/NullLiteral__.js +11 -1
  110. package/out/concepts/NullLiteral__.js.map +1 -1
  111. package/out/concepts/NumericLiteral__.d.ts +1 -1
  112. package/out/concepts/NumericLiteral__.js +17 -6
  113. package/out/concepts/NumericLiteral__.js.map +1 -1
  114. package/out/concepts/Param__.d.ts +7 -3
  115. package/out/concepts/Param__.js +57 -28
  116. package/out/concepts/Param__.js.map +1 -1
  117. package/out/concepts/ProcessComponent__.js +4 -4
  118. package/out/concepts/ProcessComponent__.js.map +1 -1
  119. package/out/concepts/ProcessElement__.d.ts +0 -4
  120. package/out/concepts/ProcessElement__.js +112 -49
  121. package/out/concepts/ProcessElement__.js.map +1 -1
  122. package/out/concepts/ProcessOutcome__.js +1 -1
  123. package/out/concepts/ProcessOutcome__.js.map +1 -1
  124. package/out/concepts/Process__.d.ts +7 -1
  125. package/out/concepts/Process__.js +77 -81
  126. package/out/concepts/Process__.js.map +1 -1
  127. package/out/concepts/QueryAggregateExpression__.js +1 -1
  128. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  129. package/out/concepts/QueryFromExpression__.js +2 -2
  130. package/out/concepts/QueryFromExpression__.js.map +1 -1
  131. package/out/concepts/QueryJoinExpression__.js +4 -4
  132. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  133. package/out/concepts/QueryLimitExpression__.js +3 -3
  134. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  135. package/out/concepts/QuerySelectExpression__.js +2 -2
  136. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  137. package/out/concepts/Return__.d.ts +4 -1
  138. package/out/concepts/Return__.js +67 -21
  139. package/out/concepts/Return__.js.map +1 -1
  140. package/out/concepts/Role__.d.ts +4 -0
  141. package/out/concepts/Role__.js +13 -4
  142. package/out/concepts/Role__.js.map +1 -1
  143. package/out/concepts/SqlQueryComponent__.js +2 -2
  144. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  145. package/out/concepts/StringLiteral__.d.ts +1 -1
  146. package/out/concepts/StringLiteral__.js +21 -31
  147. package/out/concepts/StringLiteral__.js.map +1 -1
  148. package/out/concepts/StructureProperty__.d.ts +5 -4
  149. package/out/concepts/StructureProperty__.js +55 -26
  150. package/out/concepts/StructureProperty__.js.map +1 -1
  151. package/out/concepts/Structure__.d.ts +44 -30
  152. package/out/concepts/Structure__.js +42 -10
  153. package/out/concepts/Structure__.js.map +1 -1
  154. package/out/concepts/SwitchCase__.js +4 -4
  155. package/out/concepts/SwitchCase__.js.map +1 -1
  156. package/out/concepts/SwitchStatement__.js +2 -2
  157. package/out/concepts/SwitchStatement__.js.map +1 -1
  158. package/out/concepts/TypeAnnotation__.d.ts +5 -5
  159. package/out/concepts/TypeAnnotation__.js +74 -20
  160. package/out/concepts/TypeAnnotation__.js.map +1 -1
  161. package/out/concepts/UnaryExpression__.js +10 -8
  162. package/out/concepts/UnaryExpression__.js.map +1 -1
  163. package/out/concepts/Unparsed__.js +1 -1
  164. package/out/concepts/Unparsed__.js.map +1 -1
  165. package/out/concepts/ValidationRule__.d.ts +1 -0
  166. package/out/concepts/ValidationRule__.js +48 -13
  167. package/out/concepts/ValidationRule__.js.map +1 -1
  168. package/out/concepts/Variable__.d.ts +10 -1
  169. package/out/concepts/Variable__.js +70 -18
  170. package/out/concepts/Variable__.js.map +1 -1
  171. package/out/concepts/ViewComponent__.js +10 -10
  172. package/out/concepts/ViewComponent__.js.map +1 -1
  173. package/out/concepts/ViewElement__.d.ts +17 -11
  174. package/out/concepts/ViewElement__.js +299 -201
  175. package/out/concepts/ViewElement__.js.map +1 -1
  176. package/out/concepts/View__.d.ts +12 -13
  177. package/out/concepts/View__.js +106 -103
  178. package/out/concepts/View__.js.map +1 -1
  179. package/out/concepts/WhileStatement__.js +3 -3
  180. package/out/concepts/WhileStatement__.js.map +1 -1
  181. package/out/concepts/basics/stdlib/index.js +4 -1
  182. package/out/concepts/basics/stdlib/index.js.map +1 -1
  183. package/out/concepts/basics/stdlib/{nasl.validate.d.ts → nasl.auth.d.ts} +0 -0
  184. package/out/concepts/basics/stdlib/nasl.auth.js +30 -0
  185. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -0
  186. package/out/concepts/basics/stdlib/nasl.browser copy.d.ts +3 -0
  187. package/out/concepts/basics/stdlib/nasl.browser copy.js +70 -0
  188. package/out/concepts/basics/stdlib/nasl.browser copy.js.map +1 -0
  189. package/out/concepts/basics/stdlib/nasl.browser.d.ts +3 -0
  190. package/out/concepts/basics/stdlib/nasl.browser.js +41 -0
  191. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -0
  192. package/out/concepts/basics/stdlib/nasl.configuration.d.ts +3 -0
  193. package/out/concepts/basics/stdlib/nasl.configuration.js +25 -0
  194. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -0
  195. package/out/concepts/basics/stdlib/nasl.ui.js +20 -0
  196. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  197. package/out/concepts/basics/stdlib/nasl.util.js +149 -13
  198. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  199. package/out/concepts/basics/stdlib/nasl.validation.js +54 -20
  200. package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
  201. package/out/concepts/basics/types/coreTypeList.js +11 -10
  202. package/out/concepts/basics/types/coreTypeList.js.map +1 -1
  203. package/out/concepts/index__.d.ts +1 -0
  204. package/out/concepts/index__.js +1 -0
  205. package/out/concepts/index__.js.map +1 -1
  206. package/out/config.d.ts +1 -2
  207. package/out/config.js +1 -2
  208. package/out/config.js.map +1 -1
  209. package/out/enums/KEYWORDS.d.ts +3 -0
  210. package/out/enums/KEYWORDS.js +1208 -0
  211. package/out/enums/KEYWORDS.js.map +1 -0
  212. package/out/enums/LEVEL_NAME_MAP.d.ts +26 -0
  213. package/out/enums/LEVEL_NAME_MAP.js +30 -0
  214. package/out/enums/LEVEL_NAME_MAP.js.map +1 -0
  215. package/out/eventBus.d.ts +3 -0
  216. package/out/eventBus.js +7 -0
  217. package/out/eventBus.js.map +1 -0
  218. package/out/generator/genBundleFiles.d.ts +7 -2
  219. package/out/generator/genBundleFiles.js +168 -27
  220. package/out/generator/genBundleFiles.js.map +1 -1
  221. package/out/generator/genMetaData.d.ts +20 -20
  222. package/out/generator/genMetaData.js +50 -15
  223. package/out/generator/genMetaData.js.map +1 -1
  224. package/out/index.d.ts +2 -0
  225. package/out/index.js +2 -0
  226. package/out/index.js.map +1 -1
  227. package/out/manager/diagnostic.d.ts +1 -1
  228. package/out/server/createUiTs.d.ts +1 -0
  229. package/out/server/createUiTs.js +49 -5
  230. package/out/server/createUiTs.js.map +1 -1
  231. package/out/server/entity2LogicNamespace.js +38 -23
  232. package/out/server/entity2LogicNamespace.js.map +1 -1
  233. package/out/server/getExtensionModules.js +2 -0
  234. package/out/server/getExtensionModules.js.map +1 -1
  235. package/out/server/getFunctions.d.ts +1 -0
  236. package/out/server/getFunctions.js +7 -1
  237. package/out/server/getFunctions.js.map +1 -1
  238. package/out/server/getLogics.js +63 -18
  239. package/out/server/getLogics.js.map +1 -1
  240. package/out/server/getMemberIdentifier.d.ts +16 -1
  241. package/out/server/getMemberIdentifier.js +279 -36
  242. package/out/server/getMemberIdentifier.js.map +1 -1
  243. package/out/server/getProcesses.d.ts +6 -1
  244. package/out/server/getProcesses.js +243 -1
  245. package/out/server/getProcesses.js.map +1 -1
  246. package/out/server/getScope.d.ts +11 -0
  247. package/out/server/getScope.js +45 -0
  248. package/out/server/getScope.js.map +1 -0
  249. package/out/server/index.js +4 -0
  250. package/out/server/index.js.map +1 -1
  251. package/out/server/naslServer.d.ts +30 -53
  252. package/out/server/naslServer.js +682 -363
  253. package/out/server/naslServer.js.map +1 -1
  254. package/out/server/process2LogicNamespace.d.ts +10 -0
  255. package/out/server/process2LogicNamespace.js +29 -1
  256. package/out/server/process2LogicNamespace.js.map +1 -1
  257. package/out/server/translator.d.ts +22 -3
  258. package/out/server/translator.js +367 -123
  259. package/out/server/translator.js.map +1 -1
  260. package/out/service/creator/add.configs.d.ts +1 -0
  261. package/out/service/creator/add.configs.js +68 -0
  262. package/out/service/creator/add.configs.js.map +1 -0
  263. package/out/service/creator/errHandles.d.ts +18 -0
  264. package/out/service/creator/errHandles.js +60 -0
  265. package/out/service/creator/errHandles.js.map +1 -0
  266. package/out/service/creator/index.d.ts +1 -0
  267. package/out/service/creator/index.js +72 -0
  268. package/out/service/creator/index.js.map +1 -0
  269. package/out/service/storage/api.d.ts +18 -0
  270. package/out/service/storage/api.js +17 -0
  271. package/out/service/storage/api.js.map +1 -0
  272. package/out/service/storage/init.js +200 -37
  273. package/out/service/storage/init.js.map +1 -1
  274. package/out/service/storage/service.d.ts +2 -0
  275. package/out/service/storage/service.js +10 -0
  276. package/out/service/storage/service.js.map +1 -0
  277. package/out/service/storage/storagePoint.d.ts +1 -14
  278. package/out/service/storage/storagePoint.js +16 -16
  279. package/out/service/storage/storagePoint.js.map +1 -1
  280. package/out/templator/genCreateBlock.js +6 -6
  281. package/out/templator/genCreateBlock.js.map +1 -1
  282. package/out/templator/genCurdEditMultipleKeyBlock.js +13 -17
  283. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  284. package/out/templator/genCurdMultipleKeyBlock.js +11 -11
  285. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  286. package/out/templator/genEditTableBlock.js +5 -5
  287. package/out/templator/genEditTableBlock.js.map +1 -1
  288. package/out/templator/genEnumSelectBlock.js +2 -2
  289. package/out/templator/genEnumSelectBlock.js.map +1 -1
  290. package/out/templator/genGetBlock.js +5 -3
  291. package/out/templator/genGetBlock.js.map +1 -1
  292. package/out/templator/genGridViewBlock.d.ts +3 -1
  293. package/out/templator/genGridViewBlock.js +61 -6
  294. package/out/templator/genGridViewBlock.js.map +1 -1
  295. package/out/templator/genQueryComponent.d.ts +2 -0
  296. package/out/templator/genQueryComponent.js +27 -14
  297. package/out/templator/genQueryComponent.js.map +1 -1
  298. package/out/templator/genTableBlock.d.ts +1 -1
  299. package/out/templator/genTableBlock.js +4 -5
  300. package/out/templator/genTableBlock.js.map +1 -1
  301. package/out/templator/genUpdateBlock.js +9 -10
  302. package/out/templator/genUpdateBlock.js.map +1 -1
  303. package/out/templator/utils.d.ts +13 -4
  304. package/out/templator/utils.js +8 -4
  305. package/out/templator/utils.js.map +1 -1
  306. package/out/test/fixtures/env.js +0 -1
  307. package/out/test/fixtures/env.js.map +1 -1
  308. package/out/test/units/page/Element.spec.js +3 -3
  309. package/out/test/units/page/Element.spec.js.map +1 -1
  310. package/out/test/units/temp/temp.spec.js +1 -1
  311. package/out/test/units/temp/temp.spec.js.map +1 -1
  312. package/out/utils/index.d.ts +6 -0
  313. package/out/utils/index.js +20 -1
  314. package/out/utils/index.js.map +1 -1
  315. package/package.json +2 -1
  316. package/src/automate/engine/index.js +118 -38
  317. package/src/automate/engine/utils.js +49 -19
  318. package/src/common/BaseNode.ts +229 -81
  319. package/src/concepts/App__.ts +77 -37
  320. package/src/concepts/Argument__.ts +23 -3
  321. package/src/concepts/Assignee__.ts +437 -0
  322. package/src/concepts/Assignment__.ts +4 -1
  323. package/src/concepts/BinaryExpression__.ts +9 -7
  324. package/src/concepts/BindAttribute__.ts +68 -8
  325. package/src/concepts/BindDirective__.ts +21 -2
  326. package/src/concepts/BindEvent__.ts +67 -35
  327. package/src/concepts/BooleanLiteral__.ts +8 -0
  328. package/src/concepts/CallFunction__.ts +42 -25
  329. package/src/concepts/CallInterface__.ts +236 -26
  330. package/src/concepts/CallLogic__.ts +114 -86
  331. package/src/concepts/CallQueryComponent__.ts +35 -20
  332. package/src/concepts/Comment__.ts +6 -2
  333. package/src/concepts/CompletionProperty__.ts +5 -1
  334. package/src/concepts/ConfigGroup__.ts +2 -2
  335. package/src/concepts/ConfigProperty__.ts +2 -2
  336. package/src/concepts/Configuration__.ts +2 -2
  337. package/src/concepts/Constant__.ts +12 -0
  338. package/src/concepts/Destination__.ts +92 -20
  339. package/src/concepts/End__.ts +8 -1
  340. package/src/concepts/EntityProperty__.ts +69 -5
  341. package/src/concepts/Entity__.ts +40 -23
  342. package/src/concepts/Enum__.ts +16 -11
  343. package/src/concepts/Event__.ts +2 -2
  344. package/src/concepts/ForEachStatement__.ts +14 -19
  345. package/src/concepts/Function__.ts +9 -9
  346. package/src/concepts/Identifier__.ts +82 -33
  347. package/src/concepts/IfStatement__.ts +4 -4
  348. package/src/concepts/InterfaceParam__.ts +51 -21
  349. package/src/concepts/Interface__.ts +166 -46
  350. package/src/concepts/JSBlock__.ts +4 -0
  351. package/src/concepts/LogicItem__.ts +16 -1
  352. package/src/concepts/Logic__.ts +183 -36
  353. package/src/concepts/MemberExpression__.ts +57 -13
  354. package/src/concepts/Module__.ts +176 -140
  355. package/src/concepts/Namespace__.ts +37 -25
  356. package/src/concepts/NullLiteral__.ts +8 -1
  357. package/src/concepts/NumericLiteral__.ts +17 -6
  358. package/src/concepts/Param__.ts +58 -30
  359. package/src/concepts/ProcessComponent__.ts +4 -4
  360. package/src/concepts/ProcessElement__.ts +138 -39
  361. package/src/concepts/ProcessOutcome__.ts +1 -1
  362. package/src/concepts/Process__.ts +81 -94
  363. package/src/concepts/QueryAggregateExpression__.ts +1 -1
  364. package/src/concepts/QueryFromExpression__.ts +2 -2
  365. package/src/concepts/QueryJoinExpression__.ts +4 -4
  366. package/src/concepts/QueryLimitExpression__.ts +3 -12
  367. package/src/concepts/QuerySelectExpression__.ts +2 -2
  368. package/src/concepts/Return__.ts +62 -23
  369. package/src/concepts/Role__.ts +11 -4
  370. package/src/concepts/SqlQueryComponent__.ts +2 -2
  371. package/src/concepts/StringLiteral__.ts +20 -31
  372. package/src/concepts/StructureProperty__.ts +50 -25
  373. package/src/concepts/Structure__.ts +75 -41
  374. package/src/concepts/SwitchCase__.ts +4 -4
  375. package/src/concepts/SwitchStatement__.ts +2 -2
  376. package/src/concepts/TypeAnnotation__.ts +71 -18
  377. package/src/concepts/UnaryExpression__.ts +10 -8
  378. package/src/concepts/Unparsed__.ts +1 -1
  379. package/src/concepts/ValidationRule__.ts +44 -14
  380. package/src/concepts/Variable__.ts +69 -19
  381. package/src/concepts/ViewComponent__.ts +10 -10
  382. package/src/concepts/ViewElement__.ts +297 -199
  383. package/src/concepts/View__.ts +114 -107
  384. package/src/concepts/WhileStatement__.ts +4 -4
  385. package/src/concepts/basics/stdlib/index.ts +4 -2
  386. package/src/concepts/basics/stdlib/nasl.auth.ts +26 -0
  387. package/src/concepts/basics/stdlib/nasl.browser.ts +37 -0
  388. package/src/concepts/basics/stdlib/nasl.configuration.ts +21 -0
  389. package/src/concepts/basics/stdlib/nasl.ui.ts +20 -1
  390. package/src/concepts/basics/stdlib/nasl.util.ts +151 -13
  391. package/src/concepts/basics/stdlib/nasl.validation.ts +45 -11
  392. package/src/concepts/basics/types/coreTypeList.ts +11 -10
  393. package/src/concepts/index__.ts +1 -0
  394. package/src/config.ts +1 -2
  395. package/src/enums/KEYWORDS.ts +1206 -0
  396. package/src/{terms → enums}/LEVEL_NAME_MAP.ts +0 -0
  397. package/src/eventBus.ts +5 -0
  398. package/src/generator/genBundleFiles.ts +192 -40
  399. package/src/generator/genMetaData.ts +72 -21
  400. package/src/index.ts +2 -0
  401. package/src/manager/diagnostic.ts +1 -1
  402. package/src/server/createUiTs.ts +50 -8
  403. package/src/server/entity2LogicNamespace.ts +41 -25
  404. package/src/server/getExtensionModules.ts +2 -0
  405. package/src/server/getFunctions.ts +6 -0
  406. package/src/server/getLogics.ts +66 -19
  407. package/src/server/getMemberIdentifier.ts +276 -39
  408. package/src/server/getProcesses.ts +248 -4
  409. package/src/server/getScope.ts +50 -0
  410. package/src/server/index.ts +12 -1
  411. package/src/server/naslServer.ts +689 -389
  412. package/src/server/process2LogicNamespace.ts +30 -2
  413. package/src/server/translator.ts +423 -128
  414. package/src/service/config/index.js +1 -1
  415. package/src/service/creator/errHandles.js +5 -2
  416. package/src/service/creator/index.js +0 -6
  417. package/src/service/storage/api.js +14 -0
  418. package/src/service/storage/init.ts +204 -47
  419. package/src/service/storage/service.ts +6 -0
  420. package/src/service/storage/storagePoint.ts +16 -16
  421. package/src/templator/genCreateBlock.ts +6 -6
  422. package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -30
  423. package/src/templator/genCurdMultipleKeyBlock.ts +11 -11
  424. package/src/templator/genEditTableBlock.ts +5 -5
  425. package/src/templator/genEnumSelectBlock.ts +2 -2
  426. package/src/templator/genGetBlock.ts +6 -8
  427. package/src/templator/genGridViewBlock.ts +59 -9
  428. package/src/templator/genQueryComponent.ts +39 -28
  429. package/src/templator/genTableBlock.ts +5 -9
  430. package/src/templator/genUpdateBlock.ts +9 -11
  431. package/src/templator/utils.ts +9 -6
  432. package/src/test/fixtures/env.ts +0 -2
  433. package/src/test/units/page/Element.spec.ts +3 -3
  434. package/src/test/units/temp/temp.spec.ts +1 -1
  435. package/src/utils/index.ts +19 -0
  436. package/out/concepts/basics/stdlib/nasl.validate.js +0 -527
  437. package/out/concepts/basics/stdlib/nasl.validate.js.map +0 -1
  438. package/out/data/Module.d.ts +0 -34
  439. package/out/data/Module.js +0 -53
  440. package/out/data/Module.js.map +0 -1
  441. package/src/automate/engine/index.d.ts +0 -3
@@ -2,6 +2,8 @@ import { TranslatorState, shiftState, withSourceMap } from '../translator';
2
2
  import Logic from './Logic__';
3
3
  import Param from './Param__';
4
4
  import { ElementToVueOptions } from './ViewElement__';
5
+ import { getNodeByNodeCallee } from '../automate/engine/utils';
6
+
5
7
  //================================================================================
6
8
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
7
9
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -64,8 +66,6 @@ export class CallLogic extends LogicItem {
64
66
  @property('Argument')
65
67
  arguments: Array<Argument> = [];
66
68
 
67
-
68
-
69
69
  /**
70
70
  * @param source 需要合并的部分参数
71
71
  */
@@ -79,13 +79,6 @@ export class CallLogic extends LogicItem {
79
79
  return super.from(source, parentNode, parentKey) as CallLogic;
80
80
  }
81
81
 
82
-
83
-
84
-
85
-
86
-
87
-
88
-
89
82
  /**
90
83
  * 插入类型标注
91
84
  * @internal
@@ -105,7 +98,7 @@ export class CallLogic extends LogicItem {
105
98
  const relationOptions = { parentNode: this, parentKey: 'typeArguments' };
106
99
  let typeAnnotation: TypeAnnotation;
107
100
  if (options instanceof TypeAnnotation) {
108
- options.delete(); // 同一实例不支持多处存在
101
+ options.ensureDelete(); // 同一实例不支持多处存在
109
102
  typeAnnotation = options;
110
103
  Object.assign(typeAnnotation, relationOptions);
111
104
  } else {
@@ -118,8 +111,6 @@ export class CallLogic extends LogicItem {
118
111
  return typeAnnotation;
119
112
  }
120
113
 
121
-
122
-
123
114
  /**
124
115
  * 插入类型标注
125
116
  * @param typeAnnotationOptions 类型标注参数
@@ -142,8 +133,6 @@ export class CallLogic extends LogicItem {
142
133
  return node;
143
134
  }
144
135
 
145
-
146
-
147
136
  /**
148
137
  * 添加类型标注
149
138
  * @internal
@@ -163,8 +152,6 @@ export class CallLogic extends LogicItem {
163
152
  return this._insertTypeAnnotationAt(options as any, index);
164
153
  }
165
154
 
166
-
167
-
168
155
  /**
169
156
  * 添加类型标注
170
157
  * @param typeAnnotationOptions 类型标注参数
@@ -179,7 +166,7 @@ export class CallLogic extends LogicItem {
179
166
 
180
167
  addTypeAnnotation(options?: Partial<TypeAnnotation> | TypeAnnotation) {
181
168
  const node = this._addTypeAnnotation(options as any);
182
- const index = this.typeArguments.length;
169
+ const index = this.typeArguments.indexOf(node);
183
170
  node.create({
184
171
  index,
185
172
  parentNode: this,
@@ -188,11 +175,6 @@ export class CallLogic extends LogicItem {
188
175
  return node;
189
176
  }
190
177
 
191
-
192
-
193
-
194
-
195
-
196
178
  /**
197
179
  * 插入实际参数
198
180
  * @internal
@@ -212,7 +194,7 @@ export class CallLogic extends LogicItem {
212
194
  const relationOptions = { parentNode: this, parentKey: 'arguments' };
213
195
  let argument: Argument;
214
196
  if (options instanceof Argument) {
215
- options.delete(); // 同一实例不支持多处存在
197
+ options.ensureDelete(); // 同一实例不支持多处存在
216
198
  argument = options;
217
199
  Object.assign(argument, relationOptions);
218
200
  } else {
@@ -225,8 +207,6 @@ export class CallLogic extends LogicItem {
225
207
  return argument;
226
208
  }
227
209
 
228
-
229
-
230
210
  /**
231
211
  * 插入实际参数
232
212
  * @param argumentOptions 实际参数参数
@@ -249,8 +229,6 @@ export class CallLogic extends LogicItem {
249
229
  return node;
250
230
  }
251
231
 
252
-
253
-
254
232
  /**
255
233
  * 添加实际参数
256
234
  * @internal
@@ -270,8 +248,6 @@ export class CallLogic extends LogicItem {
270
248
  return this._insertArgumentAt(options as any, index);
271
249
  }
272
250
 
273
-
274
-
275
251
  /**
276
252
  * 添加实际参数
277
253
  * @param argumentOptions 实际参数参数
@@ -286,7 +262,7 @@ export class CallLogic extends LogicItem {
286
262
 
287
263
  addArgument(options?: Partial<Argument> | Argument) {
288
264
  const node = this._addArgument(options as any);
289
- const index = this.arguments.length;
265
+ const index = this.arguments.indexOf(node);
290
266
  node.create({
291
267
  index,
292
268
  parentNode: this,
@@ -295,9 +271,6 @@ export class CallLogic extends LogicItem {
295
271
  return node;
296
272
  }
297
273
 
298
-
299
-
300
-
301
274
  /**
302
275
  * 删除类型标注
303
276
  * @param typeAnnotation 已有的类型标注实例
@@ -305,7 +278,7 @@ export class CallLogic extends LogicItem {
305
278
  removeTypeAnnotation(typeAnnotation: TypeAnnotation): void;
306
279
 
307
280
  removeTypeAnnotation(options: TypeAnnotation) {
308
- let typeAnnotation: TypeAnnotation = options;
281
+ const typeAnnotation: TypeAnnotation = options;
309
282
  return typeAnnotation.delete();
310
283
  }
311
284
 
@@ -332,8 +305,6 @@ export class CallLogic extends LogicItem {
332
305
  return params;
333
306
  }
334
307
 
335
-
336
-
337
308
  /**
338
309
  * 删除实际参数
339
310
  * @param argument 已有的实际参数实例
@@ -341,7 +312,7 @@ export class CallLogic extends LogicItem {
341
312
  removeArgument(argument: Argument): void;
342
313
 
343
314
  removeArgument(options: Argument) {
344
- let argument: Argument = options;
315
+ const argument: Argument = options;
345
316
  return argument.delete();
346
317
  }
347
318
 
@@ -382,11 +353,16 @@ export class CallLogic extends LogicItem {
382
353
  }
383
354
  return '';
384
355
  }
356
+
357
+ // 用于logic回填
358
+ get calleewholeKey(): string {
359
+ return this.calleeNamespace + '.' + this.calleeName;
360
+ }
385
361
  get calleeKey(): string {
386
362
  const tsCalleeNamespace = this.tsCalleeNamespace;
387
363
  const calleeName = this.calleeName;
388
364
  if (!tsCalleeNamespace) {
389
- return calleeName ? `logics.${calleeName}` : '__IDENTIFIER__';
365
+ return calleeName ? `${calleeName}` : '__IDENTIFIER__';
390
366
  }
391
367
  // elements单独处理相对路径,和后缀的问题
392
368
  if (tsCalleeNamespace.startsWith('elements') && tsCalleeNamespace.endsWith('logics')) {
@@ -397,10 +373,11 @@ export class CallLogic extends LogicItem {
397
373
  }
398
374
 
399
375
  /**
400
- * 设置setArgumentName
376
+ * 设置argment 触发别的地方的更新
401
377
  */
402
- setArgumentName({ argument, newKeyword }: { argument: Argument; newKeyword: string }) {
403
- argument.setKeyword(newKeyword);
378
+ setArgumentName({ argument }: { argument: Argument[] }) {
379
+ // argument.setKeyword(newKeyword);
380
+ // this.arguments = argument;
404
381
  }
405
382
 
406
383
  /**
@@ -451,6 +428,7 @@ export class CallLogic extends LogicItem {
451
428
  const relationOptions = { parentNode: this, parentKey: 'arguments' };
452
429
  const argument = Argument.from({
453
430
  keyword: param.name,
431
+ expression: param.defaultExpression,
454
432
  }, this);
455
433
  Object.assign(argument, relationOptions);
456
434
  return argument;
@@ -518,11 +496,15 @@ export class CallLogic extends LogicItem {
518
496
  }
519
497
 
520
498
  toVue(options?: ElementToVueOptions): string {
521
- let code = this.calleeName;
499
+ let code = '';
500
+ if (this.calleeNamespace === 'nasl.browser' || this.calleeNamespace === 'nasl.auth' || this.calleeNamespace === 'nasl.configuration') {
501
+ code += '$global.';
502
+ }
503
+ code += this.calleeName;
522
504
  code += '(';
523
- this.arguments.forEach((arg, index) => {
524
- code += arg.toVue(options);
525
- if (index !== this.arguments.length - 1)
505
+ this.arguments?.forEach((arg, index) => {
506
+ code += arg?.toVue(options);
507
+ if (index !== this.arguments?.length - 1)
526
508
  code += ', ';
527
509
  });
528
510
  code += ')';
@@ -532,9 +514,9 @@ export class CallLogic extends LogicItem {
532
514
  toUI(state?: TranslatorState): string {
533
515
  let code = this.calleeName;
534
516
  code += '(';
535
- this.arguments.forEach((arg, index) => {
536
- code += arg.toUI();
537
- if (index !== this.arguments.length - 1)
517
+ this.arguments?.forEach((arg, index) => {
518
+ code += arg?.toUI();
519
+ if (index !== this.arguments?.length - 1)
538
520
  code += ', ';
539
521
  });
540
522
  code += ')';
@@ -550,12 +532,15 @@ export class CallLogic extends LogicItem {
550
532
  let isComponentLogic = false;
551
533
  let componentName = '';
552
534
  const calleeNamespace = this.calleeNamespace;
535
+ const isProcessLogic = this.calleeNamespace?.startsWith('app.processes');
536
+
553
537
  // calleeNamespace不存在,一定是页面逻辑
554
538
  if (calleeNamespace) {
555
539
  const namespaceArr = calleeNamespace.split('.');
556
540
  const start = namespaceArr.shift();
557
- if (start === 'app') {
558
- const keywordViews = namespaceArr.filter((namespaceItem, index) => index % 2 === 0).find((namespaceItem) => namespaceItem === 'views');
541
+ if (start === 'app' || start === 'extensions') {
542
+ const mod = start === 'app' ? 0 : 1;
543
+ const keywordViews = namespaceArr.filter((namespaceItem, index) => index % 2 === mod).find((namespaceItem) => namespaceItem === 'views');
559
544
  if (!keywordViews) {
560
545
  isViewLogic = false;
561
546
  }
@@ -566,15 +551,23 @@ export class CallLogic extends LogicItem {
566
551
  }
567
552
  // 全局逻辑
568
553
  if (!isViewLogic) {
569
- code += `this.$logics['${this.calleeName}']`;
570
- code += `({
571
- config: {
572
- download: false,
573
- },
574
- query: {},
575
- headers: {},
576
- `;
577
- const namespaceArr = calleeNamespace.split('.');
554
+ const namespaceArr = calleeNamespace?.split('.');
555
+ const logic = getNodeByNodeCallee(this.app, this.calleewholeKey, (key: string, tempPoint: any) => {
556
+ // 处理 NASL 中未定义的假的节点
557
+ if (key === tempPoint.name) {
558
+ return {
559
+ tempPoint,
560
+ state: 1,
561
+ };
562
+ }
563
+ const t = tempPoint[key];
564
+ return {
565
+ tempPoint: t,
566
+ state: Array.isArray(t) ? 2 : 1,
567
+ };
568
+ });
569
+ const args = logic?.params || [];
570
+
578
571
  // 去掉app
579
572
  namespaceArr.shift();
580
573
  const keywordEntities = namespaceArr
@@ -585,43 +578,64 @@ export class CallLogic extends LogicItem {
585
578
  .filter((namespaceItem, index) => index % 2 === 0)
586
579
  .find((namespaceItem) => namespaceItem.key === 'entities');
587
580
  const entityName = namespaceArr[keywordEntities?.index + 1];
581
+ code += `this.$logics['${this.calleeNamespace ? `${this.calleeNamespace}.${this.calleeName}` : this.calleeName}']`;
582
+ code += `({
583
+ config: {
584
+ download: false,
585
+ },
586
+ query: {`;
587
+ if (isProcessLogic) {
588
+ const argsStr = args.map((arg: any, index: number) => {
589
+ const actualArg = this.arguments?.[index];
590
+ return {
591
+ keyword: arg?.name,
592
+ arg: actualArg,
593
+ };
594
+ }).filter((obj: any) => obj?.arg?.expression).map((obj: any) => `\n${obj?.keyword}: ${obj?.arg?.toJS(shiftState(state, code))}`).join(', ');
595
+ code += argsStr;
596
+ }
597
+ code += `},
598
+ headers: {},
599
+ `;
588
600
 
589
601
  if (entityName) {
590
602
  let logicArgs = this.arguments;
591
603
  switch (this.calleeName) {
592
604
  case 'get':
593
605
  case 'delete': {
594
- let idArgument: Argument;
595
- logicArgs = logicArgs.filter((arg) => {
596
- if (arg.keyword === 'id') {
597
- idArgument = arg;
598
- return false;
599
- } else {
600
- return true;
601
- }
602
- });
603
- code += `path: {`;
604
- if (idArgument) {
605
- code += `\n${idArgument.keyword}: ${idArgument.toJS(shiftState(state, code))}`;
606
- }
606
+ logicArgs = [];
607
+ code += `query: {`;
608
+ const argsStr = args.map((arg: any, index: number) => {
609
+ const actualArg = this.arguments?.[index];
610
+ return {
611
+ keyword: arg?.name,
612
+ arg: actualArg,
613
+ };
614
+ }).filter((obj: any) => obj?.arg?.expression).map((obj: any) => `\n${obj?.keyword}: ${obj?.arg?.toJS(shiftState(state, code))}`).join(', ');
615
+ code += argsStr;
607
616
  code += `},\n`;
608
617
  break;
609
618
  }
610
619
  }
611
620
  const bodyArgument = logicArgs.find((arg) => arg.keyword === 'body');
612
621
  if (bodyArgument) {
613
- code += `\n${bodyArgument.keyword}: ${bodyArgument.toJS(shiftState(state, code))}`;
622
+ code += `\n${bodyArgument?.keyword}: ${bodyArgument?.toJS(shiftState(state, code))}`;
614
623
  } else {
615
624
  code += `body: {}`;
616
625
  }
617
626
  } else {
618
627
  code += `path: {},
619
628
  body: {`;
620
- this.arguments.forEach((arg, index) => {
621
- code += `\n${arg.keyword}: ${arg.toJS(shiftState(state, code))}`;
622
- if (index !== this.arguments.length - 1)
623
- code += ', ';
624
- });
629
+ if (!isProcessLogic) {
630
+ const argsStr = args.map((arg: any, index: number) => {
631
+ const actualArg = this.arguments?.[index];
632
+ return {
633
+ keyword: arg?.name,
634
+ arg: actualArg,
635
+ };
636
+ }).filter((obj: any) => obj?.arg?.expression).map((obj: any) => `\n${obj?.keyword}: ${obj?.arg?.toJS(shiftState(state, code))}`).join(', ');
637
+ code += argsStr;
638
+ }
625
639
  code += '\n}';
626
640
  }
627
641
  code += '\n})';
@@ -643,15 +657,18 @@ export class CallLogic extends LogicItem {
643
657
  code += `JSON.parse`;
644
658
  break;
645
659
  }
660
+ } else if (calleeNamespace === 'nasl.browser' || calleeNamespace === 'nasl.auth' || calleeNamespace === 'nasl.configuration') {
661
+ code += `this.$global.${this.calleeName}`;
646
662
  } else {
647
663
  code += `this.${this.calleeName}`;
648
664
  }
649
665
  code += '(';
650
- this.arguments.forEach((arg, index) => {
651
- code += arg.toJS(shiftState(state, code));
652
- if (index !== this.arguments.length - 1)
653
- code += ', ';
654
- });
666
+ this.arguments?.filter((arg) => arg?.expression)
667
+ .forEach((arg, index) => {
668
+ code += arg?.toJS(shiftState(state, code));
669
+ if (index !== this.arguments?.length - 1)
670
+ code += ', ';
671
+ });
655
672
  code += ')';
656
673
  }
657
674
  return code;
@@ -660,14 +677,25 @@ export class CallLogic extends LogicItem {
660
677
  @withSourceMap()
661
678
  toEmbeddedTS(state?: TranslatorState): string {
662
679
  let code = this.calleeKey;
680
+ if (Array.isArray(this.typeArguments) && this.typeArguments.length) {
681
+ // 如果有内容
682
+ const typeAnnotation = this.typeArguments[0];
683
+ code += `<`;
684
+ code += `${typeAnnotation.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }))}>`;
685
+ }
663
686
  code += '(';
664
687
  this.arguments.forEach((arg, index) => {
665
- code += arg.toEmbeddedTS(shiftState(state, code));
688
+ const tsCalleeNamespace = this.tsCalleeNamespace;
689
+ // 页面逻辑先都非必填
690
+ if (tsCalleeNamespace.startsWith('elements') && tsCalleeNamespace.endsWith('logics')) {
691
+ code += arg.toEmbeddedTS(shiftState(state, code), false);
692
+ } else {
693
+ code += arg.toEmbeddedTS(shiftState(state, code));
694
+ }
666
695
  if (index !== this.arguments.length - 1)
667
696
  code += ', ';
668
697
  });
669
698
  code += ');\n';
670
-
671
699
  return code;
672
700
  }
673
701
 
@@ -677,7 +705,7 @@ export class CallLogic extends LogicItem {
677
705
  //================================================================================
678
706
  }
679
707
 
680
- classMap['CallLogic'] = CallLogic;
708
+ classMap.CallLogic = CallLogic;
681
709
  export default CallLogic;
682
710
  //================================================================================
683
711
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
@@ -82,6 +82,12 @@ export class CallQueryComponent extends LogicItem {
82
82
  @property('QueryLimitExpression')
83
83
  limit: QueryLimitExpression = undefined;
84
84
 
85
+ /**
86
+ * 查询组件的局部版本
87
+ */
88
+ @property()
89
+ ideVersion: string = undefined;
90
+
85
91
 
86
92
 
87
93
  /**
@@ -241,7 +247,7 @@ export class CallQueryComponent extends LogicItem {
241
247
  name: options,
242
248
  }, this, 'groupBy');
243
249
  } else if (options instanceof QueryGroupByExpression) {
244
- options.delete(); // 同一实例不支持多处存在
250
+ options.ensureDelete(); // 同一实例不支持多处存在
245
251
  queryGroupByExpression = options;
246
252
  Object.assign(queryGroupByExpression, relationOptions);
247
253
  } else {
@@ -329,7 +335,7 @@ export class CallQueryComponent extends LogicItem {
329
335
 
330
336
  addQueryGroupByExpressionInGroupBy(options?: string | Partial<QueryGroupByExpression> | QueryGroupByExpression) {
331
337
  const node = this._addQueryGroupByExpressionInGroupBy(options as any);
332
- const index = this.groupBy.length;
338
+ const index = this.groupBy.indexOf(node);
333
339
  node.create({
334
340
  index,
335
341
  parentNode: this,
@@ -359,7 +365,7 @@ export class CallQueryComponent extends LogicItem {
359
365
  const relationOptions = { parentNode: this, parentKey: 'orderBy' };
360
366
  let queryOrderByExpression: QueryOrderByExpression;
361
367
  if (options instanceof QueryOrderByExpression) {
362
- options.delete(); // 同一实例不支持多处存在
368
+ options.ensureDelete(); // 同一实例不支持多处存在
363
369
  queryOrderByExpression = options;
364
370
  Object.assign(queryOrderByExpression, relationOptions);
365
371
  } else {
@@ -433,7 +439,7 @@ export class CallQueryComponent extends LogicItem {
433
439
 
434
440
  addQueryOrderByExpressionInOrderBy(options?: Partial<QueryOrderByExpression> | QueryOrderByExpression) {
435
441
  const node = this._addQueryOrderByExpressionInOrderBy(options as any);
436
- const index = this.orderBy.length;
442
+ const index = this.orderBy.indexOf(node);
437
443
  node.create({
438
444
  index,
439
445
  parentNode: this,
@@ -784,7 +790,7 @@ export class CallQueryComponent extends LogicItem {
784
790
  code += indent(state.tabSize + 1);
785
791
  const { asName, aggregateName, aggregateParam } = item;
786
792
  if (asName)
787
- code += `const ${asName} = `;
793
+ code += `const __${asName} = `;
788
794
  if (aggregateName) {
789
795
  code += `nasl.langUtil.${aggregateName}(`;
790
796
  code += aggregateParam.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));
@@ -901,20 +907,23 @@ export class CallQueryComponent extends LogicItem {
901
907
  return Structure.from({
902
908
  concept: 'Structure',
903
909
  name: structureName,
910
+ origin: 'CallQueryComponent',
904
911
  properties: [...genPropertyListOfFrom(this.from), ...genPropertyListOfAggregate(this)],
905
912
  });
906
913
  }
907
914
 
908
915
  saveStructure() {
909
916
  const source = this.genStructure();
917
+ // console.log(source);
910
918
  if (this.typeAnnotation) {
911
919
  const structure = this.app.structures.find((item) => item.name === this.typeAnnotation.typeName);
912
920
  if (structure) {
913
- const properties = source.properties.map((property) => StructureProperty.from(property, structure));
921
+ const properties = source.properties.map((property) => StructureProperty.from(property, structure, 'properties'));
914
922
  structure.update({
915
923
  properties,
916
924
  });
917
- }
925
+ } else
926
+ this.app.addStructure(source);
918
927
  } else {
919
928
  source.name = utils.unique(source.name, this.app.getStructureExistingNames());
920
929
  this.app.addStructure(source);
@@ -922,8 +931,8 @@ export class CallQueryComponent extends LogicItem {
922
931
  concept: 'TypeAnnotation',
923
932
  typeKind: 'reference',
924
933
  typeName: source.name,
925
- typeNamespace: `app.${this.app.name}.structures`,
926
- }, this);
934
+ typeNamespace: `app.structures`,
935
+ }, this, 'typeAnnotation');
927
936
  this.update({
928
937
  typeAnnotation,
929
938
  });
@@ -936,11 +945,6 @@ export class CallQueryComponent extends LogicItem {
936
945
  } catch {}
937
946
  }
938
947
 
939
- delete() {
940
- this.removeStructure();
941
- super.delete();
942
- }
943
-
944
948
  getEntityNames(node: QueryFromExpression | QueryJoinExpression, set = new Set()) {
945
949
  if (node?.entityName)
946
950
  set.add(node.entityName);
@@ -963,8 +967,8 @@ export class CallQueryComponent extends LogicItem {
963
967
  .map((entity) => ({
964
968
  concept: 'Entity',
965
969
  name: entity.name,
966
- children: entity.properties.map((property) =>
967
- new CompletionProperty({
970
+ children: entity.properties.map((property) => {
971
+ const completionProperty = new CompletionProperty({
968
972
  concept: 'CompletionProperty',
969
973
  name: property.name,
970
974
  value: `${entity.name}.${property.name}`,
@@ -975,12 +979,19 @@ export class CallQueryComponent extends LogicItem {
975
979
  entityAsName: entity.name,
976
980
  propertyName: property.name,
977
981
  }),
978
- })),
982
+ });
983
+ completionProperty.icon = 'property';
984
+ return completionProperty;
985
+ }),
979
986
  }));
980
987
  if (children.length === 0)
981
988
  return;
982
989
 
983
- return { name: '实体', children };
990
+ return {
991
+ name: '实体',
992
+ icon: 'category',
993
+ children,
994
+ };
984
995
  }
985
996
 
986
997
  getCompletionPropertyOfAggregateAsNames() {
@@ -990,16 +1001,20 @@ export class CallQueryComponent extends LogicItem {
990
1001
  new CompletionProperty({
991
1002
  concept: 'CompletionProperty',
992
1003
  name: item.asName,
993
- value: item.asName,
1004
+ value: `inner.${item.asName}`,
994
1005
  expression: LogicItem.from({
995
1006
  concept: 'Identifier',
996
1007
  name: item.asName,
1008
+ namespace: 'inner',
997
1009
  }),
998
1010
  }));
999
1011
  if (!children || children.length === 0)
1000
1012
  return;
1001
1013
 
1002
- return { name: '聚合属性别名', children };
1014
+ children.forEach((item) => {
1015
+ item.icon = 'variable';
1016
+ });
1017
+ return { name: '聚合属性别名', icon: 'category', children, expanded: true };
1003
1018
  }
1004
1019
 
1005
1020
  //================================================================================
@@ -67,7 +67,7 @@ export class Comment extends LogicItem {
67
67
  //================================================================================
68
68
 
69
69
  toJS(state?: TranslatorState): string {
70
- return `\n${indent(state.tabSize)}// ${this.value}\n`;
70
+ return `/* ${this.value} */`;
71
71
  }
72
72
 
73
73
  public static getDefaultOptions() {
@@ -79,7 +79,11 @@ export class Comment extends LogicItem {
79
79
  @withSourceMap()
80
80
  toEmbeddedTS(state?: TranslatorState): string {
81
81
  let code = '';
82
- code += `\n${indent(state.tabSize)}// ${this.value}\n`;
82
+ code += `\n${indent(state.tabSize)}
83
+ /**
84
+ * 注释不用翻译
85
+ */
86
+ \n`;
83
87
  return code;
84
88
  }
85
89
  //================================================================================
@@ -224,7 +224,7 @@ export class CompletionProperty extends BaseNode {
224
224
  * 子集
225
225
  */
226
226
  @property()
227
- children: Array<LogicItem> = undefined;
227
+ children: Array<CompletionProperty> = undefined;
228
228
 
229
229
  /**
230
230
  * 表达式
@@ -236,6 +236,10 @@ export class CompletionProperty extends BaseNode {
236
236
  * 用于展示图标
237
237
  */
238
238
  icon: string = undefined;
239
+
240
+ isProcess: boolean = false;
241
+
242
+ noFurther: boolean = false;
239
243
  //================================================================================
240
244
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
241
245
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -123,7 +123,7 @@ export class ConfigGroup extends BaseNode {
123
123
  name: options,
124
124
  }, this, 'properties');
125
125
  } else if (options instanceof ConfigProperty) {
126
- options.delete(); // 同一实例不支持多处存在
126
+ options.ensureDelete(); // 同一实例不支持多处存在
127
127
  configProperty = options;
128
128
  Object.assign(configProperty, relationOptions);
129
129
  } else {
@@ -211,7 +211,7 @@ export class ConfigGroup extends BaseNode {
211
211
 
212
212
  addConfigProperty(options?: string | Partial<ConfigProperty> | ConfigProperty) {
213
213
  const node = this._addConfigProperty(options as any);
214
- const index = this.properties.length;
214
+ const index = this.properties.indexOf(node);
215
215
  node.create({
216
216
  index,
217
217
  parentNode: this,
@@ -129,7 +129,7 @@ export class ConfigProperty extends BaseNode {
129
129
  name: options,
130
130
  }, this, 'values');
131
131
  } else if (options instanceof ConfigPropertyValue) {
132
- options.delete(); // 同一实例不支持多处存在
132
+ options.ensureDelete(); // 同一实例不支持多处存在
133
133
  configPropertyValue = options;
134
134
  Object.assign(configPropertyValue, relationOptions);
135
135
  } else {
@@ -217,7 +217,7 @@ export class ConfigProperty extends BaseNode {
217
217
 
218
218
  addConfigPropertyValue(options?: string | Partial<ConfigPropertyValue> | ConfigPropertyValue) {
219
219
  const node = this._addConfigPropertyValue(options as any);
220
- const index = this.values.length;
220
+ const index = this.values.indexOf(node);
221
221
  node.create({
222
222
  index,
223
223
  parentNode: this,