@lcap/nasl 1.0.0-alpha.8 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) 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 +363 -0
  12. package/out/automate/engine/utils.js.map +1 -0
  13. package/out/common/BaseNode.d.ts +20 -0
  14. package/out/common/BaseNode.js +219 -81
  15. package/out/common/BaseNode.js.map +1 -1
  16. package/out/concepts/App__.d.ts +18 -1
  17. package/out/concepts/App__.js +84 -44
  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 +190 -0
  23. package/out/concepts/Assignee__.js +264 -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 +57 -23
  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 +7 -1
  49. package/out/concepts/CallQueryComponent__.js +45 -26
  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 +14 -0
  64. package/out/concepts/Constant__.js.map +1 -1
  65. package/out/concepts/Destination__.d.ts +12 -0
  66. package/out/concepts/Destination__.js +98 -19
  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/EntityProperty__.d.ts +11 -0
  71. package/out/concepts/EntityProperty__.js +73 -5
  72. package/out/concepts/EntityProperty__.js.map +1 -1
  73. package/out/concepts/Entity__.d.ts +4 -4
  74. package/out/concepts/Entity__.js +30 -20
  75. package/out/concepts/Entity__.js.map +1 -1
  76. package/out/concepts/Enum__.d.ts +4 -0
  77. package/out/concepts/Enum__.js +18 -10
  78. package/out/concepts/Enum__.js.map +1 -1
  79. package/out/concepts/Event__.js +3 -3
  80. package/out/concepts/Event__.js.map +1 -1
  81. package/out/concepts/ForEachStatement__.d.ts +1 -1
  82. package/out/concepts/ForEachStatement__.js +11 -15
  83. package/out/concepts/ForEachStatement__.js.map +1 -1
  84. package/out/concepts/Function__.js +13 -13
  85. package/out/concepts/Function__.js.map +1 -1
  86. package/out/concepts/Identifier__.d.ts +3 -0
  87. package/out/concepts/Identifier__.js +76 -29
  88. package/out/concepts/Identifier__.js.map +1 -1
  89. package/out/concepts/IfStatement__.js +4 -4
  90. package/out/concepts/IfStatement__.js.map +1 -1
  91. package/out/concepts/InterfaceParam__.d.ts +6 -4
  92. package/out/concepts/InterfaceParam__.js +52 -19
  93. package/out/concepts/InterfaceParam__.js.map +1 -1
  94. package/out/concepts/Interface__.d.ts +42 -30
  95. package/out/concepts/Interface__.js +133 -17
  96. package/out/concepts/Interface__.js.map +1 -1
  97. package/out/concepts/JSBlock__.d.ts +1 -0
  98. package/out/concepts/JSBlock__.js +3 -0
  99. package/out/concepts/JSBlock__.js.map +1 -1
  100. package/out/concepts/LogicItem__.d.ts +2 -1
  101. package/out/concepts/LogicItem__.js +14 -0
  102. package/out/concepts/LogicItem__.js.map +1 -1
  103. package/out/concepts/Logic__.d.ts +20 -1
  104. package/out/concepts/Logic__.js +194 -37
  105. package/out/concepts/Logic__.js.map +1 -1
  106. package/out/concepts/MemberExpression__.d.ts +2 -0
  107. package/out/concepts/MemberExpression__.js +49 -13
  108. package/out/concepts/MemberExpression__.js.map +1 -1
  109. package/out/concepts/Module__.d.ts +126 -120
  110. package/out/concepts/Module__.js +36 -26
  111. package/out/concepts/Module__.js.map +1 -1
  112. package/out/concepts/Namespace__.d.ts +5 -1
  113. package/out/concepts/Namespace__.js +48 -37
  114. package/out/concepts/Namespace__.js.map +1 -1
  115. package/out/concepts/NullLiteral__.d.ts +3 -0
  116. package/out/concepts/NullLiteral__.js +11 -1
  117. package/out/concepts/NullLiteral__.js.map +1 -1
  118. package/out/concepts/NumericLiteral__.d.ts +1 -1
  119. package/out/concepts/NumericLiteral__.js +17 -6
  120. package/out/concepts/NumericLiteral__.js.map +1 -1
  121. package/out/concepts/Param__.d.ts +7 -3
  122. package/out/concepts/Param__.js +57 -28
  123. package/out/concepts/Param__.js.map +1 -1
  124. package/out/concepts/ProcessComponent__.js +6 -6
  125. package/out/concepts/ProcessComponent__.js.map +1 -1
  126. package/out/concepts/ProcessElement__.d.ts +0 -4
  127. package/out/concepts/ProcessElement__.js +117 -54
  128. package/out/concepts/ProcessElement__.js.map +1 -1
  129. package/out/concepts/ProcessOutcome__.js +1 -1
  130. package/out/concepts/ProcessOutcome__.js.map +1 -1
  131. package/out/concepts/Process__.d.ts +7 -1
  132. package/out/concepts/Process__.js +81 -85
  133. package/out/concepts/Process__.js.map +1 -1
  134. package/out/concepts/QueryAggregateExpression__.js +1 -1
  135. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  136. package/out/concepts/QueryFromExpression__.js +2 -2
  137. package/out/concepts/QueryFromExpression__.js.map +1 -1
  138. package/out/concepts/QueryJoinExpression__.js +5 -5
  139. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  140. package/out/concepts/QueryLimitExpression__.js +2 -2
  141. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  142. package/out/concepts/QuerySelectExpression__.js +3 -3
  143. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  144. package/out/concepts/Return__.d.ts +4 -1
  145. package/out/concepts/Return__.js +67 -21
  146. package/out/concepts/Return__.js.map +1 -1
  147. package/out/concepts/Role__.d.ts +4 -0
  148. package/out/concepts/Role__.js +13 -4
  149. package/out/concepts/Role__.js.map +1 -1
  150. package/out/concepts/SqlQueryComponent__.js +2 -2
  151. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  152. package/out/concepts/StringLiteral__.d.ts +1 -1
  153. package/out/concepts/StringLiteral__.js +21 -31
  154. package/out/concepts/StringLiteral__.js.map +1 -1
  155. package/out/concepts/StructureProperty__.d.ts +5 -4
  156. package/out/concepts/StructureProperty__.js +55 -26
  157. package/out/concepts/StructureProperty__.js.map +1 -1
  158. package/out/concepts/Structure__.d.ts +44 -30
  159. package/out/concepts/Structure__.js +44 -12
  160. package/out/concepts/Structure__.js.map +1 -1
  161. package/out/concepts/SwitchCase__.js +4 -4
  162. package/out/concepts/SwitchCase__.js.map +1 -1
  163. package/out/concepts/SwitchStatement__.js +2 -2
  164. package/out/concepts/SwitchStatement__.js.map +1 -1
  165. package/out/concepts/TypeAnnotation__.d.ts +5 -5
  166. package/out/concepts/TypeAnnotation__.js +74 -20
  167. package/out/concepts/TypeAnnotation__.js.map +1 -1
  168. package/out/concepts/UnaryExpression__.js +10 -8
  169. package/out/concepts/UnaryExpression__.js.map +1 -1
  170. package/out/concepts/Unparsed__.js +1 -1
  171. package/out/concepts/Unparsed__.js.map +1 -1
  172. package/out/concepts/ValidationRule__.d.ts +1 -0
  173. package/out/concepts/ValidationRule__.js +48 -13
  174. package/out/concepts/ValidationRule__.js.map +1 -1
  175. package/out/concepts/Variable__.d.ts +10 -1
  176. package/out/concepts/Variable__.js +70 -18
  177. package/out/concepts/Variable__.js.map +1 -1
  178. package/out/concepts/ViewComponent__.js +15 -15
  179. package/out/concepts/ViewComponent__.js.map +1 -1
  180. package/out/concepts/ViewElement__.d.ts +17 -11
  181. package/out/concepts/ViewElement__.js +302 -204
  182. package/out/concepts/ViewElement__.js.map +1 -1
  183. package/out/concepts/View__.d.ts +12 -11
  184. package/out/concepts/View__.js +109 -98
  185. package/out/concepts/View__.js.map +1 -1
  186. package/out/concepts/WhileStatement__.js +3 -3
  187. package/out/concepts/WhileStatement__.js.map +1 -1
  188. package/out/concepts/basics/stdlib/index.js +4 -1
  189. package/out/concepts/basics/stdlib/index.js.map +1 -1
  190. package/out/concepts/basics/stdlib/{nasl.validate.d.ts → nasl.auth.d.ts} +0 -0
  191. package/out/concepts/basics/stdlib/nasl.auth.js +30 -0
  192. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -0
  193. package/out/concepts/basics/stdlib/nasl.browser copy.d.ts +3 -0
  194. package/out/concepts/basics/stdlib/nasl.browser copy.js +70 -0
  195. package/out/concepts/basics/stdlib/nasl.browser copy.js.map +1 -0
  196. package/out/concepts/basics/stdlib/nasl.browser.d.ts +3 -0
  197. package/out/concepts/basics/stdlib/nasl.browser.js +41 -0
  198. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -0
  199. package/out/concepts/basics/stdlib/nasl.configuration.d.ts +3 -0
  200. package/out/concepts/basics/stdlib/nasl.configuration.js +25 -0
  201. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -0
  202. package/out/concepts/basics/stdlib/nasl.ui.js +20 -0
  203. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  204. package/out/concepts/basics/stdlib/nasl.util.js +149 -13
  205. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  206. package/out/concepts/basics/stdlib/nasl.validation.js +54 -20
  207. package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
  208. package/out/concepts/basics/types/coreTypeList.js +11 -10
  209. package/out/concepts/basics/types/coreTypeList.js.map +1 -1
  210. package/out/concepts/index__.d.ts +1 -0
  211. package/out/concepts/index__.js +1 -0
  212. package/out/concepts/index__.js.map +1 -1
  213. package/out/config.d.ts +1 -2
  214. package/out/config.js +1 -2
  215. package/out/config.js.map +1 -1
  216. package/out/enums/KEYWORDS.d.ts +3 -0
  217. package/out/enums/KEYWORDS.js +1206 -0
  218. package/out/enums/KEYWORDS.js.map +1 -0
  219. package/out/enums/LEVEL_NAME_MAP.d.ts +26 -0
  220. package/out/enums/LEVEL_NAME_MAP.js +30 -0
  221. package/out/enums/LEVEL_NAME_MAP.js.map +1 -0
  222. package/out/eventBus.d.ts +3 -0
  223. package/out/eventBus.js +7 -0
  224. package/out/eventBus.js.map +1 -0
  225. package/out/generator/genBundleFiles.d.ts +7 -2
  226. package/out/generator/genBundleFiles.js +168 -27
  227. package/out/generator/genBundleFiles.js.map +1 -1
  228. package/out/generator/genMetaData.d.ts +20 -20
  229. package/out/generator/genMetaData.js +50 -15
  230. package/out/generator/genMetaData.js.map +1 -1
  231. package/out/index.d.ts +2 -0
  232. package/out/index.js +2 -0
  233. package/out/index.js.map +1 -1
  234. package/out/manager/diagnostic.d.ts +1 -1
  235. package/out/server/createUiTs.d.ts +1 -0
  236. package/out/server/createUiTs.js +49 -5
  237. package/out/server/createUiTs.js.map +1 -1
  238. package/out/server/entity2LogicNamespace.js +38 -23
  239. package/out/server/entity2LogicNamespace.js.map +1 -1
  240. package/out/server/getExtensionModules.js +2 -0
  241. package/out/server/getExtensionModules.js.map +1 -1
  242. package/out/server/getFunctions.d.ts +1 -0
  243. package/out/server/getFunctions.js +7 -1
  244. package/out/server/getFunctions.js.map +1 -1
  245. package/out/server/getLogics.js +63 -18
  246. package/out/server/getLogics.js.map +1 -1
  247. package/out/server/getMemberIdentifier.d.ts +16 -1
  248. package/out/server/getMemberIdentifier.js +279 -36
  249. package/out/server/getMemberIdentifier.js.map +1 -1
  250. package/out/server/getProcesses.d.ts +6 -1
  251. package/out/server/getProcesses.js +243 -1
  252. package/out/server/getProcesses.js.map +1 -1
  253. package/out/server/getScope.d.ts +12 -0
  254. package/out/server/getScope.js +57 -0
  255. package/out/server/getScope.js.map +1 -0
  256. package/out/server/index.js +4 -0
  257. package/out/server/index.js.map +1 -1
  258. package/out/server/naslServer.d.ts +30 -53
  259. package/out/server/naslServer.js +721 -381
  260. package/out/server/naslServer.js.map +1 -1
  261. package/out/server/process2LogicNamespace.d.ts +10 -0
  262. package/out/server/process2LogicNamespace.js +29 -1
  263. package/out/server/process2LogicNamespace.js.map +1 -1
  264. package/out/server/translator.d.ts +22 -3
  265. package/out/server/translator.js +367 -123
  266. package/out/server/translator.js.map +1 -1
  267. package/out/service/creator/add.configs.d.ts +1 -0
  268. package/out/service/creator/add.configs.js +68 -0
  269. package/out/service/creator/add.configs.js.map +1 -0
  270. package/out/service/creator/errHandles.d.ts +18 -0
  271. package/out/service/creator/errHandles.js +60 -0
  272. package/out/service/creator/errHandles.js.map +1 -0
  273. package/out/service/creator/index.d.ts +1 -0
  274. package/out/service/creator/index.js +72 -0
  275. package/out/service/creator/index.js.map +1 -0
  276. package/out/service/storage/api.d.ts +18 -0
  277. package/out/service/storage/api.js +17 -0
  278. package/out/service/storage/api.js.map +1 -0
  279. package/out/service/storage/init.js +213 -37
  280. package/out/service/storage/init.js.map +1 -1
  281. package/out/service/storage/service.d.ts +2 -0
  282. package/out/service/storage/service.js +10 -0
  283. package/out/service/storage/service.js.map +1 -0
  284. package/out/service/storage/storagePoint.d.ts +1 -14
  285. package/out/service/storage/storagePoint.js +16 -16
  286. package/out/service/storage/storagePoint.js.map +1 -1
  287. package/out/templator/genCreateBlock.js +6 -6
  288. package/out/templator/genCreateBlock.js.map +1 -1
  289. package/out/templator/genCurdEditMultipleKeyBlock.js +13 -17
  290. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  291. package/out/templator/genCurdMultipleKeyBlock.js +11 -11
  292. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  293. package/out/templator/genEditTableBlock.js +5 -5
  294. package/out/templator/genEditTableBlock.js.map +1 -1
  295. package/out/templator/genEnumSelectBlock.js +2 -2
  296. package/out/templator/genEnumSelectBlock.js.map +1 -1
  297. package/out/templator/genGetBlock.js +5 -3
  298. package/out/templator/genGetBlock.js.map +1 -1
  299. package/out/templator/genGridViewBlock.d.ts +3 -1
  300. package/out/templator/genGridViewBlock.js +61 -6
  301. package/out/templator/genGridViewBlock.js.map +1 -1
  302. package/out/templator/genQueryComponent.d.ts +2 -0
  303. package/out/templator/genQueryComponent.js +27 -14
  304. package/out/templator/genQueryComponent.js.map +1 -1
  305. package/out/templator/genTableBlock.d.ts +1 -1
  306. package/out/templator/genTableBlock.js +4 -5
  307. package/out/templator/genTableBlock.js.map +1 -1
  308. package/out/templator/genUpdateBlock.js +9 -10
  309. package/out/templator/genUpdateBlock.js.map +1 -1
  310. package/out/templator/utils.d.ts +13 -4
  311. package/out/templator/utils.js +8 -4
  312. package/out/templator/utils.js.map +1 -1
  313. package/out/test/fixtures/env.js +0 -1
  314. package/out/test/fixtures/env.js.map +1 -1
  315. package/out/test/integration/connect-file copy.d.ts +1 -0
  316. package/out/test/integration/connect-file copy.js +50 -0
  317. package/out/test/integration/connect-file copy.js.map +1 -0
  318. package/out/test/integration/node-nasl-server.d.ts +1 -0
  319. package/out/test/integration/node-nasl-server.js +41 -0
  320. package/out/test/integration/node-nasl-server.js.map +1 -0
  321. package/out/test/units/page/Element.spec.js +3 -3
  322. package/out/test/units/page/Element.spec.js.map +1 -1
  323. package/out/test/units/temp/temp.spec.js +1 -1
  324. package/out/test/units/temp/temp.spec.js.map +1 -1
  325. package/out/utils/index.d.ts +6 -0
  326. package/out/utils/index.js +25 -1
  327. package/out/utils/index.js.map +1 -1
  328. package/out/utils/string.d.ts +1 -1
  329. package/out/utils/string.js +38 -9
  330. package/out/utils/string.js.map +1 -1
  331. package/package.json +2 -1
  332. package/src/automate/engine/index.js +97 -118
  333. package/src/automate/engine/operators.js +63 -0
  334. package/src/automate/engine/uniqueName.js +36 -0
  335. package/src/automate/engine/utils.js +49 -19
  336. package/src/common/BaseNode.ts +223 -87
  337. package/src/concepts/App__.ts +86 -46
  338. package/src/concepts/Argument__.ts +23 -3
  339. package/src/concepts/Assignee__.ts +437 -0
  340. package/src/concepts/Assignment__.ts +4 -1
  341. package/src/concepts/BinaryExpression__.ts +9 -7
  342. package/src/concepts/BindAttribute__.ts +69 -9
  343. package/src/concepts/BindDirective__.ts +22 -3
  344. package/src/concepts/BindEvent__.ts +67 -23
  345. package/src/concepts/BooleanLiteral__.ts +8 -0
  346. package/src/concepts/CallFunction__.ts +58 -25
  347. package/src/concepts/CallInterface__.ts +236 -26
  348. package/src/concepts/CallLogic__.ts +111 -52
  349. package/src/concepts/CallQueryComponent__.ts +36 -21
  350. package/src/concepts/Comment__.ts +6 -2
  351. package/src/concepts/CompletionProperty__.ts +5 -1
  352. package/src/concepts/ConfigGroup__.ts +3 -3
  353. package/src/concepts/ConfigProperty__.ts +3 -3
  354. package/src/concepts/Configuration__.ts +3 -3
  355. package/src/concepts/Constant__.ts +12 -0
  356. package/src/concepts/Destination__.ts +106 -18
  357. package/src/concepts/End__.ts +8 -1
  358. package/src/concepts/EntityProperty__.ts +69 -5
  359. package/src/concepts/Entity__.ts +33 -28
  360. package/src/concepts/Enum__.ts +16 -11
  361. package/src/concepts/Event__.ts +3 -3
  362. package/src/concepts/ForEachStatement__.ts +16 -21
  363. package/src/concepts/Function__.ts +13 -13
  364. package/src/concepts/Identifier__.ts +82 -32
  365. package/src/concepts/IfStatement__.ts +4 -4
  366. package/src/concepts/InterfaceParam__.ts +49 -27
  367. package/src/concepts/Interface__.ts +130 -16
  368. package/src/concepts/JSBlock__.ts +4 -0
  369. package/src/concepts/LogicItem__.ts +16 -1
  370. package/src/concepts/Logic__.ts +201 -39
  371. package/src/concepts/MemberExpression__.ts +58 -15
  372. package/src/concepts/Module__.ts +35 -24
  373. package/src/concepts/Namespace__.ts +49 -37
  374. package/src/concepts/NullLiteral__.ts +8 -1
  375. package/src/concepts/NumericLiteral__.ts +17 -6
  376. package/src/concepts/Param__.ts +54 -28
  377. package/src/concepts/ProcessComponent__.ts +6 -6
  378. package/src/concepts/ProcessElement__.ts +143 -44
  379. package/src/concepts/ProcessOutcome__.ts +1 -1
  380. package/src/concepts/Process__.ts +85 -98
  381. package/src/concepts/QueryAggregateExpression__.ts +1 -1
  382. package/src/concepts/QueryFromExpression__.ts +2 -2
  383. package/src/concepts/QueryJoinExpression__.ts +5 -5
  384. package/src/concepts/QueryLimitExpression__.ts +2 -2
  385. package/src/concepts/QuerySelectExpression__.ts +3 -3
  386. package/src/concepts/Return__.ts +60 -29
  387. package/src/concepts/Role__.ts +11 -4
  388. package/src/concepts/SqlQueryComponent__.ts +2 -2
  389. package/src/concepts/StringLiteral__.ts +20 -31
  390. package/src/concepts/StructureProperty__.ts +50 -33
  391. package/src/concepts/Structure__.ts +32 -10
  392. package/src/concepts/SwitchCase__.ts +4 -4
  393. package/src/concepts/SwitchStatement__.ts +2 -2
  394. package/src/concepts/TypeAnnotation__.ts +59 -16
  395. package/src/concepts/UnaryExpression__.ts +10 -8
  396. package/src/concepts/Unparsed__.ts +1 -1
  397. package/src/concepts/ValidationRule__.ts +44 -14
  398. package/src/concepts/Variable__.ts +67 -25
  399. package/src/concepts/ViewComponent__.ts +15 -15
  400. package/src/concepts/ViewElement__.ts +380 -264
  401. package/src/concepts/View__.ts +139 -94
  402. package/src/concepts/WhileStatement__.ts +4 -4
  403. package/src/concepts/basics/stdlib/index.ts +4 -2
  404. package/src/concepts/basics/stdlib/nasl.auth.ts +26 -0
  405. package/src/concepts/basics/stdlib/nasl.browser.ts +37 -0
  406. package/src/concepts/basics/stdlib/nasl.configuration.ts +21 -0
  407. package/src/concepts/basics/stdlib/nasl.ui.ts +20 -1
  408. package/src/concepts/basics/stdlib/nasl.util.ts +151 -13
  409. package/src/concepts/basics/stdlib/nasl.validation.ts +45 -11
  410. package/src/concepts/basics/types/coreTypeList.ts +11 -10
  411. package/src/concepts/index__.ts +1 -0
  412. package/src/config.ts +1 -2
  413. package/src/enums/KEYWORDS.ts +1204 -0
  414. package/src/{terms → enums}/LEVEL_NAME_MAP.ts +0 -0
  415. package/src/eventBus.ts +5 -0
  416. package/src/generator/genBundleFiles.ts +182 -30
  417. package/src/generator/genMetaData.ts +72 -21
  418. package/src/index.ts +2 -0
  419. package/src/manager/diagnostic.ts +1 -1
  420. package/src/server/createUiTs.ts +50 -8
  421. package/src/server/entity2LogicNamespace.ts +41 -25
  422. package/src/server/getExtensionModules.ts +2 -0
  423. package/src/server/getFunctions.ts +6 -0
  424. package/src/server/getLogics.ts +66 -19
  425. package/src/server/getMemberIdentifier.ts +275 -46
  426. package/src/server/getProcesses.ts +248 -4
  427. package/src/server/getScope.ts +62 -0
  428. package/src/server/index.ts +12 -1
  429. package/src/server/naslServer.ts +715 -398
  430. package/src/server/process2LogicNamespace.ts +30 -2
  431. package/src/server/translator.ts +423 -128
  432. package/src/service/config/index.js +1 -1
  433. package/src/service/creator/errHandles.js +5 -2
  434. package/src/service/creator/index.js +0 -6
  435. package/src/service/storage/api.js +14 -0
  436. package/src/service/storage/init.ts +217 -47
  437. package/src/service/storage/service.ts +6 -0
  438. package/src/service/storage/storagePoint.ts +16 -16
  439. package/src/templator/genCreateBlock.ts +6 -6
  440. package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -30
  441. package/src/templator/genCurdMultipleKeyBlock.ts +11 -11
  442. package/src/templator/genEditTableBlock.ts +5 -5
  443. package/src/templator/genEnumSelectBlock.ts +2 -2
  444. package/src/templator/genGetBlock.ts +6 -8
  445. package/src/templator/genGridViewBlock.ts +59 -9
  446. package/src/templator/genQueryComponent.ts +39 -28
  447. package/src/templator/genTableBlock.ts +5 -9
  448. package/src/templator/genUpdateBlock.ts +9 -11
  449. package/src/templator/utils.ts +9 -6
  450. package/src/test/fixtures/env.ts +0 -2
  451. package/src/test/units/page/Element.spec.ts +3 -3
  452. package/src/test/units/temp/temp.spec.ts +1 -1
  453. package/src/utils/index.ts +24 -0
  454. package/src/utils/string.ts +39 -9
  455. package/out/concepts/basics/stdlib/nasl.validate.js +0 -527
  456. package/out/concepts/basics/stdlib/nasl.validate.js.map +0 -1
  457. package/out/data/Module.d.ts +0 -34
  458. package/out/data/Module.js +0 -53
  459. package/out/data/Module.js.map +0 -1
  460. 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
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -113,7 +115,7 @@ export class Destination extends LogicItem {
113
115
  const relationOptions = { parentNode: this, parentKey: 'arguments' };
114
116
  let argument: Argument;
115
117
  if (options instanceof Argument) {
116
- options.delete(); // 同一实例不支持多处存在
118
+ options.ensureDelete(); // 同一实例不支持多处存在
117
119
  argument = options;
118
120
  Object.assign(argument, relationOptions);
119
121
  } else {
@@ -187,7 +189,7 @@ export class Destination extends LogicItem {
187
189
 
188
190
  addArgument(options?: Partial<Argument> | Argument) {
189
191
  const node = this._addArgument(options as any);
190
- const index = this.arguments.length;
192
+ const index = this.arguments.indexOf(node);
191
193
  node.create({
192
194
  index,
193
195
  parentNode: this,
@@ -248,8 +250,24 @@ export class Destination extends LogicItem {
248
250
  return '';
249
251
  }
250
252
 
253
+ get tsName() {
254
+ if (this.viewName) {
255
+ let tsName = this.viewName;
256
+ // 匹配所有特殊字符都转为_
257
+ tsName = tsName.replace(/\W/g, '_');
258
+ if (/^\d/.test(tsName)) {
259
+ tsName = '$' + tsName;
260
+ }
261
+ return tsName;
262
+ }
263
+ return '';
264
+ }
251
265
  genViewArr() {
252
- const viewArr = this.viewNamespace?.split('.').splice(1).filter((item, index) => index % 2 === 1) || [];
266
+ const viewArr
267
+ = this.viewNamespace
268
+ ?.split('.')
269
+ .splice(1)
270
+ .filter((item, index) => index % 2 === 1) || [];
253
271
  if (this.viewName) {
254
272
  viewArr.push(this.viewName);
255
273
  }
@@ -260,10 +278,10 @@ export class Destination extends LogicItem {
260
278
  let url = '';
261
279
  const viewArr = this.genViewArr();
262
280
  if (Array.isArray(viewArr) && viewArr.length) {
263
- url += ':href="`';
281
+ url += ':destination="`';
264
282
  url += `/${viewArr.join('/')}`;
265
283
  if (Array.isArray(this.arguments) && this.arguments.length) {
266
- const args = this.arguments.map((arg) => `${arg.keyword}=` + '${' + `${arg.toVue()}` + '}');
284
+ const args = this.arguments?.map((arg) => `${arg?.keyword}=` + `${arg?.toVue(options) === '' ? '' : '${' + arg?.toVue(options) + '}'}`);
267
285
  url += `?${args.join('&')}`;
268
286
  }
269
287
  url += '`"';
@@ -278,7 +296,7 @@ export class Destination extends LogicItem {
278
296
  url += '`';
279
297
  url += `/${viewArr.join('/')}`;
280
298
  if (Array.isArray(this.arguments) && this.arguments.length) {
281
- const args = this.arguments.map((arg) => `${arg.keyword}=` + '${' + `${arg.toUI()}` + '}');
299
+ const args = this.arguments?.map((arg) => `${arg?.keyword}=` + '${' + `${arg?.toUI()}` + '}');
282
300
  url += `?${args.join('&')}`;
283
301
  }
284
302
  url += '`';
@@ -323,6 +341,38 @@ export class Destination extends LogicItem {
323
341
  });
324
342
  }
325
343
 
344
+ /**
345
+ * 设置view的argument
346
+ */
347
+ setViewArgument(view: View) {
348
+ const params = view.params;
349
+ const argument = this.arguments;
350
+ if (params.length > argument.length) {
351
+ params.forEach((item) => {
352
+ const arg = argument.find((arg) => arg.keyword === item.name);
353
+ if (!arg) {
354
+ this.addArgument({
355
+ keyword: item.name,
356
+ });
357
+ }
358
+ });
359
+ } else {
360
+ argument.forEach((item) => {
361
+ const param = params.find((param) => param.name === item.keyword);
362
+ if (!param) {
363
+ item.delete();
364
+ }
365
+ });
366
+ }
367
+ }
368
+ /**
369
+ * 设置Arguments的KeyWord
370
+ */
371
+ setArgumentsKeyWord(options: { findArgument: Argument; newKeyword: string }) {
372
+ const { findArgument, newKeyword } = options;
373
+ findArgument.setKeyword(newKeyword);
374
+ }
375
+
326
376
  get viewPath() {
327
377
  if (!this.viewNamespace) {
328
378
  return '';
@@ -338,23 +388,61 @@ export class Destination extends LogicItem {
338
388
  }
339
389
  return `${viewNameAttr.join('/')}/`;
340
390
  }
341
-
342
391
  @withSourceMap()
343
- toEmbeddedTS(state?: TranslatorState): string {
344
- let code = `${utils.firstLowerCase(this.concept)}: () => {\n`;
345
- code += indent(state.tabSize + 2);
392
+ toEmbeddedTSInProcess(state: TranslatorState, prependCode: string): string {
393
+ // const tab = indent(state.tabSize);
346
394
  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
- });
395
+ let code = `destination: function() {\n`;
396
+ code += prependCode;
397
+ code += '\n';
398
+ if (this.tsCalleeNamespace && this.viewName) {
399
+ code += `${this.tsCalleeNamespace}.${this.viewName}.$destination({`;
400
+ if (Array.isArray(this.arguments)) {
401
+ this.arguments.forEach((argument: Argument) => {
402
+ code += argument.toEmbeddedTS(shiftState(state, code), false, true) + ', ';
403
+ });
404
+ }
405
+ code += `});\n`;
352
406
  }
353
- code += `);\n`;
407
+ code += indent(state.tabSize + 1) + `}\n`;
408
+ return code;
409
+ } else {
410
+ return '__IDENTIFIER__';
354
411
  }
412
+ }
355
413
 
356
- code += indent(state.tabSize + 1) + `},\n`;
357
- return code;
414
+ @withSourceMap()
415
+ toEmbeddedTS(state?: TranslatorState): string {
416
+ let code = '';
417
+
418
+ if (this.parentNode instanceof BindAttribute) {
419
+ code = `${utils.firstLowerCase(this.concept)}: () => {\n`;
420
+ code += indent(state.tabSize + 2);
421
+ if (this.tsCalleeNamespace && this.tsName) {
422
+ code += `${this.tsCalleeNamespace}.${this.tsName}.$destination({`;
423
+ if (Array.isArray(this.arguments)) {
424
+ this.arguments.forEach((argument: Argument) => {
425
+ code += argument.toEmbeddedTS(shiftState(state, code), false, true) + ', ';
426
+ });
427
+ }
428
+ code += `});\n`;
429
+ }
430
+ code += indent(state.tabSize + 1) + `},\n`;
431
+ return code;
432
+ } else {
433
+ if (this.tsCalleeNamespace && this.tsName) {
434
+ code += `${this.tsCalleeNamespace}.${this.tsName}.$destination({`;
435
+ if (Array.isArray(this.arguments)) {
436
+ this.arguments.forEach((argument: Argument) => {
437
+ code += argument.toEmbeddedTS(shiftState(state, code), false, true) + ', ';
438
+ });
439
+ }
440
+ code += `});\n`;
441
+ } else {
442
+ code += '__IDENTIFIER__';
443
+ }
444
+ return code;
445
+ }
358
446
  }
359
447
  @withSourceMap()
360
448
  toEmbeddedTSNormalFunction(state?: TranslatorState): string {
@@ -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 {
@@ -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,67 @@ 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
+ if (typeNamespace === 'nasl.collection') {
373
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
374
+ const properties = node.properties || [];
375
+ completionChildren = properties;
376
+ }
377
+ } else {
378
+ completionChildren = undefined;
379
+ }
380
+ return completionChildren;
381
+ } catch (err) {
382
+ console.log(err);
383
+ }
384
+ }
385
+ /**
386
+ * 设置是否必填
387
+ */
388
+ setSequence(sequence: string) {
389
+ const object = {
390
+ sequence,
391
+ };
392
+ this.update({
393
+ ...object,
394
+ });
395
+ }
334
396
  /**
335
397
  * 设置是否必填
336
398
  */
@@ -367,8 +429,8 @@ export class EntityProperty extends BaseNode {
367
429
  code += this.typeAnnotation.toEmbeddedTS(shiftState(state, code));
368
430
  }
369
431
  if (this.defaultValue) {
370
- code += ` = ${this.defaultValue}`;
371
- } // else
432
+ code += '= ' + this.typeAnnotation.getDefaultValue(this.defaultValue);
433
+ }
372
434
  return code;
373
435
  }
374
436
  /**
@@ -388,7 +450,7 @@ export class EntityProperty extends BaseNode {
388
450
  // eslint-disable-next-line prefer-rest-params
389
451
  throw new Error('找不到类型:' + arguments[0]);
390
452
  } else {
391
- typeAnnotation._delete();
453
+ typeAnnotation._delete?.();
392
454
  const relationOptions = { parentId: this.id, parentConcept: this.concept, parentNode: this };
393
455
  Object.assign(typeAnnotation, relationOptions);
394
456
  }
@@ -428,7 +490,8 @@ export class EntityProperty extends BaseNode {
428
490
  */
429
491
  moveUp() {
430
492
  const properties = [...(this.parentNode as Entity).properties];
431
- const oldIndex = properties.indexOf(this);
493
+ const propertiesNameList = properties.map((item) => item.name);
494
+ const oldIndex = propertiesNameList.indexOf(this.name);
432
495
  this.changeSort(properties, oldIndex, 'up');
433
496
  this.parentNode.update({
434
497
  properties,
@@ -439,7 +502,8 @@ export class EntityProperty extends BaseNode {
439
502
  */
440
503
  moveDown() {
441
504
  const properties = [...(this.parentNode as Entity).properties];
442
- const oldIndex = properties.indexOf(this);
505
+ const propertiesNameList = properties.map((item) => item.name);
506
+ const oldIndex = propertiesNameList.indexOf(this.name);
443
507
  this.changeSort(properties, oldIndex, 'down');
444
508
  this.parentNode.update({
445
509
  properties,
@@ -107,18 +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
110
 
123
111
  /**
124
112
  * 设置实体描述
@@ -132,12 +120,12 @@ export class Entity extends BaseNode {
132
120
  });
133
121
  }
134
122
 
135
- getPropertyExistingNames(excludedList: Array<EntityProperty> = []) {
123
+ getPropertyExistingNames(excludedList: Array<EntityProperty> = []) {
136
124
  const excludedSet = new Set(excludedList);
137
125
  return (this.properties || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
138
126
  }
139
127
  getPropertyUniqueName(name = 'property1') {
140
- return utils.unique(name, this.getPropertyExistingNames());
128
+ return utils.unique(name, this.getPropertyExistingNames(), undefined, false);
141
129
  }
142
130
 
143
131
  /**
@@ -176,7 +164,7 @@ export class Entity extends BaseNode {
176
164
  name: options,
177
165
  }, this, 'properties');
178
166
  } else if (options instanceof EntityProperty) {
179
- options.delete(); // 同一实例不支持多处存在
167
+ options.ensureDelete(); // 同一实例不支持多处存在
180
168
  property = options;
181
169
  Object.assign(property, relationOptions);
182
170
  } else {
@@ -264,7 +252,7 @@ export class Entity extends BaseNode {
264
252
 
265
253
  addProperty(options?: string | Partial<EntityProperty> | EntityProperty) {
266
254
  const node = this._addProperty(options as any);
267
- const index = this.properties.length;
255
+ const index = this.properties.indexOf(node);
268
256
  node.create({
269
257
  index,
270
258
  parentNode: this,
@@ -273,13 +261,12 @@ export class Entity extends BaseNode {
273
261
  return node;
274
262
  }
275
263
 
276
-
277
264
  getEntityIndexExistingNames(excludedList: Array<EntityIndex> = []) {
278
265
  const excludedSet = new Set(excludedList);
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,
@@ -415,9 +402,6 @@ export class Entity extends BaseNode {
415
402
  return node;
416
403
  }
417
404
 
418
-
419
-
420
-
421
405
  /**
422
406
  * 删除实体字段
423
407
  * @param name 实体字段名称
@@ -466,8 +450,6 @@ export class Entity extends BaseNode {
466
450
  return params;
467
451
  }
468
452
 
469
-
470
-
471
453
  /**
472
454
  * 删除实体索引
473
455
  * @param name 实体索引名称
@@ -520,6 +502,22 @@ export class Entity extends BaseNode {
520
502
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
521
503
  // 自动生成的代码已结束。下面可以手动编写。
522
504
  //================================================================================
505
+
506
+ /**
507
+ * 设置实体表名并修改表名
508
+ */
509
+ setName(name: string) {
510
+ const object: { name: string; tableName?: string } = {
511
+ name,
512
+ };
513
+ if (this.name === this.tableName && (this.origin === 'ide' || this.origin === 'sql')) {
514
+ object.tableName = name;
515
+ }
516
+ this.update({
517
+ ...object,
518
+ field: 'name',
519
+ });
520
+ }
523
521
  /**
524
522
  * 设置实体表名
525
523
  */
@@ -681,10 +679,13 @@ export class Entity extends BaseNode {
681
679
  }
682
680
 
683
681
  get ns() {
684
- const ns = entity2LogicNamespace(this);
682
+ const ns: Namespace = entity2LogicNamespace(this);
685
683
  ns.path = this.getNamespace() + '.' + ns.name;
686
684
  return ns;
687
685
  }
686
+ // @excludedInJSON()
687
+ // nslogic: Namespace;
688
+
688
689
  get logics() {
689
690
  const ns = this.ns;
690
691
  return ns.logics;
@@ -695,7 +696,11 @@ export class Entity extends BaseNode {
695
696
  code += ' @nasl.annotation.Entity()\n';
696
697
 
697
698
  const state = createCompilerState(code, { tabSize: 1 });
698
- code += this.toEmbeddedTS(state);
699
+ try {
700
+ code += this.toEmbeddedTS(state);
701
+ } catch (err) {
702
+ code += '';
703
+ }
699
704
  code += '}\n';
700
705
 
701
706
  return {
@@ -711,7 +716,7 @@ export class Entity extends BaseNode {
711
716
  //================================================================================
712
717
  }
713
718
 
714
- classMap['Entity'] = Entity;
719
+ classMap.Entity = Entity;
715
720
  export default Entity;
716
721
  //================================================================================
717
722
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
@@ -148,7 +148,7 @@ export class Enum extends BaseNode {
148
148
  const relationOptions = { parentNode: this, parentKey: 'enumItems' };
149
149
  let enumItem: EnumItem;
150
150
  if (options instanceof EnumItem) {
151
- options.delete(); // 同一实例不支持多处存在
151
+ options.ensureDelete(); // 同一实例不支持多处存在
152
152
  enumItem = options;
153
153
  Object.assign(enumItem, relationOptions);
154
154
  } else {
@@ -222,7 +222,7 @@ export class Enum extends BaseNode {
222
222
 
223
223
  addEnumItem(options?: Partial<EnumItem> | EnumItem) {
224
224
  const node = this._addEnumItem(options as any);
225
- const index = this.enumItems.length;
225
+ const index = this.enumItems.indexOf(node);
226
226
  node.create({
227
227
  index,
228
228
  parentNode: this,
@@ -280,24 +280,25 @@ export class Enum extends BaseNode {
280
280
  @property()
281
281
  children: any;
282
282
 
283
+ /**
284
+ * 是否展开
285
+ */
286
+ @property()
287
+ isLeaf: boolean = true;
288
+
283
289
  @withSourceMap()
284
290
  toEmbeddedTS(state?: TranslatorState): string {
285
- let code = `export class ${this.name} {\n`;
291
+ let code = `export class ${this.name} extends nasl.core.Enums {\n`;
286
292
  // 增加一个单独的标签
287
- code += indent(state.tabSize + 1) + `static __name: '${this.getNamespace()}.${this.name}';\n`;
288
- let enumItemStr = '';
293
+ code += indent(state.tabSize + 1) + `__name: '${this.getNamespace()}.${this.name}';\n`;
289
294
  this.enumItems.forEach((property) => {
290
295
  code += indent(state.tabSize + 1);
291
296
  code += property.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));
292
297
  code += ';\n';
293
-
294
- enumItemStr += `${property.value}: ${this.name},\n`;
295
298
  });
296
299
  code += `
297
300
  static toList() {
298
- let value: nasl.collection.List<{
299
- ${enumItemStr}
300
- }>
301
+ let value: nasl.collection.List<nasl.ui.EnumItem>
301
302
  return value;
302
303
  }
303
304
  static toString() {
@@ -330,7 +331,11 @@ export class Enum extends BaseNode {
330
331
  let code = `namespace ${this.getNamespace()} {\n`;
331
332
 
332
333
  const state = createCompilerState(code, { tabSize: 1 });
333
- code += this.toEmbeddedTS(state);
334
+ try {
335
+ code += this.toEmbeddedTS(state);
336
+ } catch (err) {
337
+ code += '';
338
+ }
334
339
  code += '}\n';
335
340
 
336
341
  return {
@@ -111,7 +111,7 @@ export class Event extends BaseNode {
111
111
  return (this.params || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
112
112
  }
113
113
  getParamUniqueName(name = 'param1') {
114
- return utils.unique(name, this.getParamExistingNames());
114
+ return utils.unique(name, this.getParamExistingNames(), undefined, false);
115
115
  }
116
116
 
117
117
  /**
@@ -150,7 +150,7 @@ export class Event extends BaseNode {
150
150
  name: options,
151
151
  }, this, 'params');
152
152
  } else if (options instanceof Param) {
153
- options.delete(); // 同一实例不支持多处存在
153
+ options.ensureDelete(); // 同一实例不支持多处存在
154
154
  param = options;
155
155
  Object.assign(param, relationOptions);
156
156
  } else {
@@ -238,7 +238,7 @@ export class Event extends BaseNode {
238
238
 
239
239
  addParam(options?: string | Partial<Param> | Param) {
240
240
  const node = this._addParam(options as any);
241
- const index = this.params.length;
241
+ const index = this.params.indexOf(node);
242
242
  node.create({
243
243
  index,
244
244
  parentNode: this,
@@ -1,5 +1,6 @@
1
1
  import { TranslatorState, shiftState, withSourceMap, indent } from '../translator';
2
2
  import TypeAnnotation from './TypeAnnotation__';
3
+ import Identifier from './Identifier__';
3
4
 
4
5
  //================================================================================
5
6
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
@@ -16,9 +17,9 @@ import LogicItem from './LogicItem__';
16
17
  import Param from './Param__';
17
18
 
18
19
  /**
19
- * For 循环分支
20
+ * ForEach 循环分支
20
21
  */
21
- @concept('For 循环分支')
22
+ @concept('ForEach 循环分支')
22
23
  export class ForEachStatement extends LogicItem {
23
24
  /**
24
25
  * 产品概念
@@ -176,7 +177,7 @@ export class ForEachStatement extends LogicItem {
176
177
  const relationOptions = { parentNode: this, parentKey: 'body' };
177
178
  let logicItem: LogicItem;
178
179
  if (options instanceof LogicItem) {
179
- options.delete(); // 同一实例不支持多处存在
180
+ options.ensureDelete(); // 同一实例不支持多处存在
180
181
  logicItem = options;
181
182
  Object.assign(logicItem, relationOptions);
182
183
  } else {
@@ -250,7 +251,7 @@ export class ForEachStatement extends LogicItem {
250
251
 
251
252
  addItem(options?: Partial<LogicItem> | LogicItem) {
252
253
  const node = this._addItem(options as any);
253
- const index = this.body.length;
254
+ const index = this.body.indexOf(node);
254
255
  node.create({
255
256
  index,
256
257
  parentNode: this,
@@ -463,8 +464,8 @@ export class ForEachStatement extends LogicItem {
463
464
  const itemNames = [];
464
465
  const idxNames = [];
465
466
  let n = this.parentNode;
466
- while(n && n.concept !== 'Logic') {
467
- if(n instanceof ForEachStatement){
467
+ while (n && n.concept !== 'Logic') {
468
+ if (n instanceof ForEachStatement) {
468
469
  itemNames.push(n.item.name);
469
470
  idxNames.push(n.index.name);
470
471
  }
@@ -472,15 +473,14 @@ export class ForEachStatement extends LogicItem {
472
473
  }
473
474
  const uniqueItemName = utils.unique('item', itemNames);
474
475
  const uniqueIdxName = utils.unique('index', idxNames);
475
- if(this.item.name !== uniqueItemName) {
476
+ if (this.item.name !== uniqueItemName) {
476
477
  this.item.setName(uniqueItemName);
477
478
  }
478
- if(this.index.name !== uniqueIdxName) {
479
+ if (this.index.name !== uniqueIdxName) {
479
480
  this.index.setName(uniqueIdxName);
480
481
  }
481
482
  }
482
483
 
483
-
484
484
  public static getDefaultOptions() {
485
485
  return {
486
486
  label: 'ForEach 循环分支',
@@ -509,18 +509,13 @@ export class ForEachStatement extends LogicItem {
509
509
 
510
510
  toJS(state?: TranslatorState): string {
511
511
  let code = '';
512
- code += this.each ? this.each.toJS(shiftState(state, code, {
512
+ const list = this.each ? this.each.toJS(shiftState(state, code, {
513
513
  tabSize: 0,
514
514
  })) : '';
515
- code += '.slice(';
516
- code += this.start && this.start.toJS() ? this.start.toJS() : '';
517
- code += ', ';
518
- code += this.end && this.end.toJS() ? this.end.toJS() : '';
519
- code += ').forEach((';
520
- code += this.item.name ? `${this.item.name}` : '';
521
- code += ', ';
522
- code += this.index.name ? `${this.index.name}` : '';
523
- code += ') => {\n';
515
+ code += `if(Array.isArray(${list})) {\n`;
516
+ code += `for (let ${this.index.name} = ${this.start && this.start.toJS() ? this.start.toJS() : ''}; `;
517
+ code += `${this.index.name} < (${this.end && this.end.toJS() ? this.end.toJS() : ''}); ${this.index.name}++) {\n`;
518
+ code += `const ${this.item.name} = ${list}[${this.index.name}];\n`;
524
519
  if (Array.isArray(this.body)) {
525
520
  this.body.forEach((logicItem) => {
526
521
  code
@@ -529,8 +524,8 @@ export class ForEachStatement extends LogicItem {
529
524
  })) + '\n';
530
525
  });
531
526
  }
532
- code += '})\n';
533
-
527
+ code += '}\n';
528
+ code += '}\n';
534
529
  return code;
535
530
  }
536
531