@lcap/nasl 1.0.0-alpha.9 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (481) hide show
  1. package/out/automate/engine/index.d.ts +3 -0
  2. package/out/automate/engine/index.js +414 -0
  3. package/out/automate/engine/index.js.map +1 -0
  4. package/out/automate/engine/operators.d.ts +13 -0
  5. package/out/automate/engine/operators.js +63 -0
  6. package/out/automate/engine/operators.js.map +1 -0
  7. package/out/automate/engine/uniqueName.d.ts +6 -0
  8. package/out/automate/engine/uniqueName.js +39 -0
  9. package/out/automate/engine/uniqueName.js.map +1 -0
  10. package/out/automate/engine/utils.d.ts +24 -0
  11. package/out/automate/engine/utils.js +379 -0
  12. package/out/automate/engine/utils.js.map +1 -0
  13. package/out/common/BaseNode.d.ts +21 -1
  14. package/out/common/BaseNode.js +232 -84
  15. package/out/common/BaseNode.js.map +1 -1
  16. package/out/concepts/App__.d.ts +19 -1
  17. package/out/concepts/App__.js +88 -45
  18. package/out/concepts/App__.js.map +1 -1
  19. package/out/concepts/Argument__.d.ts +5 -1
  20. package/out/concepts/Argument__.js +21 -3
  21. package/out/concepts/Argument__.js.map +1 -1
  22. package/out/concepts/Assignee__.d.ts +201 -0
  23. package/out/concepts/Assignee__.js +298 -0
  24. package/out/concepts/Assignee__.js.map +1 -0
  25. package/out/concepts/Assignment__.js +5 -0
  26. package/out/concepts/Assignment__.js.map +1 -1
  27. package/out/concepts/BinaryExpression__.js +8 -7
  28. package/out/concepts/BinaryExpression__.js.map +1 -1
  29. package/out/concepts/BindAttribute__.d.ts +19 -0
  30. package/out/concepts/BindAttribute__.js +55 -10
  31. package/out/concepts/BindAttribute__.js.map +1 -1
  32. package/out/concepts/BindDirective__.js +23 -3
  33. package/out/concepts/BindDirective__.js.map +1 -1
  34. package/out/concepts/BindEvent__.d.ts +2 -2
  35. package/out/concepts/BindEvent__.js +67 -34
  36. package/out/concepts/BindEvent__.js.map +1 -1
  37. package/out/concepts/BooleanLiteral__.d.ts +2 -0
  38. package/out/concepts/BooleanLiteral__.js +10 -0
  39. package/out/concepts/BooleanLiteral__.js.map +1 -1
  40. package/out/concepts/CallFunction__.js +58 -25
  41. package/out/concepts/CallFunction__.js.map +1 -1
  42. package/out/concepts/CallInterface__.d.ts +5 -0
  43. package/out/concepts/CallInterface__.js +238 -31
  44. package/out/concepts/CallInterface__.js.map +1 -1
  45. package/out/concepts/CallLogic__.d.ts +4 -4
  46. package/out/concepts/CallLogic__.js +107 -50
  47. package/out/concepts/CallLogic__.js.map +1 -1
  48. package/out/concepts/CallQueryComponent__.d.ts +38 -3
  49. package/out/concepts/CallQueryComponent__.js +329 -75
  50. package/out/concepts/CallQueryComponent__.js.map +1 -1
  51. package/out/concepts/Comment__.js +6 -2
  52. package/out/concepts/Comment__.js.map +1 -1
  53. package/out/concepts/CompletionProperty__.d.ts +3 -1
  54. package/out/concepts/CompletionProperty__.js +2 -0
  55. package/out/concepts/CompletionProperty__.js.map +1 -1
  56. package/out/concepts/ConfigGroup__.js +3 -3
  57. package/out/concepts/ConfigGroup__.js.map +1 -1
  58. package/out/concepts/ConfigProperty__.js +3 -3
  59. package/out/concepts/ConfigProperty__.js.map +1 -1
  60. package/out/concepts/Configuration__.js +3 -3
  61. package/out/concepts/Configuration__.js.map +1 -1
  62. package/out/concepts/Constant__.d.ts +1 -0
  63. package/out/concepts/Constant__.js +16 -2
  64. package/out/concepts/Constant__.js.map +1 -1
  65. package/out/concepts/Destination__.d.ts +12 -0
  66. package/out/concepts/Destination__.js +115 -22
  67. package/out/concepts/Destination__.js.map +1 -1
  68. package/out/concepts/End__.js +9 -1
  69. package/out/concepts/End__.js.map +1 -1
  70. package/out/concepts/EntityIndex__.js +4 -2
  71. package/out/concepts/EntityIndex__.js.map +1 -1
  72. package/out/concepts/EntityProperty__.d.ts +11 -0
  73. package/out/concepts/EntityProperty__.js +71 -5
  74. package/out/concepts/EntityProperty__.js.map +1 -1
  75. package/out/concepts/Entity__.d.ts +5 -4
  76. package/out/concepts/Entity__.js +35 -19
  77. package/out/concepts/Entity__.js.map +1 -1
  78. package/out/concepts/Enum__.d.ts +5 -0
  79. package/out/concepts/Enum__.js +24 -12
  80. package/out/concepts/Enum__.js.map +1 -1
  81. package/out/concepts/Event__.js +3 -3
  82. package/out/concepts/Event__.js.map +1 -1
  83. package/out/concepts/ForEachStatement__.d.ts +1 -1
  84. package/out/concepts/ForEachStatement__.js +11 -15
  85. package/out/concepts/ForEachStatement__.js.map +1 -1
  86. package/out/concepts/Function__.js +13 -13
  87. package/out/concepts/Function__.js.map +1 -1
  88. package/out/concepts/Identifier__.d.ts +3 -0
  89. package/out/concepts/Identifier__.js +77 -30
  90. package/out/concepts/Identifier__.js.map +1 -1
  91. package/out/concepts/IfStatement__.js +4 -4
  92. package/out/concepts/IfStatement__.js.map +1 -1
  93. package/out/concepts/InterfaceParam__.d.ts +6 -4
  94. package/out/concepts/InterfaceParam__.js +57 -19
  95. package/out/concepts/InterfaceParam__.js.map +1 -1
  96. package/out/concepts/Interface__.d.ts +42 -30
  97. package/out/concepts/Interface__.js +133 -17
  98. package/out/concepts/Interface__.js.map +1 -1
  99. package/out/concepts/JSBlock__.d.ts +1 -0
  100. package/out/concepts/JSBlock__.js +3 -0
  101. package/out/concepts/JSBlock__.js.map +1 -1
  102. package/out/concepts/LogicItem__.d.ts +2 -1
  103. package/out/concepts/LogicItem__.js +14 -0
  104. package/out/concepts/LogicItem__.js.map +1 -1
  105. package/out/concepts/Logic__.d.ts +20 -1
  106. package/out/concepts/Logic__.js +194 -37
  107. package/out/concepts/Logic__.js.map +1 -1
  108. package/out/concepts/MemberExpression__.d.ts +2 -0
  109. package/out/concepts/MemberExpression__.js +49 -13
  110. package/out/concepts/MemberExpression__.js.map +1 -1
  111. package/out/concepts/Module__.d.ts +126 -120
  112. package/out/concepts/Module__.js +36 -26
  113. package/out/concepts/Module__.js.map +1 -1
  114. package/out/concepts/Namespace__.d.ts +5 -1
  115. package/out/concepts/Namespace__.js +48 -37
  116. package/out/concepts/Namespace__.js.map +1 -1
  117. package/out/concepts/NullLiteral__.d.ts +3 -0
  118. package/out/concepts/NullLiteral__.js +11 -1
  119. package/out/concepts/NullLiteral__.js.map +1 -1
  120. package/out/concepts/NumericLiteral__.d.ts +1 -1
  121. package/out/concepts/NumericLiteral__.js +17 -6
  122. package/out/concepts/NumericLiteral__.js.map +1 -1
  123. package/out/concepts/Param__.d.ts +7 -3
  124. package/out/concepts/Param__.js +64 -28
  125. package/out/concepts/Param__.js.map +1 -1
  126. package/out/concepts/ProcessComponent__.js +6 -6
  127. package/out/concepts/ProcessComponent__.js.map +1 -1
  128. package/out/concepts/ProcessElement__.d.ts +0 -4
  129. package/out/concepts/ProcessElement__.js +123 -54
  130. package/out/concepts/ProcessElement__.js.map +1 -1
  131. package/out/concepts/ProcessOutcome__.js +1 -1
  132. package/out/concepts/ProcessOutcome__.js.map +1 -1
  133. package/out/concepts/Process__.d.ts +7 -1
  134. package/out/concepts/Process__.js +81 -85
  135. package/out/concepts/Process__.js.map +1 -1
  136. package/out/concepts/QueryAggregateExpression__.js +1 -1
  137. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  138. package/out/concepts/QueryFieldExpression__.d.ts +1 -0
  139. package/out/concepts/QueryFieldExpression__.js +3 -0
  140. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  141. package/out/concepts/QueryFromExpression__.js +2 -2
  142. package/out/concepts/QueryFromExpression__.js.map +1 -1
  143. package/out/concepts/QueryGroupByExpression__.d.ts +3 -0
  144. package/out/concepts/QueryGroupByExpression__.js +20 -0
  145. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  146. package/out/concepts/QueryJoinExpression__.js +5 -5
  147. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  148. package/out/concepts/QueryLimitExpression__.js +2 -2
  149. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  150. package/out/concepts/QuerySelectExpression__.js +3 -3
  151. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  152. package/out/concepts/Return__.d.ts +4 -1
  153. package/out/concepts/Return__.js +74 -23
  154. package/out/concepts/Return__.js.map +1 -1
  155. package/out/concepts/Role__.d.ts +4 -0
  156. package/out/concepts/Role__.js +13 -4
  157. package/out/concepts/Role__.js.map +1 -1
  158. package/out/concepts/SqlQueryComponent__.js +2 -2
  159. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  160. package/out/concepts/StringLiteral__.d.ts +1 -1
  161. package/out/concepts/StringLiteral__.js +22 -39
  162. package/out/concepts/StringLiteral__.js.map +1 -1
  163. package/out/concepts/StructureProperty__.d.ts +5 -4
  164. package/out/concepts/StructureProperty__.js +55 -26
  165. package/out/concepts/StructureProperty__.js.map +1 -1
  166. package/out/concepts/Structure__.d.ts +44 -30
  167. package/out/concepts/Structure__.js +44 -12
  168. package/out/concepts/Structure__.js.map +1 -1
  169. package/out/concepts/SwitchCase__.js +4 -4
  170. package/out/concepts/SwitchCase__.js.map +1 -1
  171. package/out/concepts/SwitchStatement__.js +2 -2
  172. package/out/concepts/SwitchStatement__.js.map +1 -1
  173. package/out/concepts/TypeAnnotation__.d.ts +5 -5
  174. package/out/concepts/TypeAnnotation__.js +82 -20
  175. package/out/concepts/TypeAnnotation__.js.map +1 -1
  176. package/out/concepts/UnaryExpression__.js +10 -8
  177. package/out/concepts/UnaryExpression__.js.map +1 -1
  178. package/out/concepts/Unparsed__.js +1 -1
  179. package/out/concepts/Unparsed__.js.map +1 -1
  180. package/out/concepts/ValidationRule__.d.ts +1 -0
  181. package/out/concepts/ValidationRule__.js +48 -13
  182. package/out/concepts/ValidationRule__.js.map +1 -1
  183. package/out/concepts/Variable__.d.ts +10 -1
  184. package/out/concepts/Variable__.js +77 -20
  185. package/out/concepts/Variable__.js.map +1 -1
  186. package/out/concepts/ViewComponent__.js +15 -15
  187. package/out/concepts/ViewComponent__.js.map +1 -1
  188. package/out/concepts/ViewElement__.d.ts +17 -11
  189. package/out/concepts/ViewElement__.js +302 -204
  190. package/out/concepts/ViewElement__.js.map +1 -1
  191. package/out/concepts/View__.d.ts +13 -12
  192. package/out/concepts/View__.js +124 -102
  193. package/out/concepts/View__.js.map +1 -1
  194. package/out/concepts/WhileStatement__.js +3 -3
  195. package/out/concepts/WhileStatement__.js.map +1 -1
  196. package/out/concepts/basics/stdlib/index.js +4 -1
  197. package/out/concepts/basics/stdlib/index.js.map +1 -1
  198. package/out/concepts/basics/stdlib/{nasl.validate.d.ts → nasl.auth.d.ts} +0 -0
  199. package/out/concepts/basics/stdlib/nasl.auth.js +30 -0
  200. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -0
  201. package/out/concepts/basics/stdlib/nasl.browser.d.ts +3 -0
  202. package/out/concepts/basics/stdlib/nasl.browser.js +41 -0
  203. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -0
  204. package/out/concepts/basics/stdlib/nasl.configuration.d.ts +3 -0
  205. package/out/concepts/basics/stdlib/nasl.configuration.js +25 -0
  206. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -0
  207. package/out/concepts/basics/stdlib/nasl.interface.d.ts +2 -0
  208. package/out/concepts/basics/stdlib/nasl.interface.js +4 -4
  209. package/out/concepts/basics/stdlib/nasl.interface.js.map +1 -1
  210. package/out/concepts/basics/stdlib/nasl.ui.js +20 -0
  211. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  212. package/out/concepts/basics/stdlib/nasl.util.js +138 -18
  213. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  214. package/out/concepts/basics/stdlib/nasl.validation.js +54 -20
  215. package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
  216. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js +1 -1
  217. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js.map +1 -1
  218. package/out/concepts/basics/types/coreTypeList.js +11 -10
  219. package/out/concepts/basics/types/coreTypeList.js.map +1 -1
  220. package/out/concepts/basics/types/index.d.ts +1 -0
  221. package/out/concepts/basics/types/index.js +3 -1
  222. package/out/concepts/basics/types/index.js.map +1 -1
  223. package/out/concepts/index__.d.ts +1 -0
  224. package/out/concepts/index__.js +1 -0
  225. package/out/concepts/index__.js.map +1 -1
  226. package/out/config.d.ts +1 -2
  227. package/out/config.js +1 -2
  228. package/out/config.js.map +1 -1
  229. package/out/enums/KEYWORDS.d.ts +3 -0
  230. package/out/enums/KEYWORDS.js +1199 -0
  231. package/out/enums/KEYWORDS.js.map +1 -0
  232. package/out/{terms → enums}/LEVEL_NAME_MAP.d.ts +0 -0
  233. package/out/{terms → enums}/LEVEL_NAME_MAP.js +0 -0
  234. package/out/{terms → enums}/LEVEL_NAME_MAP.js.map +1 -1
  235. package/out/eventBus.d.ts +3 -0
  236. package/out/eventBus.js +7 -0
  237. package/out/eventBus.js.map +1 -0
  238. package/out/generator/genBundleFiles.d.ts +7 -2
  239. package/out/generator/genBundleFiles.js +168 -27
  240. package/out/generator/genBundleFiles.js.map +1 -1
  241. package/out/generator/genMetaData.d.ts +20 -20
  242. package/out/generator/genMetaData.js +50 -15
  243. package/out/generator/genMetaData.js.map +1 -1
  244. package/out/index.d.ts +2 -0
  245. package/out/index.js +2 -0
  246. package/out/index.js.map +1 -1
  247. package/out/manager/diagnostic.d.ts +2 -2
  248. package/out/server/createUiTs.d.ts +1 -0
  249. package/out/server/createUiTs.js +49 -5
  250. package/out/server/createUiTs.js.map +1 -1
  251. package/out/server/entity2LogicNamespace.js +38 -23
  252. package/out/server/entity2LogicNamespace.js.map +1 -1
  253. package/out/server/extendBaseNode.d.ts +1 -0
  254. package/out/server/extendBaseNode.js +323 -0
  255. package/out/server/extendBaseNode.js.map +1 -0
  256. package/out/server/getExtensionModules.js +2 -0
  257. package/out/server/getExtensionModules.js.map +1 -1
  258. package/out/server/getFunctions.d.ts +1 -0
  259. package/out/server/getFunctions.js +7 -1
  260. package/out/server/getFunctions.js.map +1 -1
  261. package/out/server/getLogics.js +84 -18
  262. package/out/server/getLogics.js.map +1 -1
  263. package/out/server/getMemberIdentifier.d.ts +16 -1
  264. package/out/server/getMemberIdentifier.js +326 -38
  265. package/out/server/getMemberIdentifier.js.map +1 -1
  266. package/out/server/getProcesses.d.ts +8 -1
  267. package/out/server/getProcesses.js +383 -1
  268. package/out/server/getProcesses.js.map +1 -1
  269. package/out/server/getScope.d.ts +13 -0
  270. package/out/server/getScope.js +61 -0
  271. package/out/server/getScope.js.map +1 -0
  272. package/out/server/index.d.ts +1 -0
  273. package/out/server/index.js +5 -0
  274. package/out/server/index.js.map +1 -1
  275. package/out/server/naslServer.d.ts +36 -57
  276. package/out/server/naslServer.js +689 -615
  277. package/out/server/naslServer.js.map +1 -1
  278. package/out/server/process2LogicNamespace.d.ts +10 -0
  279. package/out/server/process2LogicNamespace.js +29 -1
  280. package/out/server/process2LogicNamespace.js.map +1 -1
  281. package/out/server/translator.d.ts +22 -3
  282. package/out/server/translator.js +369 -123
  283. package/out/server/translator.js.map +1 -1
  284. package/out/service/creator/add.configs.d.ts +1 -0
  285. package/out/service/creator/add.configs.js +68 -0
  286. package/out/service/creator/add.configs.js.map +1 -0
  287. package/out/service/creator/errHandles.d.ts +18 -0
  288. package/out/service/creator/errHandles.js +60 -0
  289. package/out/service/creator/errHandles.js.map +1 -0
  290. package/out/service/creator/index.d.ts +1 -0
  291. package/out/service/creator/index.js +72 -0
  292. package/out/service/creator/index.js.map +1 -0
  293. package/out/service/storage/api.d.ts +18 -0
  294. package/out/service/storage/api.js +17 -0
  295. package/out/service/storage/api.js.map +1 -0
  296. package/out/service/storage/init.js +221 -37
  297. package/out/service/storage/init.js.map +1 -1
  298. package/out/service/storage/service.d.ts +2 -0
  299. package/out/service/storage/service.js +10 -0
  300. package/out/service/storage/service.js.map +1 -0
  301. package/out/service/storage/storagePoint.d.ts +1 -14
  302. package/out/service/storage/storagePoint.js +16 -16
  303. package/out/service/storage/storagePoint.js.map +1 -1
  304. package/out/templator/genCreateBlock.js +6 -6
  305. package/out/templator/genCreateBlock.js.map +1 -1
  306. package/out/templator/genCurdEditMultipleKeyBlock.js +13 -17
  307. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  308. package/out/templator/genCurdMultipleKeyBlock.js +11 -11
  309. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  310. package/out/templator/genEditTableBlock.js +5 -5
  311. package/out/templator/genEditTableBlock.js.map +1 -1
  312. package/out/templator/genEnumSelectBlock.js +2 -2
  313. package/out/templator/genEnumSelectBlock.js.map +1 -1
  314. package/out/templator/genGetBlock.js +6 -4
  315. package/out/templator/genGetBlock.js.map +1 -1
  316. package/out/templator/genGridViewBlock.d.ts +3 -1
  317. package/out/templator/genGridViewBlock.js +61 -6
  318. package/out/templator/genGridViewBlock.js.map +1 -1
  319. package/out/templator/genQueryComponent.d.ts +2 -0
  320. package/out/templator/genQueryComponent.js +34 -18
  321. package/out/templator/genQueryComponent.js.map +1 -1
  322. package/out/templator/genSelectBlock.js +5 -15
  323. package/out/templator/genSelectBlock.js.map +1 -1
  324. package/out/templator/genTableBlock.d.ts +1 -1
  325. package/out/templator/genTableBlock.js +4 -5
  326. package/out/templator/genTableBlock.js.map +1 -1
  327. package/out/templator/genUpdateBlock.js +10 -11
  328. package/out/templator/genUpdateBlock.js.map +1 -1
  329. package/out/templator/utils.d.ts +16 -5
  330. package/out/templator/utils.js +10 -5
  331. package/out/templator/utils.js.map +1 -1
  332. package/out/test/fixtures/env.js +0 -1
  333. package/out/test/fixtures/env.js.map +1 -1
  334. package/out/test/units/page/Element.spec.js +3 -3
  335. package/out/test/units/page/Element.spec.js.map +1 -1
  336. package/out/test/units/temp/temp.spec.js +1 -1
  337. package/out/test/units/temp/temp.spec.js.map +1 -1
  338. package/out/utils/index.d.ts +6 -0
  339. package/out/utils/index.js +25 -1
  340. package/out/utils/index.js.map +1 -1
  341. package/out/utils/string.d.ts +1 -1
  342. package/out/utils/string.js +38 -9
  343. package/out/utils/string.js.map +1 -1
  344. package/package.json +2 -2
  345. package/src/automate/engine/index.js +95 -119
  346. package/src/automate/engine/operators.js +63 -0
  347. package/src/automate/engine/uniqueName.js +36 -0
  348. package/src/automate/engine/utils.js +63 -19
  349. package/src/common/BaseNode.ts +229 -74
  350. package/src/concepts/App__.ts +92 -85
  351. package/src/concepts/Argument__.ts +23 -3
  352. package/src/concepts/Assignee__.ts +467 -0
  353. package/src/concepts/Assignment__.ts +4 -1
  354. package/src/concepts/BinaryExpression__.ts +9 -7
  355. package/src/concepts/BindAttribute__.ts +69 -9
  356. package/src/concepts/BindDirective__.ts +22 -3
  357. package/src/concepts/BindEvent__.ts +67 -23
  358. package/src/concepts/BooleanLiteral__.ts +8 -0
  359. package/src/concepts/CallFunction__.ts +55 -23
  360. package/src/concepts/CallInterface__.ts +236 -26
  361. package/src/concepts/CallLogic__.ts +111 -52
  362. package/src/concepts/CallQueryComponent__.ts +315 -67
  363. package/src/concepts/Comment__.ts +6 -2
  364. package/src/concepts/CompletionProperty__.ts +5 -1
  365. package/src/concepts/ConfigGroup__.ts +3 -3
  366. package/src/concepts/ConfigProperty__.ts +3 -3
  367. package/src/concepts/Configuration__.ts +3 -3
  368. package/src/concepts/Constant__.ts +14 -2
  369. package/src/concepts/Destination__.ts +123 -37
  370. package/src/concepts/End__.ts +8 -1
  371. package/src/concepts/EntityIndex__.ts +4 -2
  372. package/src/concepts/EntityProperty__.ts +56 -5
  373. package/src/concepts/Entity__.ts +38 -21
  374. package/src/concepts/Enum__.ts +23 -26
  375. package/src/concepts/Event__.ts +3 -3
  376. package/src/concepts/ForEachStatement__.ts +16 -21
  377. package/src/concepts/Function__.ts +13 -13
  378. package/src/concepts/Identifier__.ts +84 -42
  379. package/src/concepts/IfStatement__.ts +4 -4
  380. package/src/concepts/InterfaceParam__.ts +57 -16
  381. package/src/concepts/Interface__.ts +130 -16
  382. package/src/concepts/JSBlock__.ts +4 -0
  383. package/src/concepts/LogicItem__.ts +16 -1
  384. package/src/concepts/Logic__.ts +192 -39
  385. package/src/concepts/MemberExpression__.ts +58 -15
  386. package/src/concepts/Module__.ts +35 -24
  387. package/src/concepts/Namespace__.ts +49 -37
  388. package/src/concepts/NullLiteral__.ts +8 -1
  389. package/src/concepts/NumericLiteral__.ts +17 -6
  390. package/src/concepts/Param__.ts +64 -16
  391. package/src/concepts/ProcessComponent__.ts +6 -6
  392. package/src/concepts/ProcessElement__.ts +149 -44
  393. package/src/concepts/ProcessOutcome__.ts +1 -1
  394. package/src/concepts/Process__.ts +85 -98
  395. package/src/concepts/QueryAggregateExpression__.ts +1 -1
  396. package/src/concepts/QueryFieldExpression__.ts +4 -0
  397. package/src/concepts/QueryFromExpression__.ts +2 -2
  398. package/src/concepts/QueryGroupByExpression__.ts +23 -0
  399. package/src/concepts/QueryJoinExpression__.ts +5 -5
  400. package/src/concepts/QueryLimitExpression__.ts +2 -2
  401. package/src/concepts/QuerySelectExpression__.ts +3 -3
  402. package/src/concepts/Return__.ts +69 -17
  403. package/src/concepts/Role__.ts +5 -4
  404. package/src/concepts/SqlQueryComponent__.ts +2 -2
  405. package/src/concepts/StringLiteral__.ts +21 -39
  406. package/src/concepts/StructureProperty__.ts +50 -18
  407. package/src/concepts/Structure__.ts +32 -10
  408. package/src/concepts/SwitchCase__.ts +4 -4
  409. package/src/concepts/SwitchStatement__.ts +2 -2
  410. package/src/concepts/TypeAnnotation__.ts +66 -15
  411. package/src/concepts/UnaryExpression__.ts +10 -8
  412. package/src/concepts/Unparsed__.ts +1 -1
  413. package/src/concepts/ValidationRule__.ts +44 -14
  414. package/src/concepts/Variable__.ts +70 -16
  415. package/src/concepts/ViewComponent__.ts +15 -15
  416. package/src/concepts/ViewElement__.ts +289 -166
  417. package/src/concepts/View__.ts +135 -69
  418. package/src/concepts/WhileStatement__.ts +4 -4
  419. package/src/concepts/basics/stdlib/index.ts +4 -2
  420. package/src/concepts/basics/stdlib/nasl.auth.ts +26 -0
  421. package/src/concepts/basics/stdlib/nasl.browser.ts +37 -0
  422. package/src/concepts/basics/stdlib/nasl.configuration.ts +21 -0
  423. package/src/concepts/basics/stdlib/nasl.interface.ts +1 -1
  424. package/src/concepts/basics/stdlib/nasl.ui.ts +20 -1
  425. package/src/concepts/basics/stdlib/nasl.util.ts +140 -18
  426. package/src/concepts/basics/stdlib/nasl.validation.ts +45 -11
  427. package/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts +1 -1
  428. package/src/concepts/basics/types/coreTypeList.ts +11 -11
  429. package/src/concepts/basics/types/index.ts +1 -0
  430. package/src/concepts/index__.ts +1 -0
  431. package/src/config.ts +1 -2
  432. package/src/enums/KEYWORDS.ts +1197 -0
  433. package/src/{terms → enums}/LEVEL_NAME_MAP.ts +0 -0
  434. package/src/eventBus.ts +5 -0
  435. package/src/generator/genBundleFiles.ts +182 -30
  436. package/src/generator/genMetaData.ts +72 -21
  437. package/src/index.ts +2 -0
  438. package/src/manager/diagnostic.ts +2 -2
  439. package/src/server/createUiTs.ts +45 -7
  440. package/src/server/entity2LogicNamespace.ts +41 -25
  441. package/src/server/extendBaseNode.ts +318 -0
  442. package/src/server/getExtensionModules.ts +2 -0
  443. package/src/server/getFunctions.ts +6 -0
  444. package/src/server/getLogics.ts +87 -19
  445. package/src/server/getMemberIdentifier.ts +282 -65
  446. package/src/server/getProcesses.ts +397 -4
  447. package/src/server/getScope.ts +67 -0
  448. package/src/server/index.ts +13 -1
  449. package/src/server/naslServer.ts +694 -632
  450. package/src/server/process2LogicNamespace.ts +30 -2
  451. package/src/server/translator.ts +425 -128
  452. package/src/service/config/index.js +1 -1
  453. package/src/service/creator/errHandles.js +5 -2
  454. package/src/service/creator/index.js +0 -6
  455. package/src/service/storage/api.js +14 -0
  456. package/src/service/storage/init.ts +218 -45
  457. package/src/service/storage/service.ts +6 -0
  458. package/src/service/storage/storagePoint.ts +16 -16
  459. package/src/templator/genCreateBlock.ts +6 -6
  460. package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -30
  461. package/src/templator/genCurdMultipleKeyBlock.ts +11 -11
  462. package/src/templator/genEditTableBlock.ts +5 -5
  463. package/src/templator/genEnumSelectBlock.ts +2 -2
  464. package/src/templator/genGetBlock.ts +7 -9
  465. package/src/templator/genGridViewBlock.ts +59 -9
  466. package/src/templator/genQueryComponent.ts +46 -32
  467. package/src/templator/genSelectBlock.ts +5 -15
  468. package/src/templator/genTableBlock.ts +5 -9
  469. package/src/templator/genUpdateBlock.ts +10 -12
  470. package/src/templator/utils.ts +12 -6
  471. package/src/test/fixtures/env.ts +0 -2
  472. package/src/test/units/page/Element.spec.ts +3 -3
  473. package/src/test/units/temp/temp.spec.ts +1 -1
  474. package/src/utils/index.ts +24 -0
  475. package/src/utils/string.ts +39 -9
  476. package/out/concepts/basics/stdlib/nasl.validate.js +0 -527
  477. package/out/concepts/basics/stdlib/nasl.validate.js.map +0 -1
  478. package/out/data/Module.d.ts +0 -34
  479. package/out/data/Module.js +0 -53
  480. package/out/data/Module.js.map +0 -1
  481. package/src/automate/engine/index.d.ts +0 -3
