@lcap/nasl 1.0.0-alpha.9 → 1.0.2

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 (481) hide show
  1. package/out/automate/engine/index.d.ts +3 -0
  2. package/out/automate/engine/index.js +414 -0
  3. package/out/automate/engine/index.js.map +1 -0
  4. package/out/automate/engine/operators.d.ts +13 -0
  5. package/out/automate/engine/operators.js +63 -0
  6. package/out/automate/engine/operators.js.map +1 -0
  7. package/out/automate/engine/uniqueName.d.ts +6 -0
  8. package/out/automate/engine/uniqueName.js +39 -0
  9. package/out/automate/engine/uniqueName.js.map +1 -0
  10. package/out/automate/engine/utils.d.ts +24 -0
  11. package/out/automate/engine/utils.js +379 -0
  12. package/out/automate/engine/utils.js.map +1 -0
  13. package/out/common/BaseNode.d.ts +21 -1
  14. package/out/common/BaseNode.js +232 -84
  15. package/out/common/BaseNode.js.map +1 -1
  16. package/out/concepts/App__.d.ts +19 -1
  17. package/out/concepts/App__.js +88 -45
  18. package/out/concepts/App__.js.map +1 -1
  19. package/out/concepts/Argument__.d.ts +5 -1
  20. package/out/concepts/Argument__.js +21 -3
  21. package/out/concepts/Argument__.js.map +1 -1
  22. package/out/concepts/Assignee__.d.ts +201 -0
  23. package/out/concepts/Assignee__.js +298 -0
  24. package/out/concepts/Assignee__.js.map +1 -0
  25. package/out/concepts/Assignment__.js +5 -0
  26. package/out/concepts/Assignment__.js.map +1 -1
  27. package/out/concepts/BinaryExpression__.js +8 -7
  28. package/out/concepts/BinaryExpression__.js.map +1 -1
  29. package/out/concepts/BindAttribute__.d.ts +19 -0
  30. package/out/concepts/BindAttribute__.js +55 -10
  31. package/out/concepts/BindAttribute__.js.map +1 -1
  32. package/out/concepts/BindDirective__.js +23 -3
  33. package/out/concepts/BindDirective__.js.map +1 -1
  34. package/out/concepts/BindEvent__.d.ts +2 -2
  35. package/out/concepts/BindEvent__.js +67 -34
  36. package/out/concepts/BindEvent__.js.map +1 -1
  37. package/out/concepts/BooleanLiteral__.d.ts +2 -0
  38. package/out/concepts/BooleanLiteral__.js +10 -0
  39. package/out/concepts/BooleanLiteral__.js.map +1 -1
  40. package/out/concepts/CallFunction__.js +58 -25
  41. package/out/concepts/CallFunction__.js.map +1 -1
  42. package/out/concepts/CallInterface__.d.ts +5 -0
  43. package/out/concepts/CallInterface__.js +238 -31
  44. package/out/concepts/CallInterface__.js.map +1 -1
  45. package/out/concepts/CallLogic__.d.ts +4 -4
  46. package/out/concepts/CallLogic__.js +107 -50
  47. package/out/concepts/CallLogic__.js.map +1 -1
  48. package/out/concepts/CallQueryComponent__.d.ts +38 -3
  49. package/out/concepts/CallQueryComponent__.js +329 -75
  50. package/out/concepts/CallQueryComponent__.js.map +1 -1
  51. package/out/concepts/Comment__.js +6 -2
  52. package/out/concepts/Comment__.js.map +1 -1
  53. package/out/concepts/CompletionProperty__.d.ts +3 -1
  54. package/out/concepts/CompletionProperty__.js +2 -0
  55. package/out/concepts/CompletionProperty__.js.map +1 -1
  56. package/out/concepts/ConfigGroup__.js +3 -3
  57. package/out/concepts/ConfigGroup__.js.map +1 -1
  58. package/out/concepts/ConfigProperty__.js +3 -3
  59. package/out/concepts/ConfigProperty__.js.map +1 -1
  60. package/out/concepts/Configuration__.js +3 -3
  61. package/out/concepts/Configuration__.js.map +1 -1
  62. package/out/concepts/Constant__.d.ts +1 -0
  63. package/out/concepts/Constant__.js +16 -2
  64. package/out/concepts/Constant__.js.map +1 -1
  65. package/out/concepts/Destination__.d.ts +12 -0
  66. package/out/concepts/Destination__.js +115 -22
  67. package/out/concepts/Destination__.js.map +1 -1
  68. package/out/concepts/End__.js +9 -1
  69. package/out/concepts/End__.js.map +1 -1
  70. package/out/concepts/EntityIndex__.js +4 -2
  71. package/out/concepts/EntityIndex__.js.map +1 -1
  72. package/out/concepts/EntityProperty__.d.ts +11 -0
  73. package/out/concepts/EntityProperty__.js +71 -5
  74. package/out/concepts/EntityProperty__.js.map +1 -1
  75. package/out/concepts/Entity__.d.ts +5 -4
  76. package/out/concepts/Entity__.js +35 -19
  77. package/out/concepts/Entity__.js.map +1 -1
  78. package/out/concepts/Enum__.d.ts +5 -0
  79. package/out/concepts/Enum__.js +24 -12
  80. package/out/concepts/Enum__.js.map +1 -1
  81. package/out/concepts/Event__.js +3 -3
  82. package/out/concepts/Event__.js.map +1 -1
  83. package/out/concepts/ForEachStatement__.d.ts +1 -1
  84. package/out/concepts/ForEachStatement__.js +11 -15
  85. package/out/concepts/ForEachStatement__.js.map +1 -1
  86. package/out/concepts/Function__.js +13 -13
  87. package/out/concepts/Function__.js.map +1 -1
  88. package/out/concepts/Identifier__.d.ts +3 -0
  89. package/out/concepts/Identifier__.js +77 -30
  90. package/out/concepts/Identifier__.js.map +1 -1
  91. package/out/concepts/IfStatement__.js +4 -4
  92. package/out/concepts/IfStatement__.js.map +1 -1
  93. package/out/concepts/InterfaceParam__.d.ts +6 -4
  94. package/out/concepts/InterfaceParam__.js +57 -19
  95. package/out/concepts/InterfaceParam__.js.map +1 -1
  96. package/out/concepts/Interface__.d.ts +42 -30
  97. package/out/concepts/Interface__.js +133 -17
  98. package/out/concepts/Interface__.js.map +1 -1
  99. package/out/concepts/JSBlock__.d.ts +1 -0
  100. package/out/concepts/JSBlock__.js +3 -0
  101. package/out/concepts/JSBlock__.js.map +1 -1
  102. package/out/concepts/LogicItem__.d.ts +2 -1
  103. package/out/concepts/LogicItem__.js +14 -0
  104. package/out/concepts/LogicItem__.js.map +1 -1
  105. package/out/concepts/Logic__.d.ts +20 -1
  106. package/out/concepts/Logic__.js +194 -37
  107. package/out/concepts/Logic__.js.map +1 -1
  108. package/out/concepts/MemberExpression__.d.ts +2 -0
  109. package/out/concepts/MemberExpression__.js +49 -13
  110. package/out/concepts/MemberExpression__.js.map +1 -1
  111. package/out/concepts/Module__.d.ts +126 -120
  112. package/out/concepts/Module__.js +36 -26
  113. package/out/concepts/Module__.js.map +1 -1
  114. package/out/concepts/Namespace__.d.ts +5 -1
  115. package/out/concepts/Namespace__.js +48 -37
  116. package/out/concepts/Namespace__.js.map +1 -1
  117. package/out/concepts/NullLiteral__.d.ts +3 -0
  118. package/out/concepts/NullLiteral__.js +11 -1
  119. package/out/concepts/NullLiteral__.js.map +1 -1
  120. package/out/concepts/NumericLiteral__.d.ts +1 -1
  121. package/out/concepts/NumericLiteral__.js +17 -6
  122. package/out/concepts/NumericLiteral__.js.map +1 -1
  123. package/out/concepts/Param__.d.ts +7 -3
  124. package/out/concepts/Param__.js +64 -28
  125. package/out/concepts/Param__.js.map +1 -1
  126. package/out/concepts/ProcessComponent__.js +6 -6
  127. package/out/concepts/ProcessComponent__.js.map +1 -1
  128. package/out/concepts/ProcessElement__.d.ts +0 -4
  129. package/out/concepts/ProcessElement__.js +123 -54
  130. package/out/concepts/ProcessElement__.js.map +1 -1
  131. package/out/concepts/ProcessOutcome__.js +1 -1
  132. package/out/concepts/ProcessOutcome__.js.map +1 -1
  133. package/out/concepts/Process__.d.ts +7 -1
  134. package/out/concepts/Process__.js +81 -85
  135. package/out/concepts/Process__.js.map +1 -1
  136. package/out/concepts/QueryAggregateExpression__.js +1 -1
  137. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  138. package/out/concepts/QueryFieldExpression__.d.ts +1 -0
  139. package/out/concepts/QueryFieldExpression__.js +3 -0
  140. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  141. package/out/concepts/QueryFromExpression__.js +2 -2
  142. package/out/concepts/QueryFromExpression__.js.map +1 -1
  143. package/out/concepts/QueryGroupByExpression__.d.ts +3 -0
  144. package/out/concepts/QueryGroupByExpression__.js +20 -0
  145. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  146. package/out/concepts/QueryJoinExpression__.js +5 -5
  147. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  148. package/out/concepts/QueryLimitExpression__.js +2 -2
  149. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  150. package/out/concepts/QuerySelectExpression__.js +3 -3
  151. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  152. package/out/concepts/Return__.d.ts +4 -1
  153. package/out/concepts/Return__.js +74 -23
  154. package/out/concepts/Return__.js.map +1 -1
  155. package/out/concepts/Role__.d.ts +4 -0
  156. package/out/concepts/Role__.js +13 -4
  157. package/out/concepts/Role__.js.map +1 -1
  158. package/out/concepts/SqlQueryComponent__.js +2 -2
  159. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  160. package/out/concepts/StringLiteral__.d.ts +1 -1
  161. package/out/concepts/StringLiteral__.js +22 -39
  162. package/out/concepts/StringLiteral__.js.map +1 -1
  163. package/out/concepts/StructureProperty__.d.ts +5 -4
  164. package/out/concepts/StructureProperty__.js +55 -26
  165. package/out/concepts/StructureProperty__.js.map +1 -1
  166. package/out/concepts/Structure__.d.ts +44 -30
  167. package/out/concepts/Structure__.js +44 -12
  168. package/out/concepts/Structure__.js.map +1 -1
  169. package/out/concepts/SwitchCase__.js +4 -4
  170. package/out/concepts/SwitchCase__.js.map +1 -1
  171. package/out/concepts/SwitchStatement__.js +2 -2
  172. package/out/concepts/SwitchStatement__.js.map +1 -1
  173. package/out/concepts/TypeAnnotation__.d.ts +5 -5
  174. package/out/concepts/TypeAnnotation__.js +82 -20
  175. package/out/concepts/TypeAnnotation__.js.map +1 -1
  176. package/out/concepts/UnaryExpression__.js +10 -8
  177. package/out/concepts/UnaryExpression__.js.map +1 -1
  178. package/out/concepts/Unparsed__.js +1 -1
  179. package/out/concepts/Unparsed__.js.map +1 -1
  180. package/out/concepts/ValidationRule__.d.ts +1 -0
  181. package/out/concepts/ValidationRule__.js +48 -13
  182. package/out/concepts/ValidationRule__.js.map +1 -1
  183. package/out/concepts/Variable__.d.ts +10 -1
  184. package/out/concepts/Variable__.js +77 -20
  185. package/out/concepts/Variable__.js.map +1 -1
  186. package/out/concepts/ViewComponent__.js +15 -15
  187. package/out/concepts/ViewComponent__.js.map +1 -1
  188. package/out/concepts/ViewElement__.d.ts +17 -11
  189. package/out/concepts/ViewElement__.js +302 -204
  190. package/out/concepts/ViewElement__.js.map +1 -1
  191. package/out/concepts/View__.d.ts +13 -12
  192. package/out/concepts/View__.js +124 -102
  193. package/out/concepts/View__.js.map +1 -1
  194. package/out/concepts/WhileStatement__.js +3 -3
  195. package/out/concepts/WhileStatement__.js.map +1 -1
  196. package/out/concepts/basics/stdlib/index.js +4 -1
  197. package/out/concepts/basics/stdlib/index.js.map +1 -1
  198. package/out/concepts/basics/stdlib/{nasl.validate.d.ts → nasl.auth.d.ts} +0 -0
  199. package/out/concepts/basics/stdlib/nasl.auth.js +30 -0
  200. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -0
  201. package/out/concepts/basics/stdlib/nasl.browser.d.ts +3 -0
  202. package/out/concepts/basics/stdlib/nasl.browser.js +41 -0
  203. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -0
  204. package/out/concepts/basics/stdlib/nasl.configuration.d.ts +3 -0
  205. package/out/concepts/basics/stdlib/nasl.configuration.js +25 -0
  206. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -0
  207. package/out/concepts/basics/stdlib/nasl.interface.d.ts +2 -0
  208. package/out/concepts/basics/stdlib/nasl.interface.js +4 -4
  209. package/out/concepts/basics/stdlib/nasl.interface.js.map +1 -1
  210. package/out/concepts/basics/stdlib/nasl.ui.js +20 -0
  211. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  212. package/out/concepts/basics/stdlib/nasl.util.js +138 -18
  213. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  214. package/out/concepts/basics/stdlib/nasl.validation.js +54 -20
  215. package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
  216. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js +1 -1
  217. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js.map +1 -1
  218. package/out/concepts/basics/types/coreTypeList.js +11 -10
  219. package/out/concepts/basics/types/coreTypeList.js.map +1 -1
  220. package/out/concepts/basics/types/index.d.ts +1 -0
  221. package/out/concepts/basics/types/index.js +3 -1
  222. package/out/concepts/basics/types/index.js.map +1 -1
  223. package/out/concepts/index__.d.ts +1 -0
  224. package/out/concepts/index__.js +1 -0
  225. package/out/concepts/index__.js.map +1 -1
  226. package/out/config.d.ts +1 -2
  227. package/out/config.js +1 -2
  228. package/out/config.js.map +1 -1
  229. package/out/enums/KEYWORDS.d.ts +3 -0
  230. package/out/enums/KEYWORDS.js +1199 -0
  231. package/out/enums/KEYWORDS.js.map +1 -0
  232. package/out/{terms → enums}/LEVEL_NAME_MAP.d.ts +0 -0
  233. package/out/{terms → enums}/LEVEL_NAME_MAP.js +0 -0
  234. package/out/{terms → enums}/LEVEL_NAME_MAP.js.map +1 -1
  235. package/out/eventBus.d.ts +3 -0
  236. package/out/eventBus.js +7 -0
  237. package/out/eventBus.js.map +1 -0
  238. package/out/generator/genBundleFiles.d.ts +7 -2
  239. package/out/generator/genBundleFiles.js +168 -27
  240. package/out/generator/genBundleFiles.js.map +1 -1
  241. package/out/generator/genMetaData.d.ts +20 -20
  242. package/out/generator/genMetaData.js +50 -15
  243. package/out/generator/genMetaData.js.map +1 -1
  244. package/out/index.d.ts +2 -0
  245. package/out/index.js +2 -0
  246. package/out/index.js.map +1 -1
  247. package/out/manager/diagnostic.d.ts +2 -2
  248. package/out/server/createUiTs.d.ts +1 -0
  249. package/out/server/createUiTs.js +49 -5
  250. package/out/server/createUiTs.js.map +1 -1
  251. package/out/server/entity2LogicNamespace.js +38 -23
  252. package/out/server/entity2LogicNamespace.js.map +1 -1
  253. package/out/server/extendBaseNode.d.ts +1 -0
  254. package/out/server/extendBaseNode.js +323 -0
  255. package/out/server/extendBaseNode.js.map +1 -0
  256. package/out/server/getExtensionModules.js +2 -0
  257. package/out/server/getExtensionModules.js.map +1 -1
  258. package/out/server/getFunctions.d.ts +1 -0
  259. package/out/server/getFunctions.js +7 -1
  260. package/out/server/getFunctions.js.map +1 -1
  261. package/out/server/getLogics.js +84 -18
  262. package/out/server/getLogics.js.map +1 -1
  263. package/out/server/getMemberIdentifier.d.ts +16 -1
  264. package/out/server/getMemberIdentifier.js +326 -38
  265. package/out/server/getMemberIdentifier.js.map +1 -1
  266. package/out/server/getProcesses.d.ts +8 -1
  267. package/out/server/getProcesses.js +383 -1
  268. package/out/server/getProcesses.js.map +1 -1
  269. package/out/server/getScope.d.ts +13 -0
  270. package/out/server/getScope.js +61 -0
  271. package/out/server/getScope.js.map +1 -0
  272. package/out/server/index.d.ts +1 -0
  273. package/out/server/index.js +5 -0
  274. package/out/server/index.js.map +1 -1
  275. package/out/server/naslServer.d.ts +36 -57
  276. package/out/server/naslServer.js +689 -615
  277. package/out/server/naslServer.js.map +1 -1
  278. package/out/server/process2LogicNamespace.d.ts +10 -0
  279. package/out/server/process2LogicNamespace.js +29 -1
  280. package/out/server/process2LogicNamespace.js.map +1 -1
  281. package/out/server/translator.d.ts +22 -3
  282. package/out/server/translator.js +369 -123
  283. package/out/server/translator.js.map +1 -1
  284. package/out/service/creator/add.configs.d.ts +1 -0
  285. package/out/service/creator/add.configs.js +68 -0
  286. package/out/service/creator/add.configs.js.map +1 -0
  287. package/out/service/creator/errHandles.d.ts +18 -0
  288. package/out/service/creator/errHandles.js +60 -0
  289. package/out/service/creator/errHandles.js.map +1 -0
  290. package/out/service/creator/index.d.ts +1 -0
  291. package/out/service/creator/index.js +72 -0
  292. package/out/service/creator/index.js.map +1 -0
  293. package/out/service/storage/api.d.ts +18 -0
  294. package/out/service/storage/api.js +17 -0
  295. package/out/service/storage/api.js.map +1 -0
  296. package/out/service/storage/init.js +221 -37
  297. package/out/service/storage/init.js.map +1 -1
  298. package/out/service/storage/service.d.ts +2 -0
  299. package/out/service/storage/service.js +10 -0
  300. package/out/service/storage/service.js.map +1 -0
  301. package/out/service/storage/storagePoint.d.ts +1 -14
  302. package/out/service/storage/storagePoint.js +16 -16
  303. package/out/service/storage/storagePoint.js.map +1 -1
  304. package/out/templator/genCreateBlock.js +6 -6
  305. package/out/templator/genCreateBlock.js.map +1 -1
  306. package/out/templator/genCurdEditMultipleKeyBlock.js +13 -17
  307. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  308. package/out/templator/genCurdMultipleKeyBlock.js +11 -11
  309. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  310. package/out/templator/genEditTableBlock.js +5 -5
  311. package/out/templator/genEditTableBlock.js.map +1 -1
  312. package/out/templator/genEnumSelectBlock.js +2 -2
  313. package/out/templator/genEnumSelectBlock.js.map +1 -1
  314. package/out/templator/genGetBlock.js +6 -4
  315. package/out/templator/genGetBlock.js.map +1 -1
  316. package/out/templator/genGridViewBlock.d.ts +3 -1
  317. package/out/templator/genGridViewBlock.js +61 -6
  318. package/out/templator/genGridViewBlock.js.map +1 -1
  319. package/out/templator/genQueryComponent.d.ts +2 -0
  320. package/out/templator/genQueryComponent.js +34 -18
  321. package/out/templator/genQueryComponent.js.map +1 -1
  322. package/out/templator/genSelectBlock.js +5 -15
  323. package/out/templator/genSelectBlock.js.map +1 -1
  324. package/out/templator/genTableBlock.d.ts +1 -1
  325. package/out/templator/genTableBlock.js +4 -5
  326. package/out/templator/genTableBlock.js.map +1 -1
  327. package/out/templator/genUpdateBlock.js +10 -11
  328. package/out/templator/genUpdateBlock.js.map +1 -1
  329. package/out/templator/utils.d.ts +16 -5
  330. package/out/templator/utils.js +10 -5
  331. package/out/templator/utils.js.map +1 -1
  332. package/out/test/fixtures/env.js +0 -1
  333. package/out/test/fixtures/env.js.map +1 -1
  334. package/out/test/units/page/Element.spec.js +3 -3
  335. package/out/test/units/page/Element.spec.js.map +1 -1
  336. package/out/test/units/temp/temp.spec.js +1 -1
  337. package/out/test/units/temp/temp.spec.js.map +1 -1
  338. package/out/utils/index.d.ts +6 -0
  339. package/out/utils/index.js +25 -1
  340. package/out/utils/index.js.map +1 -1
  341. package/out/utils/string.d.ts +1 -1
  342. package/out/utils/string.js +38 -9
  343. package/out/utils/string.js.map +1 -1
  344. package/package.json +2 -2
  345. package/src/automate/engine/index.js +95 -119
  346. package/src/automate/engine/operators.js +63 -0
  347. package/src/automate/engine/uniqueName.js +36 -0
  348. package/src/automate/engine/utils.js +63 -19
  349. package/src/common/BaseNode.ts +229 -74
  350. package/src/concepts/App__.ts +92 -85
  351. package/src/concepts/Argument__.ts +23 -3
  352. package/src/concepts/Assignee__.ts +467 -0
  353. package/src/concepts/Assignment__.ts +4 -1
  354. package/src/concepts/BinaryExpression__.ts +9 -7
  355. package/src/concepts/BindAttribute__.ts +69 -9
  356. package/src/concepts/BindDirective__.ts +22 -3
  357. package/src/concepts/BindEvent__.ts +67 -23
  358. package/src/concepts/BooleanLiteral__.ts +8 -0
  359. package/src/concepts/CallFunction__.ts +55 -23
  360. package/src/concepts/CallInterface__.ts +236 -26
  361. package/src/concepts/CallLogic__.ts +111 -52
  362. package/src/concepts/CallQueryComponent__.ts +315 -67
  363. package/src/concepts/Comment__.ts +6 -2
  364. package/src/concepts/CompletionProperty__.ts +5 -1
  365. package/src/concepts/ConfigGroup__.ts +3 -3
  366. package/src/concepts/ConfigProperty__.ts +3 -3
  367. package/src/concepts/Configuration__.ts +3 -3
  368. package/src/concepts/Constant__.ts +14 -2
  369. package/src/concepts/Destination__.ts +123 -37
  370. package/src/concepts/End__.ts +8 -1
  371. package/src/concepts/EntityIndex__.ts +4 -2
  372. package/src/concepts/EntityProperty__.ts +56 -5
  373. package/src/concepts/Entity__.ts +38 -21
  374. package/src/concepts/Enum__.ts +23 -26
  375. package/src/concepts/Event__.ts +3 -3
  376. package/src/concepts/ForEachStatement__.ts +16 -21
  377. package/src/concepts/Function__.ts +13 -13
  378. package/src/concepts/Identifier__.ts +84 -42
  379. package/src/concepts/IfStatement__.ts +4 -4
  380. package/src/concepts/InterfaceParam__.ts +57 -16
  381. package/src/concepts/Interface__.ts +130 -16
  382. package/src/concepts/JSBlock__.ts +4 -0
  383. package/src/concepts/LogicItem__.ts +16 -1
  384. package/src/concepts/Logic__.ts +192 -39
  385. package/src/concepts/MemberExpression__.ts +58 -15
  386. package/src/concepts/Module__.ts +35 -24
  387. package/src/concepts/Namespace__.ts +49 -37
  388. package/src/concepts/NullLiteral__.ts +8 -1
  389. package/src/concepts/NumericLiteral__.ts +17 -6
  390. package/src/concepts/Param__.ts +64 -16
  391. package/src/concepts/ProcessComponent__.ts +6 -6
  392. package/src/concepts/ProcessElement__.ts +149 -44
  393. package/src/concepts/ProcessOutcome__.ts +1 -1
  394. package/src/concepts/Process__.ts +85 -98
  395. package/src/concepts/QueryAggregateExpression__.ts +1 -1
  396. package/src/concepts/QueryFieldExpression__.ts +4 -0
  397. package/src/concepts/QueryFromExpression__.ts +2 -2
  398. package/src/concepts/QueryGroupByExpression__.ts +23 -0
  399. package/src/concepts/QueryJoinExpression__.ts +5 -5
  400. package/src/concepts/QueryLimitExpression__.ts +2 -2
  401. package/src/concepts/QuerySelectExpression__.ts +3 -3
  402. package/src/concepts/Return__.ts +69 -17
  403. package/src/concepts/Role__.ts +5 -4
  404. package/src/concepts/SqlQueryComponent__.ts +2 -2
  405. package/src/concepts/StringLiteral__.ts +21 -39
  406. package/src/concepts/StructureProperty__.ts +50 -18
  407. package/src/concepts/Structure__.ts +32 -10
  408. package/src/concepts/SwitchCase__.ts +4 -4
  409. package/src/concepts/SwitchStatement__.ts +2 -2
  410. package/src/concepts/TypeAnnotation__.ts +66 -15
  411. package/src/concepts/UnaryExpression__.ts +10 -8
  412. package/src/concepts/Unparsed__.ts +1 -1
  413. package/src/concepts/ValidationRule__.ts +44 -14
  414. package/src/concepts/Variable__.ts +70 -16
  415. package/src/concepts/ViewComponent__.ts +15 -15
  416. package/src/concepts/ViewElement__.ts +289 -166
  417. package/src/concepts/View__.ts +135 -69
  418. package/src/concepts/WhileStatement__.ts +4 -4
  419. package/src/concepts/basics/stdlib/index.ts +4 -2
  420. package/src/concepts/basics/stdlib/nasl.auth.ts +26 -0
  421. package/src/concepts/basics/stdlib/nasl.browser.ts +37 -0
  422. package/src/concepts/basics/stdlib/nasl.configuration.ts +21 -0
  423. package/src/concepts/basics/stdlib/nasl.interface.ts +1 -1
  424. package/src/concepts/basics/stdlib/nasl.ui.ts +20 -1
  425. package/src/concepts/basics/stdlib/nasl.util.ts +140 -18
  426. package/src/concepts/basics/stdlib/nasl.validation.ts +45 -11
  427. package/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts +1 -1
  428. package/src/concepts/basics/types/coreTypeList.ts +11 -11
  429. package/src/concepts/basics/types/index.ts +1 -0
  430. package/src/concepts/index__.ts +1 -0
  431. package/src/config.ts +1 -2
  432. package/src/enums/KEYWORDS.ts +1197 -0
  433. package/src/{terms → enums}/LEVEL_NAME_MAP.ts +0 -0
  434. package/src/eventBus.ts +5 -0
  435. package/src/generator/genBundleFiles.ts +182 -30
  436. package/src/generator/genMetaData.ts +72 -21
  437. package/src/index.ts +2 -0
  438. package/src/manager/diagnostic.ts +2 -2
  439. package/src/server/createUiTs.ts +45 -7
  440. package/src/server/entity2LogicNamespace.ts +41 -25
  441. package/src/server/extendBaseNode.ts +318 -0
  442. package/src/server/getExtensionModules.ts +2 -0
  443. package/src/server/getFunctions.ts +6 -0
  444. package/src/server/getLogics.ts +87 -19
  445. package/src/server/getMemberIdentifier.ts +282 -65
  446. package/src/server/getProcesses.ts +397 -4
  447. package/src/server/getScope.ts +67 -0
  448. package/src/server/index.ts +13 -1
  449. package/src/server/naslServer.ts +694 -632
  450. package/src/server/process2LogicNamespace.ts +30 -2
  451. package/src/server/translator.ts +425 -128
  452. package/src/service/config/index.js +1 -1
  453. package/src/service/creator/errHandles.js +5 -2
  454. package/src/service/creator/index.js +0 -6
  455. package/src/service/storage/api.js +14 -0
  456. package/src/service/storage/init.ts +218 -45
  457. package/src/service/storage/service.ts +6 -0
  458. package/src/service/storage/storagePoint.ts +16 -16
  459. package/src/templator/genCreateBlock.ts +6 -6
  460. package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -30
  461. package/src/templator/genCurdMultipleKeyBlock.ts +11 -11
  462. package/src/templator/genEditTableBlock.ts +5 -5
  463. package/src/templator/genEnumSelectBlock.ts +2 -2
  464. package/src/templator/genGetBlock.ts +7 -9
  465. package/src/templator/genGridViewBlock.ts +59 -9
  466. package/src/templator/genQueryComponent.ts +46 -32
  467. package/src/templator/genSelectBlock.ts +5 -15
  468. package/src/templator/genTableBlock.ts +5 -9
  469. package/src/templator/genUpdateBlock.ts +10 -12
  470. package/src/templator/utils.ts +12 -6
  471. package/src/test/fixtures/env.ts +0 -2
  472. package/src/test/units/page/Element.spec.ts +3 -3
  473. package/src/test/units/temp/temp.spec.ts +1 -1
  474. package/src/utils/index.ts +24 -0
  475. package/src/utils/string.ts +39 -9
  476. package/out/concepts/basics/stdlib/nasl.validate.js +0 -527
  477. package/out/concepts/basics/stdlib/nasl.validate.js.map +0 -1
  478. package/out/data/Module.d.ts +0 -34
  479. package/out/data/Module.js +0 -53
  480. package/out/data/Module.js.map +0 -1
  481. package/src/automate/engine/index.d.ts +0 -3
