@lcap/nasl 3.2.0-beta.4 → 3.3.0-alpha

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 (774) hide show
  1. package/out/automate/upgrader/2.20.js +1 -1
  2. package/out/automate/upgrader/2.20.js.map +1 -1
  3. package/out/bak/translator.js +11 -15
  4. package/out/bak/translator.js.map +1 -1
  5. package/out/breakpoint/generator/AfterStartNode.js +3 -1
  6. package/out/breakpoint/generator/AfterStartNode.js.map +1 -1
  7. package/out/breakpoint/generator/BeforeEndNode.js.map +1 -1
  8. package/out/breakpoint/generator/BreakpointNode.d.ts +1 -0
  9. package/out/breakpoint/generator/BreakpointNode.js +48 -15
  10. package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
  11. package/out/breakpoint/generator/CallbackNode.d.ts +4 -0
  12. package/out/breakpoint/generator/CallbackNode.js +22 -0
  13. package/out/breakpoint/generator/CallbackNode.js.map +1 -0
  14. package/out/breakpoint/generator/FragmentNode.d.ts +4 -0
  15. package/out/breakpoint/generator/FragmentNode.js +18 -0
  16. package/out/breakpoint/generator/FragmentNode.js.map +1 -0
  17. package/out/breakpoint/generator/index.js +25 -4
  18. package/out/breakpoint/generator/index.js.map +1 -1
  19. package/out/breakpoint/shared/constants.d.ts +3 -0
  20. package/out/breakpoint/shared/constants.js +6 -1
  21. package/out/breakpoint/shared/constants.js.map +1 -1
  22. package/out/breakpoint/shared/operations.js.map +1 -1
  23. package/out/breakpoint/shared/socket.d.ts +1 -1
  24. package/out/breakpoint/shared/socket.js +36 -7
  25. package/out/breakpoint/shared/socket.js.map +1 -1
  26. package/out/breakpoint/shared/utils.d.ts +2 -0
  27. package/out/breakpoint/shared/utils.js +15 -2
  28. package/out/breakpoint/shared/utils.js.map +1 -1
  29. package/out/breakpoint/store/core.d.ts +48 -2
  30. package/out/breakpoint/store/core.js +58 -32
  31. package/out/breakpoint/store/core.js.map +1 -1
  32. package/out/breakpoint/store/dock.js +1 -1
  33. package/out/breakpoint/store/dock.js.map +1 -1
  34. package/out/common/BaseNode.d.ts +1 -1
  35. package/out/common/BaseNode.js +105 -51
  36. package/out/common/BaseNode.js.map +1 -1
  37. package/out/common/Command.d.ts +13 -2
  38. package/out/common/Command.js +37 -9
  39. package/out/common/Command.js.map +1 -1
  40. package/out/common/EventEmitter.js.map +1 -1
  41. package/out/common/Messager.d.ts +3 -3
  42. package/out/common/Messager.js +6 -7
  43. package/out/common/Messager.js.map +1 -1
  44. package/out/common/asyncFuncMap.js.map +1 -1
  45. package/out/concepts/Abort__.js +6 -5
  46. package/out/concepts/Abort__.js.map +1 -1
  47. package/out/concepts/Anchor__.d.ts +4 -3
  48. package/out/concepts/Anchor__.js +24 -7
  49. package/out/concepts/Anchor__.js.map +1 -1
  50. package/out/concepts/AnonymousFunction__.d.ts +22 -21
  51. package/out/concepts/AnonymousFunction__.js +48 -22
  52. package/out/concepts/AnonymousFunction__.js.map +1 -1
  53. package/out/concepts/App__.d.ts +421 -247
  54. package/out/concepts/App__.js +286 -54
  55. package/out/concepts/App__.js.map +1 -1
  56. package/out/concepts/Argument__.d.ts +4 -3
  57. package/out/concepts/Argument__.js +42 -11
  58. package/out/concepts/Argument__.js.map +1 -1
  59. package/out/concepts/Assignee__.d.ts +45 -45
  60. package/out/concepts/Assignee__.js +15 -15
  61. package/out/concepts/Assignee__.js.map +1 -1
  62. package/out/concepts/AssignmentLine__.js +6 -5
  63. package/out/concepts/AssignmentLine__.js.map +1 -1
  64. package/out/concepts/Assignment__.d.ts +7 -6
  65. package/out/concepts/Assignment__.js +40 -22
  66. package/out/concepts/Assignment__.js.map +1 -1
  67. package/out/concepts/Attribute__.d.ts +3 -3
  68. package/out/concepts/Attribute__.js +8 -7
  69. package/out/concepts/Attribute__.js.map +1 -1
  70. package/out/concepts/AuthInterface__.js +4 -3
  71. package/out/concepts/AuthInterface__.js.map +1 -1
  72. package/out/concepts/AuthLogicForCallInterface__.d.ts +15 -15
  73. package/out/concepts/AuthLogicForCallInterface__.js +46 -27
  74. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  75. package/out/concepts/AuthLogic__.js +27 -13
  76. package/out/concepts/AuthLogic__.js.map +1 -1
  77. package/out/concepts/BackendVariable__.d.ts +5 -5
  78. package/out/concepts/BackendVariable__.js +23 -26
  79. package/out/concepts/BackendVariable__.js.map +1 -1
  80. package/out/concepts/Backend__.d.ts +18 -18
  81. package/out/concepts/Backend__.js +13 -13
  82. package/out/concepts/Backend__.js.map +1 -1
  83. package/out/concepts/BatchAssignment__.d.ts +34 -33
  84. package/out/concepts/BatchAssignment__.js +83 -43
  85. package/out/concepts/BatchAssignment__.js.map +1 -1
  86. package/out/concepts/BinaryExpression__.d.ts +7 -6
  87. package/out/concepts/BinaryExpression__.js +60 -24
  88. package/out/concepts/BinaryExpression__.js.map +1 -1
  89. package/out/concepts/BindAttribute__.d.ts +37 -37
  90. package/out/concepts/BindAttribute__.js +101 -48
  91. package/out/concepts/BindAttribute__.js.map +1 -1
  92. package/out/concepts/BindDirective__.d.ts +13 -13
  93. package/out/concepts/BindDirective__.js +23 -21
  94. package/out/concepts/BindDirective__.js.map +1 -1
  95. package/out/concepts/BindEvent__.d.ts +28 -28
  96. package/out/concepts/BindEvent__.js +99 -48
  97. package/out/concepts/BindEvent__.js.map +1 -1
  98. package/out/concepts/BindStyle__.d.ts +14 -15
  99. package/out/concepts/BindStyle__.js +16 -16
  100. package/out/concepts/BindStyle__.js.map +1 -1
  101. package/out/concepts/BooleanLiteral__.d.ts +1 -0
  102. package/out/concepts/BooleanLiteral__.js +12 -5
  103. package/out/concepts/BooleanLiteral__.js.map +1 -1
  104. package/out/concepts/CallAuthInterface__.d.ts +15 -15
  105. package/out/concepts/CallAuthInterface__.js +23 -22
  106. package/out/concepts/CallAuthInterface__.js.map +1 -1
  107. package/out/concepts/CallConnector__.d.ts +11 -9
  108. package/out/concepts/CallConnector__.js +79 -36
  109. package/out/concepts/CallConnector__.js.map +1 -1
  110. package/out/concepts/CallFunction__.d.ts +17 -16
  111. package/out/concepts/CallFunction__.js +95 -63
  112. package/out/concepts/CallFunction__.js.map +1 -1
  113. package/out/concepts/CallInterface__.d.ts +9 -8
  114. package/out/concepts/CallInterface__.js +71 -30
  115. package/out/concepts/CallInterface__.js.map +1 -1
  116. package/out/concepts/CallLogic__.d.ts +20 -19
  117. package/out/concepts/CallLogic__.js +155 -52
  118. package/out/concepts/CallLogic__.js.map +1 -1
  119. package/out/concepts/CallQueryComponent__.d.ts +51 -51
  120. package/out/concepts/CallQueryComponent__.js +66 -63
  121. package/out/concepts/CallQueryComponent__.js.map +1 -1
  122. package/out/concepts/Comment__.d.ts +1 -0
  123. package/out/concepts/Comment__.js +13 -6
  124. package/out/concepts/Comment__.js.map +1 -1
  125. package/out/concepts/CompletionProperty__.d.ts +3 -3
  126. package/out/concepts/CompletionProperty__.js +8 -7
  127. package/out/concepts/CompletionProperty__.js.map +1 -1
  128. package/out/concepts/ConfigGroup__.d.ts +15 -15
  129. package/out/concepts/ConfigGroup__.js +9 -9
  130. package/out/concepts/ConfigGroup__.js.map +1 -1
  131. package/out/concepts/ConfigPropertyValue__.js +4 -3
  132. package/out/concepts/ConfigPropertyValue__.js.map +1 -1
  133. package/out/concepts/ConfigProperty__.d.ts +15 -15
  134. package/out/concepts/ConfigProperty__.js +10 -10
  135. package/out/concepts/ConfigProperty__.js.map +1 -1
  136. package/out/concepts/Configuration__.d.ts +15 -15
  137. package/out/concepts/Configuration__.js +9 -9
  138. package/out/concepts/Configuration__.js.map +1 -1
  139. package/out/concepts/Connection__.d.ts +166 -0
  140. package/out/concepts/Connection__.js +332 -0
  141. package/out/concepts/Connection__.js.map +1 -0
  142. package/out/concepts/ConnectorTrigger__.js +4 -3
  143. package/out/concepts/ConnectorTrigger__.js.map +1 -1
  144. package/out/concepts/Connector__.d.ts +66 -66
  145. package/out/concepts/Connector__.js +16 -15
  146. package/out/concepts/Connector__.js.map +1 -1
  147. package/out/concepts/Constant__.d.ts +3 -3
  148. package/out/concepts/Constant__.js +8 -7
  149. package/out/concepts/Constant__.js.map +1 -1
  150. package/out/concepts/DataElement__.d.ts +3 -3
  151. package/out/concepts/DataElement__.js +6 -5
  152. package/out/concepts/DataElement__.js.map +1 -1
  153. package/out/concepts/DataSource__.d.ts +15 -15
  154. package/out/concepts/DataSource__.js +55 -39
  155. package/out/concepts/DataSource__.js.map +1 -1
  156. package/out/concepts/DatabaseTypeAnnotation__.js +4 -3
  157. package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -1
  158. package/out/concepts/Destination__.d.ts +12 -11
  159. package/out/concepts/Destination__.js +93 -36
  160. package/out/concepts/Destination__.js.map +1 -1
  161. package/out/concepts/End__.js +15 -13
  162. package/out/concepts/End__.js.map +1 -1
  163. package/out/concepts/EntityIndex__.d.ts +1 -1
  164. package/out/concepts/EntityIndex__.js +6 -5
  165. package/out/concepts/EntityIndex__.js.map +1 -1
  166. package/out/concepts/EntityProperty__.d.ts +8 -7
  167. package/out/concepts/EntityProperty__.js +39 -24
  168. package/out/concepts/EntityProperty__.js.map +1 -1
  169. package/out/concepts/Entity__.d.ts +31 -30
  170. package/out/concepts/Entity__.js +40 -16
  171. package/out/concepts/Entity__.js.map +1 -1
  172. package/out/concepts/EnumItem__.d.ts +1 -0
  173. package/out/concepts/EnumItem__.js +12 -5
  174. package/out/concepts/EnumItem__.js.map +1 -1
  175. package/out/concepts/Enum__.d.ts +9 -8
  176. package/out/concepts/Enum__.js +24 -11
  177. package/out/concepts/Enum__.js.map +1 -1
  178. package/out/concepts/Event__.d.ts +15 -15
  179. package/out/concepts/Event__.js +6 -5
  180. package/out/concepts/Event__.js.map +1 -1
  181. package/out/concepts/ExternalDestination__.d.ts +6 -6
  182. package/out/concepts/ExternalDestination__.js +12 -11
  183. package/out/concepts/ExternalDestination__.js.map +1 -1
  184. package/out/concepts/ForEachStatement__.d.ts +25 -24
  185. package/out/concepts/ForEachStatement__.js +101 -36
  186. package/out/concepts/ForEachStatement__.js.map +1 -1
  187. package/out/concepts/FrontendLibrary__.d.ts +30 -30
  188. package/out/concepts/FrontendLibrary__.js +12 -13
  189. package/out/concepts/FrontendLibrary__.js.map +1 -1
  190. package/out/concepts/FrontendVariable__.js +4 -3
  191. package/out/concepts/FrontendVariable__.js.map +1 -1
  192. package/out/concepts/Frontend__.d.ts +64 -65
  193. package/out/concepts/Frontend__.js +23 -27
  194. package/out/concepts/Frontend__.js.map +1 -1
  195. package/out/concepts/Function__.d.ts +64 -63
  196. package/out/concepts/Function__.js +49 -21
  197. package/out/concepts/Function__.js.map +1 -1
  198. package/out/concepts/Identifier__.js +37 -31
  199. package/out/concepts/Identifier__.js.map +1 -1
  200. package/out/concepts/IfStatement__.d.ts +20 -19
  201. package/out/concepts/IfStatement__.js +64 -34
  202. package/out/concepts/IfStatement__.js.map +1 -1
  203. package/out/concepts/Integration__.d.ts +3 -3
  204. package/out/concepts/Integration__.js +8 -7
  205. package/out/concepts/Integration__.js.map +1 -1
  206. package/out/concepts/InterfaceParam__.d.ts +3 -3
  207. package/out/concepts/InterfaceParam__.js +7 -6
  208. package/out/concepts/InterfaceParam__.js.map +1 -1
  209. package/out/concepts/Interface__.d.ts +33 -33
  210. package/out/concepts/Interface__.js +19 -20
  211. package/out/concepts/Interface__.js.map +1 -1
  212. package/out/concepts/JSBlock__.d.ts +1 -0
  213. package/out/concepts/JSBlock__.js +12 -5
  214. package/out/concepts/JSBlock__.js.map +1 -1
  215. package/out/concepts/JavaLogic__.js +10 -9
  216. package/out/concepts/JavaLogic__.js.map +1 -1
  217. package/out/concepts/LogicItem__.d.ts +6 -0
  218. package/out/concepts/LogicItem__.js +14 -5
  219. package/out/concepts/LogicItem__.js.map +1 -1
  220. package/out/concepts/Logic__.d.ts +80 -79
  221. package/out/concepts/Logic__.js +204 -58
  222. package/out/concepts/Logic__.js.map +1 -1
  223. package/out/concepts/MatchCase__.d.ts +39 -38
  224. package/out/concepts/MatchCase__.js +122 -37
  225. package/out/concepts/MatchCase__.js.map +1 -1
  226. package/out/concepts/Match__.d.ts +13 -11
  227. package/out/concepts/Match__.js +128 -60
  228. package/out/concepts/Match__.js.map +1 -1
  229. package/out/concepts/MemberExpression__.d.ts +7 -6
  230. package/out/concepts/MemberExpression__.js +52 -22
  231. package/out/concepts/MemberExpression__.js.map +1 -1
  232. package/out/concepts/MicroApp__.js +4 -3
  233. package/out/concepts/MicroApp__.js.map +1 -1
  234. package/out/concepts/Module__.d.ts +239 -155
  235. package/out/concepts/Module__.js +139 -33
  236. package/out/concepts/Module__.js.map +1 -1
  237. package/out/concepts/MsgTriggerEvent__.d.ts +15 -15
  238. package/out/concepts/MsgTriggerEvent__.js +6 -5
  239. package/out/concepts/MsgTriggerEvent__.js.map +1 -1
  240. package/out/concepts/MsgTriggerLauncher__.d.ts +23 -15
  241. package/out/concepts/MsgTriggerLauncher__.js +24 -5
  242. package/out/concepts/MsgTriggerLauncher__.js.map +1 -1
  243. package/out/concepts/Namespace__.d.ts +180 -180
  244. package/out/concepts/Namespace__.js +33 -34
  245. package/out/concepts/Namespace__.js.map +1 -1
  246. package/out/concepts/NewComposite__.d.ts +49 -48
  247. package/out/concepts/NewComposite__.js +164 -49
  248. package/out/concepts/NewComposite__.js.map +1 -1
  249. package/out/concepts/NewList__.d.ts +19 -18
  250. package/out/concepts/NewList__.js +29 -12
  251. package/out/concepts/NewList__.js.map +1 -1
  252. package/out/concepts/NewMap__.d.ts +34 -33
  253. package/out/concepts/NewMap__.js +81 -72
  254. package/out/concepts/NewMap__.js.map +1 -1
  255. package/out/concepts/New__.js +6 -5
  256. package/out/concepts/New__.js.map +1 -1
  257. package/out/concepts/NullLiteral__.js +6 -5
  258. package/out/concepts/NullLiteral__.js.map +1 -1
  259. package/out/concepts/NumericLiteral__.d.ts +4 -3
  260. package/out/concepts/NumericLiteral__.js +15 -8
  261. package/out/concepts/NumericLiteral__.js.map +1 -1
  262. package/out/concepts/OqlQueryComponent__.d.ts +4 -3
  263. package/out/concepts/OqlQueryComponent__.js +25 -16
  264. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  265. package/out/concepts/OverriddenLogic__.d.ts +79 -79
  266. package/out/concepts/OverriddenLogic__.js +79 -58
  267. package/out/concepts/OverriddenLogic__.js.map +1 -1
  268. package/out/concepts/Param__.d.ts +6 -5
  269. package/out/concepts/Param__.js +66 -29
  270. package/out/concepts/Param__.js.map +1 -1
  271. package/out/concepts/Point__.js +4 -3
  272. package/out/concepts/Point__.js.map +1 -1
  273. package/out/concepts/ProcessComponent__.d.ts +30 -30
  274. package/out/concepts/ProcessComponent__.js +8 -7
  275. package/out/concepts/ProcessComponent__.js.map +1 -1
  276. package/out/concepts/ProcessElement__.d.ts +96 -96
  277. package/out/concepts/ProcessElement__.js +34 -34
  278. package/out/concepts/ProcessElement__.js.map +1 -1
  279. package/out/concepts/ProcessOutcome__.js +6 -5
  280. package/out/concepts/ProcessOutcome__.js.map +1 -1
  281. package/out/concepts/ProcessOutcomes__.js +6 -5
  282. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  283. package/out/concepts/Process__.d.ts +75 -75
  284. package/out/concepts/Process__.js +33 -30
  285. package/out/concepts/Process__.js.map +1 -1
  286. package/out/concepts/QueryAggregateExpression__.d.ts +3 -3
  287. package/out/concepts/QueryAggregateExpression__.js +8 -7
  288. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  289. package/out/concepts/QueryFieldExpression__.js +7 -6
  290. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  291. package/out/concepts/QueryFromExpression__.d.ts +8 -8
  292. package/out/concepts/QueryFromExpression__.js +8 -7
  293. package/out/concepts/QueryFromExpression__.js.map +1 -1
  294. package/out/concepts/QueryGroupByExpression__.d.ts +3 -3
  295. package/out/concepts/QueryGroupByExpression__.js +9 -10
  296. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  297. package/out/concepts/QueryJoinExpression__.d.ts +23 -23
  298. package/out/concepts/QueryJoinExpression__.js +11 -10
  299. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  300. package/out/concepts/QueryLimitExpression__.d.ts +6 -6
  301. package/out/concepts/QueryLimitExpression__.js +9 -8
  302. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  303. package/out/concepts/QueryOrderByExpression__.d.ts +6 -6
  304. package/out/concepts/QueryOrderByExpression__.js +9 -8
  305. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  306. package/out/concepts/QuerySelectExpression__.d.ts +30 -30
  307. package/out/concepts/QuerySelectExpression__.js +9 -8
  308. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  309. package/out/concepts/Rect__.js +4 -3
  310. package/out/concepts/Rect__.js.map +1 -1
  311. package/out/concepts/Return__.d.ts +4 -3
  312. package/out/concepts/Return__.js +37 -18
  313. package/out/concepts/Return__.js.map +1 -1
  314. package/out/concepts/Role__.js +9 -9
  315. package/out/concepts/Role__.js.map +1 -1
  316. package/out/concepts/SelectMembers__.d.ts +18 -18
  317. package/out/concepts/SelectMembers__.js +10 -9
  318. package/out/concepts/SelectMembers__.js.map +1 -1
  319. package/out/concepts/Slot__.d.ts +3 -3
  320. package/out/concepts/Slot__.js +6 -5
  321. package/out/concepts/Slot__.js.map +1 -1
  322. package/out/concepts/SqlQueryComponent__.d.ts +4 -3
  323. package/out/concepts/SqlQueryComponent__.js +21 -12
  324. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  325. package/out/concepts/Start__.js +6 -5
  326. package/out/concepts/Start__.js.map +1 -1
  327. package/out/concepts/StringInterpolation__.d.ts +16 -15
  328. package/out/concepts/StringInterpolation__.js +37 -14
  329. package/out/concepts/StringInterpolation__.js.map +1 -1
  330. package/out/concepts/StringLiteral__.d.ts +1 -0
  331. package/out/concepts/StringLiteral__.js +13 -8
  332. package/out/concepts/StringLiteral__.js.map +1 -1
  333. package/out/concepts/StructureProperty__.d.ts +4 -3
  334. package/out/concepts/StructureProperty__.js +22 -9
  335. package/out/concepts/StructureProperty__.js.map +1 -1
  336. package/out/concepts/Structure__.d.ts +31 -30
  337. package/out/concepts/Structure__.js +27 -15
  338. package/out/concepts/Structure__.js.map +1 -1
  339. package/out/concepts/SwitchCase__.d.ts +12 -11
  340. package/out/concepts/SwitchCase__.js +69 -31
  341. package/out/concepts/SwitchCase__.js.map +1 -1
  342. package/out/concepts/SwitchStatement__.d.ts +9 -8
  343. package/out/concepts/SwitchStatement__.js +27 -7
  344. package/out/concepts/SwitchStatement__.js.map +1 -1
  345. package/out/concepts/Theme__.js +4 -3
  346. package/out/concepts/Theme__.js.map +1 -1
  347. package/out/concepts/Transactional__.js +4 -3
  348. package/out/concepts/Transactional__.js.map +1 -1
  349. package/out/concepts/TriggerEvent__.d.ts +15 -15
  350. package/out/concepts/TriggerEvent__.js +6 -5
  351. package/out/concepts/TriggerEvent__.js.map +1 -1
  352. package/out/concepts/TriggerLauncher__.d.ts +15 -10
  353. package/out/concepts/TriggerLauncher__.js +54 -32
  354. package/out/concepts/TriggerLauncher__.js.map +1 -1
  355. package/out/concepts/TypeAnnotation__.d.ts +28 -27
  356. package/out/concepts/TypeAnnotation__.js +144 -124
  357. package/out/concepts/TypeAnnotation__.js.map +1 -1
  358. package/out/concepts/TypeParam__.d.ts +1 -0
  359. package/out/concepts/TypeParam__.js +12 -5
  360. package/out/concepts/TypeParam__.js.map +1 -1
  361. package/out/concepts/UnaryExpression__.d.ts +4 -3
  362. package/out/concepts/UnaryExpression__.js +31 -20
  363. package/out/concepts/UnaryExpression__.js.map +1 -1
  364. package/out/concepts/Unparsed__.d.ts +1 -0
  365. package/out/concepts/Unparsed__.js +12 -5
  366. package/out/concepts/Unparsed__.js.map +1 -1
  367. package/out/concepts/UseComponent__.js +4 -3
  368. package/out/concepts/UseComponent__.js.map +1 -1
  369. package/out/concepts/ValidationRule__.d.ts +14 -14
  370. package/out/concepts/ValidationRule__.js +19 -17
  371. package/out/concepts/ValidationRule__.js.map +1 -1
  372. package/out/concepts/Variable__.d.ts +4 -3
  373. package/out/concepts/Variable__.js +39 -23
  374. package/out/concepts/Variable__.js.map +1 -1
  375. package/out/concepts/ViewBlock__.js +4 -3
  376. package/out/concepts/ViewBlock__.js.map +1 -1
  377. package/out/concepts/ViewComponent__.d.ts +90 -90
  378. package/out/concepts/ViewComponent__.js +16 -15
  379. package/out/concepts/ViewComponent__.js.map +1 -1
  380. package/out/concepts/ViewElement__.d.ts +91 -86
  381. package/out/concepts/ViewElement__.js +218 -146
  382. package/out/concepts/ViewElement__.js.map +1 -1
  383. package/out/concepts/View__.d.ts +92 -92
  384. package/out/concepts/View__.js +135 -60
  385. package/out/concepts/View__.js.map +1 -1
  386. package/out/concepts/WhileStatement__.d.ts +12 -11
  387. package/out/concepts/WhileStatement__.js +46 -23
  388. package/out/concepts/WhileStatement__.js.map +1 -1
  389. package/out/concepts/index__.d.ts +2 -1
  390. package/out/concepts/index__.js +2 -1
  391. package/out/concepts/index__.js.map +1 -1
  392. package/out/concepts/types__.d.ts +2 -1
  393. package/out/decorators/index.d.ts +1 -1
  394. package/out/decorators/index.js +20 -7
  395. package/out/decorators/index.js.map +1 -1
  396. package/out/decorators/promise.d.ts +7 -0
  397. package/out/decorators/promise.js +28 -0
  398. package/out/decorators/promise.js.map +1 -0
  399. package/out/enums/KEYWORDS.js.map +1 -1
  400. package/out/enums/LEVEL_NAME_MAP.js.map +1 -1
  401. package/out/generator/compileComponent.js.map +1 -1
  402. package/out/generator/genBundleFiles.d.ts +4 -1
  403. package/out/generator/genBundleFiles.js +15 -11
  404. package/out/generator/genBundleFiles.js.map +1 -1
  405. package/out/generator/genHash.js.map +1 -1
  406. package/out/generator/genMetaData.js +12 -8
  407. package/out/generator/genMetaData.js.map +1 -1
  408. package/out/generator/genReleaseBody.js +33 -35
  409. package/out/generator/genReleaseBody.js.map +1 -1
  410. package/out/generator/microApp.js +2 -1
  411. package/out/generator/microApp.js.map +1 -1
  412. package/out/generator/permission.js +16 -14
  413. package/out/generator/permission.js.map +1 -1
  414. package/out/generator/styleReplacer.js +4 -7
  415. package/out/generator/styleReplacer.js.map +1 -1
  416. package/out/index.d.ts +0 -2
  417. package/out/index.js +0 -3
  418. package/out/index.js.map +1 -1
  419. package/out/manager/diagnostic.d.ts +1 -1
  420. package/out/manager/diagnostic.js.map +1 -1
  421. package/out/manager/stepRecorder.js +13 -9
  422. package/out/manager/stepRecorder.js.map +1 -1
  423. package/out/natural/RequirementAnalyzer.d.ts +22 -0
  424. package/out/natural/RequirementAnalyzer.js +196 -0
  425. package/out/natural/RequirementAnalyzer.js.map +1 -0
  426. package/out/natural/RequirementExecutor.d.ts +51 -0
  427. package/out/natural/RequirementExecutor.js +692 -0
  428. package/out/natural/RequirementExecutor.js.map +1 -0
  429. package/out/natural/componentData.d.ts +31 -0
  430. package/out/natural/componentData.js +85 -0
  431. package/out/natural/componentData.js.map +1 -0
  432. package/out/natural/genNaturalTS.d.ts +3 -0
  433. package/out/natural/genNaturalTS.js +76 -0
  434. package/out/natural/genNaturalTS.js.map +1 -0
  435. package/out/natural/index.d.ts +4 -0
  436. package/out/natural/index.js +21 -0
  437. package/out/natural/index.js.map +1 -0
  438. package/out/natural/knowledgeMap.d.ts +4 -0
  439. package/out/natural/knowledgeMap.js +40 -0
  440. package/out/natural/knowledgeMap.js.map +1 -0
  441. package/out/natural/naslStdlibMap.d.ts +2 -0
  442. package/out/natural/naslStdlibMap.js +26 -0
  443. package/out/natural/naslStdlibMap.js.map +1 -0
  444. package/out/natural/transformTSCode.d.ts +7 -0
  445. package/out/natural/transformTSCode.js +760 -0
  446. package/out/natural/transformTSCode.js.map +1 -0
  447. package/out/sentry/index.d.ts +2 -1
  448. package/out/sentry/index.js.map +1 -1
  449. package/out/server/createUiTs.js +28 -16
  450. package/out/server/createUiTs.js.map +1 -1
  451. package/out/server/entity2LogicNamespace.js +24 -22
  452. package/out/server/entity2LogicNamespace.js.map +1 -1
  453. package/out/server/event.js.map +1 -1
  454. package/out/server/extendBaseNode.js +55 -70
  455. package/out/server/extendBaseNode.js.map +1 -1
  456. package/out/server/formatTsUtils.js +46 -50
  457. package/out/server/formatTsUtils.js.map +1 -1
  458. package/out/server/getConnector.d.ts +3 -3
  459. package/out/server/getConnector.js +7 -8
  460. package/out/server/getConnector.js.map +1 -1
  461. package/out/server/getExtensionModules.js +2 -2
  462. package/out/server/getExtensionModules.js.map +1 -1
  463. package/out/server/getFunctions.js.map +1 -1
  464. package/out/server/getInterfaces.js.map +1 -1
  465. package/out/server/getLogging.js.map +1 -1
  466. package/out/server/getLogics.d.ts +1 -1
  467. package/out/server/getLogics.js +34 -16
  468. package/out/server/getLogics.js.map +1 -1
  469. package/out/server/getMemberIdentifier.js +13 -10
  470. package/out/server/getMemberIdentifier.js.map +1 -1
  471. package/out/server/getProcessComponents.js.map +1 -1
  472. package/out/server/getProcesses.js +21 -29
  473. package/out/server/getProcesses.js.map +1 -1
  474. package/out/server/getScope.js.map +1 -1
  475. package/out/server/getValidates.js.map +1 -1
  476. package/out/server/index.js +0 -1
  477. package/out/server/index.js.map +1 -1
  478. package/out/server/naslServer.d.ts +99 -94
  479. package/out/server/naslServer.js +485 -465
  480. package/out/server/naslServer.js.map +1 -1
  481. package/out/server/naslStdlibMap.js +4 -2
  482. package/out/server/naslStdlibMap.js.map +1 -1
  483. package/out/server/process2LogicNamespace.js.map +1 -1
  484. package/out/server/translator.d.ts +1 -1
  485. package/out/server/translator.js +52 -47
  486. package/out/server/translator.js.map +1 -1
  487. package/out/service/storage/init.d.ts +15 -1
  488. package/out/service/storage/init.js +65 -56
  489. package/out/service/storage/init.js.map +1 -1
  490. package/out/templator/genCallComponentLogic.js +1 -2
  491. package/out/templator/genCallComponentLogic.js.map +1 -1
  492. package/out/templator/genCreateBlock.js +13 -8
  493. package/out/templator/genCreateBlock.js.map +1 -1
  494. package/out/templator/genCurdEditMultipleKeyBlock.js +19 -10
  495. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  496. package/out/templator/genCurdMultipleKeyBlock.js +22 -26
  497. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  498. package/out/templator/genEditTableBlock.js +11 -12
  499. package/out/templator/genEditTableBlock.js.map +1 -1
  500. package/out/templator/genEnumSelectBlock.js +1 -1
  501. package/out/templator/genEnumSelectBlock.js.map +1 -1
  502. package/out/templator/genGetBlock.js +2 -2
  503. package/out/templator/genGetBlock.js.map +1 -1
  504. package/out/templator/genGridViewBlock.js +10 -14
  505. package/out/templator/genGridViewBlock.js.map +1 -1
  506. package/out/templator/genListViewBlock.js +4 -7
  507. package/out/templator/genListViewBlock.js.map +1 -1
  508. package/out/templator/genQueryComponent.js +22 -15
  509. package/out/templator/genQueryComponent.js.map +1 -1
  510. package/out/templator/genSelectBlock.js +12 -33
  511. package/out/templator/genSelectBlock.js.map +1 -1
  512. package/out/templator/genTableBlock.js +8 -10
  513. package/out/templator/genTableBlock.js.map +1 -1
  514. package/out/templator/genUpdateBlock.js +12 -7
  515. package/out/templator/genUpdateBlock.js.map +1 -1
  516. package/out/templator/index.d.ts +4 -2
  517. package/out/templator/index.js +2 -2
  518. package/out/templator/index.js.map +1 -1
  519. package/out/templator/utils.d.ts +2 -2
  520. package/out/templator/utils.js +21 -22
  521. package/out/templator/utils.js.map +1 -1
  522. package/out/translator/index.js +27 -28
  523. package/out/translator/index.js.map +1 -1
  524. package/out/utils/index.d.ts +2 -1
  525. package/out/utils/index.js +8 -14
  526. package/out/utils/index.js.map +1 -1
  527. package/out/utils/logger.js.map +1 -1
  528. package/out/utils/sortTsString.js +3 -1
  529. package/out/utils/sortTsString.js.map +1 -1
  530. package/out/utils/string.js +8 -11
  531. package/out/utils/string.js.map +1 -1
  532. package/out/utils/time-slicing.d.ts +41 -0
  533. package/out/utils/time-slicing.js +81 -0
  534. package/out/utils/time-slicing.js.map +1 -0
  535. package/out/utils/traverse.js +4 -6
  536. package/out/utils/traverse.js.map +1 -1
  537. package/package.json +11 -7
  538. package/sandbox/stdlib/nasl.auth.ts +49 -46
  539. package/sandbox/stdlib/nasl.http.ts +29 -31
  540. package/sandbox/stdlib/nasl.ui.definition.ts +13 -1
  541. package/sandbox-natural/stdlib/nasl.core.ts +36 -0
  542. package/sandbox-natural/stdlib/nasl.oql.ts +8 -0
  543. package/sandbox-natural/stdlib/nasl.ui.ts +56 -0
  544. package/sandbox-natural/stdlib/nasl.util.ts +26 -0
  545. package/sandbox-natural/tsconfig.json +12 -0
  546. package/src/automate/upgrader/2.20.js +1 -1
  547. package/src/bak/translator.js +92 -99
  548. package/src/breakpoint/generator/AfterStartNode.ts +19 -17
  549. package/src/breakpoint/generator/BeforeEndNode.ts +17 -17
  550. package/src/breakpoint/generator/BreakpointNode.ts +243 -195
  551. package/src/breakpoint/generator/CallbackNode.ts +20 -0
  552. package/src/breakpoint/generator/FragmentNode.ts +14 -0
  553. package/src/breakpoint/generator/index.ts +107 -80
  554. package/src/breakpoint/shared/constants.ts +59 -53
  555. package/src/breakpoint/shared/operations.ts +6 -6
  556. package/src/breakpoint/shared/socket.ts +277 -223
  557. package/src/breakpoint/shared/utils.ts +166 -146
  558. package/src/breakpoint/store/core.ts +326 -297
  559. package/src/breakpoint/store/dock.ts +103 -103
  560. package/src/breakpoint/types/index.d.ts +11 -11
  561. package/src/common/BaseNode.ts +1102 -1024
  562. package/src/common/Command.ts +46 -16
  563. package/src/common/ComponentAPI.ts +72 -72
  564. package/src/common/EventEmitter.ts +80 -76
  565. package/src/common/Messager.ts +223 -224
  566. package/src/common/asyncFuncMap.ts +12 -12
  567. package/src/concepts/Abort__.ts +53 -60
  568. package/src/concepts/Anchor__.ts +158 -149
  569. package/src/concepts/AnonymousFunction__.ts +584 -551
  570. package/src/concepts/App__.ts +4278 -3671
  571. package/src/concepts/Argument__.ts +234 -210
  572. package/src/concepts/Assignee__.ts +680 -656
  573. package/src/concepts/AssignmentLine__.ts +80 -84
  574. package/src/concepts/Assignment__.ts +275 -264
  575. package/src/concepts/Attribute__.ts +183 -184
  576. package/src/concepts/AuthInterface__.ts +61 -63
  577. package/src/concepts/AuthLogicForCallInterface__.ts +540 -511
  578. package/src/concepts/AuthLogic__.ts +210 -194
  579. package/src/concepts/BackendVariable__.ts +414 -415
  580. package/src/concepts/Backend__.ts +317 -303
  581. package/src/concepts/BatchAssignment__.ts +987 -939
  582. package/src/concepts/BinaryExpression__.ts +370 -341
  583. package/src/concepts/BindAttribute__.ts +1057 -1007
  584. package/src/concepts/BindDirective__.ts +540 -542
  585. package/src/concepts/BindEvent__.ts +992 -911
  586. package/src/concepts/BindStyle__.ts +442 -451
  587. package/src/concepts/BooleanLiteral__.ts +89 -90
  588. package/src/concepts/CallAuthInterface__.ts +458 -433
  589. package/src/concepts/CallConnector__.ts +209 -164
  590. package/src/concepts/CallFunction__.ts +600 -600
  591. package/src/concepts/CallInterface__.ts +752 -721
  592. package/src/concepts/CallLogic__.ts +1324 -1200
  593. package/src/concepts/CallQueryComponent__.ts +1580 -1501
  594. package/src/concepts/Comment__.ts +69 -68
  595. package/src/concepts/CompletionProperty__.ts +250 -255
  596. package/src/concepts/ConfigGroup__.ts +312 -296
  597. package/src/concepts/ConfigPropertyValue__.ts +92 -93
  598. package/src/concepts/ConfigProperty__.ts +374 -357
  599. package/src/concepts/Configuration__.ts +288 -276
  600. package/src/concepts/Connection__.ts +426 -0
  601. package/src/concepts/ConnectorTrigger__.ts +146 -142
  602. package/src/concepts/Connector__.ts +1090 -1048
  603. package/src/concepts/Constant__.ts +226 -219
  604. package/src/concepts/DataElement__.ts +108 -115
  605. package/src/concepts/DataSource__.ts +508 -472
  606. package/src/concepts/DatabaseTypeAnnotation__.ts +53 -59
  607. package/src/concepts/Destination__.ts +808 -746
  608. package/src/concepts/End__.ts +85 -89
  609. package/src/concepts/EntityIndex__.ts +206 -202
  610. package/src/concepts/EntityProperty__.ts +825 -791
  611. package/src/concepts/Entity__.ts +921 -864
  612. package/src/concepts/EnumItem__.ts +133 -125
  613. package/src/concepts/Enum__.ts +347 -337
  614. package/src/concepts/Event__.ts +305 -292
  615. package/src/concepts/ExternalDestination__.ts +269 -280
  616. package/src/concepts/ForEachStatement__.ts +583 -531
  617. package/src/concepts/FrontendLibrary__.ts +507 -485
  618. package/src/concepts/FrontendVariable__.ts +44 -49
  619. package/src/concepts/Frontend__.ts +1239 -1187
  620. package/src/concepts/Function__.ts +1110 -1045
  621. package/src/concepts/Identifier__.ts +276 -272
  622. package/src/concepts/IfStatement__.ts +467 -436
  623. package/src/concepts/Integration__.ts +136 -137
  624. package/src/concepts/InterfaceParam__.ts +239 -238
  625. package/src/concepts/Interface__.ts +969 -948
  626. package/src/concepts/JSBlock__.ts +83 -83
  627. package/src/concepts/JavaLogic__.ts +101 -106
  628. package/src/concepts/LogicItem__.ts +307 -237
  629. package/src/concepts/Logic__.ts +2301 -2088
  630. package/src/concepts/MatchCase__.ts +886 -779
  631. package/src/concepts/Match__.ts +728 -659
  632. package/src/concepts/MemberExpression__.ts +330 -311
  633. package/src/concepts/MicroApp__.ts +91 -97
  634. package/src/concepts/Module__.ts +2590 -2278
  635. package/src/concepts/MsgTriggerEvent__.ts +297 -281
  636. package/src/concepts/MsgTriggerLauncher__.ts +286 -256
  637. package/src/concepts/Namespace__.ts +2579 -2466
  638. package/src/concepts/NewComposite__.ts +1487 -1350
  639. package/src/concepts/NewList__.ts +464 -450
  640. package/src/concepts/NewMap__.ts +691 -674
  641. package/src/concepts/New__.ts +42 -49
  642. package/src/concepts/NullLiteral__.ts +66 -72
  643. package/src/concepts/NumericLiteral__.ts +169 -169
  644. package/src/concepts/OqlQueryComponent__.ts +282 -279
  645. package/src/concepts/OverriddenLogic__.ts +2142 -2097
  646. package/src/concepts/Param__.ts +500 -442
  647. package/src/concepts/Point__.ts +53 -59
  648. package/src/concepts/ProcessComponent__.ts +497 -475
  649. package/src/concepts/ProcessElement__.ts +1852 -1780
  650. package/src/concepts/ProcessOutcome__.ts +59 -64
  651. package/src/concepts/ProcessOutcomes__.ts +59 -64
  652. package/src/concepts/Process__.ts +1491 -1428
  653. package/src/concepts/QueryAggregateExpression__.ts +135 -142
  654. package/src/concepts/QueryFieldExpression__.ts +138 -142
  655. package/src/concepts/QueryFromExpression__.ts +246 -254
  656. package/src/concepts/QueryGroupByExpression__.ts +130 -136
  657. package/src/concepts/QueryJoinExpression__.ts +441 -438
  658. package/src/concepts/QueryLimitExpression__.ts +159 -166
  659. package/src/concepts/QueryOrderByExpression__.ts +173 -180
  660. package/src/concepts/QuerySelectExpression__.ts +464 -439
  661. package/src/concepts/Rect__.ts +73 -79
  662. package/src/concepts/Return__.ts +366 -345
  663. package/src/concepts/Role__.ts +146 -147
  664. package/src/concepts/SelectMembers__.ts +358 -350
  665. package/src/concepts/Slot__.ts +152 -153
  666. package/src/concepts/SqlQueryComponent__.ts +230 -228
  667. package/src/concepts/Start__.ts +45 -52
  668. package/src/concepts/StringInterpolation__.ts +323 -296
  669. package/src/concepts/StringLiteral__.ts +113 -115
  670. package/src/concepts/StructureProperty__.ts +306 -295
  671. package/src/concepts/Structure__.ts +615 -578
  672. package/src/concepts/SwitchCase__.ts +326 -290
  673. package/src/concepts/SwitchStatement__.ts +236 -229
  674. package/src/concepts/Theme__.ts +64 -68
  675. package/src/concepts/Transactional__.ts +159 -153
  676. package/src/concepts/TriggerEvent__.ts +285 -274
  677. package/src/concepts/TriggerLauncher__.ts +232 -196
  678. package/src/concepts/TypeAnnotation__.ts +1049 -1011
  679. package/src/concepts/TypeParam__.ts +48 -50
  680. package/src/concepts/UnaryExpression__.ts +163 -153
  681. package/src/concepts/Unparsed__.ts +81 -82
  682. package/src/concepts/UseComponent__.ts +53 -59
  683. package/src/concepts/ValidationRule__.ts +524 -544
  684. package/src/concepts/Variable__.ts +419 -397
  685. package/src/concepts/ViewBlock__.ts +58 -64
  686. package/src/concepts/ViewComponent__.ts +1323 -1261
  687. package/src/concepts/ViewElement__.ts +2538 -2350
  688. package/src/concepts/View__.ts +2447 -2268
  689. package/src/concepts/WhileStatement__.ts +293 -272
  690. package/src/concepts/index__.ts +2 -1
  691. package/src/concepts/types__.ts +123 -121
  692. package/src/decorators/index.ts +75 -77
  693. package/src/decorators/promise.ts +28 -0
  694. package/src/enums/KEYWORDS.ts +1228 -1228
  695. package/src/enums/LEVEL_NAME_MAP.ts +24 -24
  696. package/src/generator/compileComponent.ts +10 -10
  697. package/src/generator/genBundleFiles.ts +300 -291
  698. package/src/generator/genHash.ts +2 -2
  699. package/src/generator/genMetaData.ts +280 -261
  700. package/src/generator/genReleaseBody.ts +312 -291
  701. package/src/generator/icestark.ts +1 -1
  702. package/src/generator/microApp.ts +17 -20
  703. package/src/generator/permission.ts +227 -218
  704. package/src/generator/qiankun.ts +1 -1
  705. package/src/generator/styleReplacer.ts +28 -31
  706. package/src/index.ts +0 -3
  707. package/src/manager/diagnostic.ts +84 -82
  708. package/src/manager/stepRecorder.ts +106 -94
  709. package/src/natural/RequirementAnalyzer.ts +208 -0
  710. package/src/natural/RequirementExecutor.ts +685 -0
  711. package/src/natural/componentData.ts +81 -0
  712. package/src/natural/genNaturalTS.ts +77 -0
  713. package/src/natural/index.ts +4 -0
  714. package/src/natural/knowledgeMap.ts +39 -0
  715. package/src/natural/naslStdlibMap.ts +24 -0
  716. package/src/natural/transformTSCode.ts +692 -0
  717. package/src/sentry/index.ts +109 -104
  718. package/src/server/createUiTs.ts +190 -184
  719. package/src/server/entity2LogicNamespace.ts +379 -359
  720. package/src/server/event.js +145 -145
  721. package/src/server/extendBaseNode.ts +461 -456
  722. package/src/server/formatTsUtils.ts +712 -713
  723. package/src/server/getConnector.ts +33 -33
  724. package/src/server/getExtensionModules.ts +23 -22
  725. package/src/server/getFunctions.ts +6 -6
  726. package/src/server/getInterfaces.ts +38 -37
  727. package/src/server/getLogging.ts +1 -1
  728. package/src/server/getLogics.ts +390 -344
  729. package/src/server/getMemberIdentifier.ts +286 -281
  730. package/src/server/getProcessComponents.ts +2 -2
  731. package/src/server/getProcesses.ts +548 -534
  732. package/src/server/getScope.ts +51 -51
  733. package/src/server/getValidates.ts +3 -3
  734. package/src/server/index.ts +29 -30
  735. package/src/server/naslServer.ts +4302 -4225
  736. package/src/server/naslStdlibMap.ts +43 -41
  737. package/src/server/process2LogicNamespace.ts +97 -97
  738. package/src/server/translator.ts +740 -746
  739. package/src/service/storage/init.ts +761 -728
  740. package/src/templator/genCallComponentLogic.ts +14 -15
  741. package/src/templator/genCreateBlock.ts +257 -229
  742. package/src/templator/genCurdEditMultipleKeyBlock.ts +332 -316
  743. package/src/templator/genCurdMultipleKeyBlock.ts +501 -473
  744. package/src/templator/genEditTableBlock.ts +192 -182
  745. package/src/templator/genEnumSelectBlock.ts +13 -7
  746. package/src/templator/genGetBlock.ts +57 -55
  747. package/src/templator/genGridViewBlock.ts +191 -201
  748. package/src/templator/genListViewBlock.ts +59 -64
  749. package/src/templator/genQueryComponent.ts +337 -287
  750. package/src/templator/genSelectBlock.ts +276 -285
  751. package/src/templator/genTableBlock.ts +157 -160
  752. package/src/templator/genUpdateBlock.ts +269 -255
  753. package/src/templator/index.ts +4 -4
  754. package/src/templator/utils.ts +490 -464
  755. package/src/translator/index.ts +84 -84
  756. package/src/translator/lsp.ts +22 -22
  757. package/src/translator/tsp.ts +6 -6
  758. package/src/utils/index.ts +115 -117
  759. package/src/utils/logger.ts +3 -4
  760. package/src/utils/sortTsString.ts +34 -32
  761. package/src/utils/string.ts +47 -48
  762. package/src/utils/time-slicing.ts +109 -0
  763. package/src/utils/traverse.ts +114 -126
  764. package/test/concepts/match/__snapshots__/toEmbeddedTS.spec.ts.snap +66 -0
  765. package/test/concepts/match/__snapshots__/toJS.spec.ts.snap +40 -0
  766. package/test/concepts/match/constant.ts +5 -0
  767. package/test/concepts/match/fixtures/isExpression.json +259 -0
  768. package/test/concepts/match/fixtures/lastBodyIf.json +268 -0
  769. package/test/concepts/match/fixtures/noExpression.json +176 -0
  770. package/test/concepts/match/toEmbeddedTS.spec.ts +14 -0
  771. package/test/concepts/match/toJS.spec.ts +14 -0
  772. package/test/setup.ts +2 -1
  773. package/ts-worker/src/index.js +0 -2
  774. package/tsconfig.json +21 -21
