@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
@@ -35,8 +35,6 @@ export class QueryLimitExpression extends LogicItem {
35
35
  @property('LogicItem')
36
36
  pageSizeElement: LogicItem = undefined;
37
37
 
38
-
39
-
40
38
  /**
41
39
  * @param source 需要合并的部分参数
42
40
  */
@@ -50,7 +48,6 @@ export class QueryLimitExpression extends LogicItem {
50
48
  return super.from(source, parentNode, parentKey) as QueryLimitExpression;
51
49
  }
52
50
 
53
-
54
51
  /**
55
52
  * 设置逻辑项
56
53
  */
@@ -81,10 +78,6 @@ export class QueryLimitExpression extends LogicItem {
81
78
  });
82
79
  }
83
80
 
84
-
85
-
86
-
87
-
88
81
  /**
89
82
  * 删除逻辑项
90
83
  * @param name 逻辑项名称
@@ -110,8 +103,6 @@ export class QueryLimitExpression extends LogicItem {
110
103
  return pageElement.delete();
111
104
  }
112
105
 
113
-
114
-
115
106
  /**
116
107
  * 删除逻辑项
117
108
  * @param name 逻辑项名称
@@ -168,8 +159,8 @@ export class QueryLimitExpression extends LogicItem {
168
159
  @withSourceMap()
169
160
  toEmbeddedTS(state?: TranslatorState): string {
170
161
  const { pageElement, pageSizeElement } = this;
171
- let code = '';
172
- code += `[${pageElement.toEmbeddedTS(shiftState(state, code))}, `;
162
+ let code = '[';
163
+ code += `${pageElement.toEmbeddedTS(shiftState(state, code))}, `;
173
164
  code += `${pageSizeElement.toEmbeddedTS(shiftState(state, code))}]`;
174
165
  return code;
175
166
  }
@@ -180,7 +171,7 @@ export class QueryLimitExpression extends LogicItem {
180
171
  //================================================================================
181
172
  }
182
173
 
183
- classMap['QueryLimitExpression'] = QueryLimitExpression;
174
+ classMap.QueryLimitExpression = QueryLimitExpression;
184
175
  export default QueryLimitExpression;
185
176
  //================================================================================
186
177
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
@@ -113,7 +113,7 @@ export class QuerySelectExpression extends LogicItem {
113
113
  name: options,
114
114
  }, this, 'selectElements');
115
115
  } else if (options instanceof QueryAggregateExpression) {
116
- options.delete(); // 同一实例不支持多处存在
116
+ options.ensureDelete(); // 同一实例不支持多处存在
117
117
  queryAggregateExpression = options;
118
118
  Object.assign(queryAggregateExpression, relationOptions);
119
119
  } else {
@@ -201,7 +201,7 @@ export class QuerySelectExpression extends LogicItem {
201
201
 
202
202
  addQueryAggregateExpression(options?: string | Partial<QueryAggregateExpression> | QueryAggregateExpression) {
203
203
  const node = this._addQueryAggregateExpression(options as any);
204
- const index = this.selectElements.length;
204
+ const index = this.selectElements.indexOf(node);
205
205
  node.create({
206
206
  index,
207
207
  parentNode: this,
@@ -5,7 +5,7 @@ import Entity from './Entity__';
5
5
  import EntityProperty from './EntityProperty__';
6
6
  import Structure from './Structure__';
7
7
  import StructureProperty from './StructureProperty__';
8
- import { getNodeByNodeCallee } from '@nasl/automate/engine/utils';
8
+ import { getNodeByNodeCallee, getNaslNodeByNodeCallee } from '../automate/engine/utils';
9
9
 
10
10
  //================================================================================
11
11
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
@@ -234,13 +234,26 @@ export class Return extends BaseNode {
234
234
 
235
235
  @withSourceMap()
236
236
  toEmbeddedTS(state?: TranslatorState): string {
237
- let code = this.name;
237
+ let code = this.name || '__return';
238
238
  if (this.typeAnnotation) {
239
239
  code += ': ';
240
240
  code += this.typeAnnotation.toEmbeddedTS(shiftState(state, code));
241
241
  }
242
+ // if (this.defaultValue) {
243
+ // code += ` = ${this.defaultValue}`;
244
+ // }
245
+ return code;
246
+ }
247
+
248
+ @withSourceMap()
249
+ toEmbeddedTSInProcess(state?: TranslatorState): string {
250
+ let code = this.name;
251
+ if (this.typeAnnotation) {
252
+ code += ': undefined as ';
253
+ code += this.typeAnnotation.toEmbeddedTS(shiftState(state, code));
254
+ }
242
255
  if (this.defaultValue) {
243
- code += ` = ${this.defaultValue}`;
256
+ code += `: ${this.defaultValue}`;
244
257
  }
245
258
  return code;
246
259
  }
@@ -265,12 +278,17 @@ export class Return extends BaseNode {
265
278
  if (!typeAnnotation)
266
279
  throw new Error('找不到类型:' + typeAnnotation);
267
280
  } else {
268
- typeAnnotation._delete();
281
+ typeAnnotation._delete?.();
269
282
  const relationOptions = { parentId: this.id, parentConcept: this.concept, parentNode: this };
270
283
  Object.assign(typeAnnotation, relationOptions);
271
284
  }
272
285
  // 处理下拉属性
273
- this.completionChildren = this.getSelectRef();
286
+ try {
287
+ this.completionChildren = this.getSelectRef();
288
+ } catch (err) {
289
+ this.completionChildren = [];
290
+ console.log(err);
291
+ }
274
292
  const object = {
275
293
  typeAnnotation,
276
294
  };
@@ -297,18 +315,47 @@ export class Return extends BaseNode {
297
315
  get readonly() {
298
316
  return !!this.module;
299
317
  }
300
-
318
+ get hasChildren() {
319
+ const { typeKind, typeNamespace } = this.typeAnnotation;
320
+ if (typeKind === 'reference' || typeKind === 'generic') {
321
+ if (typeNamespace.endsWith('.enums'))
322
+ return null;
323
+ return [{}];
324
+ }
325
+ return null;
326
+ }
327
+ get isTreeLeaf() {
328
+ return !this.hasChildren;
329
+ }
301
330
  getSelectRef() {
302
- const { typeName, typeKind, typeNamespace } = this.typeAnnotation;
303
- let completionChildren;
304
- if (typeKind === 'reference') {
305
- const node = getNodeByNodeCallee(this.app, typeNamespace + '.' + typeName);
306
- const properties = node.properties || [];
307
- completionChildren = properties;
308
- } else {
309
- completionChildren = undefined;
331
+ try {
332
+ const { typeName, typeKind, typeNamespace } = this.typeAnnotation;
333
+ let completionChildren;
334
+ if (typeKind === 'reference') {
335
+ if (typeNamespace === 'nasl.ui') {
336
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
337
+ const properties = node.properties || [];
338
+ completionChildren = properties;
339
+ } else if (typeNamespace.endsWith('.enums')) {
340
+ completionChildren = undefined;
341
+ } else {
342
+ const node = getNodeByNodeCallee(this.app, typeNamespace + '.' + typeName);
343
+ const properties = node.properties || [];
344
+ completionChildren = properties;
345
+ }
346
+ } else if (typeKind === 'generic') {
347
+ if (typeNamespace === 'nasl.collection') {
348
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
349
+ const properties = node.properties || [];
350
+ completionChildren = properties;
351
+ }
352
+ } else {
353
+ completionChildren = undefined;
354
+ }
355
+ return completionChildren;
356
+ } catch (err) {
357
+ console.log(err);
310
358
  }
311
- return completionChildren;
312
359
  }
313
360
  //================================================================================
314
361
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
@@ -111,9 +111,6 @@ export class Role extends BaseNode {
111
111
 
112
112
  get tsName() {
113
113
  let tsName = this.name;
114
- if (/^\d/.test(tsName)) {
115
- tsName = '$' + tsName;
116
- }
117
114
  // 匹配所有特殊字符都转为_
118
115
  tsName = tsName.replace(/[^\u4e00-\u9fa5a-zA-Z0-9]/g, '_');
119
116
  return tsName;
@@ -138,7 +135,11 @@ export class Role extends BaseNode {
138
135
  let code = `namespace ${this.getNamespace()} {\n`;
139
136
 
140
137
  const state = createCompilerState(code, { tabSize: 1 });
141
- code += this.toEmbeddedTS(state);
138
+ try {
139
+ code += this.toEmbeddedTS(state);
140
+ } catch (err) {
141
+ code += '';
142
+ }
142
143
  code += '}\n';
143
144
 
144
145
  return {
@@ -128,8 +128,8 @@ export class SqlQueryComponent extends LogicItem {
128
128
  //================================================================================
129
129
  @withSourceMap()
130
130
  toEmbeddedTS(state?: TranslatorState): string {
131
- let code = `(function(): nasl.collection.PageOf<`
132
- code +=`${this.typeAnnotation ? this.typeAnnotation.toEmbeddedTS(shiftState(state, code)): 'unknown'}> {\n`;
131
+ let code = `(function(): nasl.collection.List<`
132
+ code +=`${this.typeAnnotation ? this.typeAnnotation.toEmbeddedTS(shiftState(state, code)): '__IDENTIFIER__'}> {\n`;
133
133
  code += '\n';
134
134
  code += indent(state.tabSize + 1) + 'return;\n';
135
135
  code += indent(state.tabSize) + '})();\n';
@@ -58,53 +58,42 @@ export class StringLiteral extends LogicItem {
58
58
  //================================================================================
59
59
  toVue(options?: ElementToVueOptions): string {
60
60
  let code = '';
61
- if (this.value) {
62
- if (!this.value.includes("'"))
63
- code += `'${this.value}'`;
64
- else if (!this.value.includes('"'))
65
- code += `"${this.value}"`;
66
- else if (!this.value.includes('`'))
67
- code += `\`${this.value}\``;
68
- else
69
- code += `'${this.value.replace(/'/g, "\\'")}'`;
61
+ if (typeof this.value === 'string') {
62
+ code = `'${this.value}'`;
63
+ if (options?.finalCode !== false) {
64
+ code = `'${this.value.replace(/['"`\\]/g, (m) => {
65
+ const escape = '\\\\';
66
+ if (m === '\\') {
67
+ return `${escape}${escape}`;
68
+ } else {
69
+ return `${escape}${m}`;
70
+ }
71
+ })}'`;
72
+ }
70
73
  }
71
74
  return code;
72
75
  }
73
76
 
74
77
  toUI(): string {
75
78
  let code = '';
76
- if (this.value) {
77
- if (!this.value.includes("'"))
78
- code += `'${this.value}'`;
79
- else if (!this.value.includes('"'))
80
- code += `"${this.value}"`;
81
- else if (!this.value.includes('`'))
82
- code += `\`${this.value}\``;
83
- else
84
- code += `'${this.value.replace(/'/g, "\\'")}'`;
79
+ if (typeof this.value === 'string') {
80
+ code = `'${this.value}'`;
85
81
  }
86
82
  return code;
87
83
  }
88
84
 
89
85
  toJS(): string {
90
- let code = '';
91
- if (this.value) {
92
- if (!this.value.includes("'"))
93
- code += `'${this.value}'`;
94
- else if (!this.value.includes('"'))
95
- code += `"${this.value}"`;
96
- else if (!this.value.includes('`'))
97
- code += `\`${this.value}\``;
98
- else
99
- code += `'${this.value.replace(/'/g, "\\'")}'`;
86
+ let code = ``;
87
+ if (typeof this.value === 'string') {
88
+ code += `'${this.value.replace(/['"`\\]/g, (m) => `\\${m}`)}'`;
100
89
  }
101
90
  return code;
102
91
  }
103
92
 
104
93
  @withSourceMap()
105
- toEmbeddedTS(state?: TranslatorState): string {
94
+ toEmbeddedTS(state?: TranslatorState, isRequired?: boolean): string {
106
95
  let code = '';
107
- if (this.value) {
96
+ if (typeof this.value === 'string') {
108
97
  if (!this.value.includes("'"))
109
98
  code += `'${this.value}'`;
110
99
  else if (!this.value.includes('"'))
@@ -114,7 +103,7 @@ export class StringLiteral extends LogicItem {
114
103
  else
115
104
  code += `'${this.value.replace(/'/g, "\\'")}'`;
116
105
  } else {
117
- code += '__IDENTIFIER__';
106
+ code += isRequired ? '__IDENTIFIER__' : `''`;
118
107
  }
119
108
  return code;
120
109
  }
@@ -2,7 +2,7 @@ import { dataTypesMap } from './basics/types';
2
2
  import { TranslatorState, shiftState, withSourceMap, indent, createCompilerState } from '../translator';
3
3
  import EntityProperty from './EntityProperty__';
4
4
  import Entity from './Entity__';
5
- import { getNodeByNodeCallee } from '@nasl/automate/engine/utils';
5
+ import { getNodeByNodeCallee, getNaslNodeByNodeCallee } from '../automate/engine/utils';
6
6
 
7
7
  //================================================================================
8
8
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
@@ -227,10 +227,55 @@ export class StructureProperty extends BaseNode {
227
227
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
228
228
  // 自动生成的代码已结束。下面可以手动编写。
229
229
  //================================================================================
230
+
231
+ get hasChildren() {
232
+ const { typeKind, typeNamespace } = this.typeAnnotation;
233
+ if (typeKind === 'reference' || typeKind === 'generic') {
234
+ if (typeNamespace.endsWith('.enums'))
235
+ return null;
236
+ return [{}];
237
+ }
238
+ return null;
239
+ }
240
+ get isTreeLeaf() {
241
+ return !this.hasChildren;
242
+ }
230
243
  /**
231
- * 自动补全的字段列表
244
+ * 是否展开
232
245
  */
