@lcap/nasl 2.18.0 → 2.19.0-beta.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 (603) hide show
  1. package/out/automate/engine/index.d.ts +2 -2
  2. package/out/automate/engine/index.js +6 -7
  3. package/out/automate/engine/index.js.map +1 -1
  4. package/out/automate/engine/operators.d.ts +2 -2
  5. package/out/automate/engine/operators.js +14 -5
  6. package/out/automate/engine/operators.js.map +1 -1
  7. package/out/automate/engine/uniqueName.d.ts +2 -2
  8. package/out/automate/engine/uniqueName.js +5 -5
  9. package/out/automate/engine/uniqueName.js.map +1 -1
  10. package/out/automate/engine/utils.js +4 -1
  11. package/out/automate/engine/utils.js.map +1 -1
  12. package/out/automate/template/myProcess.d.ts +1 -1
  13. package/out/automate/template/myProcess.js +9023 -9023
  14. package/out/automate/template/myProcess.js.map +1 -1
  15. package/out/bak/translator.js +18 -25
  16. package/out/bak/translator.js.map +1 -1
  17. package/out/common/BaseNode.d.ts +12 -0
  18. package/out/common/BaseNode.js +89 -14
  19. package/out/common/BaseNode.js.map +1 -1
  20. package/out/common/Command.d.ts +1 -0
  21. package/out/common/Command.js +5 -1
  22. package/out/common/Command.js.map +1 -1
  23. package/out/common/EventEmitter.d.ts +1 -0
  24. package/out/common/EventEmitter.js +3 -0
  25. package/out/common/EventEmitter.js.map +1 -1
  26. package/out/common/Messager.js +1 -0
  27. package/out/common/Messager.js.map +1 -1
  28. package/out/concepts/Abort__.d.ts +25 -0
  29. package/out/concepts/Abort__.js +80 -0
  30. package/out/concepts/Abort__.js.map +1 -0
  31. package/out/concepts/Anchor__.d.ts +1 -0
  32. package/out/concepts/Anchor__.js +3 -0
  33. package/out/concepts/Anchor__.js.map +1 -1
  34. package/out/concepts/AnonymousFunction__.d.ts +2 -0
  35. package/out/concepts/AnonymousFunction__.js +43 -2
  36. package/out/concepts/AnonymousFunction__.js.map +1 -1
  37. package/out/concepts/App__.d.ts +109 -256
  38. package/out/concepts/App__.js +351 -392
  39. package/out/concepts/App__.js.map +1 -1
  40. package/out/concepts/Argument__.d.ts +1 -0
  41. package/out/concepts/Argument__.js +3 -0
  42. package/out/concepts/Argument__.js.map +1 -1
  43. package/out/concepts/Assignee__.d.ts +1 -0
  44. package/out/concepts/Assignee__.js +7 -3
  45. package/out/concepts/Assignee__.js.map +1 -1
  46. package/out/concepts/AssignmentLine__.d.ts +1 -0
  47. package/out/concepts/AssignmentLine__.js +3 -0
  48. package/out/concepts/AssignmentLine__.js.map +1 -1
  49. package/out/concepts/Assignment__.d.ts +1 -0
  50. package/out/concepts/Assignment__.js +3 -0
  51. package/out/concepts/Assignment__.js.map +1 -1
  52. package/out/concepts/Attribute__.d.ts +10 -14
  53. package/out/concepts/Attribute__.js +15 -39
  54. package/out/concepts/Attribute__.js.map +1 -1
  55. package/out/concepts/BatchAssignment__.d.ts +3 -0
  56. package/out/concepts/BatchAssignment__.js +111 -47
  57. package/out/concepts/BatchAssignment__.js.map +1 -1
  58. package/out/concepts/BinaryExpression__.d.ts +1 -0
  59. package/out/concepts/BinaryExpression__.js +3 -0
  60. package/out/concepts/BinaryExpression__.js.map +1 -1
  61. package/out/concepts/BindAttribute__.d.ts +13 -0
  62. package/out/concepts/BindAttribute__.js +296 -31
  63. package/out/concepts/BindAttribute__.js.map +1 -1
  64. package/out/concepts/BindDirective__.d.ts +13 -0
  65. package/out/concepts/BindDirective__.js +223 -15
  66. package/out/concepts/BindDirective__.js.map +1 -1
  67. package/out/concepts/BindEvent__.d.ts +6 -0
  68. package/out/concepts/BindEvent__.js +30 -22
  69. package/out/concepts/BindEvent__.js.map +1 -1
  70. package/out/concepts/BindStyle__.d.ts +13 -0
  71. package/out/concepts/BindStyle__.js +200 -1
  72. package/out/concepts/BindStyle__.js.map +1 -1
  73. package/out/concepts/BooleanLiteral__.d.ts +1 -0
  74. package/out/concepts/BooleanLiteral__.js +3 -0
  75. package/out/concepts/BooleanLiteral__.js.map +1 -1
  76. package/out/concepts/CallFunction__.d.ts +1 -0
  77. package/out/concepts/CallFunction__.js +54 -18
  78. package/out/concepts/CallFunction__.js.map +1 -1
  79. package/out/concepts/CallInterface__.d.ts +2 -0
  80. package/out/concepts/CallInterface__.js +55 -7
  81. package/out/concepts/CallInterface__.js.map +1 -1
  82. package/out/concepts/CallLogic__.d.ts +14 -1
  83. package/out/concepts/CallLogic__.js +244 -147
  84. package/out/concepts/CallLogic__.js.map +1 -1
  85. package/out/concepts/CallQueryComponent__.d.ts +3 -0
  86. package/out/concepts/CallQueryComponent__.js +113 -39
  87. package/out/concepts/CallQueryComponent__.js.map +1 -1
  88. package/out/concepts/Comment__.d.ts +1 -0
  89. package/out/concepts/Comment__.js +3 -0
  90. package/out/concepts/Comment__.js.map +1 -1
  91. package/out/concepts/CompletionProperty__.d.ts +2 -0
  92. package/out/concepts/CompletionProperty__.js +4 -0
  93. package/out/concepts/CompletionProperty__.js.map +1 -1
  94. package/out/concepts/ConfigGroup__.d.ts +2 -0
  95. package/out/concepts/ConfigGroup__.js +16 -0
  96. package/out/concepts/ConfigGroup__.js.map +1 -1
  97. package/out/concepts/ConfigPropertyValue__.d.ts +1 -0
  98. package/out/concepts/ConfigPropertyValue__.js +3 -0
  99. package/out/concepts/ConfigPropertyValue__.js.map +1 -1
  100. package/out/concepts/ConfigProperty__.d.ts +24 -0
  101. package/out/concepts/ConfigProperty__.js +83 -0
  102. package/out/concepts/ConfigProperty__.js.map +1 -1
  103. package/out/concepts/Configuration__.d.ts +2 -0
  104. package/out/concepts/Configuration__.js +16 -0
  105. package/out/concepts/Configuration__.js.map +1 -1
  106. package/out/concepts/Constant__.d.ts +6 -0
  107. package/out/concepts/Constant__.js +9 -0
  108. package/out/concepts/Constant__.js.map +1 -1
  109. package/out/concepts/DataElement__.d.ts +1 -0
  110. package/out/concepts/DataElement__.js +3 -0
  111. package/out/concepts/DataElement__.js.map +1 -1
  112. package/out/concepts/DataSource__.d.ts +5 -0
  113. package/out/concepts/DataSource__.js +70 -1
  114. package/out/concepts/DataSource__.js.map +1 -1
  115. package/out/concepts/DatabaseTypeAnnotation__.d.ts +31 -0
  116. package/out/concepts/DatabaseTypeAnnotation__.js +78 -0
  117. package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -0
  118. package/out/concepts/Destination__.d.ts +5 -1
  119. package/out/concepts/Destination__.js +183 -33
  120. package/out/concepts/Destination__.js.map +1 -1
  121. package/out/concepts/End__.d.ts +1 -0
  122. package/out/concepts/End__.js +4 -1
  123. package/out/concepts/End__.js.map +1 -1
  124. package/out/concepts/EntityIndex__.d.ts +1 -0
  125. package/out/concepts/EntityIndex__.js +3 -0
  126. package/out/concepts/EntityIndex__.js.map +1 -1
  127. package/out/concepts/EntityProperty__.d.ts +34 -5
  128. package/out/concepts/EntityProperty__.js +197 -56
  129. package/out/concepts/EntityProperty__.js.map +1 -1
  130. package/out/concepts/Entity__.d.ts +3 -1
  131. package/out/concepts/Entity__.js +33 -1
  132. package/out/concepts/Entity__.js.map +1 -1
  133. package/out/concepts/EnumItem__.d.ts +6 -5
  134. package/out/concepts/EnumItem__.js +9 -6
  135. package/out/concepts/EnumItem__.js.map +1 -1
  136. package/out/concepts/Enum__.d.ts +21 -19
  137. package/out/concepts/Enum__.js +31 -1
  138. package/out/concepts/Enum__.js.map +1 -1
  139. package/out/concepts/Event__.d.ts +1 -0
  140. package/out/concepts/Event__.js +3 -0
  141. package/out/concepts/Event__.js.map +1 -1
  142. package/out/concepts/ExternalDestination__.d.ts +2 -0
  143. package/out/concepts/ExternalDestination__.js +25 -4
  144. package/out/concepts/ExternalDestination__.js.map +1 -1
  145. package/out/concepts/ForEachStatement__.d.ts +1 -0
  146. package/out/concepts/ForEachStatement__.js +5 -0
  147. package/out/concepts/ForEachStatement__.js.map +1 -1
  148. package/out/concepts/FrontendLibrary__.d.ts +213 -0
  149. package/out/concepts/FrontendLibrary__.js +352 -0
  150. package/out/concepts/FrontendLibrary__.js.map +1 -0
  151. package/out/concepts/Frontend__.d.ts +373 -0
  152. package/out/concepts/Frontend__.js +685 -0
  153. package/out/concepts/Frontend__.js.map +1 -0
  154. package/out/concepts/Function__.d.ts +1 -0
  155. package/out/concepts/Function__.js +3 -0
  156. package/out/concepts/Function__.js.map +1 -1
  157. package/out/concepts/Identifier__.d.ts +2 -0
  158. package/out/concepts/Identifier__.js +43 -11
  159. package/out/concepts/Identifier__.js.map +1 -1
  160. package/out/concepts/IfStatement__.d.ts +1 -0
  161. package/out/concepts/IfStatement__.js +5 -2
  162. package/out/concepts/IfStatement__.js.map +1 -1
  163. package/out/concepts/Integration__.d.ts +53 -0
  164. package/out/concepts/Integration__.js +143 -0
  165. package/out/concepts/Integration__.js.map +1 -0
  166. package/out/concepts/InterfaceParam__.d.ts +1 -3
  167. package/out/concepts/InterfaceParam__.js +3 -56
  168. package/out/concepts/InterfaceParam__.js.map +1 -1
  169. package/out/concepts/Interface__.d.ts +14 -0
  170. package/out/concepts/Interface__.js +87 -0
  171. package/out/concepts/Interface__.js.map +1 -1
  172. package/out/concepts/JSBlock__.d.ts +1 -0
  173. package/out/concepts/JSBlock__.js +8 -1
  174. package/out/concepts/JSBlock__.js.map +1 -1
  175. package/out/concepts/JavaLogic__.d.ts +42 -0
  176. package/out/concepts/JavaLogic__.js +122 -0
  177. package/out/concepts/JavaLogic__.js.map +1 -0
  178. package/out/concepts/LogicItem__.d.ts +7 -1
  179. package/out/concepts/LogicItem__.js +11 -0
  180. package/out/concepts/LogicItem__.js.map +1 -1
  181. package/out/concepts/Logic__.d.ts +8 -0
  182. package/out/concepts/Logic__.js +104 -35
  183. package/out/concepts/Logic__.js.map +1 -1
  184. package/out/concepts/MatchCase__.d.ts +1 -0
  185. package/out/concepts/MatchCase__.js +4 -1
  186. package/out/concepts/MatchCase__.js.map +1 -1
  187. package/out/concepts/Match__.d.ts +6 -3
  188. package/out/concepts/Match__.js +123 -22
  189. package/out/concepts/Match__.js.map +1 -1
  190. package/out/concepts/MemberExpression__.d.ts +1 -0
  191. package/out/concepts/MemberExpression__.js +14 -2
  192. package/out/concepts/MemberExpression__.js.map +1 -1
  193. package/out/concepts/MicroApp__.d.ts +51 -0
  194. package/out/concepts/MicroApp__.js +113 -0
  195. package/out/concepts/MicroApp__.js.map +1 -0
  196. package/out/concepts/Module__.d.ts +96 -56
  197. package/out/concepts/Module__.js +169 -58
  198. package/out/concepts/Module__.js.map +1 -1
  199. package/out/concepts/Namespace__.d.ts +1 -0
  200. package/out/concepts/Namespace__.js +3 -0
  201. package/out/concepts/Namespace__.js.map +1 -1
  202. package/out/concepts/NewComposite__.d.ts +345 -0
  203. package/out/concepts/NewComposite__.js +1084 -0
  204. package/out/concepts/NewComposite__.js.map +1 -0
  205. package/out/concepts/NewList__.d.ts +132 -0
  206. package/out/concepts/NewList__.js +378 -0
  207. package/out/concepts/NewList__.js.map +1 -0
  208. package/out/concepts/NewMap__.d.ts +223 -0
  209. package/out/concepts/NewMap__.js +522 -0
  210. package/out/concepts/NewMap__.js.map +1 -0
  211. package/out/concepts/New__.d.ts +20 -0
  212. package/out/concepts/New__.js +69 -0
  213. package/out/concepts/New__.js.map +1 -0
  214. package/out/concepts/NullLiteral__.d.ts +1 -0
  215. package/out/concepts/NullLiteral__.js +3 -0
  216. package/out/concepts/NullLiteral__.js.map +1 -1
  217. package/out/concepts/NumericLiteral__.d.ts +1 -0
  218. package/out/concepts/NumericLiteral__.js +6 -9
  219. package/out/concepts/NumericLiteral__.js.map +1 -1
  220. package/out/concepts/OqlQueryComponent__.d.ts +1 -1
  221. package/out/concepts/OqlQueryComponent__.js +43 -58
  222. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  223. package/out/concepts/Param__.d.ts +9 -3
  224. package/out/concepts/Param__.js +56 -62
  225. package/out/concepts/Param__.js.map +1 -1
  226. package/out/concepts/Point__.d.ts +1 -0
  227. package/out/concepts/Point__.js +3 -0
  228. package/out/concepts/Point__.js.map +1 -1
  229. package/out/concepts/ProcessComponent__.d.ts +1 -0
  230. package/out/concepts/ProcessComponent__.js +3 -0
  231. package/out/concepts/ProcessComponent__.js.map +1 -1
  232. package/out/concepts/ProcessElement__.d.ts +1 -0
  233. package/out/concepts/ProcessElement__.js +47 -14
  234. package/out/concepts/ProcessElement__.js.map +1 -1
  235. package/out/concepts/ProcessOutcome__.d.ts +1 -0
  236. package/out/concepts/ProcessOutcome__.js +4 -1
  237. package/out/concepts/ProcessOutcome__.js.map +1 -1
  238. package/out/concepts/ProcessOutcomes__.d.ts +31 -0
  239. package/out/concepts/{ConstructArgument__.js → ProcessOutcomes__.js} +30 -48
  240. package/out/concepts/ProcessOutcomes__.js.map +1 -0
  241. package/out/concepts/Process__.d.ts +5 -20
  242. package/out/concepts/Process__.js +4 -7
  243. package/out/concepts/Process__.js.map +1 -1
  244. package/out/concepts/QueryAggregateExpression__.d.ts +1 -0
  245. package/out/concepts/QueryAggregateExpression__.js +3 -0
  246. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  247. package/out/concepts/QueryFieldExpression__.d.ts +1 -0
  248. package/out/concepts/QueryFieldExpression__.js +7 -1
  249. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  250. package/out/concepts/QueryFromExpression__.d.ts +1 -0
  251. package/out/concepts/QueryFromExpression__.js +3 -0
  252. package/out/concepts/QueryFromExpression__.js.map +1 -1
  253. package/out/concepts/QueryGroupByExpression__.d.ts +1 -0
  254. package/out/concepts/QueryGroupByExpression__.js +3 -0
  255. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  256. package/out/concepts/QueryJoinExpression__.d.ts +1 -0
  257. package/out/concepts/QueryJoinExpression__.js +3 -0
  258. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  259. package/out/concepts/QueryLimitExpression__.d.ts +1 -0
  260. package/out/concepts/QueryLimitExpression__.js +3 -0
  261. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  262. package/out/concepts/QueryOrderByExpression__.d.ts +1 -0
  263. package/out/concepts/QueryOrderByExpression__.js +3 -0
  264. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  265. package/out/concepts/QuerySelectExpression__.d.ts +105 -16
  266. package/out/concepts/QuerySelectExpression__.js +102 -9
  267. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  268. package/out/concepts/Rect__.d.ts +1 -0
  269. package/out/concepts/Rect__.js +3 -0
  270. package/out/concepts/Rect__.js.map +1 -1
  271. package/out/concepts/Return__.d.ts +6 -3
  272. package/out/concepts/Return__.js +15 -60
  273. package/out/concepts/Return__.js.map +1 -1
  274. package/out/concepts/Role__.d.ts +1 -0
  275. package/out/concepts/Role__.js +3 -0
  276. package/out/concepts/Role__.js.map +1 -1
  277. package/out/concepts/SelectMembers__.d.ts +1 -0
  278. package/out/concepts/SelectMembers__.js +6 -3
  279. package/out/concepts/SelectMembers__.js.map +1 -1
  280. package/out/concepts/Slot__.d.ts +17 -0
  281. package/out/concepts/Slot__.js +46 -0
  282. package/out/concepts/Slot__.js.map +1 -1
  283. package/out/concepts/SqlQueryComponent__.d.ts +1 -1
  284. package/out/concepts/SqlQueryComponent__.js +3 -46
  285. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  286. package/out/concepts/Start__.d.ts +1 -0
  287. package/out/concepts/Start__.js +3 -0
  288. package/out/concepts/Start__.js.map +1 -1
  289. package/out/concepts/StringInterpolation__.d.ts +1 -0
  290. package/out/concepts/StringInterpolation__.js +17 -2
  291. package/out/concepts/StringInterpolation__.js.map +1 -1
  292. package/out/concepts/StringLiteral__.d.ts +1 -0
  293. package/out/concepts/StringLiteral__.js +9 -6
  294. package/out/concepts/StringLiteral__.js.map +1 -1
  295. package/out/concepts/StructureProperty__.d.ts +9 -3
  296. package/out/concepts/StructureProperty__.js +21 -57
  297. package/out/concepts/StructureProperty__.js.map +1 -1
  298. package/out/concepts/Structure__.d.ts +1 -0
  299. package/out/concepts/Structure__.js +3 -0
  300. package/out/concepts/Structure__.js.map +1 -1
  301. package/out/concepts/SwitchCase__.d.ts +1 -0
  302. package/out/concepts/SwitchCase__.js +5 -2
  303. package/out/concepts/SwitchCase__.js.map +1 -1
  304. package/out/concepts/SwitchStatement__.d.ts +1 -0
  305. package/out/concepts/SwitchStatement__.js +3 -0
  306. package/out/concepts/SwitchStatement__.js.map +1 -1
  307. package/out/concepts/Theme__.d.ts +1 -0
  308. package/out/concepts/Theme__.js +3 -0
  309. package/out/concepts/Theme__.js.map +1 -1
  310. package/out/concepts/Transactional__.d.ts +6 -0
  311. package/out/concepts/Transactional__.js +9 -0
  312. package/out/concepts/Transactional__.js.map +1 -1
  313. package/out/concepts/TypeAnnotation__.d.ts +13 -3
  314. package/out/concepts/TypeAnnotation__.js +160 -20
  315. package/out/concepts/TypeAnnotation__.js.map +1 -1
  316. package/out/concepts/TypeParam__.d.ts +1 -0
  317. package/out/concepts/TypeParam__.js +3 -0
  318. package/out/concepts/TypeParam__.js.map +1 -1
  319. package/out/concepts/UnaryExpression__.d.ts +1 -0
  320. package/out/concepts/UnaryExpression__.js +3 -0
  321. package/out/concepts/UnaryExpression__.js.map +1 -1
  322. package/out/concepts/Unparsed__.d.ts +1 -0
  323. package/out/concepts/Unparsed__.js +3 -0
  324. package/out/concepts/Unparsed__.js.map +1 -1
  325. package/out/concepts/UseComponent__.d.ts +1 -0
  326. package/out/concepts/UseComponent__.js +3 -0
  327. package/out/concepts/UseComponent__.js.map +1 -1
  328. package/out/concepts/ValidationRule__.d.ts +2 -0
  329. package/out/concepts/ValidationRule__.js +57 -1
  330. package/out/concepts/ValidationRule__.js.map +1 -1
  331. package/out/concepts/Variable__.d.ts +6 -3
  332. package/out/concepts/Variable__.js +16 -61
  333. package/out/concepts/Variable__.js.map +1 -1
  334. package/out/concepts/ViewBlock__.d.ts +35 -0
  335. package/out/concepts/ViewBlock__.js +85 -0
  336. package/out/concepts/ViewBlock__.js.map +1 -0
  337. package/out/concepts/ViewComponent__.d.ts +93 -0
  338. package/out/concepts/ViewComponent__.js +114 -0
  339. package/out/concepts/ViewComponent__.js.map +1 -1
  340. package/out/concepts/ViewElement__.d.ts +8 -0
  341. package/out/concepts/ViewElement__.js +79 -11
  342. package/out/concepts/ViewElement__.js.map +1 -1
  343. package/out/concepts/View__.d.ts +10 -3
  344. package/out/concepts/View__.js +77 -16
  345. package/out/concepts/View__.js.map +1 -1
  346. package/out/concepts/WhileStatement__.d.ts +1 -0
  347. package/out/concepts/WhileStatement__.js +3 -0
  348. package/out/concepts/WhileStatement__.js.map +1 -1
  349. package/out/concepts/basics/stdlib/nasl.auth.js +1 -1
  350. package/out/concepts/basics/stdlib/nasl.auth.js.map +1 -1
  351. package/out/concepts/basics/stdlib/nasl.collection.js +7 -2
  352. package/out/concepts/basics/stdlib/nasl.collection.js.map +1 -1
  353. package/out/concepts/basics/stdlib/nasl.configuration.js +3 -0
  354. package/out/concepts/basics/stdlib/nasl.configuration.js.map +1 -1
  355. package/out/concepts/basics/stdlib/nasl.core.d.ts +2 -0
  356. package/out/concepts/basics/stdlib/nasl.core.js +34 -0
  357. package/out/concepts/basics/stdlib/nasl.core.js.map +1 -1
  358. package/out/concepts/basics/stdlib/nasl.interface.js +1 -1
  359. package/out/concepts/basics/stdlib/nasl.interface.js.map +1 -1
  360. package/out/concepts/basics/stdlib/nasl.logging.js +5 -0
  361. package/out/concepts/basics/stdlib/nasl.logging.js.map +1 -1
  362. package/out/concepts/basics/stdlib/nasl.process.js +6 -6
  363. package/out/concepts/basics/stdlib/nasl.process.js.map +1 -1
  364. package/out/concepts/basics/stdlib/nasl.ui.js +73 -43
  365. package/out/concepts/basics/stdlib/nasl.ui.js.map +1 -1
  366. package/out/concepts/basics/stdlib/nasl.util.js +293 -36
  367. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  368. package/out/concepts/basics/stdlib/nasl.validation.js +13 -13
  369. package/out/concepts/basics/stdlib/nasl.validation.js.map +1 -1
  370. package/out/concepts/basics/types/coreTypeList.js +1 -5
  371. package/out/concepts/basics/types/coreTypeList.js.map +1 -1
  372. package/out/concepts/basics/types/index.d.ts +1 -0
  373. package/out/concepts/basics/types/index.js +3 -1
  374. package/out/concepts/basics/types/index.js.map +1 -1
  375. package/out/concepts/index__.d.ts +13 -0
  376. package/out/concepts/index__.js +13 -0
  377. package/out/concepts/index__.js.map +1 -1
  378. package/out/decorators/index.js +3 -3
  379. package/out/decorators/index.js.map +1 -1
  380. package/out/enums/KEYWORDS.d.ts +1 -0
  381. package/out/enums/KEYWORDS.js +17 -1
  382. package/out/enums/KEYWORDS.js.map +1 -1
  383. package/out/generator/genBundleFiles.d.ts +6 -3
  384. package/out/generator/genBundleFiles.js +96 -228
  385. package/out/generator/genBundleFiles.js.map +1 -1
  386. package/out/generator/genMetaData.d.ts +2 -11
  387. package/out/generator/genMetaData.js +185 -51
  388. package/out/generator/genMetaData.js.map +1 -1
  389. package/out/generator/genReleaseBody.d.ts +21 -4
  390. package/out/generator/genReleaseBody.js +173 -54
  391. package/out/generator/genReleaseBody.js.map +1 -1
  392. package/out/generator/icestark.d.ts +2 -0
  393. package/out/generator/icestark.js +48 -0
  394. package/out/generator/icestark.js.map +1 -0
  395. package/out/generator/index.d.ts +1 -0
  396. package/out/generator/index.js +1 -0
  397. package/out/generator/index.js.map +1 -1
  398. package/out/generator/microApp.d.ts +2 -0
  399. package/out/generator/microApp.js +35 -0
  400. package/out/generator/microApp.js.map +1 -0
  401. package/out/generator/permission.d.ts +10 -0
  402. package/out/generator/permission.js +230 -0
  403. package/out/generator/permission.js.map +1 -0
  404. package/out/generator/qiankun.d.ts +2 -0
  405. package/out/generator/qiankun.js +52 -0
  406. package/out/generator/qiankun.js.map +1 -0
  407. package/out/index.d.ts +2 -1
  408. package/out/index.js +5 -1
  409. package/out/index.js.map +1 -1
  410. package/out/manager/stepRecorder.d.ts +20 -0
  411. package/out/manager/stepRecorder.js +110 -0
  412. package/out/manager/stepRecorder.js.map +1 -0
  413. package/out/sentry/index.d.ts +29 -0
  414. package/out/sentry/index.js +111 -0
  415. package/out/sentry/index.js.map +1 -0
  416. package/out/server/entity2LogicNamespace.js +72 -10
  417. package/out/server/entity2LogicNamespace.js.map +1 -1
  418. package/out/server/extendBaseNode.js +123 -22
  419. package/out/server/extendBaseNode.js.map +1 -1
  420. package/out/server/formatTsUtils.d.ts +3 -3
  421. package/out/server/formatTsUtils.js +195 -60
  422. package/out/server/formatTsUtils.js.map +1 -1
  423. package/out/server/getLogics.d.ts +3 -2
  424. package/out/server/getLogics.js +74 -17
  425. package/out/server/getLogics.js.map +1 -1
  426. package/out/server/getMemberIdentifier.d.ts +1 -0
  427. package/out/server/getMemberIdentifier.js +35 -7
  428. package/out/server/getMemberIdentifier.js.map +1 -1
  429. package/out/server/getProcesses.js +1 -1
  430. package/out/server/getProcesses.js.map +1 -1
  431. package/out/server/index.js +1 -0
  432. package/out/server/index.js.map +1 -1
  433. package/out/server/naslServer.d.ts +17 -5
  434. package/out/server/naslServer.js +1323 -188
  435. package/out/server/naslServer.js.map +1 -1
  436. package/out/server/process2LogicNamespace.js +8 -0
  437. package/out/server/process2LogicNamespace.js.map +1 -1
  438. package/out/server/translator.js +166 -30
  439. package/out/server/translator.js.map +1 -1
  440. package/out/service/creator/add.configs.js +6 -0
  441. package/out/service/creator/add.configs.js.map +1 -1
  442. package/out/service/creator/errHandles.js +5 -0
  443. package/out/service/creator/errHandles.js.map +1 -1
  444. package/out/service/creator/index.js +2 -0
  445. package/out/service/creator/index.js.map +1 -1
  446. package/out/service/datasource/api.d.ts +12 -0
  447. package/out/service/datasource/api.js +14 -0
  448. package/out/service/datasource/api.js.map +1 -0
  449. package/out/service/datasource/index.d.ts +2 -0
  450. package/out/service/datasource/index.js +10 -0
  451. package/out/service/datasource/index.js.map +1 -0
  452. package/out/service/storage/api.d.ts +27 -0
  453. package/out/service/storage/api.js +19 -0
  454. package/out/service/storage/api.js.map +1 -1
  455. package/out/service/storage/init.d.ts +44 -1
  456. package/out/service/storage/init.js +270 -38
  457. package/out/service/storage/init.js.map +1 -1
  458. package/out/service/storage/service.d.ts +12 -1
  459. package/out/service/storage/service.js +32 -1
  460. package/out/service/storage/service.js.map +1 -1
  461. package/out/templator/genCallComponentLogic.d.ts +1 -1
  462. package/out/templator/genCallComponentLogic.js.map +1 -1
  463. package/out/templator/genCreateBlock.js +7 -4
  464. package/out/templator/genCreateBlock.js.map +1 -1
  465. package/out/templator/genCurdEditMultipleKeyBlock.d.ts +7 -1
  466. package/out/templator/genCurdEditMultipleKeyBlock.js +122 -8
  467. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  468. package/out/templator/genCurdMultipleKeyBlock.js +6 -8
  469. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  470. package/out/templator/genEditTableBlock.js +52 -25
  471. package/out/templator/genEditTableBlock.js.map +1 -1
  472. package/out/templator/genGetBlock.js +4 -3
  473. package/out/templator/genGetBlock.js.map +1 -1
  474. package/out/templator/genGridViewBlock.js +18 -16
  475. package/out/templator/genGridViewBlock.js.map +1 -1
  476. package/out/templator/genListViewBlock.js +12 -6
  477. package/out/templator/genListViewBlock.js.map +1 -1
  478. package/out/templator/genQueryComponent.js +23 -9
  479. package/out/templator/genQueryComponent.js.map +1 -1
  480. package/out/templator/genSelectBlock.d.ts +12 -1
  481. package/out/templator/genSelectBlock.js +273 -2
  482. package/out/templator/genSelectBlock.js.map +1 -1
  483. package/out/templator/genTableBlock.js +10 -14
  484. package/out/templator/genTableBlock.js.map +1 -1
  485. package/out/templator/genUpdateBlock.js +9 -4
  486. package/out/templator/genUpdateBlock.js.map +1 -1
  487. package/out/templator/utils.d.ts +19 -33
  488. package/out/templator/utils.js +11 -8
  489. package/out/templator/utils.js.map +1 -1
  490. package/out/translator/index.js +4 -1
  491. package/out/translator/index.js.map +1 -1
  492. package/out/utils/traverse.js +8 -2
  493. package/out/utils/traverse.js.map +1 -1
  494. package/package.json +2 -2
  495. package/sandbox/stdlib/nasl.auth.ts +1 -1
  496. package/sandbox/stdlib/nasl.core.ts +6 -0
  497. package/sandbox/stdlib/nasl.logging.ts +4 -4
  498. package/sandbox/stdlib/nasl.util.ts +16 -6
  499. package/src/automate/template/myProcess.js +1 -1
  500. package/src/bak/translator.js +4 -1
  501. package/src/common/BaseNode.ts +1 -0
  502. package/src/common/Command.ts +4 -0
  503. package/src/concepts/AnonymousFunction__.ts +48 -2
  504. package/src/concepts/App__.ts +140 -41
  505. package/src/concepts/Assignee__.ts +4 -3
  506. package/src/concepts/BatchAssignment__.ts +111 -51
  507. package/src/concepts/BindAttribute__.ts +9 -2
  508. package/src/concepts/CallFunction__.ts +65 -31
  509. package/src/concepts/CallInterface__.ts +6 -22
  510. package/src/concepts/CallLogic__.ts +90 -88
  511. package/src/concepts/CallQueryComponent__.ts +4 -1
  512. package/src/concepts/DataSource__.ts +56 -1
  513. package/src/concepts/Destination__.ts +92 -22
  514. package/src/concepts/ForEachStatement__.ts +2 -0
  515. package/src/concepts/Identifier__.ts +18 -7
  516. package/src/concepts/LogicItem__.ts +1 -1
  517. package/src/concepts/Logic__.ts +54 -39
  518. package/src/concepts/Match__.ts +12 -8
  519. package/src/concepts/NewComposite__.ts +1354 -0
  520. package/src/concepts/NewList__.ts +445 -0
  521. package/src/concepts/NewMap__.ts +679 -0
  522. package/src/concepts/New__.ts +73 -0
  523. package/src/concepts/OqlQueryComponent__.ts +2 -0
  524. package/src/concepts/Param__.ts +238 -199
  525. package/src/concepts/ProcessElement__.ts +32 -10
  526. package/src/concepts/ProcessOutcome__.ts +1 -1
  527. package/src/concepts/ProcessOutcomes__.ts +90 -0
  528. package/src/concepts/Return__.ts +4 -1
  529. package/src/concepts/SelectMembers__.ts +3 -3
  530. package/src/concepts/StringInterpolation__.ts +21 -11
  531. package/src/concepts/TypeAnnotation__.ts +71 -50
  532. package/src/concepts/ValidationRule__.ts +19 -1
  533. package/src/concepts/Variable__.ts +4 -1
  534. package/src/concepts/ViewElement__.ts +24 -8
  535. package/src/concepts/View__.ts +16 -2
  536. package/src/concepts/basics/stdlib/nasl.auth.ts +1 -1
  537. package/src/concepts/basics/stdlib/nasl.logging.ts +5 -0
  538. package/src/concepts/basics/stdlib/nasl.ui.ts +2 -0
  539. package/src/concepts/basics/stdlib/nasl.util.ts +153 -17
  540. package/src/concepts/index__.ts +5 -0
  541. package/src/enums/KEYWORDS.ts +1 -0
  542. package/src/generator/genBundleFiles.ts +44 -220
  543. package/src/generator/genMetaData.ts +177 -77
  544. package/src/generator/genReleaseBody.ts +30 -5
  545. package/src/generator/index.ts +1 -0
  546. package/src/generator/permission.ts +271 -0
  547. package/src/index.ts +1 -1
  548. package/src/server/entity2LogicNamespace.ts +70 -10
  549. package/src/server/extendBaseNode.ts +10 -21
  550. package/src/server/formatTsUtils.ts +36 -46
  551. package/src/server/getLogics.ts +13 -1
  552. package/src/server/getMemberIdentifier.ts +1 -1
  553. package/src/server/getProcesses.ts +1 -1
  554. package/src/server/naslServer.ts +184 -42
  555. package/src/server/process2LogicNamespace.ts +8 -0
  556. package/src/server/translator.ts +93 -9
  557. package/src/service/creator/add.configs.js +4 -0
  558. package/src/service/datasource/api.js +11 -0
  559. package/src/service/datasource/index.js +6 -0
  560. package/src/service/storage/init.ts +9 -2
  561. package/src/service/video/VideoTranscribe.js +1 -0
  562. package/src/templator/genEditTableBlock.ts +8 -16
  563. package/src/templator/genGetBlock.ts +18 -19
  564. package/src/templator/genGridViewBlock.ts +18 -18
  565. package/src/templator/genListViewBlock.ts +8 -11
  566. package/src/templator/genTableBlock.ts +6 -10
  567. package/ts-worker/lib/tsserver.js +11 -1
  568. package/out/automate/engine/2.14-components.d.ts +0 -1115
  569. package/out/automate/engine/2.14-components.js +0 -1087
  570. package/out/automate/engine/2.14-components.js.map +0 -1
  571. package/out/concepts/ConstructArgument__.d.ts +0 -40
  572. package/out/concepts/ConstructArgument__.js.map +0 -1
  573. package/out/concepts/Construct__.d.ts +0 -189
  574. package/out/concepts/Construct__.js +0 -340
  575. package/out/concepts/Construct__.js.map +0 -1
  576. package/out/concepts/MatchExpression__.d.ts +0 -97
  577. package/out/concepts/MatchExpression__.js +0 -281
  578. package/out/concepts/MatchExpression__.js.map +0 -1
  579. package/out/templator/sql-parser/index.d.ts +0 -1
  580. package/out/templator/sql-parser/index.js +0 -228
  581. package/out/templator/sql-parser/index.js.map +0 -1
  582. package/out/templator/sql-parser/parser.js +0 -26664
  583. package/out/templator/sql-parser/parser.js.map +0 -1
  584. package/src/automate/engine/dist/index.dev.js +0 -517
  585. package/src/common/dist/BaseNode.js +0 -1101
  586. package/src/concepts/basics/stdlib/dist/reference2TypeAnnotationList.js +0 -24
  587. package/src/concepts/dist/Anchor__.js +0 -179
  588. package/src/concepts/dist/Assignment__.js +0 -301
  589. package/src/concepts/dist/CallFunction__.js +0 -473
  590. package/src/concepts/dist/CallInterface__.js +0 -533
  591. package/src/concepts/dist/CallLogic__.js +0 -864
  592. package/src/concepts/dist/ForEachStatement__.js +0 -426
  593. package/src/concepts/dist/MatchCase__.js +0 -587
  594. package/src/concepts/dist/MemberExpression__.js +0 -348
  595. package/src/concepts/dist/Param__.js +0 -537
  596. package/src/concepts/dist/Return__.js +0 -493
  597. package/src/generator/dist/genBundleFiles.js +0 -414
  598. package/src/server/dist/formatTsUtils.js +0 -683
  599. package/src/server/dist/naslServer.js +0 -3396
  600. package/src/service/storage/dist/init.js +0 -541
  601. package/ts-worker/dist/webpack.config.dev.js +0 -104
  602. package/ts-worker/lib/dist/tsserver.dev.js +0 -22953
  603. package/ts-worker/sources/lib/dist/tsserver.dev.js +0 -22912