@@ -1,23 +1,22 @@
1
+ import { v4 as uuidv4 } from 'uuid';
1
2
  import { TranslatorState, shiftState, withSourceMap } from '../translator';
2
3
  import Interface from './Interface__';
3
4
  import NullLiteral from './NullLiteral__';
4
5
  import { ElementToVueOptions } from './ViewElement__';
5
- import { getConceptConstructor } from '../decorators';
6
+ import { getConceptConstructor, concept, excludedInJSON, property } from '../decorators';
6
7
  import { getNodeByNodeCallee, getNaslNodeByNodeCallee } from '../automate/engine/utils';
7
8
  import InterfaceParam from './InterfaceParam__';
8
9
  import Structure from './Structure__';
9
10
  import Module from './Module__';
10
11
  import AuthInterface from './AuthInterface__';
11
12
  import Frontend from './Frontend__';
12
- //================================================================================
13
+ //= ===============================================================================
13
14
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
14
15
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
15
- //================================================================================
16
+ //= ===============================================================================
16
17
  import { EventPayload, Params } from '../common/EventEmitter';
17
- import { concept, excludedInJSON, property } from '../decorators';
18
18
 
19
19
  import * as utils from '../utils';
20
- import { v4 as uuidv4 } from 'uuid';
21
20
  import BaseNode from '../common/BaseNode';