233
- completionChildren: Array<EntityProperty | StructureProperty> = undefined;
246
+ @property()
247
+ isLeaf: boolean = true;
248
+
249
+ getSelectRef() {
250
+ try {
251
+ const { typeName, typeKind, typeNamespace } = this.typeAnnotation;
252
+ let completionChildren;
253
+ if (typeKind === 'reference') {
254
+ if (typeNamespace === 'nasl.ui') {
255
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
256
+ const properties = node.properties || [];
257
+ completionChildren = properties;
258
+ } else if (typeNamespace.endsWith('.enums')) {
259
+ completionChildren = undefined;
260
+ } else {
261
+ const node = getNodeByNodeCallee(this.app, typeNamespace + '.' + typeName);
262
+ const properties = node.properties || [];
263
+ completionChildren = properties;
264
+ }
265
+ } else if (typeKind === 'generic') {
266
+ if (typeNamespace === 'nasl.collection') {
267
+ const node = getNaslNodeByNodeCallee(typeNamespace, typeName);
268
+ const properties = node.properties || [];
269
+ completionChildren = properties;
270
+ }
271
+ } else {
272
+ completionChildren = undefined;
273
+ }
274
+ return completionChildren;
275
+ } catch (err) {
276
+ console.log(err);
277
+ }
278
+ }
234
279
 
