@lcap/nasl 1.0.0-alpha.9 → 1.0.0

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