@@ -272,7 +272,7 @@ export class View extends BaseNode {
272
272
  name: options,
273
273
  }, this, 'elements');
274
274
  } else if (options instanceof ViewElement) {
275
- options.delete(); // 同一实例不支持多处存在
275
+ options.ensureDelete(); // 同一实例不支持多处存在
276
276
  viewElement = options;
277
277
  Object.assign(viewElement, relationOptions);
278
278
  } else {
@@ -360,7 +360,7 @@ export class View extends BaseNode {
360
360
 
361
361
  addViewElement(options?: string | Partial<ViewElement> | ViewElement) {
362
362
  const node = this._addViewElement(options as any);
363
- const index = this.elements.length;
363
+ const index = this.elements.indexOf(node);
364
364
  node.create({
365
365
  index,
366
366
  parentNode: this,
@@ -375,7 +375,7 @@ export class View extends BaseNode {
375
375
  return (this.params || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
376
376
  }
377
377
  getParamUniqueName(name = 'param1') {
378
- return utils.unique(name, this.getParamExistingNames());
378
+ return utils.unique(name, this.getParamExistingNames(), undefined, false);
379
379
  }
380
380
 
381
381
  /**
@@ -414,7 +414,7 @@ export class View extends BaseNode {
414
414
  name: options,
415
415
  }, this, 'params');
416
416
  } else if (options instanceof Param) {
417
- options.delete(); // 同一实例不支持多处存在
417
+ options.ensureDelete(); // 同一实例不支持多处存在
418
418
  param = options;
419
419
  Object.assign(param, relationOptions);
420
420
  } else {
@@ -502,7 +502,7 @@ export class View extends BaseNode {
502
502
 
503
503
  addParam(options?: string | Partial<Param> | Param) {
504
504
  const node = this._addParam(options as any);
505
- const index = this.params.length;
505
+ const index = this.params.indexOf(node);
506
506
  node.create({
507
507
  index,
508
508
  parentNode: this,
@@ -517,7 +517,7 @@ export class View extends BaseNode {
517
517
  return (this.variables || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
518
518
  }
519
519
  getVariableUniqueName(name = 'variable1') {
520
- return utils.unique(name, this.getVariableExistingNames());
520
+ return utils.unique(name, this.getVariableExistingNames(), undefined, false);
521
521
  }
522
522
 
523
523
  /**
@@ -556,7 +556,7 @@ export class View extends BaseNode {
556
556
  name: options,
557
557
  }, this, 'variables');
558
558
  } else if (options instanceof Variable) {
559
- options.delete(); // 同一实例不支持多处存在
559
+ options.ensureDelete(); // 同一实例不支持多处存在
560
560
  variable = options;
561
561
  Object.assign(variable, relationOptions);
562
562
  } else {
@@ -644,7 +644,7 @@ export class View extends BaseNode {
644
644
 
645
645
  addVariable(options?: string | Partial<Variable> | Variable) {
646
646
  const node = this._addVariable(options as any);
647
- const index = this.variables.length;
647
+ const index = this.variables.indexOf(node);
648
648
  node.create({
649
649
  index,
650
650
  parentNode: this,
@@ -654,12 +654,8 @@ export class View extends BaseNode {
654
654
  }
655
655
 
656
656
 
657
- getLogicExistingNames(excludedList: Array<Logic> = []) {
658
- const excludedSet = new Set(excludedList);
659
- return (this.logics || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
660
- }
661
657
  getLogicUniqueName(name = 'logic1') {
662
- return utils.unique(name, this.getLogicExistingNames());
658
+ return utils.unique(name, this.getLogicExistingNames(), undefined, false);
663
659
  }
664
660
 
665
661
  /**
@@ -698,7 +694,7 @@ export class View extends BaseNode {
698
694
  name: options,
699
695
  }, this, 'logics');
700
696
  } else if (options instanceof Logic) {
701
- options.delete(); // 同一实例不支持多处存在
697
+ options.ensureDelete(); // 同一实例不支持多处存在
702
698
  logic = options;
703
699
  Object.assign(logic, relationOptions);
704
700
  } else {
@@ -786,7 +782,7 @@ export class View extends BaseNode {
786
782
 
787
783
  addLogic(options?: string | Partial<Logic> | Logic) {
788
784
  const node = this._addLogic(options as any);
789
- const index = this.logics.length;
785
+ const index = this.logics.indexOf(node);
790
786
  node.create({
791
787
  index,
792
788
  parentNode: this,
@@ -801,7 +797,7 @@ export class View extends BaseNode {
801
797
  return (this.bindEvents || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
802
798
  }
803
799
  getBindEventUniqueName(name = 'bindEvent1') {
804
- return utils.unique(name, this.getBindEventExistingNames());
800
+ return utils.unique(name, this.getBindEventExistingNames(), undefined, false);
805
801
  }
806
802
 
807
803
  /**
@@ -840,7 +836,7 @@ export class View extends BaseNode {
840
836
  name: options,
841
837
  }, this, 'bindEvents');
842
838
  } else if (options instanceof BindEvent) {
843
- options.delete(); // 同一实例不支持多处存在
839
+ options.ensureDelete(); // 同一实例不支持多处存在
844
840
  bindEvent = options;
845
841
  Object.assign(bindEvent, relationOptions);
846
842
  } else {
@@ -928,7 +924,7 @@ export class View extends BaseNode {
928
924
 
929
925
  addBindEvent(options?: string | Partial<BindEvent> | BindEvent) {
930
926
  const node = this._addBindEvent(options as any);
931
- const index = this.bindEvents.length;
927
+ const index = this.bindEvents.indexOf(node);
932
928
  node.create({
933
929
  index,
934
930
  parentNode: this,
@@ -945,7 +941,7 @@ export class View extends BaseNode {
945
941
  return (this.children || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
946
942
  }
947
943
  getViewUniqueName(name = 'view1') {
948
- return utils.unique(name, this.getViewExistingNames());
944
+ return utils.unique(name, this.getViewExistingNames(), undefined, false);
949
945
  }
950
946
 
951
947
  /**
@@ -984,7 +980,7 @@ export class View extends BaseNode {
984
980
  name: options,
985
981
  }, this, 'children');
986
982
  } else if (options instanceof View) {
987
- options.delete(); // 同一实例不支持多处存在
983
+ options.ensureDelete(); // 同一实例不支持多处存在
988
984
  view = options;
989
985
  Object.assign(view, relationOptions);
990
986
  } else {
@@ -1072,7 +1068,7 @@ export class View extends BaseNode {
1072
1068
 
1073
1069
  addView(options?: string | Partial<View> | View) {
1074
1070
  const node = this._addView(options as any);
1075
- const index = this.children.length;
1071
+ const index = this.children.indexOf(node);
1076
1072
  node.create({
1077
1073
  index,
1078
1074
  parentNode: this,
@@ -1387,6 +1383,12 @@ export class View extends BaseNode {
1387
1383
  // 自动生成的代码已结束。下面可以手动编写。
1388
1384
  //================================================================================
1389
1385
 
1386
+ /* 主页面有没有权限 */
1387
+ get parentAuth() {
1388
+ const _nameSpace = this.getTsNamespace();
1389
+ const mainViewName = _nameSpace.split('.')[2];
1390
+ return mainViewName ? this.app.views.find((item) => item.name === mainViewName)?.auth : this.auth;
1391
+ }
1390
1392
  /**
1391
1393
  * 设置页面权限
1392
1394
  */
@@ -1474,15 +1476,6 @@ export class View extends BaseNode {
1474
1476
  }
1475
1477
  }
1476
1478
  }
1477
- // 全局结构体
1478
- if (Array.isArray(definition.structures)) {
1479
- definition.structures.forEach((structureOption: any) => {
1480
- const structure = Structure.from({
1481
- ...structureOption,
1482
- }, this.rootNode, 'structures');
1483
- (this.rootNode as App).addStructure(structure);
1484
- });
1485
- }
1486
1479
 
1487
1480
  // 全局逻辑
1488
1481
  if (Array.isArray(definition.logics)) {
@@ -1494,6 +1487,16 @@ export class View extends BaseNode {
1494
1487
  });
1495
1488
  }
1496
1489
 
1490
+ // 全局结构体
1491
+ if (Array.isArray(definition.structures)) {
1492
+ definition.structures.forEach((structureOption: any) => {
1493
+ const structure = Structure.from({
1494
+ ...structureOption,
1495
+ }, this.rootNode, 'structures');
1496
+ (this.rootNode as App).addStructure(structure);
1497
+ });
1498
+ }
1499
+
1497
1500
  // 页面入参
1498
1501
  if (Array.isArray(definition.viewParams)) {
1499
1502
  definition.viewParams.forEach((paramsOption: any) => {
@@ -1538,9 +1541,45 @@ export class View extends BaseNode {
1538
1541
  this.emit('change', $event);
1539
1542
  }
1540
1543
 
1544
+ getLogicExistingNames(excludedList: Array<Logic> = []) {
1545
+ const excludedSet = new Set(excludedList);
1546
+ const varList: any[] = [];
1547
+ if (Array.isArray(this.params)) {
1548
+ varList.push(...this.params);
1549
+ }
1550
+ if (Array.isArray(this.variables)) {
1551
+ varList.push(...this.variables);
1552
+ }
1553
+ if (Array.isArray(this.logics)) {
1554
+ varList.push(...this.logics);
1555
+ }
1556
+ return varList.filter((item) => !excludedSet.has(item)).map((item) => item.name);
1557
+ }
1558
+
1541
1559
  getVarExistingNames(excludedList: Array<Param | Variable> = []) {
1542
1560
  const excludedSet = new Set(excludedList);
1543
- return [...this.params, ...this.variables].filter((item) => !excludedSet.has(item)).map((item) => item.name);
1561
+ const varList: any[] = [];
1562
+ if (Array.isArray(this.params)) {
1563
+ varList.push(...this.params);
1564
+ }
1565
+ if (Array.isArray(this.variables)) {
1566
+ varList.push(...this.variables);
1567
+ }
1568
+ if (Array.isArray(this.logics)) {
1569
+ this.logics.forEach((logic) => {
1570
+ varList.push(logic);
1571
+ if (Array.isArray(logic.params)) {
1572
+ varList.push(...logic.params);
1573
+ }
1574
+ if (Array.isArray(logic.returns)) {
1575
+ varList.push(...logic.returns);
1576
+ }
1577
+ if (Array.isArray(logic.variables)) {
1578
+ varList.push(...logic.variables);
1579
+ }
1580
+ });
1581
+ }
1582
+ return varList.filter((item) => !excludedSet.has(item)).map((item) => item.name);
1544
1583
  }
1545
1584
 
1546
1585
  /**
@@ -1559,7 +1598,7 @@ export class View extends BaseNode {
1559
1598
  events: this.bindEvents,
1560
1599
  title: this.title,
1561
1600
  crumb: this.crumb,
1562
- first: this.isIndex,
1601
+ first: this.children.find((child) => child.isIndex)?.name,
1563
1602
  };
1564
1603
  return `${componentOptions}
1565
1604
  ${translator(definition)}
@@ -1567,7 +1606,7 @@ export class View extends BaseNode {
1567
1606
  `;
1568
1607
  }
1569
1608
  genVueTemplate(options?: ElementToVueOptions) {
1570
- return this.elements.map((element) => element.toVue(options) + '\n').join('');
1609
+ return this.elements?.map((element) => element?.toVue(options) + '\n').join('');
1571
1610
  }
1572
1611
  /**
1573
1612
  * 转换成 Vue 文件
@@ -1630,6 +1669,13 @@ export class View extends BaseNode {
1630
1669
  throw new Error('无法获取命名空间,请设置 parentNode!');
1631
1670
  }
1632
1671
 
1672
+ getTsNamespace() {
1673
+ const parentNodeNamespace = this.getNamespace();
1674
+ let tsCalleeNamespace = parentNodeNamespace.replace(/\.[0-9]/g, (m) => m.replace('.', '.$'));
1675
+ tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
1676
+ return tsCalleeNamespace;
1677
+ }
1678
+
1633
1679
  // 获取当前element,铺平
1634
1680
  elementsMethods(elements: Array<ViewElement>, allMethods: Array<ViewElement>) {
1635
1681
  if (elements) {
@@ -1646,9 +1692,6 @@ export class View extends BaseNode {
1646
1692
  toEmbeddedTS(state?: TranslatorState): string {
1647
1693
  function chineseTsName(name: string) {
1648
1694
  let tsName = name;
1649
- if (/^\d/.test(tsName)) {
1650
- tsName = '$' + tsName;
1651
- }
1652
1695
  // 匹配所有特殊字符都转为_
1653
1696
  tsName = tsName.replace(/[^\u4e00-\u9fa5a-zA-Z0-9]/g, '_');
1654
1697
  return tsName;
@@ -1656,21 +1699,9 @@ export class View extends BaseNode {
1656
1699
 
1657
1700
  let code = `export namespace ${this.tsName} {\n`;
1658
1701
  // 角色
1659
- // if (this.auth && Array.isArray(this.roles) && this.roles.length) {
1660
- // code += indent(state.tabSize + 1);
1661
- // code += 'export let roles = [\n';
1662
- // this.roles.forEach((role) => {
1663
- // code += indent(state.tabSize + 1);
1664
- // `${this.app.getNamespace()}.${role.name}`;
1665
- // code += `${role.namespace}.${role.name},`;
1666
- // code += '\n';
1667
- // });
1668
- // code += indent(state.tabSize + 1);
1669
- // code += '];\n';
1670
- // }
1671
- if (this.auth && Array.isArray(this.bindRoles) && this.bindRoles.length) {
1702
+ if (Array.isArray(this.bindRoles) && this.bindRoles.length) {
1672
1703
  code += indent(state.tabSize + 1);
1673
- code += 'export let bindRoles = [\n';
1704
+ code += 'export let __bindRoles = [\n';
1674
1705
  this.bindRoles.forEach((role) => {
1675
1706
  code += indent(state.tabSize + 1);
1676
1707
  code += `${this.app.getNamespace()}.roles.${chineseTsName(role)}.${chineseTsName(role)},`;
@@ -1696,7 +1727,7 @@ export class View extends BaseNode {
1696
1727
  }
1697
1728
 
1698
1729
  // elements类型声明定义
1699
- code += indent(state.tabSize + 1) + `let __elements = {\n`;
1730
+ code += `interface __elements {\n`;
1700
1731
  // 生成所有的name和类型定义
1701
1732
  this.elements.forEach((element) => {
1702
1733
  code += element.toEmbeddedTSDefinition(shiftState(state, code, {
@@ -1704,29 +1735,27 @@ export class View extends BaseNode {
1704
1735
  }));
1705
1736
  });
1706
1737
  code += indent(state.tabSize + 1) + '}\n';
1738
+ code += `let __elements: __elements;\n`;
1707
1739
  // 逻辑
1708
1740
  if (Array.isArray(this.logics) && this.logics.length) {
1709
1741
  code += indent(state.tabSize + 1);
1710
- code += `export namespace logics {\n`;
1711
1742
  this.logics.forEach((logic) => {
1712
1743
  code += logic.toEmbeddedTS(shiftState(state, code, {
1713
1744
  tabSize: state.tabSize + 2,
1714
- }));
1745
+ }), 'noExport');
1715
1746
  code += '\n';
1716
1747
  });
1717
1748
  code += indent(state.tabSize + 1);
1718
- code += '}\n';
1719
1749
  }
1720
1750
  // 事件
1721
- // bindEvent暂时不用生成,生成就会校验参数
1722
- // if (Array.isArray(this.events) && this.events.length) {
1723
- // this.events.forEach((event) => {
1724
- // code += event.toObjectTS(shiftState(state, code, {
1725
- // tabSize: state.tabSize,
1726
- // }));
1727
- // code += '\n';
1728
- // });
1729
- // }
1751
+ if (Array.isArray(this.bindEvents)) {
1752
+ this.bindEvents.forEach((event) => {
1753
+ code += event.toEmbeddedTS(shiftState(state, code, {
1754
+ tabSize: state.tabSize,
1755
+ }), true);
1756
+ code += '\n';
1757
+ });
1758
+ }
1730
1759
 
1731
1760
  // render函数
1732
1761
  code += '\n' + indent(state.tabSize + 1);
@@ -1748,25 +1777,30 @@ export class View extends BaseNode {
1748
1777
  code += '\n' + indent(state.tabSize + 1) + '}\n';
1749
1778
 
1750
1779
  if (Array.isArray(this.params)) {
1751
- code += indent(state.tabSize + 1) + `export function $destination(`;
1780
+ code += indent(state.tabSize + 1) + `export function $destination(options: {`;
1752
1781
  this.params.forEach((param, index) => {
1753
- code += `${param.toEmbeddedTS(shiftState(state, code, { inline: true }), true)}`;
1782
+ code += param.name + '?: ';
1783
+ code += param.typeAnnotation.toEmbeddedTS(shiftState(state, code));
1754
1784
  if (index !== this.params.length - 1)
1755
1785
  code += ', ';
1756
1786
  });
1757
- code += '){}\n';
1787
+ code += '}){}\n';
1758
1788
  }
1759
1789
  code += indent(state.tabSize) + '}\n';
1760
1790
  return code;
1761
1791
  }
1762
1792
 
1763
1793
  toEmbeddedTSFile() {
1764
- let code = `namespace ${this.getNamespace()} {\n`;
1794
+ let code = `namespace ${this.getTsNamespace()} {\n`;
1765
1795
  const state = createCompilerState(code, {
1766
1796
  tabSize: 1,
1767
1797
  });
1768
1798
 
1769
- code += this.toEmbeddedTS(state);
1799
+ try {
1800
+ code += this.toEmbeddedTS(state);
1801
+ } catch (err) {
1802
+ code += '';
1803
+ }
1770
1804
 
1771
1805
  code += '}\n';
1772
1806
 
@@ -1786,11 +1820,18 @@ export class View extends BaseNode {
1786
1820
  }
1787
1821
  let path = '/';
1788
1822
  if (_path.length) {
1789
- path += `${_path.join('/')}`;
1823
+ path += `${_path.reverse().join('/')}`;
1790
1824
  }
1791
1825
  return path;
1792
1826
  }
1793
1827
 
1828
+ /**
1829
+ * 权限领域的资源路径
1830
+ */
1831
+ get authPath() {
1832
+ return this.path;
1833
+ }
1834
+
1794
1835
  /**
1795
1836
  * @param path 子路径
1796
1837
  * 比如当前页面路径为:/dashboard
@@ -1808,6 +1849,25 @@ export class View extends BaseNode {
1808
1849
  return arr.length ? subView.findViewByPath(arr.join('/')) : subView;
1809
1850
  }
1810
1851
 
1852
+ findViewByName(name: string): View {
1853
+ return utils.traverse((current) => {
1854
+ if (current.node.name === name)
1855
+ return current.node;
1856
+ }, { node: this });
1857
+ }
1858
+
1859
+ findElementByName(name: string): ViewElement {
1860
+ return this.elements[0]?.findElementByName(name);
1861
+ }
1862
+
1863
+ findElementByTag(tag: string): ViewElement {
1864
+ return this.elements[0]?.findElementByName(tag);
1865
+ }
1866
+
1867
+ findElementByAttr(name: string, value: string): ViewElement {
1868
+ return this.elements[0]?.findElementByAttr(name, value);
1869
+ }
1870
+
1811
1871
  _setAsIndexView(isIndex: boolean) {
1812
1872
  let views: View[] = [];
1813
1873
  if (this.parentNode.concept !== 'View') {
@@ -1842,6 +1902,12 @@ export class View extends BaseNode {
1842
1902
  this.rootNode.emit('collect:end');
1843
1903
  }
1844
1904
 
1905
+ removeExistingViewElement(viewElement: ViewElement) {
1906
+ if (this.existingViewElement.has(viewElement.name)) {
1907
+ this.existingViewElement.delete(viewElement.name);
1908
+ }
1909
+ }
1910
+
1845
1911
  //================================================================================
1846
1912
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1847
1913
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -89,7 +89,7 @@ export class WhileStatement extends LogicItem {
89
89
  const relationOptions = { parentNode: this, parentKey: 'body' };
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 WhileStatement extends LogicItem {
163
163
 
164
164
  addItem(options?: Partial<LogicItem> | LogicItem) {
165
165
  const node = this._addItem(options as any);
166
- const index = this.body.length;
166
+ const index = this.body.indexOf(node);
167
167
  node.create({
168
168
  index,
169
169
  parentNode: this,
@@ -243,7 +243,7 @@ export class WhileStatement extends LogicItem {
243
243
  public static getDefaultOptions() {
244
244
  return {
245
245
  label: 'While 循环分支',
246
- }
246
+ };
247
247
  }
248
248
  toJS(state?: TranslatorState): string {
249
249
  let code = '';
@@ -251,7 +251,7 @@ export class WhileStatement extends LogicItem {
251
251
  code += this.test ? this.test.toJS(shiftState(state, code, {
252
252
  tabSize: 0,
253
253
  })) : '';
254
- code += ')) {\n';
254
+ code += ') {\n';
255
255
 
256
256
  if (Array.isArray(this.body)) {
257
257
  this.body.forEach((logicItem) => {
@@ -9,12 +9,14 @@ import naslInterface from './nasl.interface';
9
9
  import naslUtil from './nasl.util';
10
10
  import naslProcess from './nasl.process';
11
11
  import naslValidation from './nasl.validation';
12
+ import naslBrowser from './nasl.browser';
13
+ import naslAuth from './nasl.auth';
14
+ import naslConfiguration from './nasl.configuration';
12
15
 
13
16
  export { reference2TypeAnnotationList } from './reference2TypeAnnotationList';
14
17
  export const stdlibNamespace = new Namespace({
15
18
  name: 'nasl',
16
19
  path: 'nasl',
17
- children: [naslCore, naslCollection, naslInterface, naslUi, naslUtil, naslProcess, naslValidation],
20
+ children: [naslCore, naslCollection, naslInterface, naslUi, naslUtil, naslProcess, naslValidation, naslBrowser, naslAuth, naslConfiguration],
18
21
  });
19
-
20
22
  export default stdlibNamespace;
@@ -0,0 +1,26 @@
1
+ import Namespace from '../../Namespace__';
2
+ import Param from '../../Param__';
3
+ import Return from '../../Return__';
4
+ import Logic from '../../Logic__';
5
+ import TypeAnnotation from '../../TypeAnnotation__';
6
+
7
+ export default new Namespace({
8
+ name: 'auth',
9
+ logics: [
10
+ new Logic({
11
+ name: 'hasAuth',
12
+ params: [
13
+ new Param({
14
+ name: 'authPath',
15
+ typeAnnotation: TypeAnnotation.createPrimitive('String'),
16
+ }),
17
+ ],
18
+ returns: [],
19
+ }),
20
+ new Logic({
21
+ name: 'logout',
22
+ params: [],
23
+ returns: [],
24
+ }),
25
+ ],
26
+ });
@@ -0,0 +1,37 @@
1
+ import Namespace from '../../Namespace__';
2
+ import Param from '../../Param__';
3
+ import Return from '../../Return__';
4
+ import Logic from '../../Logic__';
5
+ import TypeAnnotation from '../../TypeAnnotation__';
6
+
7
+ export default new Namespace({
8
+ name: 'browser',
9
+ logics: [
10
+ new Logic({
11
+ name: 'requestFullscreen',
12
+ params: [],
13
+ body: [],
14
+ }),
15
+ new Logic({
16
+ name: 'exitFullscreen',
17
+ params: [],
18
+ body: [],
19
+ }),
20
+ new Logic({
21
+ name: 'getDistance',
22
+ params: [
23
+ new Param({
24
+ name: 'Point1',
25
+ typeAnnotation: TypeAnnotation.createPrimitive('String'),
26
+ required: true,
27
+ }),
28
+ new Param({
29
+ name: 'Point2',
30
+ typeAnnotation: TypeAnnotation.createPrimitive('String'),
31
+ required: true,
32
+ }),
33
+ ],
34
+ body: [],
35
+ }),
36
+ ],
37
+ });
@@ -0,0 +1,21 @@
1
+ import Namespace from '../../Namespace__';
2
+ import Param from '../../Param__';
3
+ import Return from '../../Return__';
4
+ import Logic from '../../Logic__';
5
+ import TypeAnnotation from '../../TypeAnnotation__';
6
+
7
+ export default new Namespace({
8
+ name: 'configuration',
9
+ logics: [
10
+ new Logic({
11
+ name: 'getCustomConfig',
12
+ params: [
13
+ new Param({
14
+ name: 'name',
15
+ typeAnnotation: TypeAnnotation.createPrimitive('String'),
16
+ }),
17
+ ],
18
+ returns: [],
19
+ }),
20
+ ],
21
+ });
@@ -10,7 +10,7 @@ import { primitiveTypeList } from '../types/coreTypeList';
10
10
  import { reference2TypeAnnotationList } from './reference2TypeAnnotationList';
11
11
  import TypeParam from '../../TypeParam__';
12
12
 
13
- const interfaceStructures = [
13
+ export const interfaceStructures = [
14
14
  new Structure({
15
15
  name: 'ApiReturnOf',
16
16
  typeParams: [
@@ -790,10 +790,29 @@ export const uiStructures = [
790
790
  }),
791
791
  ],
792
792
  }),
793
+ new Structure({
794
+ name: 'File',
795
+ properties: [
796
+ new StructureProperty({
797
+ name: 'name',
798
+ description: '文件名称',
799
+ typeAnnotation: TypeAnnotation.createPrimitive('String'),
800
+ }),
801
+ new StructureProperty({
802
+ name: 'size',
803
+ description: '文件大小',
804
+ typeAnnotation: TypeAnnotation.createPrimitive('Integer'),
805
+ }),
806
+ new StructureProperty({
807
+ name: 'type',
808
+ description: '文件类型',
809
+ typeAnnotation: TypeAnnotation.createPrimitive('String'),
810
+ }),
811
+ ],
812
+ }),
793
813
  ];
794
814
 
795
815
  export const uiTypeList: Array<TypeAnnotation> = reference2TypeAnnotationList(uiStructures, 'nasl.ui');
796
-
797
816
  export default new Namespace({
798
817
  name: 'ui',
799
818
  logics: [