@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
@@ -1,6 +1,8 @@
1
1
  import { TranslatorState, shiftState, withSourceMap } from '../translator';
2
2
  import Interface from './Interface__';
3
+ import NullLiteral from './NullLiteral__';
3
4
  import { ElementToVueOptions } from './ViewElement__';
5
+ import { getConceptConstructor } from '../decorators';
4
6
  //================================================================================
5
7
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
6
8
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -97,7 +99,7 @@ export class CallInterface extends LogicItem {
97
99
  const relationOptions = { parentNode: this, parentKey: 'arguments' };
98
100
  let argument: Argument;
99
101
  if (options instanceof Argument) {
100
- options.delete(); // 同一实例不支持多处存在
102
+ options.ensureDelete(); // 同一实例不支持多处存在
101
103
  argument = options;
102
104
  Object.assign(argument, relationOptions);
103
105
  } else {
@@ -171,7 +173,7 @@ export class CallInterface extends LogicItem {
171
173
 
172
174
  addArgument(options?: Partial<Argument> | Argument) {
173
175
  const node = this._addArgument(options as any);
174
- const index = this.arguments.length;
176
+ const index = this.arguments.indexOf(node);
175
177
  node.create({
176
178
  index,
177
179
  parentNode: this,
@@ -221,12 +223,23 @@ export class CallInterface extends LogicItem {
221
223
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
222
224
  // 自动生成的代码已结束。下面可以手动编写。
223
225
  //================================================================================
226
+
227
+ get tsCalleeNamespace() {
228
+ if (this.calleeNamespace) {
229
+ let tsCalleeNamespace = this.calleeNamespace;
230
+ tsCalleeNamespace = tsCalleeNamespace.replace(/\.[0-9]/g, (m) => m.replace('.', '.$'));
231
+ tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
232
+ return tsCalleeNamespace;
233
+ }
234
+ return '';
235
+ }
236
+
224
237
  toVue(options?: ElementToVueOptions): string {
225
238
  let code = this.calleeName;
226
239
  code += '(';
227
- this.arguments.forEach((arg, index) => {
228
- code += arg.toVue(options);
229
- if (index !== this.arguments.length - 1)
240
+ this.arguments?.forEach((arg, index) => {
241
+ code += arg?.toVue(options);
242
+ if (index !== this.arguments?.length - 1)
230
243
  code += ', ';
231
244
  });
232
245
  code += ')';
@@ -236,9 +249,9 @@ export class CallInterface extends LogicItem {
236
249
  toUI(state?: TranslatorState): string {
237
250
  let code = this.calleeName;
238
251
  code += '(';
239
- this.arguments.forEach((arg, index) => {
240
- code += arg.toUI();
241
- if (index !== this.arguments.length - 1)
252
+ this.arguments?.forEach((arg, index) => {
253
+ code += arg?.toUI();
254
+ if (index !== this.arguments?.length - 1)
242
255
  code += ', ';
243
256
  });
244
257
  code += ')';
@@ -246,32 +259,208 @@ export class CallInterface extends LogicItem {
246
259
  }
247
260
 
248
261
  toJS(state?: TranslatorState): string {
249
- let code = this.calleeName;
250
- code += '(';
251
- this.arguments.forEach((arg, index) => {
252
- code += arg.toJS(shiftState(state, code));
253
- if (index !== this.arguments.length - 1)
254
- code += ', ';
255
- });
256
- code += ')';
262
+ const _arr = this.calleewholeKey.split('.');
263
+ const _name = _arr[1];
264
+ const _interfaceName = _arr[3];
265
+ const _module = this.app.interfaceDependencies.find((item) => item.name === _name);
266
+ const _interface = _module.interfaces.find((item) => item.name === _interfaceName);
267
+ if (!_interface) {
268
+ throw new Error(`${_name}下的${_interfaceName}接口未找到`);
269
+ }
270
+ let isSimpleBody = false; // 兼容body只有基本类型的
271
+ const _params = _interface.params;
272
+ const _queries = _params.filter((item) => item.in === 'query').map((item) => item.name);
273
+ const _headers = _params.filter((item) => item.in === 'header').map((item) => item.name);
274
+ const _body = _params
275
+ .filter((item) => item.in === 'body')
276
+ .map((item) => {
277
+ if (item.typeAnnotation.typeKind === 'primitive') {
278
+ isSimpleBody = true;
279
+ }
280
+ return item.name;
281
+ });
282
+ const _paths = _params.filter((item) => item.in === 'path').map((item) => item.name);
283
+
284
+ let code = `await this.$services['_custom']['${this.calleeNamespace}.${this.calleeName}']`;
285
+ code += `({
286
+ config: {
287
+ download: false,
288
+ },
289
+ query: {`;
290
+ this.arguments?.filter((arg) => _queries.includes(arg?.keyword))
291
+ .forEach((arg, index) => {
292
+ code += `\n'${arg?.keyword}': ${arg?.toJS(shiftState(state, code))}`;
293
+ if (index !== this.arguments?.length - 1)
294
+ code += ', ';
295
+ });
296
+ code += `},
297
+ path: {`;
298
+ this.arguments?.filter((arg) => _paths.includes(arg?.keyword))
299
+ .forEach((arg, index) => {
300
+ code += `\n'${arg?.keyword}': ${arg?.toJS(shiftState(state, code))}`;
301
+ if (index !== this.arguments?.length - 1)
302
+ code += ', ';
303
+ });
304
+ code += `},
305
+ headers: {`;
306
+ this.arguments?.filter((arg) => _headers.includes(arg?.keyword))
307
+ .forEach((arg, index) => {
308
+ code += `\n'${arg?.keyword}': ${arg?.toJS(shiftState(state, code))}`;
309
+ if (index !== this.arguments?.length - 1)
310
+ code += ', ';
311
+ });
312
+ code += `},\n`;
313
+ if (isSimpleBody) {
314
+ code += `body: `;
315
+ this.arguments?.forEach((arg, index) => {
316
+ code += ` ${arg?.toJS(shiftState(state, code))}`;
317
+ });
318
+ } else {
319
+ code += `body: {`;
320
+ this.arguments?.filter((arg) => _body.includes(arg?.keyword))
321
+ .forEach((arg, index) => {
322
+ code += ` ...${arg?.toJS(shiftState(state, code))}`;
323
+ if (index !== this.arguments?.length - 1)
324
+ code += ', ';
325
+ });
326
+ code += '}';
327
+ }
328
+
329
+ code += '\n})';
257
330
  return code;
258
331
  }
259
332
 
260
333
  @withSourceMap()
261
334
  toEmbeddedTS(state?: TranslatorState): string {
262
- let code = this.calleeKey;
263
- code += '({';
264
- this.arguments.forEach((arg, index) => {
265
- code += `${arg.keyword}:` + arg.toEmbeddedTS(shiftState(state, code));
266
- if (index !== this.arguments.length - 1)
267
- code += ', ';
268
- });
269
- code += '});\n';
335
+ let code = this.tsCalleeKey;
336
+ const _keys = this.calleeDefaultKey.split('.');
337
+ const _module = this.app.interfaceDependencies.find((item) => item.name === _keys[1]);
338
+ let params: string[] = [];
339
+ const _interface = _module?.interfaces?.find((item) => item.name === _keys[3]);
340
+ if (_interface) {
341
+ params = _interface.params.filter((item) => item.required).map((item) => item.name) || [];
342
+ // const _bodyParams = _interface.params.find((item) => item.name === 'Body');
343
+ // if (_bodyParams) {
344
+ // const _typeKey = _bodyParams.typeAnnotation.typeKey;
345
+ // const _list = _typeKey.split('.');
346
+ // const _structure = _module.structures.find((item) => item.name === _list[3]);
347
+ // const isBodyRequired = _structure.properties.some((item) => item.required === true);
348
+ // if (isBodyRequired) {
349
+ // params.push('Body');
350
+ // }
351
+ // }
352
+ }
353
+ code += '(';
354
+ if (this.arguments?.length) {
355
+ code += '{';
356
+ this.arguments?.forEach((arg, index) => {
357
+ code += arg?.toEmbeddedTS(shiftState(state, code), params.includes(arg?.keyword), true);
358
+ if (index !== this.arguments?.length - 1)
359
+ code += ', ';
360
+ });
361
+ code += '}';
362
+ }
270
363
 
364
+ code += ');\n';
271
365
  return code;
272
366
  }
273
367
 
274
368
  get calleeKey(): string {
369
+ const tsCalleeNamespace = this.tsCalleeNamespace;
370
+ const calleeName = this.calleeName;
371
+ return calleeName ? `${tsCalleeNamespace}.${calleeName}` : '__IDENTIFIER__';
372
+ }
373
+ // 用于logic回填
374
+ get calleewholeKey(): string {
375
+ return this.calleeNamespace + '.' + this.calleeName;
376
+ }
377
+ get tsCalleeName(): string {
378
+ const excludeds = [
379
+ 'abstract',
380
+ 'arguments',
381
+ 'await',
382
+ 'boolean',
383
+ 'break',
384
+ 'byte',
385
+ 'case',
386
+ 'catch',
387
+ 'char',
388
+ 'class',
389
+ 'const',
390
+ 'continue',
391
+ 'debugger',
392
+ 'default',
393
+ 'delete',
394
+ 'do',
395
+ 'double',
396
+ 'else',
397
+ 'enum',
398
+ 'eval',
399
+ 'export',
400
+ 'extends',
401
+ 'false',
402
+ 'final',
403
+ 'finally',
404
+ 'float',
405
+ 'for',
406
+ 'function',
407
+ 'goto',
408
+ 'if',
409
+ 'implements',
410
+ 'import',
411
+ 'in',
412
+ 'instanceof',
413
+ 'int',
414
+ 'interface',
415
+ 'let',
416
+ 'long',
417
+ 'native',
418
+ 'new',
419
+ 'null',
420
+ 'package',
421
+ 'private',
422
+ 'protected',
423
+ 'public',
424
+ 'return',
425
+ 'short',
426
+ 'static',
427
+ 'super',
428
+ 'switch',
429
+ 'synchronized',
430
+ 'this',
431
+ 'throw',
432
+ 'throws',
433
+ 'transient',
434
+ 'true',
435
+ 'try',
436
+ 'typeof',
437
+ 'var',
438
+ 'void',
439
+ 'volatile',
440
+ 'while',
441
+ 'with',
442
+ 'yield,as',
443
+ 'any',
444
+ 'number',
445
+ 'string',
446
+ 'get',
447
+ 'type',
448
+ 'typeof',
449
+ 'instanceof',
450
+ 'require',
451
+ ];
452
+ if (excludeds.includes(this.calleeName)) {
453
+ return '_' + this.calleeName;
454
+ }
455
+ return this.calleeName;
456
+ }
457
+
458
+ get tsCalleeKey(): string {
459
+ const tsCalleeNamespace = this.tsCalleeNamespace;
460
+ const calleeName = this.tsCalleeName;
461
+ return calleeName ? `${tsCalleeNamespace}.${calleeName}` : '__IDENTIFIER__';
462
+ }
463
+ get calleeDefaultKey(): string {
275
464
  return `${this.calleeNamespace}.${this.calleeName}`;
276
465
  }
277
466
  _setCallee(_interface: Interface) {
@@ -288,9 +477,30 @@ export class CallInterface extends LogicItem {
288
477
  const calleeName = _interface.name;
289
478
  const params = _interface.params.map((param) => {
290
479
  const relationOptions = { parentNode: this, parentKey: 'arguments' };
291
- const argument = Argument.from({
480
+ let expression;
481
+ if (param.defaultValue && param.typeAnnotation.typeKind === 'primitive') {
482
+ const conceptMap: { [name: string]: string } = {
483
+ String: 'StringLiteral',
484
+ Boolean: 'BooleanLiteral',
485
+ Integer: 'NumericLiteral',
486
+ Double: 'NumericLiteral',
487
+ Long: 'NumericLiteral',
488
+ };
489
+ const typeName = param.typeAnnotation.typeName;
490
+ const concept: string = conceptMap[typeName] || 'StringLiteral';
491
+ const Ctor = getConceptConstructor(concept);
492
+ expression = new Ctor({
493
+ concept,
494
+ value: param.defaultValue,
495
+ typeAnnotation: param.typeAnnotation,
496
+ });
497
+ } else if (!param.required) {
498
+ expression = new NullLiteral();
499
+ }
500
+ const argument = new Argument({
292
501
  keyword: param.name,
293
- }, this);
502
+ expression,
503
+ });
294
504
  Object.assign(argument, relationOptions);
295
505
  return argument;
296
506
  });
@@ -2,6 +2,8 @@ import { TranslatorState, shiftState, withSourceMap } from '../translator';
2
2
  import Logic from './Logic__';
3
3
  import Param from './Param__';
4
4
  import { ElementToVueOptions } from './ViewElement__';
5
+ import { getNodeByNodeCallee } from '../automate/engine/utils';
6
+
5
7
  //================================================================================
6
8
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
7
9
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
@@ -105,7 +107,7 @@ export class CallLogic extends LogicItem {
105
107
  const relationOptions = { parentNode: this, parentKey: 'typeArguments' };
106
108
  let typeAnnotation: TypeAnnotation;
107
109
  if (options instanceof TypeAnnotation) {
108
- options.delete(); // 同一实例不支持多处存在
110
+ options.ensureDelete(); // 同一实例不支持多处存在
109
111
  typeAnnotation = options;
110
112
  Object.assign(typeAnnotation, relationOptions);
111
113
  } else {
@@ -179,7 +181,7 @@ export class CallLogic extends LogicItem {
179
181
 
180
182
  addTypeAnnotation(options?: Partial<TypeAnnotation> | TypeAnnotation) {
181
183
  const node = this._addTypeAnnotation(options as any);
182
- const index = this.typeArguments.length;
184
+ const index = this.typeArguments.indexOf(node);
183
185
  node.create({
184
186
  index,
185
187
  parentNode: this,
@@ -212,7 +214,7 @@ export class CallLogic extends LogicItem {
212
214
  const relationOptions = { parentNode: this, parentKey: 'arguments' };
213
215
  let argument: Argument;
214
216
  if (options instanceof Argument) {
215
- options.delete(); // 同一实例不支持多处存在
217
+ options.ensureDelete(); // 同一实例不支持多处存在
216
218
  argument = options;
217
219
  Object.assign(argument, relationOptions);
218
220
  } else {
@@ -286,7 +288,7 @@ export class CallLogic extends LogicItem {
286
288
 
287
289
  addArgument(options?: Partial<Argument> | Argument) {
288
290
  const node = this._addArgument(options as any);
289
- const index = this.arguments.length;
291
+ const index = this.arguments.indexOf(node);
290
292
  node.create({
291
293
  index,
292
294
  parentNode: this,
@@ -382,11 +384,16 @@ export class CallLogic extends LogicItem {
382
384
  }
383
385
  return '';
384
386
  }
387
+
388
+ // 用于logic回填
389
+ get calleewholeKey(): string {
390
+ return this.calleeNamespace + '.' + this.calleeName;
391
+ }
385
392
  get calleeKey(): string {
386
393
  const tsCalleeNamespace = this.tsCalleeNamespace;
387
394
  const calleeName = this.calleeName;
388
395
  if (!tsCalleeNamespace) {
389
- return calleeName ? `logics.${calleeName}` : '__IDENTIFIER__';
396
+ return calleeName ? `${calleeName}` : '__IDENTIFIER__';
390
397
  }
391
398
  // elements单独处理相对路径,和后缀的问题
392
399
  if (tsCalleeNamespace.startsWith('elements') && tsCalleeNamespace.endsWith('logics')) {
@@ -397,10 +404,11 @@ export class CallLogic extends LogicItem {
397
404
  }
398
405
 
399
406
  /**
400
- * 设置setArgumentName
407
+ * 设置argment 触发别的地方的更新
401
408
  */
402
- setArgumentName({ argument, newKeyword }: { argument: Argument; newKeyword: string }) {
403
- argument.setKeyword(newKeyword);
409
+ setArgumentName({ argument }: { argument: Argument[] }) {
410
+ // argument.setKeyword(newKeyword);
411
+ // this.arguments = argument;
404
412
  }
405
413
 
406
414
  /**
@@ -451,6 +459,7 @@ export class CallLogic extends LogicItem {
451
459
  const relationOptions = { parentNode: this, parentKey: 'arguments' };
452
460
  const argument = Argument.from({
453
461
  keyword: param.name,
462
+ expression: param.defaultExpression,
454
463
  }, this);
455
464
  Object.assign(argument, relationOptions);
456
465
  return argument;
@@ -518,11 +527,15 @@ export class CallLogic extends LogicItem {
518
527
  }
519
528
 
520
529
  toVue(options?: ElementToVueOptions): string {
521
- let code = this.calleeName;
530
+ let code = '';
531
+ if (this.calleeNamespace === 'nasl.browser' || this.calleeNamespace === 'nasl.auth' || this.calleeNamespace === 'nasl.configuration') {
532
+ code += '$global.';
533
+ }
534
+ code += this.calleeName;
522
535
  code += '(';
523
- this.arguments.forEach((arg, index) => {
524
- code += arg.toVue(options);
525
- if (index !== this.arguments.length - 1)
536
+ this.arguments?.forEach((arg, index) => {
537
+ code += arg?.toVue(options);
538
+ if (index !== this.arguments?.length - 1)
526
539
  code += ', ';
527
540
  });
528
541
  code += ')';
@@ -532,9 +545,9 @@ export class CallLogic extends LogicItem {
532
545
  toUI(state?: TranslatorState): string {
533
546
  let code = this.calleeName;
534
547
  code += '(';
535
- this.arguments.forEach((arg, index) => {
536
- code += arg.toUI();
537
- if (index !== this.arguments.length - 1)
548
+ this.arguments?.forEach((arg, index) => {
549
+ code += arg?.toUI();
550
+ if (index !== this.arguments?.length - 1)
538
551
  code += ', ';
539
552
  });
540
553
  code += ')';
@@ -550,12 +563,15 @@ export class CallLogic extends LogicItem {
550
563
  let isComponentLogic = false;
551
564
  let componentName = '';
552
565
  const calleeNamespace = this.calleeNamespace;
566
+ const isProcessLogic = this.calleeNamespace?.startsWith('app.processes');
567
+
553
568
  // calleeNamespace不存在,一定是页面逻辑
554
569
  if (calleeNamespace) {
555
570
  const namespaceArr = calleeNamespace.split('.');
556
571
  const start = namespaceArr.shift();
557
- if (start === 'app') {
558
- const keywordViews = namespaceArr.filter((namespaceItem, index) => index % 2 === 0).find((namespaceItem) => namespaceItem === 'views');
572
+ if (start === 'app' || start === 'extensions') {
573
+ const mod = start === 'app' ? 0 : 1;
574
+ const keywordViews = namespaceArr.filter((namespaceItem, index) => index % 2 === mod).find((namespaceItem) => namespaceItem === 'views');
559
575
  if (!keywordViews) {
560
576
  isViewLogic = false;
561
577
  }
@@ -566,15 +582,23 @@ export class CallLogic extends LogicItem {
566
582
  }
567
583
  // 全局逻辑
568
584
  if (!isViewLogic) {
569
- code += `this.$logics['${this.calleeName}']`;
570
- code += `({
571
- config: {
572
- download: false,
573
- },
574
- query: {},
575
- headers: {},
576
- `;
577
- const namespaceArr = calleeNamespace.split('.');
585
+ const namespaceArr = calleeNamespace?.split('.');
586
+ const logic = getNodeByNodeCallee(this.app, this.calleewholeKey, (key: string, tempPoint: any) => {
587
+ // 处理 NASL 中未定义的假的节点
588
+ if (key === tempPoint.name) {
589
+ return {
590
+ tempPoint,
591
+ state: 1,
592
+ };
593
+ }
594
+ const t = tempPoint[key];
595
+ return {
596
+ tempPoint: t,
597
+ state: Array.isArray(t) ? 2 : 1,
598
+ };
599
+ });
600
+ const args = logic?.params || [];
601
+
578
602
  // 去掉app
579
603
  namespaceArr.shift();
580
604
  const keywordEntities = namespaceArr
@@ -585,43 +609,64 @@ export class CallLogic extends LogicItem {
585
609
  .filter((namespaceItem, index) => index % 2 === 0)
586
610
  .find((namespaceItem) => namespaceItem.key === 'entities');
587
611
  const entityName = namespaceArr[keywordEntities?.index + 1];
612
+ code += `this.$logics['${this.calleeNamespace ? `${this.calleeNamespace}.${this.calleeName}` : this.calleeName}']`;
613
+ code += `({
614
+ config: {
615
+ download: false,
616
+ },
617
+ query: {`;
618
+ if (isProcessLogic) {
619
+ const argsStr = args.map((arg: any, index: number) => {
620
+ const actualArg = this.arguments?.[index];
621
+ return {
622
+ keyword: arg?.name,
623
+ arg: actualArg,
624
+ };
625
+ }).filter((obj: any) => obj?.arg?.expression).map((obj: any) => `\n${obj?.keyword}: ${obj?.arg?.toJS(shiftState(state, code))}`).join(', ');
626
+ code += argsStr;
627
+ }
628
+ code += `},
629
+ headers: {},
630
+ `;
588
631
 
589
632
  if (entityName) {
590
633
  let logicArgs = this.arguments;
591
634
  switch (this.calleeName) {
592
635
  case 'get':
593
636
  case 'delete': {
594
- let idArgument: Argument;
595
- logicArgs = logicArgs.filter((arg) => {
596
- if (arg.keyword === 'id') {
597
- idArgument = arg;
598
- return false;
599
- } else {
600
- return true;
601
- }
602
- });
603
- code += `path: {`;
604
- if (idArgument) {
605
- code += `\n${idArgument.keyword}: ${idArgument.toJS(shiftState(state, code))}`;
606
- }
637
+ logicArgs = [];
638
+ code += `query: {`;
639
+ const argsStr = args.map((arg: any, index: number) => {
640
+ const actualArg = this.arguments?.[index];
641
+ return {
642
+ keyword: arg?.name,
643
+ arg: actualArg,
644
+ };
645
+ }).filter((obj: any) => obj?.arg?.expression).map((obj: any) => `\n${obj?.keyword}: ${obj?.arg?.toJS(shiftState(state, code))}`).join(', ');
646
+ code += argsStr;
607
647
  code += `},\n`;
608
648
  break;
609
649
  }
610
650
  }
611
651
  const bodyArgument = logicArgs.find((arg) => arg.keyword === 'body');
612
652
  if (bodyArgument) {
613
- code += `\n${bodyArgument.keyword}: ${bodyArgument.toJS(shiftState(state, code))}`;
653
+ code += `\n${bodyArgument?.keyword}: ${bodyArgument?.toJS(shiftState(state, code))}`;
614
654
  } else {
615
655
  code += `body: {}`;
616
656
  }
617
657
  } else {
618
658
  code += `path: {},
619
659
  body: {`;
620
- this.arguments.forEach((arg, index) => {
621
- code += `\n${arg.keyword}: ${arg.toJS(shiftState(state, code))}`;
622
- if (index !== this.arguments.length - 1)
623
- code += ', ';
624
- });
660
+ if (!isProcessLogic) {
661
+ const argsStr = args.map((arg: any, index: number) => {
662
+ const actualArg = this.arguments?.[index];
663
+ return {
664
+ keyword: arg?.name,
665
+ arg: actualArg,
666
+ };
667
+ }).filter((obj: any) => obj?.arg?.expression).map((obj: any) => `\n${obj?.keyword}: ${obj?.arg?.toJS(shiftState(state, code))}`).join(', ');
668
+ code += argsStr;
669
+ }
625
670
  code += '\n}';
626
671
  }
627
672
  code += '\n})';
@@ -643,15 +688,18 @@ export class CallLogic extends LogicItem {
643
688
  code += `JSON.parse`;
644
689
  break;
645
690
  }
691
+ } else if (calleeNamespace === 'nasl.browser' || calleeNamespace === 'nasl.auth' || calleeNamespace === 'nasl.configuration') {
692
+ code += `this.$global.${this.calleeName}`;
646
693
  } else {
647
694
  code += `this.${this.calleeName}`;
648
695
  }
649
696
  code += '(';
650
- this.arguments.forEach((arg, index) => {
651
- code += arg.toJS(shiftState(state, code));
652
- if (index !== this.arguments.length - 1)
653
- code += ', ';
654
- });
697
+ this.arguments?.filter((arg) => arg?.expression)
698
+ .forEach((arg, index) => {
699
+ code += arg?.toJS(shiftState(state, code));
700
+ if (index !== this.arguments?.length - 1)
701
+ code += ', ';
702
+ });
655
703
  code += ')';
656
704
  }
657
705
  return code;
@@ -660,14 +708,25 @@ export class CallLogic extends LogicItem {
660
708
  @withSourceMap()
661
709
  toEmbeddedTS(state?: TranslatorState): string {
662
710
  let code = this.calleeKey;
711
+ if (Array.isArray(this.typeArguments) && this.typeArguments.length) {
712
+ // 如果有内容
713
+ const typeAnnotation = this.typeArguments[0];
714
+ code += `<`;
715
+ code += `${typeAnnotation.toEmbeddedTS(shiftState(state, code, { tabSize: 0 }))}>`;
716
+ }
663
717
  code += '(';
664
718
  this.arguments.forEach((arg, index) => {
665
- code += arg.toEmbeddedTS(shiftState(state, code));
719
+ const tsCalleeNamespace = this.tsCalleeNamespace;
720
+ // 页面逻辑先都非必填
721
+ if (tsCalleeNamespace.startsWith('elements') && tsCalleeNamespace.endsWith('logics')) {
722
+ code += arg.toEmbeddedTS(shiftState(state, code), false);
723
+ } else {
724
+ code += arg.toEmbeddedTS(shiftState(state, code));
725
+ }
666
726
  if (index !== this.arguments.length - 1)
667
727
  code += ', ';
668
728
  });
669
729
  code += ');\n';
670
-
671
730
  return code;
672
731
  }
673
732