235
280
  @withSourceMap()
236
281
  toEmbeddedTS(state?: TranslatorState): string {
@@ -262,7 +307,7 @@ export class StructureProperty extends BaseNode {
262
307
  // eslint-disable-next-line prefer-rest-params
263
308
  throw new Error('找不到类型:' + arguments[0]);
264
309
  } else {
265
- typeAnnotation._delete();
310
+ typeAnnotation._delete?.();
266
311
  const relationOptions = { parentId: this.id, parentConcept: this.concept, parentNode: this };
267
312
  Object.assign(typeAnnotation, relationOptions);
268
313
  }
@@ -291,20 +336,7 @@ export class StructureProperty extends BaseNode {
291
336
  * 是否可编辑
292
337
  * */
293
338
  get readonly() {
294
- return !!this.module;
295
- }
296
-
297
- getSelectRef() {
298
- const { typeName, typeKind, typeNamespace } = this.typeAnnotation;
299
- let completionChildren;
300
- if (typeKind === 'reference') {
301
- const node = getNodeByNodeCallee(this.app, typeNamespace + '.' + typeName);
302
- const properties = node.properties || [];
303
- completionChildren = properties;
304
- } else {
305
- completionChildren = undefined;
306
- }
307
- return completionChildren;
339
+ return !!this.module || (this.parentNode as Structure).origin === 'CallQueryComponent';
308
340
  }
309
341
 
310
342
  //================================================================================
@@ -39,6 +39,12 @@ export class Structure extends BaseNode {
39
39
  @property()
40
40
  description: string = undefined;
41
41
 
42
+ /**
43
+ * 数据结构来源
44
+ */
45
+ @property()
46
+ origin: 'CallQueryComponent' = undefined;
47
+
42
48
  /**
43
49
  * 编译器信息
44
50
  */
@@ -163,7 +169,7 @@ export class Structure extends BaseNode {
163
169
  name: options,
164
170
  }, this, 'typeParams');
165
171
  } else if (options instanceof TypeParam) {
166
- options.delete(); // 同一实例不支持多处存在
172
+ options.ensureDelete(); // 同一实例不支持多处存在
167
173
  typeParam = options;
168
174
  Object.assign(typeParam, relationOptions);
169
175
  } else {
@@ -251,7 +257,7 @@ export class Structure extends BaseNode {
251
257
 
252
258
  addTypeParam(options?: string | Partial<TypeParam> | TypeParam) {
253
259
  const node = this._addTypeParam(options as any);
254
- const index = this.typeParams.length;
260
+ const index = this.typeParams.indexOf(node);
255
261
  node.create({
256
262
  index,
257
263
  parentNode: this,
@@ -305,7 +311,7 @@ export class Structure extends BaseNode {
305
311
  name: options,
306
312
  }, this, 'properties');
307
313
  } else if (options instanceof StructureProperty) {
308
- options.delete(); // 同一实例不支持多处存在
314
+ options.ensureDelete(); // 同一实例不支持多处存在
309
315
  property = options;
310
316
  Object.assign(property, relationOptions);
311
317
  } else {
@@ -393,7 +399,7 @@ export class Structure extends BaseNode {
393
399
 
394
400
  addProperty(options?: string | Partial<StructureProperty> | StructureProperty) {
395
401
  const node = this._addProperty(options as any);
396
- const index = this.properties.length;
402
+ const index = this.properties.indexOf(node);
397
403
  node.create({
398
404
  index,
399
405
  parentNode: this,
@@ -512,7 +518,7 @@ export class Structure extends BaseNode {
512
518
  * 是否可编辑
513
519
  * */
514
520
  get readonly() {
515
- return !!this.module;
521
+ return !!this.module || this.origin === 'CallQueryComponent';
516
522
  }
517
523
  /* 删除空数据模块 */
518
524
  deleteLogincAndModule() {
@@ -526,7 +532,7 @@ export class Structure extends BaseNode {
526
532
  toEmbeddedTS(state?: TranslatorState): string {
527
533
  let code = `export class ${this.tsName} {\n`;
528
534
  code += indent(state.tabSize + 1);
529
- code += `__name: '${this.getNamespace()}.${this.tsName}';\n`;
535
+ code += `__name: '${this.getTsNamespace()}.${this.tsName}';\n`;
530
536
  this.properties.forEach((property) => {
531
537
  code += indent(state.tabSize + 1);
532
538
  code += property.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }));
@@ -544,6 +550,18 @@ export class Structure extends BaseNode {
544
550
  throw new Error('无法获取命名空间,请设置 parentNode!');
545
551
  }
546
552
 
553
+ getTsNamespace() {
554
+ if (this.parentNode.concept === 'App') {
555
+ return `${(this.parentNode as Namespace).getNamespace()}.structures`;
556
+ } else {
557
+ if (this.parentNode && (this.parentNode as Namespace).getTsNamespace) {
558
+ return `${(this.parentNode as Namespace).getTsNamespace()}.structures`;
559
+ } else {
560
+ throw new Error('无法获取命名空间,请设置 parentNode!');
561
+ }
562
+ }
563
+ }
564
+
547
565
  /**
548
566
  * 生成宿主语言的文件路径
549
567
  * @param name 一般不用传,用于 rename
@@ -554,10 +572,14 @@ export class Structure extends BaseNode {
554
572
  }
555
573
 
556
574
  toEmbeddedTSFile() {
557
- let code = `namespace ${this.getNamespace()} {\n`;
575
+ let code = `namespace ${this.getTsNamespace()} {\n`;
558
576
 
559
577
  const state = createCompilerState(code, { tabSize: 1 });
560
- code += this.toEmbeddedTS(state);
578
+ try {
579
+ code += this.toEmbeddedTS(state);
580
+ } catch (err) {
581
+ code += '';
582
+ }
561
583
  code += '}\n';
562
584
 
563
585
  return {
@@ -89,7 +89,7 @@ export class SwitchCase extends LogicItem {
89
89
  const relationOptions = { parentNode: this, parentKey: 'consequent' };
90
90
  let logicItem: LogicItem;
91
91
  if (options instanceof LogicItem) {
92
- options.delete(); // 同一实例不支持多处存在
92
+ options.ensureDelete(); // 同一实例不支持多处存在
93
93
  logicItem = options;
94
94
  Object.assign(logicItem, relationOptions);
95
95
  } else {
@@ -163,7 +163,7 @@ export class SwitchCase extends LogicItem {
163
163
 
164
164
  addItem(options?: Partial<LogicItem> | LogicItem) {
165
165
  const node = this._addItem(options as any);
166
- const index = this.consequent.length;
166
+ const index = this.consequent.indexOf(node);
167
167
  node.create({
168
168
  index,
169
169
  parentNode: this,
@@ -249,7 +249,7 @@ export class SwitchCase extends LogicItem {
249
249
  tabSize: 0,
250
250
  })) : '';
251
251
 
252
- code += ')) {\n';
252
+ code += ') {\n';
253
253
 
254
254
  if (Array.isArray(this.consequent)) {
255
255
  this.consequent.forEach((logicItem) => {
@@ -277,7 +277,7 @@ export class SwitchCase extends LogicItem {
277
277
 
278
278
  @withSourceMap()
279
279
  toEmbeddedTS(state?: TranslatorState, isLast?: boolean): string {
280
- let code = '';
280
+ let code = '\n';
281
281
  if (!isLast) {
282
282
  code += 'if (nasl.core.ensureBoolean(';
283
283
  code += this.test ? this.test.toEmbeddedTS(shiftState(state, code, {
@@ -72,7 +72,7 @@ export class SwitchStatement extends LogicItem {
72
72
  const relationOptions = { parentNode: this, parentKey: 'cases' };
73
73
  let switchCase: SwitchCase;
74
74
  if (options instanceof SwitchCase) {
75
- options.delete(); // 同一实例不支持多处存在
75
+ options.ensureDelete(); // 同一实例不支持多处存在
76
76
  switchCase = options;
77
77
  Object.assign(switchCase, relationOptions);
78
78
  } else {
@@ -146,7 +146,7 @@ export class SwitchStatement extends LogicItem {
146
146
 
147
147
  addSwitchCase(options?: Partial<SwitchCase> | SwitchCase) {
148
148
  const node = this._addSwitchCase(options as any);
149
- const index = this.cases.length - 1;
149
+ const index = this.cases.indexOf(node);
150
150
  node.create({
151
151
  index,
152
152
  parentNode: this,