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