@lcap/nasl 1.0.0-alpha.8 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/out/automate/engine/index.d.ts +3 -0
  2. package/out/automate/engine/index.js +414 -0
  3. package/out/automate/engine/index.js.map +1 -0
  4. package/out/automate/engine/operators.d.ts +13 -0
  5. package/out/automate/engine/operators.js +63 -0
  6. package/out/automate/engine/operators.js.map +1 -0
  7. package/out/automate/engine/uniqueName.d.ts +6 -0
  8. package/out/automate/engine/uniqueName.js +39 -0
  9. package/out/automate/engine/uniqueName.js.map +1 -0
  10. package/out/automate/engine/utils.d.ts +24 -0
  11. package/out/automate/engine/utils.js +363 -0
  12. package/out/automate/engine/utils.js.map +1 -0
  13. package/out/common/BaseNode.d.ts +20 -0
  14. package/out/common/BaseNode.js +219 -81
  15. package/out/common/BaseNode.js.map +1 -1
  16. package/out/concepts/App__.d.ts +18 -1
  17. package/out/concepts/App__.js +84 -44
  18. package/out/concepts/App__.js.map +1 -1
  19. package/out/concepts/Argument__.d.ts +5 -1
  20. package/out/concepts/Argument__.js +21 -3
  21. package/out/concepts/Argument__.js.map +1 -1
  22. package/out/concepts/Assignee__.d.ts +190 -0
  23. package/out/concepts/Assignee__.js +264 -0
  24. package/out/concepts/Assignee__.js.map +1 -0
  25. package/out/concepts/Assignment__.js +5 -0
  26. package/out/concepts/Assignment__.js.map +1 -1
  27. package/out/concepts/BinaryExpression__.js +8 -7
  28. package/out/concepts/BinaryExpression__.js.map +1 -1
  29. package/out/concepts/BindAttribute__.d.ts +19 -0
  30. package/out/concepts/BindAttribute__.js +55 -10
  31. package/out/concepts/BindAttribute__.js.map +1 -1
  32. package/out/concepts/BindDirective__.js +23 -3
  33. package/out/concepts/BindDirective__.js.map +1 -1
  34. package/out/concepts/BindEvent__.d.ts +2 -2
  35. package/out/concepts/BindEvent__.js +67 -34
  36. package/out/concepts/BindEvent__.js.map +1 -1
  37. package/out/concepts/BooleanLiteral__.d.ts +2 -0
  38. package/out/concepts/BooleanLiteral__.js +10 -0
  39. package/out/concepts/BooleanLiteral__.js.map +1 -1
  40. package/out/concepts/CallFunction__.js +57 -23
  41. package/out/concepts/CallFunction__.js.map +1 -1
  42. package/out/concepts/CallInterface__.d.ts +5 -0
  43. package/out/concepts/CallInterface__.js +238 -31
  44. package/out/concepts/CallInterface__.js.map +1 -1
  45. package/out/concepts/CallLogic__.d.ts +4 -4
  46. package/out/concepts/CallLogic__.js +107 -50
  47. package/out/concepts/CallLogic__.js.map +1 -1
  48. package/out/concepts/CallQueryComponent__.d.ts +7 -1
  49. package/out/concepts/CallQueryComponent__.js +45 -26
  50. package/out/concepts/CallQueryComponent__.js.map +1 -1
  51. package/out/concepts/Comment__.js +6 -2
  52. package/out/concepts/Comment__.js.map +1 -1
  53. package/out/concepts/CompletionProperty__.d.ts +3 -1
  54. package/out/concepts/CompletionProperty__.js +2 -0
  55. package/out/concepts/CompletionProperty__.js.map +1 -1
  56. package/out/concepts/ConfigGroup__.js +3 -3
  57. package/out/concepts/ConfigGroup__.js.map +1 -1
  58. package/out/concepts/ConfigProperty__.js +3 -3
  59. package/out/concepts/ConfigProperty__.js.map +1 -1
  60. package/out/concepts/Configuration__.js +3 -3
  61. package/out/concepts/Configuration__.js.map +1 -1
  62. package/out/concepts/Constant__.d.ts +1 -0
  63. package/out/concepts/Constant__.js +14 -0
  64. package/out/concepts/Constant__.js.map +1 -1
  65. package/out/concepts/Destination__.d.ts +12 -0
  66. package/out/concepts/Destination__.js +98 -19
  67. package/out/concepts/Destination__.js.map +1 -1
  68. package/out/concepts/End__.js +9 -1
  69. package/out/concepts/End__.js.map +1 -1
  70. package/out/concepts/EntityProperty__.d.ts +11 -0
  71. package/out/concepts/EntityProperty__.js +73 -5
  72. package/out/concepts/EntityProperty__.js.map +1 -1
  73. package/out/concepts/Entity__.d.ts +4 -4
  74. package/out/concepts/Entity__.js +30 -20
  75. package/out/concepts/Entity__.js.map +1 -1
  76. package/out/concepts/Enum__.d.ts +4 -0
  77. package/out/concepts/Enum__.js +18 -10
  78. package/out/concepts/Enum__.js.map +1 -1
  79. package/out/concepts/Event__.js +3 -3
  80. package/out/concepts/Event__.js.map +1 -1
  81. package/out/concepts/ForEachStatement__.d.ts +1 -1
  82. package/out/concepts/ForEachStatement__.js +11 -15
  83. package/out/concepts/ForEachStatement__.js.map +1 -1
  84. package/out/concepts/Function__.js +13 -13
  85. package/out/concepts/Function__.js.map +1 -1
  86. package/out/concepts/Identifier__.d.ts +3 -0
  87. package/out/concepts/Identifier__.js +76 -29
  88. package/out/concepts/Identifier__.js.map +1 -1
  89. package/out/concepts/IfStatement__.js +4 -4
  90. package/out/concepts/IfStatement__.js.map +1 -1
  91. package/out/concepts/InterfaceParam__.d.ts +6 -4
  92. package/out/concepts/InterfaceParam__.js +52 -19
  93. package/out/concepts/InterfaceParam__.js.map +1 -1
  94. package/out/concepts/Interface__.d.ts +42 -30
  95. package/out/concepts/Interface__.js +133 -17
  96. package/out/concepts/Interface__.js.map +1 -1
  97. package/out/concepts/JSBlock__.d.ts +1 -0
  98. package/out/concepts/JSBlock__.js +3 -0
  99. package/out/concepts/JSBlock__.js.map +1 -1
  100. package/out/concepts/LogicItem__.d.ts +2 -1
  101. package/out/concepts/LogicItem__.js +14 -0
  102. package/out/concepts/LogicItem__.js.map +1 -1
  103. package/out/concepts/Logic__.d.ts +20 -1
  104. package/out/concepts/Logic__.js +194 -37
  105. package/out/concepts/Logic__.js.map +1 -1
  106. package/out/concepts/MemberExpression__.d.ts +2 -0
  107. package/out/concepts/MemberExpression__.js +49 -13
  108. package/out/concepts/MemberExpression__.js.map +1 -1
  109. package/out/concepts/Module__.d.ts +126 -120
  110. package/out/concepts/Module__.js +36 -26
  111. package/out/concepts/Module__.js.map +1 -1
  112. package/out/concepts/Namespace__.d.ts +5 -1
  113. package/out/concepts/Namespace__.js +48 -37
  114. package/out/concepts/Namespace__.js.map +1 -1
  115. package/out/concepts/NullLiteral__.d.ts +3 -0
  116. package/out/concepts/NullLiteral__.js +11 -1
  117. package/out/concepts/NullLiteral__.js.map +1 -1
  118. package/out/concepts/NumericLiteral__.d.ts +1 -1
  119. package/out/concepts/NumericLiteral__.js +17 -6
  120. package/out/concepts/NumericLiteral__.js.map +1 -1
  121. package/out/concepts/Param__.d.ts +7 -3
  122. package/out/concepts/Param__.js +57 -28
  123. package/out/concepts/Param__.js.map +1 -1
  124. package/out/concepts/ProcessComponent__.js +6 -6
  125. package/out/concepts/ProcessComponent__.js.map +1 -1
  126. package/out/concepts/ProcessElement__.d.ts +0 -4
  127. package/out/concepts/ProcessElement__.js +117 -54
  128. package/out/concepts/ProcessElement__.js.map +1 -1
  129. package/out/concepts/ProcessOutcome__.js +1 -1
  130. package/out/concepts/ProcessOutcome__.js.map +1 -1
  131. package/out/concepts/Process__.d.ts +7 -1
  132. package/out/concepts/Process__.js +81 -85
  133. package/out/concepts/Process__.js.map +1 -1
  134. package/out/concepts/QueryAggregateExpression__.js +1 -1
  135. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  136. package/out/concepts/QueryFromExpression__.js +2 -2
  137. package/out/concepts/QueryFromExpression__.js.map +1 -1
  138. package/out/concepts/QueryJoinExpression__.js +5 -5
  139. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  140. package/out/concepts/QueryLimitExpression__.js +2 -2
  141. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  142. package/out/concepts/QuerySelectExpression__.js +3 -3
  143. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  144. package/out/concepts/Return__.d.ts +4 -1
  145. package/out/concepts/Return__.js +67 -21
  146. package/out/concepts/Return__.js.map +1 -1
  147. package/out/concepts/Role__.d.ts +4 -0
  148. package/out/concepts/Role__.js +13 -4
  149. package/out/concepts/Role__.js.map +1 -1
  150. package/out/concepts/SqlQueryComponent__.js +2 -2
  151. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  152. package/out/concepts/StringLiteral__.d.ts +1 -1
  153. package/out/concepts/StringLiteral__.js +21 -31
  154. package/out/concepts/StringLiteral__.js.map +1 -1
  155. package/out/concepts/StructureProperty__.d.ts +5 -4
  156. package/out/concepts/StructureProperty__.js +55 -26
  157. package/out/concepts/StructureProperty__.js.map +1 -1
  158. package/out/concepts/Structure__.d.ts +44 -30
  159. package/out/concepts/Structure__.js +44 -12
  160. package/out/concepts/Structure__.js.map +1 -1
  161. package/out/concepts/SwitchCase__.js +4 -4
  162. package/out/concepts/SwitchCase__.js.map +1 -1
  163. package/out/concepts/SwitchStatement__.js +2 -2
  164. package/out/concepts/SwitchStatement__.js.map +1 -1
  165. package/out/concepts/TypeAnnotation__.d.ts +5 -5
  166. package/out/concepts/TypeAnnotation__.js +74 -20
  167. package/out/concepts/TypeAnnotation__.js.map +1 -1
  168. package/out/concepts/UnaryExpression__.js +10 -8
  169. package/out/concepts/UnaryExpression__.js.map +1 -1
  170. package/out/concepts/Unparsed__.js +1 -1
  171. package/out/concepts/Unparsed__.js.map +1 -1
  172. package/out/concepts/ValidationRule__.d.ts +1 -0
  173. package/out/concepts/ValidationRule__.js +48 -13
  174. package/out/concepts/ValidationRule__.js.map +1 -1
  175. package/out/concepts/Variable__.d.ts +10 -1
  176. package/out/concepts/Variable__.js +70 -18
  177. package/out/concepts/Variable__.js.map +1 -1
  178. package/out/concepts/ViewComponent__.js +15 -15
  179. package/out/concepts/ViewComponent__.js.map +1 -1
  180. package/out/concepts/ViewElement__.d.ts +17 -11
  181. package/out/concepts/ViewElement__.js +302 -204
  182. package/out/concepts/ViewElement__.js.map +1 -1
  183. package/out/concepts/View__.d.ts +12 -11
  184. package/out/concepts/View__.js +109 -98
  185. package/out/concepts/View__.js.map +1 -1
  186. package/out/concepts/WhileStatement__.js +3 -3
  187. package/out/concepts/WhileStatement__.js.map +1 -1
  188. package/out/concepts/basics/stdlib/index.js +4 -1
  189. package/out/concepts/basics/stdlib/index.js.map +1 -1
  190. package/out/concepts/basics/stdlib/{nasl.validate.d.ts → nasl.auth.d.ts} +0 -0
  191. package/out/concepts/basics/stdlib/nasl.auth.js +30 -0
  192. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -0
  193. package/out/concepts/basics/stdlib/nasl.browser copy.d.ts +3 -0
  194. package/out/concepts/basics/stdlib/nasl.browser copy.js +70 -0
  195. package/out/concepts/basics/stdlib/nasl.browser copy.js.map +1 -0
  196. package/out/concepts/basics/stdlib/nasl.browser.d.ts +3 -0
  197. package/out/concepts/basics/stdlib/nasl.browser.js +41 -0
  198. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -0
  199. package/out/concepts/basics/stdlib/nasl.configuration.d.ts +3 -0
  200. package/out/concepts/basics/stdlib/nasl.configuration.js +25 -0
  201. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -0
  202. package/out/concepts/basics/stdlib/nasl.ui.js +20 -0
  203. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  204. package/out/concepts/basics/stdlib/nasl.util.js +149 -13
  205. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  206. package/out/concepts/basics/stdlib/nasl.validation.js +54 -20
  207. package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
  208. package/out/concepts/basics/types/coreTypeList.js +11 -10
  209. package/out/concepts/basics/types/coreTypeList.js.map +1 -1
  210. package/out/concepts/index__.d.ts +1 -0
  211. package/out/concepts/index__.js +1 -0
  212. package/out/concepts/index__.js.map +1 -1
  213. package/out/config.d.ts +1 -2
  214. package/out/config.js +1 -2
  215. package/out/config.js.map +1 -1
  216. package/out/enums/KEYWORDS.d.ts +3 -0
  217. package/out/enums/KEYWORDS.js +1206 -0
  218. package/out/enums/KEYWORDS.js.map +1 -0
  219. package/out/enums/LEVEL_NAME_MAP.d.ts +26 -0
  220. package/out/enums/LEVEL_NAME_MAP.js +30 -0
  221. package/out/enums/LEVEL_NAME_MAP.js.map +1 -0
  222. package/out/eventBus.d.ts +3 -0
  223. package/out/eventBus.js +7 -0
  224. package/out/eventBus.js.map +1 -0
  225. package/out/generator/genBundleFiles.d.ts +7 -2
  226. package/out/generator/genBundleFiles.js +168 -27
  227. package/out/generator/genBundleFiles.js.map +1 -1
  228. package/out/generator/genMetaData.d.ts +20 -20
  229. package/out/generator/genMetaData.js +50 -15
  230. package/out/generator/genMetaData.js.map +1 -1
  231. package/out/index.d.ts +2 -0
  232. package/out/index.js +2 -0
  233. package/out/index.js.map +1 -1
  234. package/out/manager/diagnostic.d.ts +1 -1
  235. package/out/server/createUiTs.d.ts +1 -0
  236. package/out/server/createUiTs.js +49 -5
  237. package/out/server/createUiTs.js.map +1 -1
  238. package/out/server/entity2LogicNamespace.js +38 -23
  239. package/out/server/entity2LogicNamespace.js.map +1 -1
  240. package/out/server/getExtensionModules.js +2 -0
  241. package/out/server/getExtensionModules.js.map +1 -1
  242. package/out/server/getFunctions.d.ts +1 -0
  243. package/out/server/getFunctions.js +7 -1
  244. package/out/server/getFunctions.js.map +1 -1
  245. package/out/server/getLogics.js +63 -18
  246. package/out/server/getLogics.js.map +1 -1
  247. package/out/server/getMemberIdentifier.d.ts +16 -1
  248. package/out/server/getMemberIdentifier.js +279 -36
  249. package/out/server/getMemberIdentifier.js.map +1 -1
  250. package/out/server/getProcesses.d.ts +6 -1
  251. package/out/server/getProcesses.js +243 -1
  252. package/out/server/getProcesses.js.map +1 -1
  253. package/out/server/getScope.d.ts +12 -0
  254. package/out/server/getScope.js +57 -0
  255. package/out/server/getScope.js.map +1 -0
  256. package/out/server/index.js +4 -0
  257. package/out/server/index.js.map +1 -1
  258. package/out/server/naslServer.d.ts +30 -53
  259. package/out/server/naslServer.js +721 -381
  260. package/out/server/naslServer.js.map +1 -1
  261. package/out/server/process2LogicNamespace.d.ts +10 -0
  262. package/out/server/process2LogicNamespace.js +29 -1
  263. package/out/server/process2LogicNamespace.js.map +1 -1
  264. package/out/server/translator.d.ts +22 -3
  265. package/out/server/translator.js +367 -123
  266. package/out/server/translator.js.map +1 -1
  267. package/out/service/creator/add.configs.d.ts +1 -0
  268. package/out/service/creator/add.configs.js +68 -0
  269. package/out/service/creator/add.configs.js.map +1 -0
  270. package/out/service/creator/errHandles.d.ts +18 -0
  271. package/out/service/creator/errHandles.js +60 -0
  272. package/out/service/creator/errHandles.js.map +1 -0
  273. package/out/service/creator/index.d.ts +1 -0
  274. package/out/service/creator/index.js +72 -0
  275. package/out/service/creator/index.js.map +1 -0
  276. package/out/service/storage/api.d.ts +18 -0
  277. package/out/service/storage/api.js +17 -0
  278. package/out/service/storage/api.js.map +1 -0
  279. package/out/service/storage/init.js +213 -37
  280. package/out/service/storage/init.js.map +1 -1
  281. package/out/service/storage/service.d.ts +2 -0
  282. package/out/service/storage/service.js +10 -0
  283. package/out/service/storage/service.js.map +1 -0
  284. package/out/service/storage/storagePoint.d.ts +1 -14
  285. package/out/service/storage/storagePoint.js +16 -16
  286. package/out/service/storage/storagePoint.js.map +1 -1
  287. package/out/templator/genCreateBlock.js +6 -6
  288. package/out/templator/genCreateBlock.js.map +1 -1
  289. package/out/templator/genCurdEditMultipleKeyBlock.js +13 -17
  290. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  291. package/out/templator/genCurdMultipleKeyBlock.js +11 -11
  292. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  293. package/out/templator/genEditTableBlock.js +5 -5
  294. package/out/templator/genEditTableBlock.js.map +1 -1
  295. package/out/templator/genEnumSelectBlock.js +2 -2
  296. package/out/templator/genEnumSelectBlock.js.map +1 -1
  297. package/out/templator/genGetBlock.js +5 -3
  298. package/out/templator/genGetBlock.js.map +1 -1
  299. package/out/templator/genGridViewBlock.d.ts +3 -1
  300. package/out/templator/genGridViewBlock.js +61 -6
  301. package/out/templator/genGridViewBlock.js.map +1 -1
  302. package/out/templator/genQueryComponent.d.ts +2 -0
  303. package/out/templator/genQueryComponent.js +27 -14
  304. package/out/templator/genQueryComponent.js.map +1 -1
  305. package/out/templator/genTableBlock.d.ts +1 -1
  306. package/out/templator/genTableBlock.js +4 -5
  307. package/out/templator/genTableBlock.js.map +1 -1
  308. package/out/templator/genUpdateBlock.js +9 -10
  309. package/out/templator/genUpdateBlock.js.map +1 -1
  310. package/out/templator/utils.d.ts +13 -4
  311. package/out/templator/utils.js +8 -4
  312. package/out/templator/utils.js.map +1 -1
  313. package/out/test/fixtures/env.js +0 -1
  314. package/out/test/fixtures/env.js.map +1 -1
  315. package/out/test/integration/connect-file copy.d.ts +1 -0
  316. package/out/test/integration/connect-file copy.js +50 -0
  317. package/out/test/integration/connect-file copy.js.map +1 -0
  318. package/out/test/integration/node-nasl-server.d.ts +1 -0
  319. package/out/test/integration/node-nasl-server.js +41 -0
  320. package/out/test/integration/node-nasl-server.js.map +1 -0
  321. package/out/test/units/page/Element.spec.js +3 -3
  322. package/out/test/units/page/Element.spec.js.map +1 -1
  323. package/out/test/units/temp/temp.spec.js +1 -1
  324. package/out/test/units/temp/temp.spec.js.map +1 -1
  325. package/out/utils/index.d.ts +6 -0
  326. package/out/utils/index.js +25 -1
  327. package/out/utils/index.js.map +1 -1
  328. package/out/utils/string.d.ts +1 -1
  329. package/out/utils/string.js +38 -9
  330. package/out/utils/string.js.map +1 -1
  331. package/package.json +2 -1
  332. package/src/automate/engine/index.js +97 -118
  333. package/src/automate/engine/operators.js +63 -0
  334. package/src/automate/engine/uniqueName.js +36 -0
  335. package/src/automate/engine/utils.js +49 -19
  336. package/src/common/BaseNode.ts +223 -87
  337. package/src/concepts/App__.ts +86 -46
  338. package/src/concepts/Argument__.ts +23 -3
  339. package/src/concepts/Assignee__.ts +437 -0
  340. package/src/concepts/Assignment__.ts +4 -1
  341. package/src/concepts/BinaryExpression__.ts +9 -7
  342. package/src/concepts/BindAttribute__.ts +69 -9
  343. package/src/concepts/BindDirective__.ts +22 -3
  344. package/src/concepts/BindEvent__.ts +67 -23
  345. package/src/concepts/BooleanLiteral__.ts +8 -0
  346. package/src/concepts/CallFunction__.ts +58 -25
  347. package/src/concepts/CallInterface__.ts +236 -26
  348. package/src/concepts/CallLogic__.ts +111 -52
  349. package/src/concepts/CallQueryComponent__.ts +36 -21
  350. package/src/concepts/Comment__.ts +6 -2
  351. package/src/concepts/CompletionProperty__.ts +5 -1
  352. package/src/concepts/ConfigGroup__.ts +3 -3
  353. package/src/concepts/ConfigProperty__.ts +3 -3
  354. package/src/concepts/Configuration__.ts +3 -3
  355. package/src/concepts/Constant__.ts +12 -0
  356. package/src/concepts/Destination__.ts +106 -18
  357. package/src/concepts/End__.ts +8 -1
  358. package/src/concepts/EntityProperty__.ts +69 -5
  359. package/src/concepts/Entity__.ts +33 -28
  360. package/src/concepts/Enum__.ts +16 -11
  361. package/src/concepts/Event__.ts +3 -3
  362. package/src/concepts/ForEachStatement__.ts +16 -21
  363. package/src/concepts/Function__.ts +13 -13
  364. package/src/concepts/Identifier__.ts +82 -32
  365. package/src/concepts/IfStatement__.ts +4 -4
  366. package/src/concepts/InterfaceParam__.ts +49 -27
  367. package/src/concepts/Interface__.ts +130 -16
  368. package/src/concepts/JSBlock__.ts +4 -0
  369. package/src/concepts/LogicItem__.ts +16 -1
  370. package/src/concepts/Logic__.ts +201 -39
  371. package/src/concepts/MemberExpression__.ts +58 -15
  372. package/src/concepts/Module__.ts +35 -24
  373. package/src/concepts/Namespace__.ts +49 -37
  374. package/src/concepts/NullLiteral__.ts +8 -1
  375. package/src/concepts/NumericLiteral__.ts +17 -6
  376. package/src/concepts/Param__.ts +54 -28
  377. package/src/concepts/ProcessComponent__.ts +6 -6
  378. package/src/concepts/ProcessElement__.ts +143 -44
  379. package/src/concepts/ProcessOutcome__.ts +1 -1
  380. package/src/concepts/Process__.ts +85 -98
  381. package/src/concepts/QueryAggregateExpression__.ts +1 -1
  382. package/src/concepts/QueryFromExpression__.ts +2 -2
  383. package/src/concepts/QueryJoinExpression__.ts +5 -5
  384. package/src/concepts/QueryLimitExpression__.ts +2 -2
  385. package/src/concepts/QuerySelectExpression__.ts +3 -3
  386. package/src/concepts/Return__.ts +60 -29
  387. package/src/concepts/Role__.ts +11 -4
  388. package/src/concepts/SqlQueryComponent__.ts +2 -2
  389. package/src/concepts/StringLiteral__.ts +20 -31
  390. package/src/concepts/StructureProperty__.ts +50 -33
  391. package/src/concepts/Structure__.ts +32 -10
  392. package/src/concepts/SwitchCase__.ts +4 -4
  393. package/src/concepts/SwitchStatement__.ts +2 -2
  394. package/src/concepts/TypeAnnotation__.ts +59 -16
  395. package/src/concepts/UnaryExpression__.ts +10 -8
  396. package/src/concepts/Unparsed__.ts +1 -1
  397. package/src/concepts/ValidationRule__.ts +44 -14
  398. package/src/concepts/Variable__.ts +67 -25
  399. package/src/concepts/ViewComponent__.ts +15 -15
  400. package/src/concepts/ViewElement__.ts +380 -264
  401. package/src/concepts/View__.ts +139 -94
  402. package/src/concepts/WhileStatement__.ts +4 -4
  403. package/src/concepts/basics/stdlib/index.ts +4 -2
  404. package/src/concepts/basics/stdlib/nasl.auth.ts +26 -0
  405. package/src/concepts/basics/stdlib/nasl.browser.ts +37 -0
  406. package/src/concepts/basics/stdlib/nasl.configuration.ts +21 -0
  407. package/src/concepts/basics/stdlib/nasl.ui.ts +20 -1
  408. package/src/concepts/basics/stdlib/nasl.util.ts +151 -13
  409. package/src/concepts/basics/stdlib/nasl.validation.ts +45 -11
  410. package/src/concepts/basics/types/coreTypeList.ts +11 -10
  411. package/src/concepts/index__.ts +1 -0
  412. package/src/config.ts +1 -2
  413. package/src/enums/KEYWORDS.ts +1204 -0
  414. package/src/{terms → enums}/LEVEL_NAME_MAP.ts +0 -0
  415. package/src/eventBus.ts +5 -0
  416. package/src/generator/genBundleFiles.ts +182 -30
  417. package/src/generator/genMetaData.ts +72 -21
  418. package/src/index.ts +2 -0
  419. package/src/manager/diagnostic.ts +1 -1
  420. package/src/server/createUiTs.ts +50 -8
  421. package/src/server/entity2LogicNamespace.ts +41 -25
  422. package/src/server/getExtensionModules.ts +2 -0
  423. package/src/server/getFunctions.ts +6 -0
  424. package/src/server/getLogics.ts +66 -19
  425. package/src/server/getMemberIdentifier.ts +275 -46
  426. package/src/server/getProcesses.ts +248 -4
  427. package/src/server/getScope.ts +62 -0
  428. package/src/server/index.ts +12 -1
  429. package/src/server/naslServer.ts +715 -398
  430. package/src/server/process2LogicNamespace.ts +30 -2
  431. package/src/server/translator.ts +423 -128
  432. package/src/service/config/index.js +1 -1
  433. package/src/service/creator/errHandles.js +5 -2
  434. package/src/service/creator/index.js +0 -6
  435. package/src/service/storage/api.js +14 -0
  436. package/src/service/storage/init.ts +217 -47
  437. package/src/service/storage/service.ts +6 -0
  438. package/src/service/storage/storagePoint.ts +16 -16
  439. package/src/templator/genCreateBlock.ts +6 -6
  440. package/src/templator/genCurdEditMultipleKeyBlock.ts +29 -30
  441. package/src/templator/genCurdMultipleKeyBlock.ts +11 -11
  442. package/src/templator/genEditTableBlock.ts +5 -5
  443. package/src/templator/genEnumSelectBlock.ts +2 -2
  444. package/src/templator/genGetBlock.ts +6 -8
  445. package/src/templator/genGridViewBlock.ts +59 -9
  446. package/src/templator/genQueryComponent.ts +39 -28
  447. package/src/templator/genTableBlock.ts +5 -9
  448. package/src/templator/genUpdateBlock.ts +9 -11
  449. package/src/templator/utils.ts +9 -6
  450. package/src/test/fixtures/env.ts +0 -2
  451. package/src/test/units/page/Element.spec.ts +3 -3
  452. package/src/test/units/temp/temp.spec.ts +1 -1
  453. package/src/utils/index.ts +24 -0
  454. package/src/utils/string.ts +39 -9
  455. package/out/concepts/basics/stdlib/nasl.validate.js +0 -527
  456. package/out/concepts/basics/stdlib/nasl.validate.js.map +0 -1
  457. package/out/data/Module.d.ts +0 -34
  458. package/out/data/Module.js +0 -53
  459. package/out/data/Module.js.map +0 -1
  460. package/src/automate/engine/index.d.ts +0 -3