22
21
  import classMap from '../common/classMap';
23
22
  import Argument from './Argument__';
@@ -28,759 +27,791 @@ import LogicItem from './LogicItem__';
28
27
  */
29
28
  @concept('调用接口')
30
29
  export class CallInterface extends LogicItem {
31
- /**
32
- * 产品概念
33
- */
34
- @property()
35
- concept: 'CallInterface' | 'CallAuthInterface' = 'CallInterface';
36
-
37
- /**
38
- * 调用接口标题
39
- */
40
- @property()
41
- label: string = '调用接口';
42
-
43
- /**
44
- * calleeNamespace
45
- */
46
- @property()
47
- calleeNamespace: string = undefined;
48
-
49
- /**
50
- * calleeName
51
- */
52
- @property()
53
- calleeName: string = undefined;
54
-
55
- /**
56
- * shortcut
57
- */
58
- @property()
59
- shortcut: boolean = undefined;
60
-
61
- /**
62
- * 实际参数
63
- */
64
- @property('Argument')
65
- arguments: Array<Argument> = [];
66
-
67
-
68
-
69
- /**
70
- * @param source 需要合并的部分参数
71
- */
72
- constructor(source?: Partial<CallInterface>) {
73
- source = Object.assign({}, CallInterface.getDefaultOptions(), source);
74
- super(source);
75
- super.subConstructor(source);
30
+ /**
31
+ * 产品概念
32
+ */
33
+ @property()
34
+ concept: 'CallInterface' | 'CallAuthInterface' = 'CallInterface';
35
+
36
+ /**
37
+ * 调用接口标题
38
+ */
39
+ @property()
40
+ label: string = '调用接口';
41
+
42
+ /**
43
+ * calleeNamespace
44
+ */
45
+ @property()
46
+ calleeNamespace: string = undefined;
47
+
48
+ /**
49
+ * calleeName
50
+ */
51
+ @property()
52
+ calleeName: string = undefined;
53
+
54
+ /**
55
+ * shortcut
56
+ */
57
+ @property()
58
+ shortcut: boolean = undefined;
59
+
60
+ /**
61
+ * 实际参数
62
+ */
63
+ @property('Argument')
64
+ arguments: Array<Argument> = [];
65
+
66
+ /**
67
+ * @param source 需要合并的部分参数
68
+ */
69
+ constructor(source?: Partial<CallInterface>) {
70
+ // @ts-ignore
71
+ source = { ...CallInterface.getDefaultOptions(), ...source };
72
+ super(source);
73
+ super.subConstructor(source);
74
+ }
75
+
76
+ getClassName() {
77
+ return 'CallInterface';
78
+ }
79
+
80
+ static from(source: any, parentNode?: any, parentKey?: string): CallInterface {
81
+ return super.from(source, parentNode, parentKey) as CallInterface;
82
+ }
83
+
84
+ /**
85
+ * 插入实际参数
86
+ * @internal
87
+ * @param argumentOptions 实际参数参数
88
+ */
89
+ _insertArgumentAt(argumentOptions: Partial<Argument>, index: number): Argument;
90
+
91
+ /**
92
+ * 插入实际参数
93
+ * @internal
94
+ * @param argument 已有的实际参数实例
95
+ */
96
+ _insertArgumentAt(argument: Argument, index: number): Argument;
97
+
98
+ _insertArgumentAt(options: Partial<Argument> | Argument, index: number) {
99
+ const argumentOptions: any = {};
100
+ const relationOptions = { parentNode: this, parentKey: 'arguments' };
101
+ let argument: Argument;
102
+ if (options instanceof Argument) {
103
+ options.ensureDelete(); // 同一实例不支持多处存在
104
+ argument = options;
105
+ Object.assign(argument, relationOptions);
106
+ } else {
107
+ argument = Argument.from(
108
+ {
109
+ ...argumentOptions,
110
+ ...options,
111
+ },
112
+ this,
113
+ 'arguments'
114
+ );
76
115
  }
77
- getClassName() {
78
- return 'CallInterface';
79
- }
80
-
81
- static from(source: any, parentNode?: any, parentKey?: string): CallInterface {
82
- return super.from(source, parentNode, parentKey) as CallInterface;
116
+ this.arguments.splice(index, 0, argument);
117
+ return argument;
118
+ }
119
+
120
+ /**
121
+ * 插入实际参数
122
+ * @param argumentOptions 实际参数参数
123
+ */
124
+ insertArgumentAt(argumentOptions: Partial<Argument>, index: number): Argument;
125
+
126
+ /**
127
+ * 插入实际参数
128
+ * @param argument 已有的实际参数实例
129
+ */
130
+ insertArgumentAt(argument: Argument, index: number): Argument;
131
+
132
+ insertArgumentAt(options: Partial<Argument> | Argument, index: number) {
133
+ const node = this._insertArgumentAt(options as any, index);
134
+ node.create({
135
+ index,
136
+ parentNode: this,
137
+ parentKey: 'arguments',
138
+ });
139
+ return node;
140
+ }
141
+
142
+ /**
143
+ * 添加实际参数
144
+ * @internal
145
+ * @param argumentOptions 实际参数参数
146
+ */
147
+ _addArgument(argumentOptions: Partial<Argument>): Argument;
148
+
149
+ /**
150
+ * 添加实际参数
151
+ * @internal
152
+ * @param argument 已有的实际参数实例
153
+ */
154
+ _addArgument(argument: Argument): Argument;
155
+
156
+ _addArgument(options?: Partial<Argument> | Argument) {
157
+ const index = this.arguments.length;
158
+ return this._insertArgumentAt(options as any, index);
159
+ }
160
+
161
+ /**
162
+ * 添加实际参数
163
+ * @param argumentOptions 实际参数参数
164
+ */
165
+ addArgument(argumentOptions: Partial<Argument>): Argument;
166
+
167
+ /**
168
+ * 添加实际参数
169
+ * @param argument 已有的实际参数实例
170
+ */
171
+ addArgument(argument: Argument): Argument;
172
+
173
+ addArgument(options?: Partial<Argument> | Argument) {
174
+ const node = this._addArgument(options as any);
175
+ const index = this.arguments.indexOf(node);
176
+ node.create({
177
+ index,
178
+ parentNode: this,
179
+ parentKey: 'arguments',
180
+ });
181
+ return node;
182
+ }
183
+
184
+ /**
185
+ * 删除实际参数
186
+ * @param argument 已有的实际参数实例
187
+ */
188
+ removeArgument(argument: Argument): void;
189
+
190
+ removeArgument(options: Argument) {
191
+ const argument: Argument = options;
192
+ return argument.delete();
193
+ }
194
+
195
+ __removeLogicItem(logicItem: LogicItem) {
196
+ const { parentKey } = logicItem;
197
+ const params: Params = {
198
+ parentNode: this,
199
+ parentKey,
200
+ index: -1,
201
+ object: null,
202
+ oldObject: logicItem,
203
+ };
204
+ if (parentKey) {
205
+ params.parentKey = parentKey;
206
+ if (Array.isArray((this as any)[parentKey])) {
207
+ const index = (this as any)[parentKey].indexOf(logicItem);
208
+ ~index && (this as any)[parentKey].splice(index, 1);
209
+ params.index = index;
210
+ } else if ((this as any)[parentKey] === logicItem) {
211
+ params.index = 0;
212
+ (this as any)[parentKey] = undefined;
213
+ }
83
214
  }
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
-
92
- /**
93
- * 插入实际参数
94
- * @internal
95
- * @param argumentOptions 实际参数参数
96
- */
97
- _insertArgumentAt(argumentOptions: Partial<Argument>, index: number): Argument;
98
-
99
- /**
100
- * 插入实际参数
101
- * @internal
102
- * @param argument 已有的实际参数实例
103
- */
104
- _insertArgumentAt(argument: Argument, index: number): Argument;
105
-
106
- _insertArgumentAt(options: Partial<Argument> | Argument, index: number) {
107
- const argumentOptions: any = {};
108
- const relationOptions = { parentNode: this, parentKey: 'arguments' };
109
- let argument: Argument;
110
- if (options instanceof Argument) {
111
- options.ensureDelete(); // 同一实例不支持多处存在
112
- argument = options;
113
- Object.assign(argument, relationOptions);
114
- } else {
115
- argument = Argument.from({
116
- ...argumentOptions,
117
- ...options,
118
- }, this, 'arguments');
215
+ return params;
216
+ }
217
+
218
+ //= ===============================================================================
219
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
220
+ // 自动生成的代码已结束。下面可以手动编写。
221
+ //= ===============================================================================
222
+
223
+ /**
224
+ * 标识当前删除是否为鉴权方式更新导致的删除。
225
+ * 针对此种删除,删除逻辑已经处理,无需再走 deleteCallNode 逻辑
226
+ */
227
+ @property('Boolean')
228
+ __authDelete: Boolean = false;
229
+
230
+ // 删除调用接口时且接口无引用,删除接口和数据结构
231
+ async deleteCallNode() {
232
+ if (this.calleeKey !== '__IDENTIFIER__' && !this.__authDelete) {
233
+ (this as any).__deleteCallNodeTimer = setTimeout(async () => {
234
+ clearTimeout((this as any).__deleteCallNodeTimer);
235
+ // 计算之前选择的接口的引用次数
236
+ const oldItf: Interface = this.getCallNode();
237
+ if (oldItf) {
238
+ let refCount = 0;
239
+ const refs = (await oldItf.findUsage()) as Map<any, any>;
240
+
241
+ const isOnlyUsedByFronted = refs.size === 1 && Array.from(refs.keys()).filter((key) => key instanceof Frontend).length > 0;
242
+ const isAuthInterface = oldItf instanceof AuthInterface;
243
+ // 当仅仅只有前端使用,且该接口是鉴权接口时需要将接口还原为普通接口
244
+ if (isOnlyUsedByFronted && isAuthInterface) {
245
+ this.replaceToInterface(oldItf);
246
+ }
247
+ refs.forEach((val: any) => {
248
+ const loopFindNode = (item: any) => {
249
+ if (item.children) {
250
+ item.children.forEach((child: any) => loopFindNode(child));
251
+ } else {
252
+ refCount++;
253
+ }
254
+ };
255
+ loopFindNode(val);
256
+ });
257
+ // 无引用则删除
258
+ if (!refCount) {
259
+ // 删除旧的接口、接口的数据结构
260
+ this.app.emit('collect:start', { actionMsg: '删除接口' });
261
+ const oldStructuresSet = oldItf.getRefStructures(oldItf.module.structures);
262
+ oldStructuresSet.forEach((s: Structure) => s.delete());
263
+ oldItf.delete();
264
+ oldItf.afterDelete();
265
+ this.app.emit('collect:end');
266
+ }
119
267
  }
120
- this.arguments.splice(index, 0, argument);
121
- return argument;
122
- }
123
-
124
-
125
-
126
- /**
127
- * 插入实际参数
128
- * @param argumentOptions 实际参数参数
129
- */
130
- insertArgumentAt(argumentOptions: Partial<Argument>, index: number): Argument;
131
-
132
- /**
133
- * 插入实际参数
134
- * @param argument 已有的实际参数实例
135
- */
136
- insertArgumentAt(argument: Argument, index: number): Argument;
137
-
138
- insertArgumentAt(options: Partial<Argument> | Argument, index: number) {
139
- const node = this._insertArgumentAt(options as any, index);
140
- node.create({
141
- index,
142
- parentNode: this,
143
- parentKey: 'arguments',
144
- });
145
- return node;
146
- }
147
-
148
-
149
-
150
- /**
151
- * 添加实际参数
152
- * @internal
153
- * @param argumentOptions 实际参数参数
154
- */
155
- _addArgument(argumentOptions: Partial<Argument>): Argument;
156
-
157
- /**
158
- * 添加实际参数
159
- * @internal
160
- * @param argument 已有的实际参数实例
161
- */
162
- _addArgument(argument: Argument): Argument;
163
-
164
- _addArgument(options?: Partial<Argument> | Argument) {
165
- const index = this.arguments.length;
166
- return this._insertArgumentAt(options as any, index);
268
+ }, 200);
167
269
  }
168
-
169
-
170
-
171
- /**
172
- * 添加实际参数
173
- * @param argumentOptions 实际参数参数
174
- */
175
- addArgument(argumentOptions: Partial<Argument>): Argument;
176
-
177
- /**
178
- * 添加实际参数
179
- * @param argument 已有的实际参数实例
180
- */
181
- addArgument(argument: Argument): Argument;
182
-
183
- addArgument(options?: Partial<Argument> | Argument) {
184
- const node = this._addArgument(options as any);
185
- const index = this.arguments.indexOf(node);
186
- node.create({
187
- index,
188
- parentNode: this,
189
- parentKey: 'arguments',
190
- });
191
- return node;
270
+ }
271
+
272
+ replaceToInterface(oldItf: AuthInterface) {
273
+ this.app.emit('collect:start', { actionMsg: '调用接口恢复为非鉴权' });
274
+ const { name, originLogicName, path, method, description, params, returns, protocol, protocolParams } = oldItf;
275
+ const newInterface = new Interface({
276
+ name,
277
+ originLogicName,
278
+ path,
279
+ method,
280
+ description,
281
+ params,
282
+ returns,
283
+ protocol,
284
+ protocolParams,
285
+ });
286
+ const m = oldItf.parentNode as Module;
287
+ const interfaceIndex = m?.interfaces?.findIndex?.((item) => item.name === oldItf.name);
288
+ oldItf.delete();
289
+ m.insertInterfaceAt(newInterface, interfaceIndex);
290
+ this.app.emit('collect:end');
291
+ }
292
+
293
+ get tsCalleeNamespace() {
294
+ if (this.calleeNamespace) {
295
+ let tsCalleeNamespace = this.calleeNamespace;
296
+ tsCalleeNamespace = tsCalleeNamespace.replace(/\.[0-9]/g, (m) => m.replace('.', '.$'));
297
+ tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
298
+ return tsCalleeNamespace;
192
299
  }
193
-
194
-
195
-
196
-
197
- /**
198
- * 删除实际参数
199
- * @param argument 已有的实际参数实例
200
- */
201
- removeArgument(argument: Argument): void;
202
-
203
- removeArgument(options: Argument) {
204
- const argument: Argument = options;
205
- return argument.delete();
300
+ return '';
301
+ }
302
+
303
+ toVue(options?: ElementToVueOptions): string {
304
+ let code = this.calleeName;
305
+ code += '(';
306
+ this.arguments?.forEach((arg, index) => {
307
+ code += arg?.toVue(options);
308
+ if (index !== this.arguments?.length - 1) code += ', ';
309
+ });
310
+ code += ')';
311
+ return code;
312
+ }
313
+
314
+ toUI(state?: TranslatorState): string {
315
+ let code = this.calleeName;
316
+ code += '(';
317
+ this.arguments?.forEach((arg, index) => {
318
+ code += arg?.toUI();
319
+ if (index !== this.arguments?.length - 1) code += ', ';
320
+ });
321
+ code += ')';
322
+ return code;
323
+ }
324
+
325
+ toJS(state?: TranslatorState): string {
326
+ const { calleewholeKey, app, completeArguments } = this;
327
+ const [, _name, , _interfaceName] = calleewholeKey.split('.');
328
+ const _module = app?.interfaceDependencies?.find?.((item) => item.name === _name);
329
+ const _interface = _module?.interfaces?.find?.((item) => item.name === _interfaceName);
330
+ if (!_interface) {
331
+ if (!this.calleeNamespace || !this.calleeName) throw new Error('调用接口为空');
332
+ throw new Error(`${_name}下的${_interfaceName}接口未找到`);
206
333
  }
207
-
208
- __removeLogicItem(logicItem: LogicItem) {
209
- const parentKey = logicItem.parentKey;
210
- const params: Params = {
211
- parentNode: this,
212
- parentKey,
213
- index: -1,
214
- object: null,
215
- oldObject: logicItem,
216
- };
217
- if (parentKey) {
218
- params.parentKey = parentKey;
219
- if (Array.isArray((this as any)[parentKey])) {
220
- const index = (this as any)[parentKey].indexOf(logicItem);
221
- ~index && (this as any)[parentKey].splice(index, 1);
222
- params.index = index;
223
- } else if ((this as any)[parentKey] === logicItem) {
224
- params.index = 0;
225
- (this as any)[parentKey] = undefined;
226
- }
334
+ let isSimpleBody = false; // 兼容body只有基本类型的
335
+ const _params = _interface.params;
336
+ const _queries = _params.filter((item) => item.in === 'query').map((item) => item.name);
337
+ const _headers = _params.filter((item) => item.in === 'header').map((item) => item.name);
338
+ const _body = _params
339
+ .filter((item) => item.in === 'body')
340
+ .map((item) => {
341
+ if (item.typeAnnotation.typeKind === 'primitive') {
342
+ isSimpleBody = true;
227
343
  }
228
- return params;
229
- }
230
-
231
- //================================================================================
232
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
233
- // 自动生成的代码已结束。下面可以手动编写。
234
- //================================================================================
235
-
236
- /**
237
- * 标识当前删除是否为鉴权方式更新导致的删除。
238
- * 针对此种删除,删除逻辑已经处理,无需再走 deleteCallNode 逻辑
239
- */
240
- @property('Boolean')
241
- __authDelete: Boolean = false;
242
-
243
- // 删除调用接口时且接口无引用,删除接口和数据结构
244
- async deleteCallNode() {
245
- if (this.calleeKey !== '__IDENTIFIER__' && !this.__authDelete) {
246
- (this as any).__deleteCallNodeTimer = setTimeout(async () => {
247
- clearTimeout((this as any).__deleteCallNodeTimer);
248
- // 计算之前选择的接口的引用次数
249
- const oldItf: Interface = this.getCallNode();
250
- if (oldItf) {
251
- let refCount = 0;
252
- const refs = await oldItf.findUsage() as Map<any, any>;
253
-
254
- const isOnlyUsedByFronted = refs.size === 1 && Array.from(refs.keys()).filter(key => key instanceof Frontend).length > 0;
255
- const isAuthInterface = oldItf instanceof AuthInterface;
256
- // 当仅仅只有前端使用,且该接口是鉴权接口时需要将接口还原为普通接口
257
- if (isOnlyUsedByFronted && isAuthInterface) {
258
- this.replaceToInterface(oldItf);
259
- }
260
- refs.forEach((val: any) => {
261
- const loopFindNode = (item: any) => {
262
- if (item.children) {
263
- item.children.forEach((child: any) => loopFindNode(child));
264
- } else {
265
- refCount++;
266
- }
267
- };
268
- loopFindNode(val);
269
- });
270
- // 无引用则删除
271
- if (!refCount) {
272
- // 删除旧的接口、接口的数据结构
273
- this.app.emit('collect:start', { actionMsg: '删除接口' });
274
- const oldStructuresSet = oldItf.getRefStructures(oldItf.module.structures);
275
- oldStructuresSet.forEach((s: Structure) => s.delete());
276
- oldItf.delete();
277
- oldItf.afterDelete();
278
- this.app.emit('collect:end');
279
- }
280
- }
281
- }, 200);
344
+ return item.name;
345
+ });
346
+ const _paths = _params.filter((item) => item.in === 'path').map((item) => item.name);
347
+
348
+ /** 填充参数信息 */
349
+ const setArgumentCode = (args: Argument[], keys: string[], code: string, useKeyWord: boolean, useRest: boolean) => {
350
+ const filledArgs = args
351
+ // 维持原样,暂时不过滤没有填入值的参数
352
+ // .filter((arg) => Boolean(arg?.expression))
353
+ .filter((arg) => keys.includes(arg.keyword));
354
+
355
+ filledArgs.forEach((arg, index) => {
356
+ if (useRest) {
357
+ code += ` ...${arg?.toJS(shiftState(state, code))}`;
358
+ } else if (useKeyWord) {
359
+ code += `\n'${arg?.keyword}': ${arg?.toJS(shiftState(state, code))}`;
360
+ } else {
361
+ code += ` ${arg?.toJS(shiftState(state, code))}`;
282
362
  }
283
- }
284
-
285
- replaceToInterface(oldItf: AuthInterface) {
286
- this.app.emit('collect:start', { actionMsg: '调用接口恢复为非鉴权' });
287
- const {
288
- name, originLogicName, path, method, description, params, returns,
289
- protocol, protocolParams,
290
- } = oldItf;
291
- const newInterface = new Interface({
292
- name, originLogicName, path, method, description, params, returns,
293
- protocol, protocolParams,
294
- });
295
- const m = oldItf.parentNode as Module;
296
- const interfaceIndex = m?.interfaces?.findIndex?.((item) => item.name === oldItf.name);
297
- oldItf.delete();
298
- m.insertInterfaceAt(newInterface, interfaceIndex);
299
- this.app.emit('collect:end');
300
- }
301
363
 
302
- get tsCalleeNamespace() {
303
- if (this.calleeNamespace) {
304
- let tsCalleeNamespace = this.calleeNamespace;
305
- tsCalleeNamespace = tsCalleeNamespace.replace(/\.[0-9]/g, (m) => m.replace('.', '.$'));
306
- tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
307
- return tsCalleeNamespace;
364
+ if (index !== args.length - 1) {
365
+ code += ', ';
308
366
  }
309
- return '';
367
+ });
368
+
369
+ if (filledArgs.length === 0 && !useKeyWord && !useRest) {
370
+ code += 'undefined';
371
+ }
372
+
373
+ return code;
374
+ };
375
+
376
+ let code = `await this.$services['_custom']['${this.calleeNamespace}.${this.calleeName}']`;
377
+
378
+ code += `({ config: {\ndownload: false,\n },\nquery: {`;
379
+ code = setArgumentCode(completeArguments, _queries, code, true, false);
380
+ code += `}, path: {`;
381
+ code = setArgumentCode(completeArguments, _paths, code, true, false);
382
+ code += `}, headers: {`;
383
+ code = setArgumentCode(completeArguments, _headers, code, true, false);
384
+ code += `},\n`;
385
+
386
+ if (isSimpleBody) {
387
+ code += `body: `;
388
+ code = setArgumentCode(completeArguments, _body, code, false, false);
389
+ } else {
390
+ code += `body: {`;
391
+ code = setArgumentCode(completeArguments, _body, code, false, true);
392
+ code += '}';
310
393
  }
311
394
 
312
- toVue(options?: ElementToVueOptions): string {
313
- let code = this.calleeName;
314
- code += '(';
315
- this.arguments?.forEach((arg, index) => {
316
- code += arg?.toVue(options);
317
- if (index !== this.arguments?.length - 1)
318
- code += ', ';
319
- });
320
- code += ')';
321
- return code;
395
+ code += '\n})';
396
+ const typeAnnotation = (this as any).typeAnnotation || this.__TypeAnnotation;
397
+ const needGenInitFromSchema = typeAnnotation && !['primitive', 'union'].includes(typeAnnotation.typeKind);
398
+ if (needGenInitFromSchema) {
399
+ code = `this.$genInitFromSchema('${typeAnnotation?.sortedTypeKey}', ${code})`;
322
400
  }
323
-
324
- toUI(state?: TranslatorState): string {
325
- let code = this.calleeName;
326
- code += '(';
327
- this.arguments?.forEach((arg, index) => {
328
- code += arg?.toUI();
329
- if (index !== this.arguments?.length - 1)
330
- code += ', ';
331
- });
332
- code += ')';
333
- return code;
401
+ return code;
402
+ }
403
+
404
+ @withSourceMap()
405
+ toEmbeddedTS(state?: TranslatorState): string {
406
+ const { completeArguments, parentNode, parentKey, tsCalleeKey } = this;
407
+
408
+ let code = `${tsCalleeKey}(`;
409
+
410
+ if (completeArguments?.length) {
411
+ code += '{';
412
+ completeArguments?.forEach((arg, index) => {
413
+ code += arg?.toEmbeddedTS(shiftState(state, code), arg.paramRequired, true);
414
+ if (index !== this.arguments?.length - 1) code += ', ';
415
+ });
416
+ code += '}';
334
417
  }
335
-
336
- toJS(state?: TranslatorState): string {
337
- const { calleewholeKey, app, completeArguments } = this;
338
- const [, _name, , _interfaceName] = calleewholeKey.split('.');
339
- const _module = app?.interfaceDependencies?.find?.((item) => item.name === _name);
340
- const _interface = _module?.interfaces?.find?.((item) => item.name === _interfaceName);
341
- if (!_interface) {
342
- if (!this.calleeNamespace || !this.calleeName)
343
- throw new Error('调用接口为空');
344
- throw new Error(`${_name}下的${_interfaceName}接口未找到`);
345
- }
346
- let isSimpleBody = false; // 兼容body只有基本类型的
347
- const _params = _interface.params;
348
- const _queries = _params.filter((item) => item.in === 'query').map((item) => item.name);
349
- const _headers = _params.filter((item) => item.in === 'header').map((item) => item.name);
350
- const _body = _params
351
- .filter((item) => item.in === 'body')
352
- .map((item) => {
353
- if (item.typeAnnotation.typeKind === 'primitive') {
354
- isSimpleBody = true;
355
- }
356
- return item.name;
357
- });
358
- const _paths = _params.filter((item) => item.in === 'path').map((item) => item.name);
359
-
360
- /** 填充参数信息 */
361
- const setArgumentCode = (args: Argument[], keys: string[], code: string, useKeyWord: boolean, useRest: boolean) => {
362
- const filledArgs = args
363
- // 维持原样,暂时不过滤没有填入值的参数
364
- // .filter((arg) => Boolean(arg?.expression))
365
- .filter((arg) => keys.includes(arg.keyword));
366
-
367
- filledArgs.forEach((arg, index) => {
368
- if (useRest) {
369
- code += ` ...${arg?.toJS(shiftState(state, code))}`;
370
- } else if (useKeyWord) {
371
- code += `\n'${arg?.keyword}': ${arg?.toJS(shiftState(state, code))}`;
372
- } else {
373
- code += ` ${arg?.toJS(shiftState(state, code))}`;
374
- }
375
-
376
- if (index !== args.length - 1) {
377
- code += ', ';
378
- }
379
- });
380
-
381
- if (filledArgs.length === 0 && !useKeyWord && !useRest) {
382
- code += 'undefined';
383
- }
384
-
385
- return code;
386
- };
387
-
388
- let code = `await this.$services['_custom']['${this.calleeNamespace}.${this.calleeName}']`;
389
-
390
- code += `({ config: {\ndownload: false,\n },\nquery: {`;
391
- code = setArgumentCode(completeArguments, _queries, code, true, false);
392
- code += `}, path: {`;
393
- code = setArgumentCode(completeArguments, _paths, code, true, false);
394
- code += `}, headers: {`;
395
- code = setArgumentCode(completeArguments, _headers, code, true, false);
396
- code += `},\n`;
397
-
398
- if (isSimpleBody) {
399
- code += `body: `;
400
- code = setArgumentCode(completeArguments, _body, code, false, false);
401
- } else {
402
- code += `body: {`;
403
- code = setArgumentCode(completeArguments, _body, code, false, true);
404
- code += '}';
405
- }
406
-
407
- code += '\n})';
408
- const typeAnnotation = (this as any).typeAnnotation || this.__TypeAnnotation;
409
- const needGenInitFromSchema = typeAnnotation && !['primitive', 'union'].includes(typeAnnotation.typeKind);
410
- if (needGenInitFromSchema) {
411
- code = `this.$genInitFromSchema('${typeAnnotation?.sortedTypeKey}', ${code})`;
412
- }
413
- return code;
418
+ code += ')';
419
+ if (
420
+ parentNode.concept !== 'Argument' &&
421
+ parentKey !== 'test' &&
422
+ parentKey !== 'patterns' &&
423
+ parentKey !== 'returnExpression' &&
424
+ parentNode.concept !== 'Assignment' &&
425
+ parentNode.concept !== 'ForEachStatement' &&
426
+ parentNode.concept !== 'SelectMembers' &&
427
+ parentNode.concept !== 'UnaryExpression' &&
428
+ parentNode.concept !== 'BinaryExpression' &&
429
+ parentNode.concept !== 'MemberExpression' &&
430
+ parentNode.concept !== 'StringInterpolation' &&
431
+ !['NewMap', 'NewList'].includes(parentNode.concept)
432
+ ) {
433
+ code += ';';
414
434
  }
415
-
416
- @withSourceMap()
417
- toEmbeddedTS(state?: TranslatorState): string {
418
- const { completeArguments, parentNode, parentKey, tsCalleeKey } = this;
419
-
420
- let code = `${tsCalleeKey}(`;
421
-
422
- if (completeArguments?.length) {
423
- code += '{';
424
- completeArguments?.forEach((arg, index) => {
425
- code += arg?.toEmbeddedTS(shiftState(state, code), arg.paramRequired, true);
426
- if (index !== this.arguments?.length - 1)
427
- code += ', ';
428
- });
429
- code += '}';
430
- }
431
- code += ')';
432
- if (parentNode.concept !== 'Argument'
433
- && parentKey !== 'test'
434
- && parentKey !== 'patterns'
435
- && parentKey !== 'returnExpression'
436
- && parentNode.concept !== 'Assignment'
437
- && parentNode.concept !== 'ForEachStatement'
438
- && parentNode.concept !== 'SelectMembers'
439
- && parentNode.concept !== 'UnaryExpression'
440
- && parentNode.concept !== 'BinaryExpression'
441
- && parentNode.concept !== 'MemberExpression'
442
- && parentNode.concept !== 'StringInterpolation'
443
- && !['NewMap', 'NewList'].includes(parentNode.concept)) {
444
- code += ';';
445
- }
446
- code += '\n';
447
- return code;
435
+ code += '\n';
436
+ return code;
437
+ }
438
+
439
+ @withSourceMap()
440
+ toNaturalTS(state?: TranslatorState): string {
441
+ const { completeArguments, parentNode, parentKey, tsCalleeKey } = this;
442
+
443
+ let code = `${tsCalleeKey}(`;
444
+
445
+ if (completeArguments?.length) {
446
+ code += '{';
447
+ completeArguments?.forEach((arg, index) => {
448
+ code += arg?.toNaturalTS(shiftState(state, code), arg.paramRequired, true);
449
+ if (index !== this.arguments?.length - 1) code += ', ';
450
+ });
451
+ code += '}';
448
452
  }
449
-
450
- toBrief(): string {
451
- return this.arguments.map((a) => a.toBrief()).join('<br />');
453
+ code += ')';
454
+ if (
455
+ parentNode.concept !== 'Argument' &&
456
+ parentKey !== 'test' &&
457
+ parentKey !== 'patterns' &&
458
+ parentKey !== 'returnExpression' &&
459
+ parentNode.concept !== 'Assignment' &&
460
+ parentNode.concept !== 'ForEachStatement' &&
461
+ parentNode.concept !== 'SelectMembers' &&
462
+ parentNode.concept !== 'UnaryExpression' &&
463
+ parentNode.concept !== 'BinaryExpression' &&
464
+ parentNode.concept !== 'MemberExpression' &&
465
+ parentNode.concept !== 'StringInterpolation' &&
466
+ !['NewMap', 'NewList'].includes(parentNode.concept)
467
+ ) {
468
+ code += ';';
452
469
  }
453
-
454
- get calleeKey(): string {
455
- const tsCalleeNamespace = this.tsCalleeNamespace;
456
- const calleeName = this.calleeName;
457
- return calleeName ? `${tsCalleeNamespace}.${calleeName}` : '__IDENTIFIER__';
470
+ code += '\n';
471
+ return code;
472
+ }
473
+
474
+ toBrief(): string {
475
+ return this.arguments.map((a) => a.toBrief()).join('<br />');
476
+ }
477
+
478
+ get calleeKey(): string {
479
+ const { tsCalleeNamespace } = this;
480
+ const { calleeName } = this;
481
+ return calleeName ? `${tsCalleeNamespace}.${calleeName}` : '__IDENTIFIER__';
482
+ }
483
+
484
+ // 用于logic回填
485
+ get calleewholeKey(): string {
486
+ return `${this.calleeNamespace}.${this.calleeName}`;
487
+ }
488
+
489
+ get tsCalleeName(): string {
490
+ const excludeds = [
491
+ 'abstract',
492
+ 'arguments',
493
+ 'await',
494
+ 'boolean',
495
+ 'break',
496
+ 'byte',
497
+ 'case',
498
+ 'catch',
499
+ 'char',
500
+ 'class',
501
+ 'const',
502
+ 'continue',
503
+ 'debugger',
504
+ 'default',
505
+ 'delete',
506
+ 'do',
507
+ 'double',
508
+ 'decimal',
509
+ 'else',
510
+ 'enum',
511
+ 'eval',
512
+ 'export',
513
+ 'extends',
514
+ 'false',
515
+ 'final',
516
+ 'finally',
517
+ 'float',
518
+ 'for',
519
+ 'function',
520
+ 'goto',
521
+ 'if',
522
+ 'implements',
523
+ 'import',
524
+ 'in',
525
+ 'instanceof',
526
+ 'int',
527
+ 'interface',
528
+ 'let',
529
+ 'long',
530
+ 'native',
531
+ 'new',
532
+ 'null',
533
+ 'package',
534
+ 'private',
535
+ 'protected',
536
+ 'public',
537
+ 'return',
538
+ 'short',
539
+ 'static',
540
+ 'super',
541
+ 'switch',
542
+ 'synchronized',
543
+ 'this',
544
+ 'throw',
545
+ 'throws',
546
+ 'transient',
547
+ 'true',
548
+ 'try',
549
+ 'typeof',
550
+ 'var',
551
+ 'void',
552
+ 'volatile',
553
+ 'while',
554
+ 'with',
555
+ 'yield,as',
556
+ 'any',
557
+ 'number',
558
+ 'string',
559
+ 'get',
560
+ 'type',
561
+ 'typeof',
562
+ 'instanceof',
563
+ 'require',
564
+ ];
565
+ if (excludeds.includes(this.calleeName)) {
566
+ return `_${this.calleeName}`;
458
567
  }
459
- // 用于logic回填
460
- get calleewholeKey(): string {
461
- return this.calleeNamespace + '.' + this.calleeName;
568
+ return this.calleeName;
569
+ }
570
+
571
+ get tsCalleeKey(): string {
572
+ const { tsCalleeNamespace } = this;
573
+ const calleeName = this.tsCalleeName;
574
+ return calleeName ? `${tsCalleeNamespace}.${calleeName}` : '__IDENTIFIER__';
575
+ }
576
+
577
+ get calleeDefaultKey(): string {
578
+ return `${this.calleeNamespace}.${this.calleeName}`;
579
+ }
580
+
581
+ _setCallee(_interface: Interface) {
582
+ this.arguments = [];
583
+ _interface.params.forEach((param) => {
584
+ this._addArgument({
585
+ keyword: param.name,
586
+ });
587
+ });
588
+ }
589
+
590
+ setCallee(_interface: Interface) {
591
+ const calleeNamespace = _interface.getNamespace();
592
+ const calleeName = _interface.name;
593
+ const params = _interface.params.map((param) => {
594
+ const relationOptions = { parentNode: this, parentKey: 'arguments' };
595
+ const argument = new Argument({
596
+ keyword: param.name,
597
+ });
598
+ Object.assign(argument, relationOptions);
599
+ return argument;
600
+ });
601
+
602
+ if (this.app) {
603
+ this.app.emit('collect:start', {
604
+ actionMsg: `切换调用逻辑`,
605
+ });
606
+ const { parentNode } = this;
607
+ this.update({
608
+ calleeNamespace,
609
+ calleeName,
610
+ arguments: params,
611
+ folded: false,
612
+ });
613
+ if (parentNode.concept === 'MemberExpression') {
614
+ const topNode = parentNode.firstMemberExpressionNode();
615
+ topNode.replaceNode(this);
616
+ }
617
+ this.app.emit('collect:end');
618
+ } else {
619
+ this.update({
620
+ calleeNamespace,
621
+ calleeName,
622
+ arguments: params,
623
+ folded: false,
624
+ });
462
625
  }
463
- get tsCalleeName(): string {
464
- const excludeds = [
465
- 'abstract',
466
- 'arguments',
467
- 'await',
468
- 'boolean',
469
- 'break',
470
- 'byte',
471
- 'case',
472
- 'catch',
473
- 'char',
474
- 'class',
475
- 'const',
476
- 'continue',
477
- 'debugger',
478
- 'default',
479
- 'delete',
480
- 'do',
481
- 'double',
482
- 'decimal',
483
- 'else',
484
- 'enum',
485
- 'eval',
486
- 'export',
487
- 'extends',
488
- 'false',
489
- 'final',
490
- 'finally',
491
- 'float',
492
- 'for',
493
- 'function',
494
- 'goto',
495
- 'if',
496
- 'implements',
497
- 'import',
498
- 'in',
499
- 'instanceof',
500
- 'int',
501
- 'interface',
502
- 'let',
503
- 'long',
504
- 'native',
505
- 'new',
506
- 'null',
507
- 'package',
508
- 'private',
509
- 'protected',
510
- 'public',
511
- 'return',
512
- 'short',
513
- 'static',
514
- 'super',
515
- 'switch',
516
- 'synchronized',
517
- 'this',
518
- 'throw',
519
- 'throws',
520
- 'transient',
521
- 'true',
522
- 'try',
523
- 'typeof',
524
- 'var',
525
- 'void',
526
- 'volatile',
527
- 'while',
528
- 'with',
529
- 'yield,as',
530
- 'any',
531
- 'number',
532
- 'string',
533
- 'get',
534
- 'type',
535
- 'typeof',
536
- 'instanceof',
537
- 'require',
538
- ];
539
- if (excludeds.includes(this.calleeName)) {
540
- return '_' + this.calleeName;
626
+ }
627
+
628
+ // 通过内容过去节点
629
+ getCallNode() {
630
+ let node;
631
+ // 如果是其余app下自定义逻辑
632
+ try {
633
+ node = getNodeByNodeCallee(this.app, this.calleewholeKey, (key: any, tempPoint: any) => {
634
+ // 处理 NASL 中未定义的假的节点
635
+ if (key === tempPoint.name) {
636
+ return {
637
+ tempPoint,
638
+ state: 1,
639
+ };
541
640
  }
542
- return this.calleeName;
543
- }
544
-
545
- get tsCalleeKey(): string {
546
- const tsCalleeNamespace = this.tsCalleeNamespace;
547
- const calleeName = this.tsCalleeName;
548
- return calleeName ? `${tsCalleeNamespace}.${calleeName}` : '__IDENTIFIER__';
641
+ const t = tempPoint[key];
642
+ return {
643
+ tempPoint: t,
644
+ state: Array.isArray(t) ? 2 : 1,
645
+ };
646
+ });
647
+ } catch (err) {}
648
+ return node;
649
+ }
650
+
651
+ get completeArguments() {
652
+ const node = this.getCallNode();
653
+ let logicParam: InterfaceParam[] = [];
654
+ const Arguments: Argument[] = [];
655
+ if (node?.params) {
656
+ logicParam = node.params;
549
657
  }
550
- get calleeDefaultKey(): string {
551
- return `${this.calleeNamespace}.${this.calleeName}`;
658
+ if (this.arguments?.length) {
659
+ this.arguments.forEach((arg) => {
660
+ const idx = logicParam.findIndex((params) => arg.keyword === params.name);
661
+ const param = logicParam[idx];
662
+
663
+ arg.paramRequired = param?.required;
664
+ arg.paramTypeAnnotation = undefined;
665
+ arg.paramDefaultValue = undefined;
666
+ // 取到是不是必填放入参数中
667
+ if (param && !arg.expression) {
668
+ // 非必填时 才会有默认值
669
+ // 因为之前接口这里的必填非必填,一直是有值的,而且不允许修改
670
+ arg.paramTypeAnnotation = param.typeAnnotation;
671
+ arg.paramDefaultValue = param.defaultValue;
672
+ }
673
+ Arguments.push(arg);
674
+ });
552
675
  }
553
- _setCallee(_interface: Interface) {
554
- this.arguments = [];
555
- _interface.params.forEach((param) => {
556
- this._addArgument({
557
- keyword: param.name,
558
- });
559
- });
676
+ return Arguments;
677
+ }
678
+
679
+ /**
680
+ * 反向查找对应 module 和 interface
681
+ */
682
+ getModuleInterface() {
683
+ if (!this.calleeNamespace || !this.calleeName)
684
+ return {
685
+ _module: null,
686
+ _interface: null,
687
+ };
688
+ const _arr = this.calleewholeKey.split('.');
689
+ const _name = _arr[1];
690
+ const _interfaceName = _arr[3];
691
+ const _module = this.app.interfaceDependencies.find((item) => item.name === _name);
692
+ const _interface = _module?.interfaces.find((item) => item.name === _interfaceName);
693
+ return {
694
+ _module,
695
+ _interface,
696
+ };
697
+ }
698
+
699
+ // 导入接口
700
+ async createOrUpdateInterface({ moduleData, selectedModule }: { moduleData: Partial<Module>; selectedModule: any }) {
701
+ const moduleName = moduleData.name;
702
+ const itfData = moduleData.interfaces[0];
703
+ this.app.emit('collect:start', { actionMsg: '调用接口' });
704
+
705
+ let module = this.app.interfaceDependencies.find((item) => item.name === moduleName);
706
+ if (!module) {
707
+ module = this.app.addModuleInInterfaceDependencies({
708
+ name: moduleName,
709
+ configuration: moduleData.configuration,
710
+ type: 'interface',
711
+ isAdd: true,
712
+ });
560
713
  }
561
-
562
- setCallee(_interface: Interface) {
563
- const calleeNamespace = _interface.getNamespace();
564
- const calleeName = _interface.name;
565
- const params = _interface.params.map((param) => {
566
- const relationOptions = { parentNode: this, parentKey: 'arguments' };
567
- const argument = new Argument({
568
- keyword: param.name,
569
- });
570
- Object.assign(argument, relationOptions);
571
- return argument;
572
- });
573
-
574
- if (this.app) {
575
- this.app.emit('collect:start', {
576
- actionMsg: `切换调用逻辑`,
577
- });
578
- const parentNode: any = this.parentNode;
579
- this.update({
580
- calleeNamespace,
581
- calleeName,
582
- arguments: params,
583
- folded: false,
584
- });
585
- if (parentNode.concept === 'MemberExpression') {
586
- const topNode = parentNode.firstMemberExpressionNode();
587
- topNode.replaceNode(this);
714
+ // 将依赖库的config添加到APP的config中
715
+ if (selectedModule.appType === 'DUBBO' && moduleData.configuration && moduleData.configuration.groups) {
716
+ const configGroupData = moduleData.configuration.groups[0];
717
+ if (configGroupData) {
718
+ const configGroup = this.app.configuration.getGroup(configGroupData.name);
719
+ if (configGroup) {
720
+ const propertyData = configGroupData.properties[0];
721
+ if (propertyData) {
722
+ const property = configGroup.getProperty(propertyData.name);
723
+ // 已导入的不覆盖
724
+ if (!property) {
725
+ configGroup.addConfigProperty(propertyData);
588
726
  }
589
- this.app.emit('collect:end');
590
- } else {
591
- this.update({
592
- calleeNamespace,
593
- calleeName,
594
- arguments: params,
595
- folded: false,
596
- });
727
+ }
597
728
  }
729
+ }
598
730
  }
599
- // 通过内容过去节点
600
- getCallNode() {
601
- let node;
602
- // 如果是其余app下自定义逻辑
603
- try {
604
- node = getNodeByNodeCallee(this.app, this.calleewholeKey, (key: any, tempPoint: any) => {
605
- // 处理 NASL 中未定义的假的节点
606
- if (key === tempPoint.name) {
607
- return {
608
- tempPoint,
609
- state: 1,
610
- };
611
- }
612
- const t = tempPoint[key];
613
- return {
614
- tempPoint: t,
615
- state: Array.isArray(t) ? 2 : 1,
616
- };
617
- });
618
- } catch (err) { }
619
- return node;
620
- }
621
- get completeArguments() {
622
- const node = this.getCallNode();
623
- let logicParam: InterfaceParam[] = [];
624
- const Arguments: Argument[] = [];
625
- if (node?.params) {
626
- logicParam = node.params;
627
- }
628
- if (this.arguments?.length) {
629
- this.arguments.forEach((arg) => {
630
- const idx = logicParam.findIndex((params) => arg.keyword === params.name);
631
- const param = logicParam[idx];
632
-
633
- arg.paramRequired = param?.required;
634
- arg.paramTypeAnnotation = undefined;
635
- arg.paramDefaultValue = undefined;
636
- // 取到是不是必填放入参数中
637
- if (param && !arg.expression) {
638
- // 非必填时 才会有默认值
639
- // 因为之前接口这里的必填非必填,一直是有值的,而且不允许修改
640
- arg.paramTypeAnnotation = param.typeAnnotation;
641
- arg.paramDefaultValue = param.defaultValue;
642
- }
643
- Arguments.push(arg);
644
- });
645
- }
646
- return Arguments;
731
+
732
+ let targetItf = module.interfaces.find((item) => item.name === itfData.name);
733
+ // 根据 targetItf 是否是AuthInterface 来确定生成什么类型的接口
734
+ let newItf;
735
+ if (targetItf && targetItf.concept === 'AuthInterface') {
736
+ newItf = new AuthInterface({
737
+ ...itfData,
738
+ authLogic: (targetItf as AuthInterface).authLogic,
739
+ concept: targetItf.concept,
740
+ });
741
+ } else {
742
+ newItf = new Interface(itfData);
647
743
  }
648
- /**
649
- * 反向查找对应 module 和 interface
650
- */
651
- getModuleInterface() {
652
- if (!this.calleeNamespace || !this.calleeName)
653
- return {
654
- _module: null,
655
- _interface: null,
656
- };
657
- const _arr = this.calleewholeKey.split('.');
658
- const _name = _arr[1];
659
- const _interfaceName = _arr[3];
660
- const _module = this.app.interfaceDependencies.find((item) => item.name === _name);
661
- const _interface = _module?.interfaces.find((item) => item.name === _interfaceName);
662
- return {
663
- _module,
664
- _interface,
665
- };
744
+ if (targetItf) {
745
+ // 更新已有接口
746
+ targetItf.update(newItf.toJSON());
747
+ } else {
748
+ targetItf = newItf;
749
+ module.addInterface(targetItf);
666
750
  }
667
751
 
668
- // 导入接口
669
- async createOrUpdateInterface({ moduleData, selectedModule }: {moduleData: Partial<Module>, selectedModule: any}) {
670
- const moduleName = moduleData.name;
671
- const itfData = moduleData.interfaces[0];
672
- this.app.emit('collect:start', { actionMsg: '调用接口' });
673
-
674
- let module = this.app.interfaceDependencies.find((item) => item.name === moduleName);
675
- if (!module) {
676
- module = this.app.addModuleInInterfaceDependencies({
677
- name: moduleName,
678
- configuration: moduleData.configuration,
679
- type: 'interface',
680
- isAdd: true,
681
- });
752
+ // 计算之前选择的接口的引用次数
753
+ let oldItf;
754
+ if (this.calleeKey !== '__IDENTIFIER__') {
755
+ oldItf = this.getCallNode();
756
+ if (oldItf) {
757
+ let refCount = 0;
758
+ let isSelfRef = false;
759
+ let isSameItf = false;
760
+ if (selectedModule.appCode === oldItf.parentNode.name && newItf.name === oldItf.name) {
761
+ isSameItf = true;
682
762
  }
683
- // 将依赖库的config添加到APP的config中
684
- if (selectedModule.appType === 'DUBBO' && moduleData.configuration && moduleData.configuration.groups) {
685
- const configGroupData = moduleData.configuration.groups[0];
686
- if (configGroupData) {
687
- const configGroup = this.app.configuration.getGroup(configGroupData.name);
688
- if (configGroup) {
689
- const propertyData = configGroupData.properties[0];
690
- if (propertyData) {
691
- const property = configGroup.getProperty(propertyData.name);
692
- // 已导入的不覆盖
693
- if (!property) {
694
- configGroup.addConfigProperty(propertyData);
695
- }
696
- }
697
- }
763
+ const refs = await oldItf.findUsage();
764
+ refs.forEach((val: any) => {
765
+ const loopFindNode = (item: any) => {
766
+ if (item.children) {
767
+ item.children.forEach((i: any) => loopFindNode(i));
768
+ } else {
769
+ refCount++;
770
+ if (item.node === this) {
771
+ isSelfRef = true;
772
+ } else if (isSameItf) {
773
+ item.node.setCallee?.(targetItf);
774
+ }
698
775
  }
699
- }
700
-
701
- let targetItf = module.interfaces.find((item) => item.name === itfData.name);
702
- // 根据 targetItf 是否是AuthInterface 来确定生成什么类型的接口
703
- let newItf;
704
- if (targetItf && targetItf.concept === 'AuthInterface') {
705
- newItf = new AuthInterface({
706
- ...itfData,
707
- authLogic: (targetItf as AuthInterface).authLogic,
708
- concept: targetItf.concept,
709
- });
710
- } else {
711
- newItf = new Interface(itfData);
712
- }
713
- if (targetItf) {
714
- // 更新已有接口
715
- targetItf.update(newItf.toJSON());
716
- } else {
717
- targetItf = newItf;
718
- module.addInterface(targetItf);
719
- }
776
+ };
777
+ loopFindNode(val);
778
+ });
720
779
 
721
- // 计算之前选择的接口的引用次数
722
- let oldItf;
723
- if (this.calleeKey !== '__IDENTIFIER__') {
724
- oldItf = this.getCallNode();
725
- if (oldItf) {
726
- let refCount = 0;
727
- let isSelfRef = false;
728
- let isSameItf = false;
729
- if (selectedModule.appCode === oldItf.parentNode.name && newItf.name === oldItf.name) {
730
- isSameItf = true;
731
- }
732
- const refs = await oldItf.findUsage();
733
- refs.forEach((val: any) => {
734
- const loopFindNode = (item: any) => {
735
- if (item.children) {
736
- item.children.forEach((i: any) => loopFindNode(i));
737
- } else {
738
- refCount++;
739
- if (item.node === this) {
740
- isSelfRef = true;
741
- } else if (isSameItf) {
742
- item.node.setCallee?.(targetItf);
743
- }
744
- }
745
- };
746
- loopFindNode(val);
747
- });
748
-
749
- // 之前选的接口不存在时则删除
750
- // if (selectedModule.appCode === oldItf.parentNode.name && selectedModule.apis && !selectedModule.apis.find((api) => api.apiCode === oldItf.name)) {
751
- // oldItf.delete();
752
- // } else {
753
- // 仅被自己引用则删除
754
- if (!isSameItf && isSelfRef && refCount === 1) {
755
- // 删除旧的数据结构
756
- const oldStructuresSet = oldItf.getRefStructures(oldItf.module.structures);
757
- oldStructuresSet.forEach((s: Structure) => s.delete());
758
- oldItf.delete();
759
- oldItf.afterDelete();
760
- }
761
- // }
762
- }
780
+ // 之前选的接口不存在时则删除
781
+ // if (selectedModule.appCode === oldItf.parentNode.name && selectedModule.apis && !selectedModule.apis.find((api) => api.apiCode === oldItf.name)) {
782
+ // oldItf.delete();
783
+ // } else {
784
+ // 仅被自己引用则删除
785
+ if (!isSameItf && isSelfRef && refCount === 1) {
786
+ // 删除旧的数据结构
787
+ const oldStructuresSet = oldItf.getRefStructures(oldItf.module.structures);
788
+ oldStructuresSet.forEach((s: Structure) => s.delete());
789
+ oldItf.delete();
790
+ oldItf.afterDelete();
763
791
  }
764
-
765
- this.setCallee(targetItf);
766
-
767
- // 删除旧的数据结构
768
- const oldStructuresSet = targetItf.getRefStructures(targetItf.module.structures);
769
- oldStructuresSet.forEach((s) => s.delete());
770
- // 递归找出 response/request 的 Body/Returns 引用的数据结构
771
- const structuresSet = targetItf.getRefStructures(moduleData.structures);
772
- structuresSet.forEach((s) => module.addStructure(Structure.from(s)));
773
- this.app.emit('collect:end');
792
+ // }
793
+ }
774
794
  }
775
- //================================================================================
776
- // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
777
- // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
778
- //================================================================================
795
+
796
+ this.setCallee(targetItf);
797
+
798
+ // 删除旧的数据结构
799
+ const oldStructuresSet = targetItf.getRefStructures(targetItf.module.structures);
800
+ oldStructuresSet.forEach((s) => s.delete());
801
+ // 递归找出 response/request 的 Body/Returns 引用的数据结构
802
+ const structuresSet = targetItf.getRefStructures(moduleData.structures);
803
+ structuresSet.forEach((s) => module.addStructure(Structure.from(s)));
804
+ this.app.emit('collect:end');
805
+ }
806
+ //= ===============================================================================
807
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
808
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
809
+ //= ===============================================================================
779
810
  }
780
811
 
781
812
  classMap.CallInterface = CallInterface;
782
813
  export default CallInterface;
783
- //================================================================================
814
+ //= ===============================================================================
784
815
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
785
816
  // 自动生成的代码已结束。下面可以手动编写。
786
- //================================================================================
817
+ //= ===============================================================================