@@ -1,4 +1,4 @@
1
- import { BaseNode, CompletionProperty, App, Identifier, MemberExpression, Enum, NullLiteral, BooleanLiteral, Param, BindAttribute, LogicItem } from '..';
1
+ import { BaseNode, CompletionProperty, App, Identifier, MemberExpression, Enum, NullLiteral, BooleanLiteral, Param, BindAttribute, LogicItem, TypeAnnotation } from '..';
2
2
  import naslServer from './naslServer';
3
3
 
4
4
  interface variableItem {
@@ -9,22 +9,155 @@ interface variableItem {
9
9
  value?: string;
10
10
  expression: MemberExpression | Identifier;
11
11
  }
12
+
13
+ function getCompletionDetailType(displayParts: Array<{ text: string; kind: string }>): TypeAnnotation {
14
+ // 0: {text: 'let', kind: 'keyword'}
15
+ // 1: {text: ' ', kind: 'space'}
16
+ // 2: {text: 'bindRoles', kind: 'text'}
17
+ // 3: {text: ':', kind: 'punctuation'}
18
+ // 4: {text: ' ', kind: 'space'}
19
+ // 5: {text: 'roles', kind: 'moduleName'}
20
+ // 6: {text: '.', kind: 'punctuation'}
21
+ // 7: {text: 'DEV_AdminRole', kind: 'enumName'}
22
+ // 8: {text: '[', kind: 'punctuation'}
23
+ // 9: {text: ']', kind: 'punctuation'}
24
+ let str = '';
25
+ displayParts.forEach((item) => {
26
+ str += item.text;
27
+ });
28
+ const strTypes = str.split(': ');
29
+ const type = strTypes[1];
30
+ let typeAnnotation;
31
+ try {
32
+ if (type.includes('<') && type.includes('>')) {
33
+ // 泛型的处理
34
+ typeAnnotation = createGenericTypeAnnotation(type);
35
+ } else {
36
+ typeAnnotation = createType2Annotation(type);
37
+ }
38
+ } catch (err) {
39
+ console.log(err);
40
+ }
41
+ return typeAnnotation;
42
+ }
43
+
44
+ function createGenericTypeAnnotation(type: string) {
45
+ // 取出匹配的内容
46
+
47
+ const childType = type.substring(0, type.indexOf('<'));
48
+ const typeAnnotation = createType2Annotation(childType);
49
+ // 如果还有匹配到的多层泛型;
50
+ // 取出匹配到的内容
51
+ const types = /\<([^()]+)\>/g.exec(type);
52
+ const newtext = types[1];
53
+ // 把匹配的值,的内容在,检索一遍,看是不是泛型套泛型
54
+ const newTypes = /\<([^()]+)\>/g.exec(newtext);
55
+ // 如果是的话就去递归
56
+ if (newTypes) {
57
+ const argTypeAnnotation = createGenericTypeAnnotation(newtext);
58
+ typeAnnotation.typeArguments = [argTypeAnnotation];
59
+ } else {
60
+ // 如果不是就创造内部的真正类型
61
+ const argTypeAnnotation = createType2Annotation(newtext);
62
+ typeAnnotation.typeArguments = [argTypeAnnotation];
63
+ }
64
+ return typeAnnotation;
65
+ }
66
+ function createType2Annotation(type: string): TypeAnnotation {
67
+ let typeAnnotation;
68
+ // 没有泛型类型的
69
+ const types = type.split('.');
70
+ if (types.length === 1) {
71
+ typeAnnotation = TypeAnnotation.createPrimitive(types[0]);
72
+ } else {
73
+ if (type.startsWith('nasl.core')) {
74
+ typeAnnotation = TypeAnnotation.createPrimitive(types[types.length - 1]);
75
+ } else if (type.startsWith('nasl.ui')) {
76
+ typeAnnotation = TypeAnnotation.createReference(types[types.length - 1], {
77
+ typeNamespace: 'nasl.ui',
78
+ });
79
+ } else if (type.startsWith('nasl.collection')) {
80
+ typeAnnotation = TypeAnnotation.createGeneric(types[types.length - 1], {
81
+ typeNamespace: 'nasl.collection',
82
+ });
83
+ } else if (type.startsWith('entities.')) {
84
+ typeAnnotation = TypeAnnotation.createReference(types[types.length - 1], {
85
+ typeNamespace: 'app.entities',
86
+ });
87
+ } else if (type.startsWith('structures.')) {
88
+ typeAnnotation = TypeAnnotation.createReference(types[types.length - 1], {
89
+ typeNamespace: 'app.structures',
90
+ });
91
+ } else if (type.startsWith('enums.')) {
92
+ typeAnnotation = TypeAnnotation.createReference(types[types.length - 1], {
93
+ typeNamespace: 'app.enums',
94
+ });
95
+ }
96
+ }
97
+ return typeAnnotation;
98
+ }
99
+
100
+ /**
101
+ * 把要返回去的数据做一下排序
102
+ * @param result 要返回数据
103
+ * @param node 当前内容的上下级
104
+ * @returns 返回排序后的数组
105
+ * 因为ts会按照 a-z的顺序进行排序
106
+ * 但是影响用户体验,需要先按照页面排序,其次按照logic进行排序
107
+ * 流程的韬哥自己解决了,所以先解决这两部分
108
+ */
109
+ function sortFirstVariableData(result: CompletionProperty[], node: BaseNode) {
110
+ const newResult: CompletionProperty[] = [];
111
+ const logic = (node as Param).logic;
112
+ const view = (node as Param).view;
113
+ if (view) {
114
+ const { params, variables } = view;
115
+ const list = [...params, ...variables];
116
+ list.forEach((item) => {
117
+ const findIndex = result.findIndex((findItem) => findItem.name === item.name);
118
+ if (findIndex === 0 || findIndex) {
119
+ newResult.push(result[findIndex]);
120
+ result.splice(findIndex, 1);
121
+ }
122
+ });
123
+ }
124
+ if (logic) {
125
+ const { params, returns, variables } = logic;
126
+ const list = [...params, ...returns, ...variables];
127
+ list.forEach((item) => {
128
+ const findIndex = result.findIndex((findItem) => findItem.name === item.name);
129
+ if (findIndex === 0 || findIndex) {
130
+ newResult.push(result[findIndex]);
131
+ result.splice(findIndex, 1);
132
+ }
133
+ });
134
+ }
135
+ newResult.push(...result);
136
+ return newResult;
137
+ }
12
138
  // 格式化变量数据
13
- function formatVariableData(data: unknown | variableItem[], node: BaseNode, parent?: any) {
139
+ export function formatVariableData(data: unknown | variableItem[], node: BaseNode, parent?: any) {
14
140
  if (Array.isArray(data)) {
15
- const result = data.map((item) => {
141
+ let result = data.map((item) => {
16
142
  // value需要拼接生成
17
143
  item.value = parent ? `${parent.value}.${item.text}` : item.text;
18
144
  item.name = item.text;
145
+ // 当前结构的typeAnnotation
146
+ const typeAnnotation = item.completionDetail && getCompletionDetailType(item.completionDetail.displayParts as Array<{ text: string; kind: string }>);
19
147
  // 如果没有父节点就是Identifier
20
148
  if (!parent) {
21
149
  const identifier = new Identifier({ name: item.name });
150
+ // 携带上当前的类型
151
+ identifier.typeAnnotation = typeAnnotation;
22
152
  item.expression = identifier;
23
153
  } else {
24
- item.expression = new MemberExpression({
154
+ const memberExpression = new MemberExpression({
25
155
  object: parent.expression,
26
156
  property: new Identifier({ name: item.name }),
27
157
  });
158
+ // 携带上当前的类型
159
+ memberExpression.typeAnnotation = typeAnnotation;
160
+ item.expression = memberExpression;
28
161
  }
29
162
  if (item.children) {
30
163
  item.children = formatVariableData(item.children, node, item);
@@ -40,14 +173,28 @@ function formatVariableData(data: unknown | variableItem[], node: BaseNode, pare
40
173
  return completionProperty;
41
174
  }
42
175
  });
176
+
177
+ /**
178
+ * 排序result
179
+ * 如果没有父级就是第一集就排序一下当前result,用户体验优化
180
+ */
181
+ if (!parent) {
182
+ result = sortFirstVariableData(result, node);
183
+ }
43
184
  return result;
44
185
  }
45
186
  }
46
187
  // 从logic获取节点的icon
47
188
  function getNodeiconFromLogic(completionProperty: CompletionProperty, node: BaseNode): string {
48
189
  const logic = (node as Param).logic;
190
+ const view = (node as Param).view;
191
+ if (view) {
192
+ const { params } = view;
193
+ if (params.find((item) => item.name === completionProperty.name))
194
+ return 'param';
195
+ }
49
196
  if (logic) {
50
- const { params, variables, returns } = logic;
197
+ const { params, returns } = logic;
51
198
  if (params.find((item) => item.name === completionProperty.name))
52
199
  return 'param';
53
200
 
@@ -66,22 +213,28 @@ function getNodeiconFromLogic(completionProperty: CompletionProperty, node: Base
66
213
  function formatEnums(enums: Array<Enum>) {
67
214
  const result = enums.map((item) => {
68
215
  const namespace = item.getNamespace();
69
- item.expression = new Identifier({
216
+ const newItem: any = {
70
217
  name: item.name,
71
- namespace,
72
- });
73
- item.children = item.enumItems.map((enumItem) => {
218
+ value: item.name,
219
+ expression: new Identifier({
220
+ name: item.name,
221
+ namespace,
222
+ }),
223
+ children: [],
224
+ };
225
+ newItem.children = item.enumItems.map((enumItem) => {
74
226
  const newEnumItem: any = { ...enumItem };
75
- newEnumItem.name = newEnumItem.value;
76
227
  newEnumItem.expression = new MemberExpression({
77
- object: item.expression,
228
+ object: newItem.expression,
78
229
  property: new Identifier({ name: newEnumItem.value }),
79
230
  });
231
+ newEnumItem.name = newEnumItem.value;
232
+ newEnumItem.value = newItem.value + '.' + newEnumItem.value;
80
233
  const completionProperty = new CompletionProperty(newEnumItem);
81
234
  completionProperty.icon = 'enumItem';
82
235
  return completionProperty;
83
236
  });
84
- const completionProperty = new CompletionProperty(item as any);
237
+ const completionProperty = new CompletionProperty(newItem);
85
238
  completionProperty.icon = 'enum';
86
239
  return completionProperty;
87
240
  });
@@ -92,50 +245,76 @@ type LiteralDefination = {
92
245
  value: string;
93
246
  expression?: Identifier;
94
247
  };
95
- // 先简单处理一下
96
248
  function formatLiterals() {
97
- const list: Array<LiteralDefination> = [
98
- { name: 'null', value: 'null' },
99
- { name: 'true', value: 'true' },
100
- { name: 'false', value: 'false' },
249
+ // const list: Array<LiteralDefination> = [
250
+ // { name: 'null', value: 'null' },
251
+ // { name: 'true', value: 'true' },
252
+ // { name: 'false', value: 'false' },
253
+ // ];
254
+ // const newList = list.map((item) => {
255
+ // item.expression = new Identifier({ name: item.name });
256
+ // const completionProperty = new CompletionProperty(item);
257
+ // completionProperty.icon = 'literal';
258
+ // return completionProperty;
259
+ // });
260
+ // return newList;
261
+ const list = [
262
+ new CompletionProperty({
263
+ name: 'null',
264
+ value: 'null',
265
+ expression: new NullLiteral(),
266
+ }),
267
+ new CompletionProperty({
268
+ name: 'true',
269
+ value: 'true',
270
+ expression: new BooleanLiteral({ value: 'true' }),
271
+ }),
272
+ new CompletionProperty({
273
+ name: 'false',
274
+ value: 'false',
275
+ expression: new BooleanLiteral({ value: 'false' }),
276
+ }),
101
277
  ];
102
- const newList = list.map((item) => {
103
- item.expression = new Identifier({ name: item.name });
104
- const completionProperty = new CompletionProperty(item);
105
- completionProperty.icon = 'literal';
106
- return completionProperty;
278
+ list.forEach((l) => {
279
+ l.icon = 'literal';
107
280
  });
108
- return newList;
281
+ return list;
109
282
  }
110
283
 
111
284
  function formatGlobalVariable() {
112
285
  const newList = [];
113
286
  const globalVariable = {
114
287
  name: 'userInfo',
288
+ value: 'userInfo',
115
289
  children: [
116
- { name: 'Status' },
290
+ { name: 'Status', value: 'userInfo.Status' },
117
291
  { name: 'UserInfoExtend',
292
+ value: 'userInfo.UserInfoExtend',
118
293
  children: [
119
- { name: 'Company' },
120
- { name: 'JobLevel' },
121
- { name: 'JobNum' },
122
- { name: 'RealName' },
123
- { name: 'JobYear' },
124
- ],
125
- },
126
- { name: 'UserName' },
127
- { name: 'Email' },
128
- { name: 'UserId' },
129
- { name: 'Phone' },
130
- { name: 'CreateTime' },
131
- { name: 'UpdateTime' },
132
- { name: 'LoginCount' },
133
- { name: 'Source' },
294
+ { name: 'Company', value: 'userInfo.UserInfoExtend.Company' },
295
+ { name: 'JobLevel', value: 'userInfo.UserInfoExtend.JobLevel' },
296
+ { name: 'JobNum', value: 'userInfo.UserInfoExtend.JobNum' },
297
+ { name: 'JobYear', value: 'userInfo.UserInfoExtend.JobYear' },
298
+ { name: 'RealName', value: 'userInfo.UserInfoExtend.RealName' },
299
+ { name: 'NickName', value: 'userInfo.UserInfoExtend.NickName' },
300
+ { name: 'NameAndEmail', value: 'userInfo.UserInfoExtend.NameAndEmail' },
301
+ { name: 'Position', value: 'userInfo.UserInfoExtend.Position' },
302
+ { name: 'Department', value: 'userInfo.UserInfoExtend.Department' },
303
+ { name: 'EmployeeId', value: 'userInfo.UserInfoExtend.EmployeeId' },
304
+ ] },
305
+ { name: 'UserName', value: 'userInfo.UserName' },
306
+ { name: 'Email', value: 'userInfo.Email' },
307
+ { name: 'UserId', value: 'userInfo.UserId' },
308
+ { name: 'Phone', value: 'userInfo.Phone' },
309
+ { name: 'CreateTime', value: 'userInfo.CreateTime' },
310
+ { name: 'UpdateTime', value: 'userInfo.UpdateTime' },
311
+ { name: 'LoginCount', value: 'userInfo.LoginCount' },
312
+ { name: 'Source', value: 'userInfo.Source' },
134
313
  ],
135
314
  };
136
315
  const userInfoIdentifier = new Identifier({
137
316
  name: 'userInfo',
138
- namespace: 'nasl.brower',
317
+ namespace: 'nasl.auth',
139
318
  });
140
319
  const userCompletionProperty = new CompletionProperty({
141
320
  name: 'userInfo',
@@ -164,23 +343,23 @@ function formatGlobalVariable() {
164
343
  childProperty.icon = 'literal';
165
344
  children.push(childProperty as any);
166
345
  });
167
- completionProperty.children = children;
346
+ completionProperty.children = children as unknown as Array<CompletionProperty>;
168
347
  }
169
348
  userCompletionProperty.children.push(completionProperty as any);
170
349
  });
171
350
  return newList;
172
351
  }
173
352
 
174
-
175
353
  // 获取当前可选的逻辑
176
354
  function getCurrentLogic(node: BaseNode,
177
355
  result: {
178
356
  name: string;
179
357
  children: CompletionProperty[];
358
+ expanded: boolean;
180
359
  icon: string;
181
360
  }[]) {
182
361
  // 只有data-source可以
183
- if (node instanceof Identifier && node.parentNode instanceof BindAttribute && node.parentNode.name === 'data-source') {
362
+ if (node instanceof Identifier && node.parentNode instanceof BindAttribute && (node.parentNode.name === 'data-source' || node.parentNode.name === 'check-file')) {
184
363
  const view = node.view;
185
364
  const viewLogics = view.logics;
186
365
  const logicVariable = viewLogics.map((item) => {
@@ -193,41 +372,37 @@ function getCurrentLogic(node: BaseNode,
193
372
  completionProperty.icon = 'logic';
194
373
  return completionProperty;
195
374
  });
196
- result.push({ name: '逻辑', children: logicVariable, icon: 'category' });
375
+ result.push({ name: '逻辑', children: logicVariable, expanded: true, icon: 'category' });
197
376
  }
198
377
  }
199
378
 
200
379
  export async function getMemberIdentifier(node: BaseNode) {
201
380
  if (node) {
381
+ // 获取字面量
382
+ const literals = getLiteralsIdentifier();
383
+ if (node.getAncestor('CallQueryComponent'))
384
+ literals.shift(); // 去除 null
202
385
  // 获取枚举
203
- const app = node.rootNode as App;
204
- const literals = formatLiterals();
205
- const enums = app?.enums;
206
- const newEnums = enums ? formatEnums(enums) : [];
386
+ const newEnums = getEnumsIdentifier(node);
207
387
 
208
- // extensionModules(state) {
209
- // return state.app?.dependencies?.filter((module) => module.type === 'extension') || {};
388
+ // extensionModules(state) {
389
+ // return state.app?.dependencies?.filter((module) => module.type === 'extension') || {};
210
390
  // },
211
391
 
212
392
  // 如果之前有选好的值就需要的把之前那一列的内容渲染出来
213
393
  // 先去获取
214
394
 
215
- let completionData: CompletionProperty[] = [new CompletionProperty({})];
216
- if (node instanceof Identifier || node instanceof MemberExpression) {
217
- const value = (node as Identifier | MemberExpression).getValue();
218
- if (value) {
219
- const completion = (await naslServer.getValueSelectCompletion(node, value)) as variableItem[];
220
- completionData = formatVariableData(completion, node);
221
- }
222
- }
223
- const globalVariable = formatGlobalVariable();
395
+ // 获取变量
396
+ const completionData = await getVariableIdentifier(node);
397
+ // 获取公共变量
398
+ const globalVariable: CompletionProperty[] = await getGlobalVariableIdentifier(node);
399
+
224
400
  // 这个可能需要自己算一下
225
401
  const result = [
226
- { name: '字面量', children: literals, icon: 'category' },
227
- { name: '枚举', children: newEnums, icon: 'category' },
228
- { name: '变量', children: completionData, icon: 'category' },
229
- { name: '全局变量', children: globalVariable, icon: 'category' },
230
-
402
+ { name: '字面量', children: literals, expanded: true, icon: 'category' },
403
+ { name: '枚举', children: newEnums, expanded: true, icon: 'category' },
404
+ { name: '变量', children: completionData, expanded: true, icon: 'category' },
405
+ { name: '公共变量', children: globalVariable, expanded: true, icon: 'category' },
231
406
  // { name: '流程变量', children: [] },
232
407
  ];
233
408
  getCurrentLogic(node, result);
@@ -235,9 +410,51 @@ export async function getMemberIdentifier(node: BaseNode) {
235
410
  }
236
411
  }
237
412
 
413
+ // 获取字面量
414
+ export function getLiteralsIdentifier(): CompletionProperty[] {
415
+ return formatLiterals();
416
+ }
417
+
418
+ // 获取枚举
419
+ export function getEnumsIdentifier(node: BaseNode): CompletionProperty[] {
420
+ const app = node.rootNode as App;
421
+ const enums = app?.enums;
422
+ const newEnums = enums ? formatEnums(enums) : [];
423
+ return newEnums;
424
+ }
425
+
426
+ // 获取变量
427
+ export async function getVariableIdentifier(node: BaseNode): Promise<CompletionProperty[]> {
428
+ let completionData: CompletionProperty[] = [new CompletionProperty({})];
429
+ if (node instanceof Identifier || node instanceof MemberExpression) {
430
+ const value = (node as Identifier | MemberExpression).getValue();
431
+ if (value) {
432
+ const completion = (await naslServer.getValueSelectCompletion(node, value)) as variableItem[];
433
+ completionData = formatVariableData(completion, node);
434
+ } else {
435
+ const nextCompletion = await naslServer.getFieldKeySelectCompletion(node, '');
436
+ completionData = formatVariableData(nextCompletion, node);
437
+ }
438
+ } else {
439
+ const nextCompletion = await naslServer.getFieldKeySelectCompletion(node, '');
440
+ completionData = formatVariableData(nextCompletion, node);
441
+ }
442
+ return completionData;
443
+ }
444
+
445
+ // 获取公共变量
446
+ export async function getGlobalVariableIdentifier(node: BaseNode):Promise<CompletionProperty[]> {
447
+ let globalVariable: CompletionProperty[] = [];
448
+ // 公共变量修改
449
+ if ((node as any).view) {
450
+ globalVariable = formatGlobalVariable();
451
+ }
452
+ return globalVariable;
453
+ }
454
+
238
455
  export async function getSelectNextCompletionData(node: Identifier, completionProperty?: CompletionProperty) {
239
456
  if (node) {
240
- let fieldKey: string = null;
457
+ let fieldKey: string = '';
241
458
  if (completionProperty) {
242
459
  const exp = BaseNode.from(completionProperty.expression);
243
460
  const value = (exp as Identifier).getValue();