@@ -234,6 +234,8 @@ export class View extends BaseNode {
234
234
  });
235
235
  }
236
236
 
237
+
238
+
237
239
  /**
238
240
  * 插入页面元素
239
241
  * @internal
@@ -270,7 +272,7 @@ export class View extends BaseNode {
270
272
  name: options,
271
273
  }, this, 'elements');
272
274
  } else if (options instanceof ViewElement) {
273
- options.delete(); // 同一实例不支持多处存在
275
+ options.ensureDelete(); // 同一实例不支持多处存在
274
276
  viewElement = options;
275
277
  Object.assign(viewElement, relationOptions);
276
278
  } else {
@@ -358,7 +360,7 @@ export class View extends BaseNode {
358
360
 
359
361
  addViewElement(options?: string | Partial<ViewElement> | ViewElement) {
360
362
  const node = this._addViewElement(options as any);
361
- const index = this.elements.length;
363
+ const index = this.elements.indexOf(node);
362
364
  node.create({
363
365
  index,
364
366
  parentNode: this,
@@ -367,12 +369,13 @@ export class View extends BaseNode {
367
369
  return node;
368
370
  }
369
371
 
372
+
370
373
  getParamExistingNames(excludedList: Array<Param> = []) {
371
374
  const excludedSet = new Set(excludedList);
372
375
  return (this.params || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
373
376
  }
374
377
  getParamUniqueName(name = 'param1') {
375
- return utils.unique(name, this.getParamExistingNames());
378
+ return utils.unique(name, this.getParamExistingNames(), undefined, false);
376
379
  }
377
380
 
378
381
  /**
@@ -411,7 +414,7 @@ export class View extends BaseNode {
411
414
  name: options,
412
415
  }, this, 'params');
413
416
  } else if (options instanceof Param) {
414
- options.delete(); // 同一实例不支持多处存在
417
+ options.ensureDelete(); // 同一实例不支持多处存在
415
418
  param = options;
416
419
  Object.assign(param, relationOptions);
417
420
  } else {
@@ -499,7 +502,7 @@ export class View extends BaseNode {
499
502
 
500
503
  addParam(options?: string | Partial<Param> | Param) {
501
504
  const node = this._addParam(options as any);
502
- const index = this.params.length;
505
+ const index = this.params.indexOf(node);
503
506
  node.create({
504
507
  index,
505
508
  parentNode: this,
@@ -508,12 +511,13 @@ export class View extends BaseNode {
508
511
  return node;
509
512
  }
510
513
 
514
+
511
515
  getVariableExistingNames(excludedList: Array<Variable> = []) {
512
516
  const excludedSet = new Set(excludedList);
513
517
  return (this.variables || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
514
518
  }
515
519
  getVariableUniqueName(name = 'variable1') {
516
- return utils.unique(name, this.getVariableExistingNames());
520
+ return utils.unique(name, this.getVariableExistingNames(), undefined, false);
517
521
  }
518
522
 
519
523
  /**
@@ -552,7 +556,7 @@ export class View extends BaseNode {
552
556
  name: options,
553
557
  }, this, 'variables');
554
558
  } else if (options instanceof Variable) {
555
- options.delete(); // 同一实例不支持多处存在
559
+ options.ensureDelete(); // 同一实例不支持多处存在
556
560
  variable = options;
557
561
  Object.assign(variable, relationOptions);
558
562
  } else {
@@ -640,7 +644,7 @@ export class View extends BaseNode {
640
644
 
641
645
  addVariable(options?: string | Partial<Variable> | Variable) {
642
646
  const node = this._addVariable(options as any);
643
- const index = this.variables.length;
647
+ const index = this.variables.indexOf(node);
644
648
  node.create({
645
649
  index,
646
650
  parentNode: this,
@@ -649,12 +653,13 @@ export class View extends BaseNode {
649
653
  return node;
650
654
  }
651
655
 
656
+
652
657
  getLogicExistingNames(excludedList: Array<Logic> = []) {
653
658
  const excludedSet = new Set(excludedList);
654
659
  return (this.logics || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
655
660
  }
656
661
  getLogicUniqueName(name = 'logic1') {
657
- return utils.unique(name, this.getLogicExistingNames());
662
+ return utils.unique(name, this.getLogicExistingNames(), undefined, false);
658
663
  }
659
664
 
660
665
  /**
@@ -693,7 +698,7 @@ export class View extends BaseNode {
693
698
  name: options,
694
699
  }, this, 'logics');
695
700
  } else if (options instanceof Logic) {
696
- options.delete(); // 同一实例不支持多处存在
701
+ options.ensureDelete(); // 同一实例不支持多处存在
697
702
  logic = options;
698
703
  Object.assign(logic, relationOptions);
699
704
  } else {
@@ -781,7 +786,7 @@ export class View extends BaseNode {
781
786
 
782
787
  addLogic(options?: string | Partial<Logic> | Logic) {
783
788
  const node = this._addLogic(options as any);
784
- const index = this.logics.length;
789
+ const index = this.logics.indexOf(node);
785
790
  node.create({
786
791
  index,
787
792
  parentNode: this,
@@ -790,12 +795,13 @@ export class View extends BaseNode {
790
795
  return node;
791
796
  }
792
797
 
798
+
793
799
  getBindEventExistingNames(excludedList: Array<BindEvent> = []) {
794
800
  const excludedSet = new Set(excludedList);
795
801
  return (this.bindEvents || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
796
802
  }
797
803
  getBindEventUniqueName(name = 'bindEvent1') {
798
- return utils.unique(name, this.getBindEventExistingNames());
804
+ return utils.unique(name, this.getBindEventExistingNames(), undefined, false);
799
805
  }
800
806
 
801
807
  /**
@@ -834,7 +840,7 @@ export class View extends BaseNode {
834
840
  name: options,
835
841
  }, this, 'bindEvents');
836
842
  } else if (options instanceof BindEvent) {
837
- options.delete(); // 同一实例不支持多处存在
843
+ options.ensureDelete(); // 同一实例不支持多处存在
838
844
  bindEvent = options;
839
845
  Object.assign(bindEvent, relationOptions);
840
846
  } else {
@@ -922,7 +928,7 @@ export class View extends BaseNode {
922
928
 
923
929
  addBindEvent(options?: string | Partial<BindEvent> | BindEvent) {
924
930
  const node = this._addBindEvent(options as any);
925
- const index = this.bindEvents.length;
931
+ const index = this.bindEvents.indexOf(node);
926
932
  node.create({
927
933
  index,
928
934
  parentNode: this,
@@ -931,12 +937,15 @@ export class View extends BaseNode {
931
937
  return node;
932
938
  }
933
939
 
940
+
941
+
942
+
934
943
  getViewExistingNames(excludedList: Array<View> = []) {
935
944
  const excludedSet = new Set(excludedList);
936
945
  return (this.children || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
937
946
  }
938
947
  getViewUniqueName(name = 'view1') {
939
- return utils.unique(name, this.getViewExistingNames());
948
+ return utils.unique(name, this.getViewExistingNames(), undefined, false);
940
949
  }
941
950
 
942
951
  /**
@@ -975,7 +984,7 @@ export class View extends BaseNode {
975
984
  name: options,
976
985
  }, this, 'children');
977
986
  } else if (options instanceof View) {
978
- options.delete(); // 同一实例不支持多处存在
987
+ options.ensureDelete(); // 同一实例不支持多处存在
979
988
  view = options;
980
989
  Object.assign(view, relationOptions);
981
990
  } else {
@@ -1063,7 +1072,7 @@ export class View extends BaseNode {
1063
1072
 
1064
1073
  addView(options?: string | Partial<View> | View) {
1065
1074
  const node = this._addView(options as any);
1066
- const index = this.children.length;
1075
+ const index = this.children.indexOf(node);
1067
1076
  node.create({
1068
1077
  index,
1069
1078
  parentNode: this,
@@ -1072,6 +1081,9 @@ export class View extends BaseNode {
1072
1081
  return node;
1073
1082
  }
1074
1083
 
1084
+
1085
+
1086
+
1075
1087
  /**
1076
1088
  * 删除页面元素
1077
1089
  * @param name 页面元素名称
@@ -1120,6 +1132,8 @@ export class View extends BaseNode {
1120
1132
  return params;
1121
1133
  }
1122
1134
 
1135
+
1136
+
1123
1137
  /**
1124
1138
  * 删除输入参数
1125
1139
  * @param name 输入参数名称
@@ -1168,6 +1182,8 @@ export class View extends BaseNode {
1168
1182
  return params;
1169
1183
  }
1170
1184
 
1185
+
1186
+
1171
1187
  /**
1172
1188
  * 删除局部变量
1173
1189
  * @param name 局部变量名称
@@ -1216,6 +1232,8 @@ export class View extends BaseNode {
1216
1232
  return params;
1217
1233
  }
1218
1234
 
1235
+
1236
+
1219
1237
  /**
1220
1238
  * 删除逻辑
1221
1239
  * @param name 逻辑名称
@@ -1264,6 +1282,8 @@ export class View extends BaseNode {
1264
1282
  return params;
1265
1283
  }
1266
1284
 
1285
+
1286
+
1267
1287
  /**
1268
1288
  * 删除元素绑定事件
1269
1289
  * @param name 元素绑定事件名称
@@ -1312,6 +1332,8 @@ export class View extends BaseNode {
1312
1332
  return params;
1313
1333
  }
1314
1334
 
1335
+
1336
+
1315
1337
  /**
1316
1338
  * 删除页面
1317
1339
  * @param name 页面名称
@@ -1365,6 +1387,12 @@ export class View extends BaseNode {
1365
1387
  // 自动生成的代码已结束。下面可以手动编写。
1366
1388
  //================================================================================
1367
1389
 
1390
+ /* 主页面有没有权限 */
1391
+ get parentAuth() {
1392
+ const _nameSpace = this.getTsNamespace();
1393
+ const mainViewName = _nameSpace.split('.')[2];
1394
+ return mainViewName ? this.app.views.find((item) => item.name === mainViewName)?.auth : this.auth;
1395
+ }
1368
1396
  /**
1369
1397
  * 设置页面权限
1370
1398
  */
