@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,6 +1,8 @@
1
1
  import View from './View__';
2
2
  import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState, embeddedTSEmitter } from '../translator';
3
3
  import { ElementToVueOptions } from './ViewElement__';
4
+ import { BindAttribute } from '..';
5
+
4
6
  //================================================================================
5
7
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
6
8
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -50,8 +52,6 @@ export class Destination extends LogicItem {
50
52
  @property('Argument')
51
53
  arguments: Array<Argument> = [];
52
54
 
53
-
54
-
55
55
  /**
56
56
  * @param source 需要合并的部分参数
57
57
  */
@@ -65,7 +65,6 @@ export class Destination extends LogicItem {
65
65
  return super.from(source, parentNode, parentKey) as Destination;
66
66
  }
67
67
 
68
-
69
68
  /**
70
69
  * 设置viewNamespace
71
70
  */
@@ -90,10 +89,6 @@ export class Destination extends LogicItem {
90
89
  });
91
90
  }
92
91
 
93
-
94
-
95
-
96
-
97
92
  /**
98
93
  * 插入实际参数
99
94
  * @internal
@@ -113,7 +108,7 @@ export class Destination extends LogicItem {
113
108
  const relationOptions = { parentNode: this, parentKey: 'arguments' };
114
109
  let argument: Argument;
115
110
  if (options instanceof Argument) {
116
- options.delete(); // 同一实例不支持多处存在
111
+ options.ensureDelete(); // 同一实例不支持多处存在
117
112
  argument = options;
118
113
  Object.assign(argument, relationOptions);
119
114
  } else {
@@ -126,8 +121,6 @@ export class Destination extends LogicItem {
126
121
  return argument;
127
122
  }
128
123
 
129
-
130
-
131
124
  /**
132
125
  * 插入实际参数
133
126
  * @param argumentOptions 实际参数参数
@@ -150,8 +143,6 @@ export class Destination extends LogicItem {
150
143
  return node;
151
144
  }
152
145
 
153
-
154
-
155
146
  /**
156
147
  * 添加实际参数
157
148
  * @internal
@@ -171,8 +162,6 @@ export class Destination extends LogicItem {
171
162
  return this._insertArgumentAt(options as any, index);
172
163
  }
173
164
 
174
-
175
-
176
165
  /**
177
166
  * 添加实际参数
178
167
  * @param argumentOptions 实际参数参数
@@ -187,7 +176,7 @@ export class Destination extends LogicItem {
187
176
 
188
177
  addArgument(options?: Partial<Argument> | Argument) {
189
178
  const node = this._addArgument(options as any);
190
- const index = this.arguments.length;
179
+ const index = this.arguments.indexOf(node);
191
180
  node.create({
192
181
  index,
193
182
  parentNode: this,
@@ -196,9 +185,6 @@ export class Destination extends LogicItem {
196
185
  return node;
197
186
  }
198
187
 
199
-
200
-
201
-
202
188
  /**
203
189
  * 删除实际参数
204
190
  * @param argument 已有的实际参数实例
@@ -206,7 +192,7 @@ export class Destination extends LogicItem {
206
192
  removeArgument(argument: Argument): void;
207
193
 
208
194
  removeArgument(options: Argument) {
209
- let argument: Argument = options;
195
+ const argument: Argument = options;
210
196
  return argument.delete();
211
197
  }
212
198
 
@@ -248,8 +234,24 @@ export class Destination extends LogicItem {
248
234
  return '';
249
235
  }
250
236
 
237
+ get tsName() {
238
+ if (this.viewName) {
239
+ let tsName = this.viewName;
240
+ // 匹配所有特殊字符都转为_
241
+ tsName = tsName.replace(/\W/g, '_');
242
+ if (/^\d/.test(tsName)) {
243
+ tsName = '$' + tsName;
244
+ }
245
+ return tsName;
246
+ }
247
+ return '';
248
+ }
251
249
  genViewArr() {
252
- const viewArr = this.viewNamespace?.split('.').splice(1).filter((item, index) => index % 2 === 1) || [];
250
+ const viewArr
251
+ = this.viewNamespace
252
+ ?.split('.')
253
+ .splice(1)
254
+ .filter((item, index) => index % 2 === 1) || [];
253
255
  if (this.viewName) {
254
256
  viewArr.push(this.viewName);
255
257
  }
@@ -260,10 +262,17 @@ export class Destination extends LogicItem {
260
262
  let url = '';
261
263
  const viewArr = this.genViewArr();
262
264
  if (Array.isArray(viewArr) && viewArr.length) {
263
- url += ':href="`';
265
+ url += ':destination="`';
264
266
  url += `/${viewArr.join('/')}`;
265
267
  if (Array.isArray(this.arguments) && this.arguments.length) {
266
- const args = this.arguments.map((arg) => `${arg.keyword}=` + '${' + `${arg.toVue()}` + '}');
268
+ const args = this.arguments.map((arg) => {
269
+ const value = arg?.toVue();
270
+ let argStr = '';
271
+ if (value) {
272
+ argStr += `${arg.keyword}=` + '${' + `${value}` + '}';
273
+ }
274
+ return argStr;
275
+ }).filter((arg) => !!arg);
267
276
  url += `?${args.join('&')}`;
268
277
  }
269
278
  url += '`"';
@@ -278,7 +287,7 @@ export class Destination extends LogicItem {
278
287
  url += '`';
279
288
  url += `/${viewArr.join('/')}`;
280
289
  if (Array.isArray(this.arguments) && this.arguments.length) {
281
- const args = this.arguments.map((arg) => `${arg.keyword}=` + '${' + `${arg.toUI()}` + '}');
290
+ const args = this.arguments?.map((arg) => `${arg?.keyword}=` + '${' + `${arg?.toUI()}` + '}');
282
291
  url += `?${args.join('&')}`;
283
292
  }
284
293
  url += '`';
@@ -293,7 +302,14 @@ export class Destination extends LogicItem {
293
302
  url += 'this.$destination(`';
294
303
  url += `/${viewArr.join('/')}`;
295
304
  if (Array.isArray(this.arguments) && this.arguments.length) {
296
- const args = this.arguments.map((arg) => `${arg.keyword}=` + '${' + `${arg.toJS()}` + '}');
305
+ const args = this.arguments.map((arg) => {
306
+ const value = arg?.toJS();
307
+ let argStr = '';
308
+ if (value) {
309
+ argStr += `${arg.keyword}=` + '${' + `${value}` + '}';
310
+ }
311
+ return argStr;
312
+ }).filter((arg) => !!arg);
297
313
  url += `?${args.join('&')}`;
298
314
  }
299
315
  url += '`)';
@@ -323,6 +339,38 @@ export class Destination extends LogicItem {
323
339
  });
324
340
  }
325
341
 
342
+ /**
343
+ * 设置view的argument
344
+ */
345
+ setViewArgument(view: View) {
346
+ const params = view.params;
347
+ const argument = this.arguments;
348
+ if (params.length > argument.length) {
349
+ params.forEach((item) => {
350
+ const arg = argument.find((arg) => arg.keyword === item.name);
351
+ if (!arg) {
352
+ this.addArgument({
353
+ keyword: item.name,
354
+ });
355
+ }
356
+ });
357
+ } else {
358
+ argument.forEach((item) => {
359
+ const param = params.find((param) => param.name === item.keyword);
360
+ if (!param) {
361
+ item.delete();
362
+ }
363
+ });
364
+ }
365
+ }
366
+ /**
367
+ * 设置Arguments的KeyWord
368
+ */
369
+ setArgumentsKeyWord(options: { findArgument: Argument; newKeyword: string }) {
370
+ const { findArgument, newKeyword } = options;
371
+ findArgument.setKeyword(newKeyword);
372
+ }
373
+
326
374
  get viewPath() {
327
375
  if (!this.viewNamespace) {
328
376
  return '';
@@ -338,23 +386,61 @@ export class Destination extends LogicItem {
338
386
  }
339
387
  return `${viewNameAttr.join('/')}/`;
340
388
  }
341
-
342
389
  @withSourceMap()
343
- toEmbeddedTS(state?: TranslatorState): string {
344
- let code = `${utils.firstLowerCase(this.concept)}: () => {\n`;
345
- code += indent(state.tabSize + 2);
390
+ toEmbeddedTSInProcess(state: TranslatorState, prependCode: string): string {
391
+ // const tab = indent(state.tabSize);
346
392
  if (this.tsCalleeNamespace && this.tsName) {
347
- code += `${this.tsCalleeNamespace}.${this.tsName}.$destination(`;
348
- if (Array.isArray(this.arguments)) {
349
- this.arguments.forEach((argument: Argument) => {
350
- code += argument.toEmbeddedTS(shiftState(state, code)) + ', ';
351
- });
393
+ let code = `destination: function() {\n`;
394
+ code += prependCode;
395
+ code += '\n';
396
+ if (this.tsCalleeNamespace && this.viewName) {
397
+ code += `${this.tsCalleeNamespace}.${this.viewName}.$destination({`;
398
+ if (Array.isArray(this.arguments)) {
399
+ this.arguments.forEach((argument: Argument) => {
400
+ code += argument.toEmbeddedTS(shiftState(state, code), false, true) + ', ';
401
+ });
402
+ }
403
+ code += `});\n`;
352
404
  }
353
- code += `);\n`;
405
+ code += indent(state.tabSize + 1) + `}\n`;
406
+ return code;
407
+ } else {
408
+ return '__IDENTIFIER__';
354
409
  }
410
+ }
355
411
 
356
- code += indent(state.tabSize + 1) + `},\n`;
357
- return code;
412
+ @withSourceMap()
413
+ toEmbeddedTS(state?: TranslatorState): string {
414
+ let code = '';
415
+
416
+ if (this.parentNode instanceof BindAttribute) {
417
+ code = `${utils.firstLowerCase(this.concept)}: () => {\n`;
418
+ code += indent(state.tabSize + 2);
419
+ if (this.tsCalleeNamespace && this.tsName) {
420
+ code += `${this.tsCalleeNamespace}.${this.tsName}.$destination({`;
421
+ if (Array.isArray(this.arguments)) {
422
+ this.arguments.forEach((argument: Argument) => {
423
+ code += argument.toEmbeddedTS(shiftState(state, code), false, true) + ', ';
424
+ });
425
+ }
426
+ code += `});\n`;
427
+ }
428
+ code += indent(state.tabSize + 1) + `},\n`;
429
+ return code;
430
+ } else {
431
+ if (this.tsCalleeNamespace && this.tsName) {
432
+ code += `${this.tsCalleeNamespace}.${this.tsName}.$destination({`;
433
+ if (Array.isArray(this.arguments)) {
434
+ this.arguments.forEach((argument: Argument) => {
435
+ code += argument.toEmbeddedTS(shiftState(state, code), false, true) + ', ';
436
+ });
437
+ }
438
+ code += `});\n`;
439
+ } else {
440
+ code += '__IDENTIFIER__';
441
+ }
442
+ return code;
443
+ }
358
444
  }
359
445
  @withSourceMap()
360
446
  toEmbeddedTSNormalFunction(state?: TranslatorState): string {
@@ -378,7 +464,7 @@ export class Destination extends LogicItem {
378
464
  //================================================================================
379
465
  }
380
466
 
381
- classMap['Destination'] = Destination;
467
+ classMap.Destination = Destination;
382
468
  export default Destination;
383
469
  //================================================================================
384
470
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
@@ -56,7 +56,14 @@ export class End extends LogicItem {
56
56
  // 自动生成的代码已结束。下面可以手动编写。
57
57
  //================================================================================
58
58
  toJS(state?: TranslatorState): string {
59
- return '';
59
+ let code = '';
60
+ const ret = this.logic.returns[0];
61
+ if (ret) {
62
+ code += 'return ' + ret.name + ';';
63
+ } else {
64
+ code += 'return;';
65
+ }
66
+ return code;
60
67
  }
61
68
 
62
69
  toEmbeddedTS(state?: TranslatorState): string {
@@ -177,7 +177,8 @@ export class EntityIndex extends BaseNode {
177
177
  */
178
178
  moveUp() {
179
179
  const indexes = [...(this.parentNode as Entity).indexes];
180
- const oldIndex = indexes.indexOf(this);
180
+ const indexesNameList = indexes.map((item) => item.name);
181
+ const oldIndex = indexesNameList.indexOf(this.name);
181
182
  this.changeSort(indexes, oldIndex, 'up');
182
183
  this.parentNode.update({
183
184
  indexes,
@@ -188,7 +189,8 @@ export class EntityIndex extends BaseNode {
188
189
  */
189
190
  moveDown() {
190
191
  const indexes = [...(this.parentNode as Entity).indexes];
191
- const oldIndex = indexes.indexOf(this);
192
+ const indexesNameList = indexes.map((item) => item.name);
193
+ const oldIndex = indexesNameList.indexOf(this.name);
192
194
  this.changeSort(indexes, oldIndex, 'down');
193
195
  this.parentNode.update({
194
196
  indexes,
@@ -1,5 +1,6 @@
1
1
  import { dataTypesMap } from './basics/types';
2
2
  import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState } from '../translator';
3
+ import { getNodeByNodeCallee, getNaslNodeByNodeCallee } from '../automate/engine/utils';
3
4
  type changeType = 'up' | 'down';
4
5
  //================================================================================
5
6
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
@@ -331,6 +332,54 @@ export class EntityProperty extends BaseNode {
331
332
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
332
333
  // 自动生成的代码已结束。下面可以手动编写。
333
334
  //================================================================================
335
+
336
+ get hasChildren() {
337
+ const { typeKind, typeNamespace } = this.typeAnnotation;
338
+ if (typeKind === 'reference' || typeKind === 'generic') {
339
+ if (typeNamespace.endsWith('.enums'))
340
+ return null;
341
+ return [{}];
342
+ }
343
+ return null;
344
+ }
345
+ get isTreeLeaf() {
346
+ return !this.hasChildren;
347
+ }
348
+
349
+ /**
350
+ * 是否展开
351
+ */
352
+ @property()
353
+ isLeaf: boolean = true;
354
+
355
+ getSelectRef() {
356
+ try {
357
+ const { typeName, typeKind, typeNamespace } = this.typeAnnotation;
358
+ let completionChildren;
359
+ if (typeKind === 'reference') {
360
+ if (typeNamespace === 'nasl.ui') {
361
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
362
+ const properties = node.properties || [];
363
+ completionChildren = properties;
364
+ } else if (typeNamespace.endsWith('.enums')) {
365
+ completionChildren = undefined;
366
+ } else {
367
+ const node = getNodeByNodeCallee(this.app, typeNamespace + '.' + typeName);
368
+ const properties = node.properties || [];
369
+ completionChildren = properties;
370
+ }
371
+ } else if (typeKind === 'generic') {
372
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
373
+ const properties = node.properties || [];
374
+ completionChildren = properties;
375
+ } else {
376
+ completionChildren = undefined;
377
+ }
378
+ return completionChildren;
379
+ } catch (err) {
380
+ console.log(err);
381
+ }
382
+ }
334
383
  /**
335
384
  * 设置是否必填
336
385
  */
@@ -378,8 +427,8 @@ export class EntityProperty extends BaseNode {
378
427
  code += this.typeAnnotation.toEmbeddedTS(shiftState(state, code));
379
428
  }
380
429
  if (this.defaultValue) {
381
- code += ` = ${this.defaultValue}`;
382
- } // else
430
+ code += '= ' + this.typeAnnotation.getDefaultValue(this.defaultValue);
431
+ }
383
432
  return code;
384
433
  }
385
434
  /**
@@ -399,7 +448,7 @@ export class EntityProperty extends BaseNode {
399
448
  // eslint-disable-next-line prefer-rest-params
400
449
  throw new Error('找不到类型:' + arguments[0]);
401
450
  } else {
402
- typeAnnotation._delete();
451
+ typeAnnotation._delete?.();
403
452
  const relationOptions = { parentId: this.id, parentConcept: this.concept, parentNode: this };
404
453
  Object.assign(typeAnnotation, relationOptions);
405
454
  }
@@ -439,7 +488,8 @@ export class EntityProperty extends BaseNode {
439
488
  */
440
489
  moveUp() {
441
490
  const properties = [...(this.parentNode as Entity).properties];
442
- const oldIndex = properties.indexOf(this);
491
+ const propertiesNameList = properties.map((item) => item.name);
492
+ const oldIndex = propertiesNameList.indexOf(this.name);
443
493
  this.changeSort(properties, oldIndex, 'up');
444
494
  this.parentNode.update({
445
495
  properties,
@@ -450,7 +500,8 @@ export class EntityProperty extends BaseNode {
450
500
  */
451
501
  moveDown() {
452
502
  const properties = [...(this.parentNode as Entity).properties];
453
- const oldIndex = properties.indexOf(this);
503
+ const propertiesNameList = properties.map((item) => item.name);
504
+ const oldIndex = propertiesNameList.indexOf(this.name);
454
505
  this.changeSort(properties, oldIndex, 'down');
455
506
  this.parentNode.update({
456
507
  properties,
@@ -107,19 +107,6 @@ export class Entity extends BaseNode {
107
107
  }
108
108
  return params;
109
109
  }
110
- /**
111
- * 设置实体名称
112
- */
113
- setName(name: string) {
114
- const object = {
115
- name,
116
- };
117
- this.update({
118
- ...object,
119
- field: 'name',
120
- });
121
- }
122
-
123
110
  /**
124
111
  * 设置实体描述
125
112
  */
@@ -137,7 +124,7 @@ export class Entity extends BaseNode {
137
124
  return (this.properties || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
138
125
  }
139
126
  getPropertyUniqueName(name = 'property1') {
140
- return utils.unique(name, this.getPropertyExistingNames());
127
+ return utils.unique(name, this.getPropertyExistingNames(), undefined, false);
141
128
  }
142
129
 
143
130
  /**
@@ -176,7 +163,7 @@ export class Entity extends BaseNode {
176
163
  name: options,
177
164
  }, this, 'properties');
178
165
  } else if (options instanceof EntityProperty) {
179
- options.delete(); // 同一实例不支持多处存在
166
+ options.ensureDelete(); // 同一实例不支持多处存在
180
167
  property = options;
181
168
  Object.assign(property, relationOptions);
182
169
  } else {
@@ -264,7 +251,7 @@ export class Entity extends BaseNode {
264
251
 
265
252
  addProperty(options?: string | Partial<EntityProperty> | EntityProperty) {
266
253
  const node = this._addProperty(options as any);
267
- const index = this.properties.length;
254
+ const index = this.properties.indexOf(node);
268
255
  node.create({
269
256
  index,
270
257
  parentNode: this,
@@ -279,7 +266,7 @@ export class Entity extends BaseNode {
279
266
  return (this.indexes || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
280
267
  }
281
268
  getEntityIndexUniqueName(name = 'entityIndex1') {
282
- return utils.unique(name, this.getEntityIndexExistingNames());
269
+ return utils.unique(name, this.getEntityIndexExistingNames(), undefined, false);
283
270
  }
284
271
 
285
272
  /**
@@ -318,7 +305,7 @@ export class Entity extends BaseNode {
318
305
  name: options,
319
306
  }, this, 'indexes');
320
307
  } else if (options instanceof EntityIndex) {
321
- options.delete(); // 同一实例不支持多处存在
308
+ options.ensureDelete(); // 同一实例不支持多处存在
322
309
  entityIndex = options;
323
310
  Object.assign(entityIndex, relationOptions);
324
311
  } else {
@@ -406,7 +393,7 @@ export class Entity extends BaseNode {
406
393
 
407
394
  addEntityIndex(options?: string | Partial<EntityIndex> | EntityIndex) {
408
395
  const node = this._addEntityIndex(options as any);
409
- const index = this.indexes.length;
396
+ const index = this.indexes.indexOf(node);
410
397
  node.create({
411
398
  index,
412
399
  parentNode: this,
@@ -520,6 +507,29 @@ export class Entity extends BaseNode {
520
507
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
521
508
  // 自动生成的代码已结束。下面可以手动编写。
522
509
  //================================================================================
510
+
511
+ getPropertyExistingNameList(excludedList: Array<EntityProperty> = []) {
512
+ const excludedSet = Array.from(new Set(excludedList));
513
+ const namelist = excludedSet.map((item) => item.name);
514
+ console.log(namelist);
515
+
516
+ return (this.properties || []).filter((item) => !namelist.includes(item.name)).map((item) => item.name);
517
+ }
518
+ /**
519
+ * 设置实体表名并修改表名
520
+ */
521
+ setName(name: string) {
522
+ const object: { name: string; tableName?: string } = {
523
+ name,
524
+ };
525
+ if (this.name === this.tableName && (this.origin === 'ide' || this.origin === 'sql')) {
526
+ object.tableName = name;
527
+ }
528
+ this.update({
529
+ ...object,
530
+ field: 'name',
531
+ });
532
+ }
523
533
  /**
524
534
  * 设置实体表名
525
535
  */
@@ -681,10 +691,13 @@ export class Entity extends BaseNode {
681
691
  }
682
692
 
683
693
  get ns() {
684
- const ns = entity2LogicNamespace(this);
694
+ const ns: Namespace = entity2LogicNamespace(this);
685
695
  ns.path = this.getNamespace() + '.' + ns.name;
686
696
  return ns;
687
697
  }
698
+ // @excludedInJSON()
699
+ // nslogic: Namespace;
700
+
688
701
  get logics() {
689
702
  const ns = this.ns;
690
703
  return ns.logics;
@@ -695,7 +708,11 @@ export class Entity extends BaseNode {
695
708
  code += ' @nasl.annotation.Entity()\n';
696
709
 
697
710
  const state = createCompilerState(code, { tabSize: 1 });
698
- code += this.toEmbeddedTS(state);
711
+ try {
712
+ code += this.toEmbeddedTS(state);
713
+ } catch (err) {
714
+ code += '';
715
+ }
699
716
  code += '}\n';
700
717
 
701
718
  return {
@@ -125,10 +125,6 @@ export class Enum extends BaseNode {
125
125
  });
126
126
  }
127
127
 
128
-
129
-
130
-
131
-
132
128
  /**
133
129
  * 插入枚举项
134
130
  * @internal
@@ -148,7 +144,7 @@ export class Enum extends BaseNode {
148
144
  const relationOptions = { parentNode: this, parentKey: 'enumItems' };
149
145
  let enumItem: EnumItem;
150
146
  if (options instanceof EnumItem) {
151
- options.delete(); // 同一实例不支持多处存在
147
+ options.ensureDelete(); // 同一实例不支持多处存在
152
148
  enumItem = options;
153
149
  Object.assign(enumItem, relationOptions);
154
150
  } else {
@@ -161,8 +157,6 @@ export class Enum extends BaseNode {
161
157
  return enumItem;
162
158
  }
163
159
 
164
-
165
-
166
160
  /**
167
161
  * 插入枚举项
168
162
  * @param enumItemOptions 枚举项参数
@@ -185,8 +179,6 @@ export class Enum extends BaseNode {
185
179
  return node;
186
180
  }
187
181
 
188
-
189
-
190
182
  /**
191
183
  * 添加枚举项
192
184
  * @internal
@@ -206,8 +198,6 @@ export class Enum extends BaseNode {
206
198
  return this._insertEnumItemAt(options as any, index);
207
199
  }
208
200
 
209
-
210
-
211
201
  /**
212
202
  * 添加枚举项
213
203
  * @param enumItemOptions 枚举项参数
@@ -222,7 +212,7 @@ export class Enum extends BaseNode {
222
212
 
223
213
  addEnumItem(options?: Partial<EnumItem> | EnumItem) {
224
214
  const node = this._addEnumItem(options as any);
225
- const index = this.enumItems.length;
215
+ const index = this.enumItems.indexOf(node);
226
216
  node.create({
227
217
  index,
228
218
  parentNode: this,
@@ -231,9 +221,6 @@ export class Enum extends BaseNode {
231
221
  return node;
232
222
  }
233
223
 
234
-
235
-
236
-
237
224
  /**
238
225
  * 删除枚举项
239
226
  * @param enumItem 已有的枚举项实例
@@ -241,7 +228,7 @@ export class Enum extends BaseNode {
241
228
  removeEnumItem(enumItem: EnumItem): void;
242
229
 
243
230
  removeEnumItem(options: EnumItem) {
244
- let enumItem: EnumItem = options;
231
+ const enumItem: EnumItem = options;
245
232
  return enumItem.delete();
246
233
  }
247
234
 
@@ -280,24 +267,30 @@ export class Enum extends BaseNode {
280
267
  @property()
281
268
  children: any;
282
269
 
270
+ /**
271
+ * 是否展开
272
+ */
273
+ @property()
274
+ isLeaf: boolean = true;
275
+
276
+ getEnumItemExistingNames(excludedList: Array<EnumItem> = []) {
277
+ const excludedSet = new Set(excludedList);
278
+ return (this.enumItems || []).filter((item) => !excludedSet.has(item)).map((item) => item.value);
279
+ }
280
+
283
281
  @withSourceMap()
284
282
  toEmbeddedTS(state?: TranslatorState): string {
285
- let code = `export class ${this.name} {\n`;
283
+ let code = `export class ${this.name} extends nasl.core.Enums {\n`;
286
284
  // 增加一个单独的标签
287
- code += indent(state.tabSize + 1) + `static __name: '${this.getNamespace()}.${this.name}';\n`;
288
- let enumItemStr = '';
285
+ code += indent(state.tabSize + 1) + `__name: '${this.getNamespace()}.${this.name}';\n`;
289
286
  this.enumItems.forEach((property) => {
290
287
  code += indent(state.tabSize + 1);
291
288
  code += property.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));
292
289
  code += ';\n';
293
-
294
- enumItemStr += `${property.value}: ${this.name},\n`;
295
290
  });
296
291
  code += `
297
292
  static toList() {
298
- let value: nasl.collection.List<{
299
- ${enumItemStr}
300
- }>
293
+ let value: nasl.collection.List<nasl.ui.EnumItem>
301
294
  return value;
302
295
  }
303
296
  static toString() {
@@ -330,7 +323,11 @@ export class Enum extends BaseNode {
330
323
  let code = `namespace ${this.getNamespace()} {\n`;
331
324
 
332
325
  const state = createCompilerState(code, { tabSize: 1 });
333
- code += this.toEmbeddedTS(state);
326
+ try {
327
+ code += this.toEmbeddedTS(state);
328
+ } catch (err) {
329
+ code += '';
330
+ }
334
331
  code += '}\n';
335
332
 
336
333
  return {
@@ -346,7 +343,7 @@ export class Enum extends BaseNode {
346
343
  //================================================================================
347
344
  }
348
345
 
349
- classMap['Enum'] = Enum;
346
+ classMap.Enum = Enum;
350
347
  export default Enum;
351
348
  //================================================================================
352
349
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