@@ -1,5 +1,6 @@
1
- import { App, Assignment, BatchAssignment, CallFunction, CallInterface, CallLogic, ForEachStatement, IfStatement, Logic, LogicItem, Match, MatchCase, Role, SwitchCase, SwitchStatement, View, ViewElement, WhileStatement } from '../concepts';
1
+ import { App, Assignment, BatchAssignment, CallFunction, CallInterface, CallLogic, ForEachStatement, IfStatement, Logic, LogicItem, Match, MatchCase, MemberExpression, Role, SwitchCase, SwitchStatement, View, ViewElement, WhileStatement, StringInterpolation } from '../concepts';
2
2
  import { genBundleFiles } from './genBundleFiles';
3
+ import { genPermissionData } from './permission';
3
4
 
4
5
  export async function genReleaseBody(app: App, {
5
6
  env,
@@ -27,18 +28,35 @@ export async function genReleaseBody(app: App, {
27
28
  },
28
29
  staticUrl?: string,
29
30
  }) {
31
+ let authReport: ReturnType<typeof getAuthReport>;
32
+ let logicPageResourceDtoList;
33
+ if (realRelease) {
34
+ authReport = getAuthReport(app);
35
+ logicPageResourceDtoList = await genPermissionData(app);
36
+ }
37
+
30
38
  const body = {
31
- ...(realRelease ? getAuthReport(app) : undefined), // 如果发布需要上报权限,导出源码不需要
39
+ ...authReport, // 如果发布需要上报权限,导出源码不需要
32
40
  noAuthApiPathList: getAuthApiPathList(app),
33
41
  reportIdList: findAllReportIdList(app),
34
42
  appId: app.id,
35
43
  env,
36
44
  replicas,
45
+ callbackLogicsName: app.getExtensionsCallbackLogics(),
37
46
  generateMini,
38
47
  files: [] as Array<{ name: string, content: string }>,
39
48
  };
40
49
 
41
- const NaslAnnotatedJSON = await (app as any).naslServer.getNaslAnnotatedJSON(app, true);
50
+ if (logicPageResourceDtoList)
51
+ Object.assign(body, { logicPageResourceDtoList });
52
+
53
+ let NaslAnnotatedJSON;
54
+ try {
55
+ NaslAnnotatedJSON = await (app as any).naslServer.getNaslAnnotatedJSON(app, true);
56
+ } catch (err) {
57
+ console.error(err);
58
+ throw new Error('代码标注失败');
59
+ }
42
60
 
43
61
  let files = genBundleFiles(app, Object.assign({}, appInfo, {
44
62
  env,
@@ -59,7 +77,9 @@ export async function genReleaseBody(app: App, {
59
77
  const jsonString = JSON.stringify(NaslAnnotatedJSON);
60
78
 
61
79
  // 打印传给服务端的nasl,为了服务端排查问题方便
62
- // console.warn(NaslAnnotatedJSON, '标注后的nasl');
80
+ if (globalThis.window) {
81
+ console.log(NaslAnnotatedJSON, '标注后的nasl');
82
+ }
63
83
  files.push({ name: 'nasl-annotated.json', content: jsonString });
64
84
 
65
85
  body.files = files;
@@ -73,7 +93,7 @@ function getAuthReport(app: App) {
73
93
  const result = {
74
94
  roleList: [] as Array<Role>,
75
95
  resourceList: [] as Array<string>,
76
- resourceDataList: [] as Array<{ value: string, description: string }>,
96
+ resourceDataList: [] as Array<{ value: string, description: string, type: 'page' | 'component' | 'logic' }>,
77
97
  roleResourceMappingList: [] as Array<{ roleName: string, resourcePath: string }>,
78
98
  };
79
99
 
@@ -100,6 +120,7 @@ function getAuthReport(app: App) {
100
120
  result.resourceDataList.push({
101
121
  value: view.authPath,
102
122
  description: view.authDescription,
123
+ type: view.concept === 'View' ? 'page' : 'component',
103
124
  });
104
125
  if (view.bindRoles) {
105
126
  const _arr = view.bindRoles.map((it) => ({
@@ -240,6 +261,10 @@ function getAuthApiPathList(app: App) {
240
261
  logicItems = state.arguments?.map((item) => item.expression);
241
262
  } else if (state instanceof CallInterface) {
242
263
  logicItems = state.arguments?.map((item) => item.expression);
264
+ } else if (state instanceof MemberExpression) {
265
+ logicItems = [state.object, state.property];
266
+ } else if (state instanceof StringInterpolation) {
267
+ logicItems = [...state.expressions];
243
268
  }
244
269
 
245
270
  return logicItems.filter((item) => !!item);
@@ -4,3 +4,4 @@ export * from './styleReplacer';
4
4
  export * from './genBundleFiles';
5
5
  export * from './genMetaData';
6
6
  export * from './genReleaseBody';
7
+ export * from './permission';
@@ -0,0 +1,271 @@
1
+ import { Logic, View, BaseNode, CallLogic, ViewElement, BindEvent, BindAttribute, App, Entity, Module } from "../concepts";
2
+ import { processToTreeFragment } from '../server/process2LogicNamespace';
3
+
4
+ type Usage = {
5
+ node: BaseNode,
6
+ children?: Usage[],
7
+ }
8
+ type ResourceNode = {
9
+ path: string,
10
+ type: 'component' | 'page',
11
+ };
12
+
13
+ function isReadOnly(logic: Logic) {
14
+ return !!logic.module
15
+ || logic.parentNode?.concept === 'Namespace'
16
+ || logic.parentKey === 'readonly'; // process logic
17
+ }
18
+
19
+ const cache = new Map();
20
+ let useCache = false;
21
+ async function findUsage(logic: Logic) {
22
+ if(useCache && cache.has(logic))
23
+ return cache.get(logic);
24
+
25
+ const res = isReadOnly(logic) ? await logic.findReadOnlyLogicUsage() : await logic.findUsage();
26
+ if(useCache) cache.set(logic, res);
27
+ return res;
28
+ }
29
+
30
+ function openCache() {
31
+ useCache = true;
32
+ cache.clear();
33
+ }
34
+ function closeCache() {
35
+ useCache = false;
36
+ cache.clear();
37
+ }
38
+
39
+ async function findViewLogicReferences(logic: Logic, vis: Set<Logic> = new Set()) {
40
+ const usageMap: Map<BaseNode, Usage> = await findUsage(logic);
41
+ const usages: Usage[] = [];
42
+ usageMap.forEach((usage: Usage, node: BaseNode) => {
43
+ if(node instanceof View) usages.push(usage);
44
+ });
45
+
46
+ async function dfs(usage: Usage) {
47
+ if(usage.node instanceof CallLogic) {
48
+ const logic = usage.node.logic;
49
+ if(!vis.has(logic)) {
50
+ vis.add(logic);
51
+ await findViewLogicReferences(logic, vis);
52
+ }
53
+ }
54
+
55
+ if(usage.children) {
56
+ for(const child of usage.children) {
57
+ await dfs(child);
58
+ }
59
+ }
60
+ }
61
+
62
+ for(const usage of usages) {
63
+ await dfs(usage);
64
+ }
65
+
66
+ return Array.from(vis);
67
+ }
68
+
69
+ async function findUIReferences(logic: Logic) {
70
+ const usageMap: Map<BaseNode, Usage> = await findUsage(logic);
71
+ const usages: Usage[] = [];
72
+ usageMap.forEach((usage: Usage, node: BaseNode) => {
73
+ if(node instanceof View) usages.push(usage);
74
+ });
75
+
76
+ const res: Array<View | ViewElement> = [];
77
+ function dfs(usage: Usage, parent: Usage = null) {
78
+ if((usage.node instanceof BindEvent || usage.node instanceof BindAttribute)
79
+ && (parent.node instanceof View || parent.node instanceof ViewElement))
80
+ res.push(parent.node);
81
+
82
+ usage.children?.forEach((child) => {
83
+ dfs(child, usage);
84
+ });
85
+ }
86
+
87
+ usages.forEach((usage) => {
88
+ dfs(usage);
89
+ });
90
+ return res;
91
+ }
92
+
93
+ function findResourcesOfUI(view: View | ViewElement) {
94
+ const res: ResourceNode[] = [];
95
+ let node: BaseNode = view;
96
+ while(node) {
97
+ if(node instanceof View && node.auth)
98
+ res.push({
99
+ path: node.authPath,
100
+ type: 'page',
101
+ });
102
+ else if(node instanceof ViewElement) {
103
+ const hasAuth = node.bindDirectives.find((directive) => directive.name === 'auth');
104
+ if(hasAuth)
105
+ res.push({
106
+ path: node.authPath,
107
+ type: 'component',
108
+ });
109
+ }
110
+ node = node.parentNode;
111
+ }
112
+ return res;
113
+ }
114
+
115
+ function optimizeResourceData(resources: ResourceNode[][]) {
116
+ let res = removeRedundantResourceData(resources);
117
+ res = removeRedundantResourceData2(res);
118
+ return res;
119
+ }
120
+
121
+ // [['b'], ['a' ,'b']] 只需要保留 [['b']]
122
+ function removeRedundantResourceData(resources: ResourceNode[][]) {
123
+ const wm: WeakMap<ResourceNode[], string> = new WeakMap();
124
+ for(const resource of resources) {
125
+ const hash = resource.map(({ path, type }) => `${path}_${type}`)
126
+ .join();
127
+ wm.set(resource, hash);
128
+ }
129
+
130
+ resources.sort((a, b) => wm.get(a).length - wm.get(b).length);
131
+
132
+ const res: ResourceNode[][] = [];
133
+ const hashs: string[] = [];;
134
+
135
+ for(const resource of resources) {
136
+ const hash = wm.get(resource);
137
+ if(hashs.some((h) => hash.endsWith(h))) continue;
138
+
139
+ res.push(resource);
140
+ hashs.push(hash);
141
+ }
142
+ return res;
143
+ }
144
+
145
+ // 子页面有权限,父页面默认也有权限,所以不需要记录父页面权限;
146
+ // 组件有权限,组件所在的页面默认也有权限,所以不需要记录页面权限
147
+ function removeRedundantResourceData2(resources: ResourceNode[][]) {
148
+ return resources.map((resource) => {
149
+ if(resource.length <= 1) return resource;
150
+
151
+ if(resource[0].type === 'page')
152
+ return resource.slice(0, 1);
153
+ else if(resource[0].type === 'component')
154
+ return resource.filter((item) => item.type === 'component');
155
+ });
156
+ }
157
+
158
+ async function findResourcesOfLogic(logic: Logic, uploaders: Map<string, ViewElement[]>) {
159
+ const logics = await findViewLogicReferences(logic);
160
+ logics.push(logic);
161
+
162
+ let UIs: Array<View | ViewElement> = [];
163
+ for(const logic of logics) {
164
+ UIs = UIs.concat(await findUIReferences(logic));
165
+ }
166
+
167
+ const service = logic.toService() as { url: { method: string, path: string } };
168
+ if(uploaders.has(service.url.path)) {
169
+ UIs = UIs.concat(uploaders.get(service.url.path));
170
+ }
171
+
172
+ UIs = Array.from(new Set(UIs));
173
+
174
+ const res = UIs.map((ui) => findResourcesOfUI(ui));
175
+
176
+ return optimizeResourceData(res);
177
+ }
178
+
179
+ function getAllLogics(app: App) {
180
+ const modules: Module[] = [];
181
+ const entities: Entity[] = [];
182
+ const logics: Logic[] = [];
183
+
184
+ if (Array.isArray(app.dataSources)) {
185
+ app.dataSources.forEach((dataSource) => {
186
+ if (Array.isArray(dataSource.entities)) {
187
+ entities.push(...dataSource.entities);
188
+ }
189
+ });
190
+ }
191
+ app.logics && logics.push(...app.logics);
192
+
193
+ app.dependencies && modules.push(...app.dependencies);
194
+ app.interfaceDependencies && modules.push(...app.interfaceDependencies);
195
+
196
+ modules.forEach((module: Module) => {
197
+ module.logics && logics.push(...module.logics);
198
+ if (Array.isArray(module.dataSources)) {
199
+ module.dataSources.forEach((dataSource) => {
200
+ if (Array.isArray(dataSource.entities)) {
201
+ entities.push(...dataSource.entities);
202
+ }
203
+ });
204
+ }
205
+ });
206
+
207
+ const allLogics: Logic[] = [];
208
+
209
+ if (Array.isArray(entities)) {
210
+ entities.forEach((entity) => {
211
+ const ns = entity.ns;
212
+ if (Array.isArray(ns?.logics)) {
213
+ allLogics.push(...ns.logics);
214
+ }
215
+ });
216
+ }
217
+ if (Array.isArray(logics)) {
218
+ allLogics.push(...logics);
219
+ }
220
+
221
+ const processLogics: Logic[] = [];
222
+ const processTreeFragments = (app.processes || [])
223
+ .map(processToTreeFragment);
224
+ processTreeFragments.forEach(tree => {
225
+ processLogics.push(...tree.logics);
226
+ tree.elements.forEach((element) => {
227
+ processLogics.push(...element.logics);
228
+ });
229
+ });
230
+
231
+ return {
232
+ logics: allLogics,
233
+ processLogics: processLogics,
234
+ };
235
+ }
236
+
237
+ function findUploaders(app: App) {
238
+ const map = new Map<string, ViewElement[]>();
239
+ app.traverseChildren((node) => {
240
+ if(node instanceof ViewElement && node.tag?.includes('uploader')) {
241
+ const urlAttr = node.bindAttrs.find((item) => item.name === 'url');
242
+ const url = urlAttr?.value;
243
+ if(url) {
244
+ if(!map.has(url))
245
+ map.set(url, [node]);
246
+ else
247
+ map.get(url).push(node);
248
+ }
249
+ }
250
+ });
251
+ return map;
252
+ }
253
+
254
+ export async function genPermissionData(app: App) {
255
+ // console.time('xxx');
256
+ openCache();
257
+ const logicPageResourceDtoList: { [key: string]: ResourceNode[][] } = {};
258
+ const { logics, processLogics } = getAllLogics(app);
259
+ const uploaders = findUploaders(app);
260
+ for(const logic of [...logics, ...processLogics]) {
261
+ let resources = await findResourcesOfLogic(logic, uploaders);
262
+ if(resources.length === 0) continue;
263
+
264
+ const service = logics.includes(logic) ? logic.toService() : logic.toProcessService() as { url: { method: string, path: string } };
265
+ const key = `${service.url.path}:${service.url.method}`;
266
+ logicPageResourceDtoList[key] = resources;
267
+ }
268
+ closeCache();
269
+ // console.timeEnd('xxx');
270
+ return logicPageResourceDtoList;
271
+ }
package/src/index.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { EventEmitter, EventPayload, BaseNode } from './common';
2
2
  export * from './concepts';
3
- export { genBundleFiles, genMetaData, genReleaseBody } from './generator';
3
+ export { genBundleFiles, genMetaData, genReleaseBody, genPermissionData } from './generator';
4
4
  export * from './translator';
5
5
  // export { default as diagnosticManager } from './manager/diagnostic';
6
6
  export { default as server, NaslServer } from './server';
@@ -1,4 +1,4 @@
1
- import { CallLogic, EntityProperty, BindEvent, App, Namespace, Entity, BaseNode, Logic, Param, TypeAnnotation, Function, Return } from '..';
1
+ import { CallLogic, EntityProperty, BindEvent, App, Namespace, Entity, BaseNode, Logic, Param, TypeAnnotation, Function, Return, AnonymousFunction, NewList } from '..';
2
2
 
3
3
  export function entity2LogicNamespace(entity: Entity) {
4
4
  const properties = entity.properties;
@@ -86,6 +86,26 @@ export function entity2LogicNamespace(entity: Entity) {
86
86
  }),
87
87
  required: true,
88
88
  }),
89
+ new Param({
90
+ name: 'properties',
91
+ defaultExpression: new AnonymousFunction({
92
+ description: '',
93
+ params: [
94
+ new Param({
95
+ name: 'item',
96
+ typeAnnotation: new TypeAnnotation({
97
+ typeKind: 'reference',
98
+ typeNamespace: entity.getNamespace(),
99
+ typeName: entity.name,
100
+ }),
101
+ }),
102
+ ],
103
+ body: new NewList({
104
+ concept: 'NewList',
105
+ }),
106
+ }),
107
+ required: false,
108
+ }),
89
109
  ],
90
110
  returns: [
91
111
  new Return({
@@ -135,15 +155,6 @@ export function entity2LogicNamespace(entity: Entity) {
135
155
  name: 'updateBy',
136
156
  description: '根据条件,将body除id外所有属性更新到数据记录',
137
157
  params: [
138
- new Param({
139
- name: 'body',
140
- typeAnnotation: new TypeAnnotation({
141
- typeKind: 'reference',
142
- typeNamespace: entity.getNamespace(),
143
- typeName: entity.name,
144
- }),
145
- required: true,
146
- }),
147
158
  new Param({
148
159
  name: 'filter',
149
160
  defaultExpression: new Function({
@@ -167,6 +178,35 @@ export function entity2LogicNamespace(entity: Entity) {
167
178
  }),
168
179
  required: true,
169
180
  }),
181
+ new Param({
182
+ name: 'body',
183
+ typeAnnotation: new TypeAnnotation({
184
+ typeKind: 'reference',
185
+ typeNamespace: entity.getNamespace(),
186
+ typeName: entity.name,
187
+ }),
188
+ required: true,
189
+ }),
190
+ new Param({
191
+ name: 'properties',
192
+ defaultExpression: new AnonymousFunction({
193
+ description: '',
194
+ params: [
195
+ new Param({
196
+ name: 'item',
197
+ typeAnnotation: new TypeAnnotation({
198
+ typeKind: 'reference',
199
+ typeNamespace: entity.getNamespace(),
200
+ typeName: entity.name,
201
+ }),
202
+ }),
203
+ ],
204
+ body: new NewList({
205
+ concept: 'NewList',
206
+ }),
207
+ }),
208
+ required: false,
209
+ }),
170
210
  ],
171
211
  returns: [
172
212
  new Return({
@@ -257,6 +297,26 @@ export function entity2LogicNamespace(entity: Entity) {
257
297
  }),
258
298
  required: true,
259
299
  }),
300
+ new Param({
301
+ name: 'properties',
302
+ defaultExpression: new AnonymousFunction({
303
+ description: '',
304
+ params: [
305
+ new Param({
306
+ name: 'item',
307
+ typeAnnotation: new TypeAnnotation({
308
+ typeKind: 'reference',
309
+ typeNamespace: entity.getNamespace(),
310
+ typeName: entity.name,
311
+ }),
312
+ }),
313
+ ],
314
+ body: new NewList({
315
+ concept: 'NewList',
316
+ }),
317
+ }),
318
+ required: false,
319
+ }),
260
320
  ],
261
321
  returns: [
262
322
  new Return({
@@ -161,19 +161,6 @@ BaseNode.prototype.prepareDelete = async function prepareDelete() {
161
161
  refsList = refsList.filter((item) =>
162
162
  // 因为ui组件本身会多渲染一次,就先过滤一个
163
163
  !(item.lineText.includes(': nasl.ui.')));
164
- // 删除参数单独处理
165
- if (node instanceof Param) {
166
- const methodRefs: tsProtocol.ReferencesResponseItem[] = [];
167
- refsList.forEach((item) => {
168
- // 入参查找引用,查到logic 和自己,内容完全一样,就保留一个
169
- const find = methodRefs.find((findItem) => item.lineText === findItem.lineText);
170
- if (!find) {
171
- methodRefs.push(item);
172
- }
173
- });
174
- refsList = methodRefs;
175
- }
176
-
177
164
  // delete的弹框展示
178
165
  const confirmParms = {
179
166
  actionType: 'delete',
@@ -182,7 +169,7 @@ BaseNode.prototype.prepareDelete = async function prepareDelete() {
182
169
  icon: 'warning',
183
170
  };
184
171
  let callback = null;
185
- if (refsList.length <= 1) {
172
+ if (refsList.length <= 1 || (node instanceof Param && node.parentNode instanceof Logic && refsList.length <= 2)) {
186
173
  // 页面组件直接删除然后return
187
174
  if (node instanceof ViewElement) {
188
175
  this.delete();
@@ -235,6 +222,7 @@ BaseNode.prototype.prepareDelete = async function prepareDelete() {
235
222
  App.emit('collect:start', {
236
223
  actionMsg: '删除参数',
237
224
  });
225
+ const Index = node.getIndexOfParent();
238
226
  this.delete();
239
227
  refsList.forEach((record) => {
240
228
  const fileNode = naslServer.file2NodeMap.get(record.file);
@@ -242,11 +230,12 @@ BaseNode.prototype.prepareDelete = async function prepareDelete() {
242
230
  return null;
243
231
  const minRange: MinRange = naslServer._findMinRange(record, fileNode as FileNode);
244
232
  if (minRange) {
245
- if (minRange.node instanceof CallLogic) {
246
- minRange.node.setCalleeArgName(parentNode as Logic);
247
- }
248
- if (minRange.node instanceof Destination) {
249
- minRange.node.setViewArgument(parentNode as View);
233
+ /**
234
+ * 调用方是 调用逻辑或者跳转页面, 去删除对应位置的内容
235
+ * 如果是跳转页面,因为流程下的特殊翻译,需要过滤下 非页面下的参数修改,查找到页面跳转
236
+ */
237
+ if (minRange.node instanceof CallLogic || (node.parentNode instanceof View && minRange.node instanceof Destination)) {
238
+ minRange.node.deleteCalleeArg(Index);
250
239
  }
251
240
  }
252
241
  });
@@ -354,14 +343,14 @@ BaseNode.prototype.addParamsPrepare = async function addParamsPrepare(needAdd =
354
343
  /**
355
344
  * 在原型上增加方法来调用
356
345
  */
357
- BaseNode.prototype.getCurrentTypeAnnotation = async function getCurrentTypeAnnotation() {
346
+ BaseNode.prototype.getCurrentTypeAnnotation = async function getCurrentTypeAnnotation(outTime? :number) {
358
347
  try {
359
348
  /**
360
349
  * 查找这个节点是不是有依赖
361
350
  */
362
351
  const app = this.getAncestor('App');
363
352
  const naslServer = (app as any).naslServer as NaslServer;
364
- return naslServer.getCurrentTypeAnnotation(this);
353
+ return naslServer.getCurrentTypeAnnotation(this, outTime || 2000);
365
354
  } catch (err) {
366
355
  console.log(err);
367
356
  }