@@ -1452,15 +1480,6 @@ export class View extends BaseNode {
1452
1480
  }
1453
1481
  }
1454
1482
  }
1455
- // 全局结构体
1456
- if (Array.isArray(definition.structures)) {
1457
- definition.structures.forEach((structureOption: any) => {
1458
- const structure = Structure.from({
1459
- ...structureOption,
1460
- }, this.rootNode, 'structures');
1461
- (this.rootNode as App).addStructure(structure);
1462
- });
1463
- }
1464
1483
 
1465
1484
  // 全局逻辑
1466
1485
  if (Array.isArray(definition.logics)) {
@@ -1472,6 +1491,16 @@ export class View extends BaseNode {
1472
1491
  });
1473
1492
  }
1474
1493
 
1494
+ // 全局结构体
1495
+ if (Array.isArray(definition.structures)) {
1496
+ definition.structures.forEach((structureOption: any) => {
1497
+ const structure = Structure.from({
1498
+ ...structureOption,
1499
+ }, this.rootNode, 'structures');
1500
+ (this.rootNode as App).addStructure(structure);
1501
+ });
1502
+ }
1503
+
1475
1504
  // 页面入参
1476
1505
  if (Array.isArray(definition.viewParams)) {
1477
1506
  definition.viewParams.forEach((paramsOption: any) => {
@@ -1518,37 +1547,27 @@ export class View extends BaseNode {
1518
1547
 
1519
1548
  getVarExistingNames(excludedList: Array<Param | Variable> = []) {
1520
1549
  const excludedSet = new Set(excludedList);
1521
- return [...this.params, ...this.variables].filter((item) => !excludedSet.has(item)).map((item) => item.name);
1522
- }
1523
-
1524
- /**
1525
- * 角色
1526
- */
1527
- @property()
1528
- roles: Array<{
1529
- namespace: string;
1530
- name: string;
1531
- }> = [];
1532
-
1533
- toggleRole(role: Role) {
1534
- const index = this.roles.findIndex((roleItem) => roleItem.name === role.name);
1535
- const roles = [...this.roles];
1536
- if (index !== -1) {
1537
- roles.splice(index, 1);
1538
- this.roles = roles;
1539
- } else {
1540
- roles.push({
1541
- namespace: role.getNamespace(),
1542
- name: role.name,
1550
+ const varList: any[] = [];
1551
+ if (Array.isArray(this.params)) {
1552
+ varList.push(...this.params);
1553
+ }
1554
+ if (Array.isArray(this.variables)) {
1555
+ varList.push(...this.variables);
1556
+ }
1557
+ if (Array.isArray(this.logics)) {
1558
+ this.logics.forEach((logic) => {
1559
+ if (Array.isArray(logic.params)) {
1560
+ varList.push(...logic.params);
1561
+ }
1562
+ if (Array.isArray(logic.returns)) {
1563
+ varList.push(...logic.returns);
1564
+ }
1565
+ if (Array.isArray(logic.variables)) {
1566
+ varList.push(...logic.variables);
1567
+ }
1543
1568
  });
1544
1569
  }
1545
- const object = {
1546
- roles,
1547
- };
1548
-
1549
- this.update({
1550
- ...object,
1551
- });
1570
+ return varList.filter((item) => !excludedSet.has(item)).map((item) => item.name);
1552
1571
  }
1553
1572
 
1554
1573
  /**
@@ -1567,7 +1586,7 @@ export class View extends BaseNode {
1567
1586
  events: this.bindEvents,
1568
1587
  title: this.title,
1569
1588
  crumb: this.crumb,
1570
- first: this.isIndex,
1589
+ first: this.children.find((child) => child.isIndex)?.name,
1571
1590
  };
1572
1591
  return `${componentOptions}
1573
1592
  ${translator(definition)}
@@ -1575,7 +1594,7 @@ export class View extends BaseNode {
1575
1594
  `;
1576
1595
  }
1577
1596
  genVueTemplate(options?: ElementToVueOptions) {
1578
- return this.elements.map((element) => element.toVue(options) + '\n').join('');
1597
+ return this.elements?.map((element) => element?.toVue(options) + '\n').join('');
1579
1598
  }
1580
1599
  /**
1581
1600
  * 转换成 Vue 文件
@@ -1638,6 +1657,12 @@ export class View extends BaseNode {
1638
1657
  throw new Error('无法获取命名空间,请设置 parentNode!');
1639
1658
  }
1640
1659
 
1660
+ getTsNamespace() {
1661
+ const parentNodeNamespace = this.getNamespace();
1662
+ let tsCalleeNamespace = parentNodeNamespace.replace(/\.[0-9]/g, (m) => m.replace('.', '.$'));
1663
+ tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
1664
+ return tsCalleeNamespace;
1665
+ }
1641
1666
 
1642
1667
  // 获取当前element,铺平
1643
1668
  elementsMethods(elements: Array<ViewElement>, allMethods: Array<ViewElement>) {
@@ -1655,9 +1680,6 @@ export class View extends BaseNode {
1655
1680
  toEmbeddedTS(state?: TranslatorState): string {
1656
1681
  function chineseTsName(name: string) {
1657
1682
  let tsName = name;
1658
- if (/^\d/.test(tsName)) {
1659
- tsName = '$' + tsName;
1660
- }
1661
1683
  // 匹配所有特殊字符都转为_
1662
1684
  tsName = tsName.replace(/[^\u4e00-\u9fa5a-zA-Z0-9]/g, '_');
1663
1685
  return tsName;
@@ -1665,21 +1687,9 @@ export class View extends BaseNode {
1665
1687
 
1666
1688
  let code = `export namespace ${this.tsName} {\n`;
1667
1689
  // 角色
1668
- // if (this.auth && Array.isArray(this.roles) && this.roles.length) {
1669
- // code += indent(state.tabSize + 1);
1670
- // code += 'export let roles = [\n';
1671
- // this.roles.forEach((role) => {
1672
- // code += indent(state.tabSize + 1);
1673
- // `${this.app.getNamespace()}.${role.name}`;
1674
- // code += `${role.namespace}.${role.name},`;
1675
- // code += '\n';
1676
- // });
1677
- // code += indent(state.tabSize + 1);
1678
- // code += '];\n';
1679
- // }
1680
- if (this.auth && Array.isArray(this.bindRoles) && this.bindRoles.length) {
1690
+ if (Array.isArray(this.bindRoles) && this.bindRoles.length) {
1681
1691
  code += indent(state.tabSize + 1);
1682
- code += 'export let bindRoles = [\n';
1692
+ code += 'export let __bindRoles = [\n';
1683
1693
  this.bindRoles.forEach((role) => {
1684
1694
  code += indent(state.tabSize + 1);
1685
1695
  code += `${this.app.getNamespace()}.roles.${chineseTsName(role)}.${chineseTsName(role)},`;
@@ -1705,7 +1715,7 @@ export class View extends BaseNode {
1705
1715
  }
1706
1716
 
1707
1717
  // elements类型声明定义
1708
- code += indent(state.tabSize + 1) + `let __elements = {\n`;
1718
+ code += `interface __elements {\n`;
1709
1719
  // 生成所有的name和类型定义
1710
1720
  this.elements.forEach((element) => {
1711
1721
  code += element.toEmbeddedTSDefinition(shiftState(state, code, {
@@ -1713,29 +1723,27 @@ export class View extends BaseNode {
1713
1723
  }));
1714
1724
  });
1715
1725
  code += indent(state.tabSize + 1) + '}\n';
1726
+ code += `let __elements: __elements;\n`;
1716
1727
  // 逻辑
1717
1728
  if (Array.isArray(this.logics) && this.logics.length) {
1718
1729
  code += indent(state.tabSize + 1);
1719
- code += `export namespace logics {\n`;
1720
1730
  this.logics.forEach((logic) => {
1721
1731
  code += logic.toEmbeddedTS(shiftState(state, code, {
1722
1732
  tabSize: state.tabSize + 2,
1723
- }));
1733
+ }), 'noExport');
1724
1734
  code += '\n';
1725
1735
  });
1726
1736
  code += indent(state.tabSize + 1);
1727
- code += '}\n';
1728
1737
  }
1729
1738
  // 事件
1730
- // bindEvent暂时不用生成,生成就会校验参数
1731
- // if (Array.isArray(this.events) && this.events.length) {
1732
- // this.events.forEach((event) => {
1733
- // code += event.toObjectTS(shiftState(state, code, {
1734
- // tabSize: state.tabSize,
1735
- // }));
1736
- // code += '\n';
1737
- // });
1738
- // }
1739
+ if (Array.isArray(this.bindEvents)) {
1740
+ this.bindEvents.forEach((event) => {
1741
+ code += event.toEmbeddedTS(shiftState(state, code, {
1742
+ tabSize: state.tabSize,
1743
+ }), true);
1744
+ code += '\n';
1745
+ });
1746
+ }
1739
1747
 
1740
1748
  // render函数
1741
1749
  code += '\n' + indent(state.tabSize + 1);
@@ -1757,25 +1765,30 @@ export class View extends BaseNode {
1757
1765
  code += '\n' + indent(state.tabSize + 1) + '}\n';
1758
1766
 
1759
1767
  if (Array.isArray(this.params)) {
1760
- code += indent(state.tabSize + 1) + `export function $destination(`;
1768
+ code += indent(state.tabSize + 1) + `export function $destination(options: {`;
1761
1769
  this.params.forEach((param, index) => {
1762
- code += `${param.toEmbeddedTS(shiftState(state, code, { inline: true }), true)}`;
1770
+ code += param.name + '?: ';
1771
+ code += param.typeAnnotation.toEmbeddedTS(shiftState(state, code));
1763
1772
  if (index !== this.params.length - 1)
1764
1773
  code += ', ';
1765
1774
  });
1766
- code += '){}\n';
1775
+ code += '}){}\n';
1767
1776
  }
1768
1777
  code += indent(state.tabSize) + '}\n';
1769
1778
  return code;
1770
1779
  }
1771
1780
 
1772
1781
  toEmbeddedTSFile() {
1773
- let code = `namespace ${this.getNamespace()} {\n`;
1782
+ let code = `namespace ${this.getTsNamespace()} {\n`;
1774
1783
  const state = createCompilerState(code, {
1775
1784
  tabSize: 1,
1776
1785
  });
1777
1786
 
1778
- code += this.toEmbeddedTS(state);
1787
+ try {
1788
+ code += this.toEmbeddedTS(state);
1789
+ } catch (err) {
1790
+ code += '';
1791
+ }
1779
1792
 
1780
1793
  code += '}\n';
1781
1794
 
@@ -1795,11 +1808,18 @@ export class View extends BaseNode {
1795
1808
  }
1796
1809
  let path = '/';
1797
1810
  if (_path.length) {
1798
- path += `${_path.join('/')}`;
1811
+ path += `${_path.reverse().join('/')}`;
1799
1812
  }
1800
1813
  return path;
1801
1814
  }
1802
1815
 
1816
+ /**
1817
+ * 权限领域的资源路径
1818
+ */
1819
+ get authPath() {
1820
+ return this.path;
1821
+ }
1822
+
1803
1823
  /**
1804
1824
  * @param path 子路径
1805
1825
  * 比如当前页面路径为:/dashboard
@@ -1817,6 +1837,25 @@ export class View extends BaseNode {
1817
1837
  return arr.length ? subView.findViewByPath(arr.join('/')) : subView;
1818
1838
  }
1819
1839
 
1840
+ findViewByName(name: string): View {
1841
+ return utils.traverse((current) => {
1842
+ if (current.node.name === name)
1843
+ return current.node;
1844
+ }, { node: this });
1845
+ }
1846
+
1847
+ findElementByName(name: string): ViewElement {
1848
+ return this.elements[0]?.findElementByName(name);
1849
+ }
1850
+
1851
+ findElementByTag(tag: string): ViewElement {
1852
+ return this.elements[0]?.findElementByName(tag);
1853
+ }
1854
+
1855
+ findElementByAttr(name: string, value: string): ViewElement {
1856
+ return this.elements[0]?.findElementByAttr(name, value);
1857
+ }
1858
+
1820
1859
  _setAsIndexView(isIndex: boolean) {
1821
1860
  let views: View[] = [];
1822
1861
  if (this.parentNode.concept !== 'View') {
@@ -1851,13 +1890,19 @@ export class View extends BaseNode {
1851
1890
  this.rootNode.emit('collect:end');
1852
1891
  }
1853
1892
 
1893
+ removeExistingViewElement(viewElement: ViewElement) {
1894
+ if (this.existingViewElement.has(viewElement.name)) {
1895
+ this.existingViewElement.delete(viewElement.name);
1896
+ }
1897
+ }
1898
+
1854
1899
  //================================================================================
1855
1900
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1856
1901
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1857
1902
  //================================================================================
1858
1903
  }
1859
1904
 
1860
- classMap.View = View;
1905
+ classMap['View'] = View;
1861
1906
  export default View;
1862
1907
  //================================================================================
1863
1908
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
@@ -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
+ });