@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,17 +1,17 @@
1
+ import { v4 as uuidv4 } from 'uuid';
1
2
  import { TranslatorState, shiftState, withSourceMap, createCompilerState } from '../translator';
2
3
  import Namespace from './Namespace__';
3
4
  import TypeAnnotation from './TypeAnnotation__';
4
5
  import Structure from './Structure__';
5
6
  import Param from './Param__';
6
- //================================================================================
7
+ //= ===============================================================================
7
8
  // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
8
9
  // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
9
- //================================================================================
10
+ //= ===============================================================================
10
11
  import { EventPayload, Params } from '../common/EventEmitter';
11
12
  import { concept, excludedInJSON, property } from '../decorators';
12
13
 
13
14
  import * as utils from '../utils';
14
- import { v4 as uuidv4 } from 'uuid';
15
15
  import BaseNode from '../common/BaseNode';
16
16
  import classMap from '../common/classMap';
17
17
  import InterfaceParam from './InterfaceParam__';
@@ -25,983 +25,1004 @@ import App from './App__';
25
25
  */
26
26
  @concept('接口')
27
27
  export class Interface extends BaseNode {
28
- /**
29
- * 产品概念
30
- */
31
- @property()
32
- concept: 'Interface' | 'AuthInterface' = 'Interface';
33
-
34
- /**
35
- * 接口名称
36
- */
37
- @property()
38
- name: string = undefined;
39
-
40
- /**
41
- * originLogicName
42
- */
43
- @property()
44
- originLogicName: string = undefined;
45
-
46
- /**
47
- * path
48
- */
49
- @property()
50
- path: string = undefined;
51
-
52
- /**
53
- * method
54
- */
55
- @property()
56
- method: 'GET' | 'POST' | 'PUT' | 'DELETE' = undefined;
57
-
58
- /**
59
- * 接口描述
60
- */
61
- @property()
62
- description: string = undefined;
63
-
64
- /**
65
- * 接口参数列表
66
- */
67
- @property('InterfaceParam')
68
- params: Array<InterfaceParam> = [];
69
-
70
- /**
71
- * 输出参数列表
72
- */
73
- @property('Return')
74
- returns: Array<Return> = [];
75
-
76
- /**
77
- * 验证规则
78
- */
79
- @property('BindAttribute')
80
- validation: BindAttribute = undefined;
81
-
82
- /**
83
- * 祖先 Module
84
- */
85
- get module() {
86
- return this.getAncestor('Module') as Module;
87
- }
88
- /**
89
- * 祖先 App
90
- */
91
- get app() {
92
- return this.getAncestor('App') as App;
93
- }
94
-
95
- /**
96
- * @param source 需要合并的部分参数
97
- */
98
- constructor(source?: Partial<Interface>) {
99
- source = Object.assign({}, Interface.getDefaultOptions(), source);
100
- super(source);
101
- super.subConstructor(source);
28
+ /**
29
+ * 产品概念
30
+ */
31
+ @property()
32
+ concept: 'Interface' | 'AuthInterface' = 'Interface';
33
+
34
+ /**
35
+ * 接口名称
36
+ */
37
+ @property()
38
+ name: string = undefined;
39
+
40
+ /**
41
+ * originLogicName
42
+ */
43
+ @property()
44
+ originLogicName: string = undefined;
45
+
46
+ /**
47
+ * path
48
+ */
49
+ @property()
50
+ path: string = undefined;
51
+
52
+ /**
53
+ * method
54
+ */
55
+ @property()
56
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE' = undefined;
57
+
58
+ /**
59
+ * 接口描述
60
+ */
61
+ @property()
62
+ description: string = undefined;
63
+
64
+ /**
65
+ * 接口参数列表
66
+ */
67
+ @property('InterfaceParam')
68
+ params: Array<InterfaceParam> = [];
69
+
70
+ /**
71
+ * 输出参数列表
72
+ */
73
+ @property('Return')
74
+ returns: Array<Return> = [];
75
+
76
+ /**
77
+ * 验证规则
78
+ */
79
+ @property('BindAttribute')
80
+ validation: BindAttribute = undefined;
81
+
82
+ /**
83
+ * 祖先 Module
84
+ */
85
+ get module() {
86
+ return this.getAncestor('Module') as Module;
87
+ }
88
+
89
+ /**
90
+ * 祖先 App
91
+ */
92
+ get app() {
93
+ return this.getAncestor('App') as App;
94
+ }
95
+
96
+ /**
97
+ * @param source 需要合并的部分参数
98
+ */
99
+ constructor(source?: Partial<Interface>) {
100
+ // @ts-ignore
101
+ source = { ...Interface.getDefaultOptions(), ...source };
102
+ super(source);
103
+ super.subConstructor(source);
104
+ }
105
+
106
+ getClassName() {
107
+ return 'Interface';
108
+ }
109
+
110
+ static from(source: any, parentNode?: any, parentKey?: string): Interface {
111
+ return super.from(source, parentNode, parentKey) as Interface;
112
+ }
113
+
114
+ /**
115
+ * 从父级删除该节点
116
+ * @internal
117
+ */
118
+ _delete() {
119
+ let params: Params = null;
120
+ if (this.parentNode) {
121
+ params = (this.parentNode as any)?.__removeInterface?.(this);
102
122
  }
103
- getClassName() {
104
- return 'Interface';
123
+ return params;
124
+ }
125
+
126
+ /**
127
+ * 设置接口名称
128
+ */
129
+ setName(name: string) {
130
+ const object = {
131
+ name,
132
+ };
133
+ this.update({
134
+ ...object,
135
+ field: 'name',
136
+ });
137
+ }
138
+
139
+ /**
140
+ * 设置接口描述
141
+ */
142
+ setDescription(description: string) {
143
+ const object = {
144
+ description,
145
+ };
146
+ this.update({
147
+ ...object,
148
+ });
149
+ }
150
+
151
+ /**
152
+ * 设置验证规则
153
+ */
154
+ setValidation(validation: BindAttribute) {
155
+ validation._delete();
156
+ const relationOptions = { parentNode: this, parentKey: 'validation' };
157
+ Object.assign(validation, relationOptions);
158
+ const object = {
159
+ validation,
160
+ };
161
+ this.update({
162
+ ...object,
163
+ });
164
+ }
165
+
166
+ getInterfaceParamUniqueName(name = 'interfaceParam1') {
167
+ return utils.unique(name, this.getVarExistingNames(), undefined, false);
168
+ }
169
+
170
+ /**
171
+ * 插入接口参数
172
+ * @internal
173
+ * @param name 接口参数名称,如果不填会自动生成一个唯一名称
174
+ */
175
+ _insertInterfaceParamAt(name: string, index: number): InterfaceParam;
176
+
177
+ /**
178
+ * 插入接口参数
179
+ * @internal
180
+ * @param interfaceParamOptions 接口参数参数
181
+ */
182
+ _insertInterfaceParamAt(interfaceParamOptions: Partial<InterfaceParam>, index: number): InterfaceParam;
183
+
184
+ /**
185
+ * 插入接口参数
186
+ * @internal
187
+ * @param interfaceParam 已有的接口参数实例
188
+ */
189
+ _insertInterfaceParamAt(interfaceParam: InterfaceParam, index: number): InterfaceParam;
190
+
191
+ _insertInterfaceParamAt(options: string | Partial<InterfaceParam> | InterfaceParam, index: number) {
192
+ const interfaceParamOptions: any = {};
193
+ const relationOptions = { parentNode: this, parentKey: 'params' };
194
+ let interfaceParam: InterfaceParam;
195
+ if (!options) {
196
+ interfaceParam = InterfaceParam.from(
197
+ {
198
+ ...interfaceParamOptions,
199
+ name: this.getInterfaceParamUniqueName(),
200
+ },
201
+ this,
202
+ 'params'
203
+ );
204
+ } else if (typeof options === 'string') {
205
+ interfaceParam = InterfaceParam.from(
206
+ {
207
+ ...interfaceParamOptions,
208
+ name: options,
209
+ },
210
+ this,
211
+ 'params'
212
+ );
213
+ } else if (options instanceof InterfaceParam) {
214
+ options.ensureDelete(); // 同一实例不支持多处存在
215
+ interfaceParam = options;
216
+ Object.assign(interfaceParam, relationOptions);
217
+ } else {
218
+ interfaceParam = InterfaceParam.from(
219
+ {
220
+ ...interfaceParamOptions,
221
+ ...options,
222
+ },
223
+ this,
224
+ 'params'
225
+ );
105
226
  }
106
-
107
- static from(source: any, parentNode?: any, parentKey?: string): Interface {
108
- return super.from(source, parentNode, parentKey) as Interface;
109
- }
110
-
111
- /**
112
- * 从父级删除该节点
113
- * @internal
114
- */
115
- _delete() {
116
- let params: Params = null;
117
- if (this.parentNode) {
118
- params = (this.parentNode as any)?.__removeInterface?.(this);
119
- }
120
- return params;
227
+ this.params.splice(index, 0, interfaceParam);
228
+ return interfaceParam;
229
+ }
230
+
231
+ /**
232
+ * 插入接口参数
233
+ * @param name 接口参数名称,如果不填会自动生成一个唯一名称
234
+ */
235
+ insertInterfaceParamAt(name: string, index: number): InterfaceParam;
236
+
237
+ /**
238
+ * 插入接口参数
239
+ * @param interfaceParamOptions 接口参数参数
240
+ */
241
+ insertInterfaceParamAt(interfaceParamOptions: Partial<InterfaceParam>, index: number): InterfaceParam;
242
+
243
+ /**
244
+ * 插入接口参数
245
+ * @param interfaceParam 已有的接口参数实例
246
+ */
247
+ insertInterfaceParamAt(interfaceParam: InterfaceParam, index: number): InterfaceParam;
248
+
249
+ insertInterfaceParamAt(options: string | Partial<InterfaceParam> | InterfaceParam, index: number) {
250
+ const node = this._insertInterfaceParamAt(options as any, index);
251
+ node.create({
252
+ index,
253
+ parentNode: this,
254
+ parentKey: 'params',
255
+ });
256
+ return node;
257
+ }
258
+
259
+ /**
260
+ * 添加接口参数
261
+ * @internal
262
+ * @param name 接口参数名称,如果不填会自动生成一个唯一名称
263
+ */
264
+ _addInterfaceParam(name?: string): InterfaceParam;
265
+
266
+ /**
267
+ * 添加接口参数
268
+ * @internal
269
+ * @param interfaceParamOptions 接口参数参数
270
+ */
271
+ _addInterfaceParam(interfaceParamOptions: Partial<InterfaceParam>): InterfaceParam;
272
+
273
+ /**
274
+ * 添加接口参数
275
+ * @internal
276
+ * @param interfaceParam 已有的接口参数实例
277
+ */
278
+ _addInterfaceParam(interfaceParam: InterfaceParam): InterfaceParam;
279
+
280
+ _addInterfaceParam(options?: string | Partial<InterfaceParam> | InterfaceParam) {
281
+ const index = this.params.length;
282
+ return this._insertInterfaceParamAt(options as any, index);
283
+ }
284
+
285
+ /**
286
+ * 添加接口参数
287
+ * @internal
288
+ * @param name 接口参数名称,如果不填会自动生成一个唯一名称
289
+ */
290
+ addInterfaceParam(name?: string): InterfaceParam;
291
+
292
+ /**
293
+ * 添加接口参数
294
+ * @param interfaceParamOptions 接口参数参数
295
+ */
296
+ addInterfaceParam(interfaceParamOptions: Partial<InterfaceParam>): InterfaceParam;
297
+
298
+ /**
299
+ * 添加接口参数
300
+ * @param interfaceParam 已有的接口参数实例
301
+ */
302
+ addInterfaceParam(interfaceParam: InterfaceParam): InterfaceParam;
303
+
304
+ addInterfaceParam(options?: string | Partial<InterfaceParam> | InterfaceParam) {
305
+ const node = this._addInterfaceParam(options as any);
306
+ const index = this.params.indexOf(node);
307
+ node.create({
308
+ index,
309
+ parentNode: this,
310
+ parentKey: 'params',
311
+ });
312
+ return node;
313
+ }
314
+
315
+ getReturnUniqueName(name = 'result') {
316
+ return utils.unique(name, this.getVarExistingNames(), undefined, false);
317
+ }
318
+
319
+ /**
320
+ * 插入输出参数
321
+ * @internal
322
+ * @param name 输出参数名称,如果不填会自动生成一个唯一名称
323
+ */
324
+ _insertReturnAt(name: string, index: number): Return;
325
+
326
+ /**
327
+ * 插入输出参数
328
+ * @internal
329
+ * @param retOptions 输出参数参数
330
+ */
331
+ _insertReturnAt(retOptions: Partial<Return>, index: number): Return;
332
+
333
+ /**
334
+ * 插入输出参数
335
+ * @internal
336
+ * @param ret 已有的输出参数实例
337
+ */
338
+ _insertReturnAt(ret: Return, index: number): Return;
339
+
340
+ _insertReturnAt(options: string | Partial<Return> | Return, index: number) {
341
+ const retOptions: any = {};
342
+ const relationOptions = { parentNode: this, parentKey: 'returns' };
343
+ let ret: Return;
344
+ if (!options) {
345
+ ret = Return.from(
346
+ {
347
+ ...retOptions,
348
+ name: this.getReturnUniqueName(),
349
+ },
350
+ this,
351
+ 'returns'
352
+ );
353
+ } else if (typeof options === 'string') {
354
+ ret = Return.from(
355
+ {
356
+ ...retOptions,
357
+ name: options,
358
+ },
359
+ this,
360
+ 'returns'
361
+ );
362
+ } else if (options instanceof Return) {
363
+ options.ensureDelete(); // 同一实例不支持多处存在
364
+ ret = options;
365
+ Object.assign(ret, relationOptions);
366
+ } else {
367
+ ret = Return.from(
368
+ {
369
+ ...retOptions,
370
+ ...options,
371
+ },
372
+ this,
373
+ 'returns'
374
+ );
121
375
  }
122
- /**
123
- * 设置接口名称
124
- */
125
- setName(name: string) {
126
- const object = {
127
- name,
128
- };
129
- this.update({
130
- ...object,
131
- field: 'name',
132
- });
376
+ this.returns.splice(index, 0, ret);
377
+ return ret;
378
+ }
379
+
380
+ /**
381
+ * 插入输出参数
382
+ * @param name 输出参数名称,如果不填会自动生成一个唯一名称
383
+ */
384
+ insertReturnAt(name: string, index: number): Return;
385
+
386
+ /**
387
+ * 插入输出参数
388
+ * @param retOptions 输出参数参数
389
+ */
390
+ insertReturnAt(retOptions: Partial<Return>, index: number): Return;
391
+
392
+ /**
393
+ * 插入输出参数
394
+ * @param ret 已有的输出参数实例
395
+ */
396
+ insertReturnAt(ret: Return, index: number): Return;
397
+
398
+ insertReturnAt(options: string | Partial<Return> | Return, index: number) {
399
+ const node = this._insertReturnAt(options as any, index);
400
+ node.create({
401
+ index,
402
+ parentNode: this,
403
+ parentKey: 'returns',
404
+ });
405
+ return node;
406
+ }
407
+
408
+ /**
409
+ * 添加输出参数
410
+ * @internal
411
+ * @param name 输出参数名称,如果不填会自动生成一个唯一名称
412
+ */
413
+ _addReturn(name?: string): Return;
414
+
415
+ /**
416
+ * 添加输出参数
417
+ * @internal
418
+ * @param retOptions 输出参数参数
419
+ */
420
+ _addReturn(retOptions: Partial<Return>): Return;
421
+
422
+ /**
423
+ * 添加输出参数
424
+ * @internal
425
+ * @param ret 已有的输出参数实例
426
+ */
427
+ _addReturn(ret: Return): Return;
428
+
429
+ _addReturn(options?: string | Partial<Return> | Return) {
430
+ const index = this.returns.length;
431
+ return this._insertReturnAt(options as any, index);
432
+ }
433
+
434
+ /**
435
+ * 添加输出参数
436
+ * @internal
437
+ * @param name 输出参数名称,如果不填会自动生成一个唯一名称
438
+ */
439
+ addReturn(name?: string): Return;
440
+
441
+ /**
442
+ * 添加输出参数
443
+ * @param retOptions 输出参数参数
444
+ */
445
+ addReturn(retOptions: Partial<Return>): Return;
446
+
447
+ /**
448
+ * 添加输出参数
449
+ * @param ret 已有的输出参数实例
450
+ */
451
+ addReturn(ret: Return): Return;
452
+
453
+ addReturn(options?: string | Partial<Return> | Return) {
454
+ const node = this._addReturn(options as any);
455
+ const index = this.returns.indexOf(node);
456
+ node.create({
457
+ index,
458
+ parentNode: this,
459
+ parentKey: 'returns',
460
+ });
461
+ return node;
462
+ }
463
+
464
+ /**
465
+ * 删除接口参数
466
+ * @param name 接口参数名称
467
+ */
468
+ removeInterfaceParam(name: string): void;
469
+
470
+ /**
471
+ * 删除接口参数
472
+ * @param interfaceParam 已有的接口参数实例
473
+ */
474
+ removeInterfaceParam(interfaceParam: InterfaceParam): void;
475
+
476
+ removeInterfaceParam(options: string | InterfaceParam) {
477
+ let interfaceParam: InterfaceParam;
478
+ if (typeof options === 'string') {
479
+ interfaceParam = (this.params as InterfaceParam[]).find((item) => item.name === options);
480
+ if (!interfaceParam) {
481
+ throw new Error(`找不到接口参数 ${options}`);
482
+ }
483
+ } else {
484
+ interfaceParam = options;
133
485
  }
134
-
135
- /**
136
- * 设置接口描述
137
- */
138
- setDescription(description: string) {
139
- const object = {
140
- description,
141
- };
142
- this.update({
143
- ...object,
144
- });
486
+ return interfaceParam.delete();
487
+ }
488
+
489
+ __removeInterfaceParam(interfaceParam: InterfaceParam) {
490
+ const { parentKey } = interfaceParam;
491
+ const params: Params = {
492
+ parentNode: this,
493
+ parentKey,
494
+ index: -1,
495
+ object: null,
496
+ oldObject: interfaceParam,
497
+ };
498
+ if (parentKey) {
499
+ params.parentKey = parentKey;
500
+ if (Array.isArray((this as any)[parentKey])) {
501
+ const index = (this as any)[parentKey].indexOf(interfaceParam);
502
+ ~index && (this as any)[parentKey].splice(index, 1);
503
+ params.index = index;
504
+ } else if ((this as any)[parentKey] === interfaceParam) {
505
+ params.index = 0;
506
+ (this as any)[parentKey] = undefined;
507
+ }
145
508
  }
146
-
147
- /**
148
- * 设置验证规则
149
- */
150
- setValidation(validation: BindAttribute) {
151
- validation._delete();
152
- const relationOptions = { parentNode: this, parentKey: 'validation' };
153
- Object.assign(validation, relationOptions);
154
- const object = {
155
- validation,
156
- };
157
- this.update({
158
- ...object,
159
- });
509
+ return params;
510
+ }
511
+
512
+ /**
513
+ * 删除输出参数
514
+ * @param name 输出参数名称
515
+ */
516
+ removeReturn(name: string): void;
517
+
518
+ /**
519
+ * 删除输出参数
520
+ * @param ret 已有的输出参数实例
521
+ */
522
+ removeReturn(ret: Return): void;
523
+
524
+ removeReturn(options: string | Return) {
525
+ let ret: Return;
526
+ if (typeof options === 'string') {
527
+ ret = (this.returns as Return[]).find((item) => item.name === options);
528
+ if (!ret) {
529
+ throw new Error(`找不到输出参数 ${options}`);
530
+ }
531
+ } else {
532
+ ret = options;
160
533
  }
161
-
162
- getInterfaceParamUniqueName(name = 'interfaceParam1') {
163
- return utils.unique(name, this.getVarExistingNames(), undefined, false);
534
+ return ret.delete();
535
+ }
536
+
537
+ __removeReturn(ret: Return) {
538
+ const { parentKey } = ret;
539
+ const params: Params = {
540
+ parentNode: this,
541
+ parentKey,
542
+ index: -1,
543
+ object: null,
544
+ oldObject: ret,
545
+ };
546
+ if (parentKey) {
547
+ params.parentKey = parentKey;
548
+ if (Array.isArray((this as any)[parentKey])) {
549
+ const index = (this as any)[parentKey].indexOf(ret);
550
+ ~index && (this as any)[parentKey].splice(index, 1);
551
+ params.index = index;
552
+ } else if ((this as any)[parentKey] === ret) {
553
+ params.index = 0;
554
+ (this as any)[parentKey] = undefined;
555
+ }
164
556
  }
165
-
166
- /**
167
- * 插入接口参数
168
- * @internal
169
- * @param name 接口参数名称,如果不填会自动生成一个唯一名称
170
- */
171
- _insertInterfaceParamAt(name: string, index: number): InterfaceParam;
172
-
173
- /**
174
- * 插入接口参数
175
- * @internal
176
- * @param interfaceParamOptions 接口参数参数
177
- */
178
- _insertInterfaceParamAt(interfaceParamOptions: Partial<InterfaceParam>, index: number): InterfaceParam;
179
-
180
- /**
181
- * 插入接口参数
182
- * @internal
183
- * @param interfaceParam 已有的接口参数实例
184
- */
185
- _insertInterfaceParamAt(interfaceParam: InterfaceParam, index: number): InterfaceParam;
186
-
187
- _insertInterfaceParamAt(options: string | Partial<InterfaceParam> | InterfaceParam, index: number) {
188
- const interfaceParamOptions: any = {};
189
- const relationOptions = { parentNode: this, parentKey: 'params' };
190
- let interfaceParam: InterfaceParam;
191
- if (!options) {
192
- interfaceParam = InterfaceParam.from({
193
- ...interfaceParamOptions,
194
- name: this.getInterfaceParamUniqueName(),
195
- }, this, 'params');
196
- } else if (typeof options === 'string') {
197
- interfaceParam = InterfaceParam.from({
198
- ...interfaceParamOptions,
199
- name: options,
200
- }, this, 'params');
201
- } else if (options instanceof InterfaceParam) {
202
- options.ensureDelete(); // 同一实例不支持多处存在
203
- interfaceParam = options;
204
- Object.assign(interfaceParam, relationOptions);
205
- } else {
206
- interfaceParam = InterfaceParam.from({
207
- ...interfaceParamOptions,
208
- ...options,
209
- }, this, 'params');
210
- }
211
- this.params.splice(index, 0, interfaceParam);
212
- return interfaceParam;
557
+ return params;
558
+ }
559
+
560
+ /**
561
+ * 删除元素绑定属性
562
+ * @param name 元素绑定属性名称
563
+ */
564
+ removeValidation(name: string): void;
565
+
566
+ /**
567
+ * 删除元素绑定属性
568
+ * @param validation 已有的元素绑定属性实例
569
+ */
570
+ removeValidation(validation: BindAttribute): void;
571
+
572
+ removeValidation(options: string | BindAttribute) {
573
+ let validation: BindAttribute;
574
+ if (typeof options === 'string') {
575
+ validation = this.validation;
576
+ if (!validation) {
577
+ throw new Error(`找不到元素绑定属性 ${options}`);
578
+ }
579
+ } else {
580
+ validation = options;
213
581
  }
214
-
215
- /**
216
- * 插入接口参数
217
- * @param name 接口参数名称,如果不填会自动生成一个唯一名称
218
- */
219
- insertInterfaceParamAt(name: string, index: number): InterfaceParam;
220
-
221
- /**
222
- * 插入接口参数
223
- * @param interfaceParamOptions 接口参数参数
224
- */
225
- insertInterfaceParamAt(interfaceParamOptions: Partial<InterfaceParam>, index: number): InterfaceParam;
226
-
227
- /**
228
- * 插入接口参数
229
- * @param interfaceParam 已有的接口参数实例
230
- */
231
- insertInterfaceParamAt(interfaceParam: InterfaceParam, index: number): InterfaceParam;
232
-
233
- insertInterfaceParamAt(options: string | Partial<InterfaceParam> | InterfaceParam, index: number) {
234
- const node = this._insertInterfaceParamAt(options as any, index);
235
- node.create({
236
- index,
237
- parentNode: this,
238
- parentKey: 'params',
239
- });
240
- return node;
241
- }
242
-
243
- /**
244
- * 添加接口参数
245
- * @internal
246
- * @param name 接口参数名称,如果不填会自动生成一个唯一名称
247
- */
248
- _addInterfaceParam(name?: string): InterfaceParam;
249
-
250
- /**
251
- * 添加接口参数
252
- * @internal
253
- * @param interfaceParamOptions 接口参数参数
254
- */
255
- _addInterfaceParam(interfaceParamOptions: Partial<InterfaceParam>): InterfaceParam;
256
-
257
- /**
258
- * 添加接口参数
259
- * @internal
260
- * @param interfaceParam 已有的接口参数实例
261
- */
262
- _addInterfaceParam(interfaceParam: InterfaceParam): InterfaceParam;
263
-
264
- _addInterfaceParam(options?: string | Partial<InterfaceParam> | InterfaceParam) {
265
- const index = this.params.length;
266
- return this._insertInterfaceParamAt(options as any, index);
267
- }
268
-
269
- /**
270
- * 添加接口参数
271
- * @internal
272
- * @param name 接口参数名称,如果不填会自动生成一个唯一名称
273
- */
274
- addInterfaceParam(name?: string): InterfaceParam;
275
-
276
- /**
277
- * 添加接口参数
278
- * @param interfaceParamOptions 接口参数参数
279
- */
280
- addInterfaceParam(interfaceParamOptions: Partial<InterfaceParam>): InterfaceParam;
281
-
282
- /**
283
- * 添加接口参数
284
- * @param interfaceParam 已有的接口参数实例
285
- */
286
- addInterfaceParam(interfaceParam: InterfaceParam): InterfaceParam;
287
-
288
- addInterfaceParam(options?: string | Partial<InterfaceParam> | InterfaceParam) {
289
- const node = this._addInterfaceParam(options as any);
290
- const index = this.params.indexOf(node);
291
- node.create({
292
- index,
293
- parentNode: this,
294
- parentKey: 'params',
295
- });
296
- return node;
297
- }
298
-
299
-
300
- getReturnUniqueName(name = 'result') {
301
- return utils.unique(name, this.getVarExistingNames(), undefined, false);
302
- }
303
-
304
- /**
305
- * 插入输出参数
306
- * @internal
307
- * @param name 输出参数名称,如果不填会自动生成一个唯一名称
308
- */
309
- _insertReturnAt(name: string, index: number): Return;
310
-
311
- /**
312
- * 插入输出参数
313
- * @internal
314
- * @param retOptions 输出参数参数
315
- */
316
- _insertReturnAt(retOptions: Partial<Return>, index: number): Return;
317
-
318
- /**
319
- * 插入输出参数
320
- * @internal
321
- * @param ret 已有的输出参数实例
322
- */
323
- _insertReturnAt(ret: Return, index: number): Return;
324
-
325
- _insertReturnAt(options: string | Partial<Return> | Return, index: number) {
326
- const retOptions: any = {};
327
- const relationOptions = { parentNode: this, parentKey: 'returns' };
328
- let ret: Return;
329
- if (!options) {
330
- ret = Return.from({
331
- ...retOptions,
332
- name: this.getReturnUniqueName(),
333
- }, this, 'returns');
334
- } else if (typeof options === 'string') {
335
- ret = Return.from({
336
- ...retOptions,
337
- name: options,
338
- }, this, 'returns');
339
- } else if (options instanceof Return) {
340
- options.ensureDelete(); // 同一实例不支持多处存在
341
- ret = options;
342
- Object.assign(ret, relationOptions);
343
- } else {
344
- ret = Return.from({
345
- ...retOptions,
346
- ...options,
347
- }, this, 'returns');
348
- }
349
- this.returns.splice(index, 0, ret);
350
- return ret;
351
- }
352
-
353
- /**
354
- * 插入输出参数
355
- * @param name 输出参数名称,如果不填会自动生成一个唯一名称
356
- */
357
- insertReturnAt(name: string, index: number): Return;
358
-
359
- /**
360
- * 插入输出参数
361
- * @param retOptions 输出参数参数
362
- */
363
- insertReturnAt(retOptions: Partial<Return>, index: number): Return;
364
-
365
- /**
366
- * 插入输出参数
367
- * @param ret 已有的输出参数实例
368
- */
369
- insertReturnAt(ret: Return, index: number): Return;
370
-
371
- insertReturnAt(options: string | Partial<Return> | Return, index: number) {
372
- const node = this._insertReturnAt(options as any, index);
373
- node.create({
374
- index,
375
- parentNode: this,
376
- parentKey: 'returns',
377
- });
378
- return node;
582
+ return validation.delete();
583
+ }
584
+
585
+ __removeBindAttribute(bindAttribute: BindAttribute) {
586
+ const { parentKey } = bindAttribute;
587
+ const params: Params = {
588
+ parentNode: this,
589
+ parentKey,
590
+ index: -1,
591
+ object: null,
592
+ oldObject: bindAttribute,
593
+ };
594
+ if (parentKey) {
595
+ params.parentKey = parentKey;
596
+ if (Array.isArray((this as any)[parentKey])) {
597
+ const index = (this as any)[parentKey].indexOf(bindAttribute);
598
+ ~index && (this as any)[parentKey].splice(index, 1);
599
+ params.index = index;
600
+ } else if ((this as any)[parentKey] === bindAttribute) {
601
+ params.index = 0;
602
+ (this as any)[parentKey] = undefined;
603
+ }
379
604
  }
380
-
381
- /**
382
- * 添加输出参数
383
- * @internal
384
- * @param name 输出参数名称,如果不填会自动生成一个唯一名称
385
- */
386
- _addReturn(name?: string): Return;
387
-
388
- /**
389
- * 添加输出参数
390
- * @internal
391
- * @param retOptions 输出参数参数
392
- */
393
- _addReturn(retOptions: Partial<Return>): Return;
394
-
395
- /**
396
- * 添加输出参数
397
- * @internal
398
- * @param ret 已有的输出参数实例
399
- */
400
- _addReturn(ret: Return): Return;
401
-
402
- _addReturn(options?: string | Partial<Return> | Return) {
403
- const index = this.returns.length;
404
- return this._insertReturnAt(options as any, index);
405
- }
406
-
407
- /**
408
- * 添加输出参数
409
- * @internal
410
- * @param name 输出参数名称,如果不填会自动生成一个唯一名称
411
- */
412
- addReturn(name?: string): Return;
413
-
414
- /**
415
- * 添加输出参数
416
- * @param retOptions 输出参数参数
417
- */
418
- addReturn(retOptions: Partial<Return>): Return;
419
-
420
- /**
421
- * 添加输出参数
422
- * @param ret 已有的输出参数实例
423
- */
424
- addReturn(ret: Return): Return;
425
-
426
- addReturn(options?: string | Partial<Return> | Return) {
427
- const node = this._addReturn(options as any);
428
- const index = this.returns.indexOf(node);
429
- node.create({
430
- index,
431
- parentNode: this,
432
- parentKey: 'returns',
433
- });
434
- return node;
435
- }
436
-
437
-
438
-
439
-
440
- /**
441
- * 删除接口参数
442
- * @param name 接口参数名称
443
- */
444
- removeInterfaceParam(name: string): void;
445
-
446
- /**
447
- * 删除接口参数
448
- * @param interfaceParam 已有的接口参数实例
449
- */
450
- removeInterfaceParam(interfaceParam: InterfaceParam): void;
451
-
452
- removeInterfaceParam(options: string | InterfaceParam) {
453
- let interfaceParam: InterfaceParam;
454
- if (typeof options === 'string') {
455
- interfaceParam = (this.params as InterfaceParam[]).find((item) => item.name === options);
456
- if (!interfaceParam) {
457
- throw new Error('找不到接口参数 ' + options);
458
- }
459
- } else {
460
- interfaceParam = options;
461
- }
462
- return interfaceParam.delete();
463
- }
464
-
465
- __removeInterfaceParam(interfaceParam: InterfaceParam) {
466
- const parentKey = interfaceParam.parentKey;
467
- const params: Params = {
468
- parentNode: this,
469
- parentKey,
470
- index: -1,
471
- object: null,
472
- oldObject: interfaceParam,
473
- };
474
- if (parentKey) {
475
- params.parentKey = parentKey;
476
- if (Array.isArray((this as any)[parentKey])) {
477
- const index = (this as any)[parentKey].indexOf(interfaceParam);
478
- ~index && (this as any)[parentKey].splice(index, 1);
479
- params.index = index;
480
- } else if ((this as any)[parentKey] === interfaceParam) {
481
- params.index = 0;
482
- (this as any)[parentKey] = undefined;
605
+ return params;
606
+ }
607
+
608
+ //= ===============================================================================
609
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
610
+ // 自动生成的代码已结束。下面可以手动编写。
611
+ //= ===============================================================================
612
+
613
+ /**
614
+ * 协议
615
+ */
616
+ @property()
617
+ protocol: string = undefined;
618
+
619
+ /**
620
+ * 协议参数列表
621
+ */
622
+ @property('Param')
623
+ protocolParams: Array<Param> = [];
624
+
625
+ /**
626
+ * 是否可编辑
627
+ * */
628
+ get readonly() {
629
+ return !!this.module;
630
+ }
631
+
632
+ afterDelete() {
633
+ // 处理 DUBBO 协议接口删除后的操作
634
+ if (this.protocol === 'DUBBO') {
635
+ const moduleNode = this.parentNode as Module;
636
+ if (!moduleNode.interfaces.length) {
637
+ // 删除依赖库的config
638
+ if (moduleNode.configuration && moduleNode.configuration.groups) {
639
+ const configGroupData = moduleNode.configuration.groups[0];
640
+ if (configGroupData) {
641
+ const configGroup = this.app.configuration.getGroup(configGroupData.name);
642
+ if (configGroup) {
643
+ const propertyData = configGroupData.properties[0];
644
+ if (propertyData) {
645
+ const property = configGroup.getProperty(propertyData.name);
646
+ if (property) {
647
+ property.delete();
648
+ }
649
+ }
483
650
  }
651
+ }
484
652
  }
485
- return params;
653
+ // 删除依赖库
654
+ moduleNode.delete();
655
+ }
486
656
  }
487
-
488
-
489
-
490
- /**
491
- * 删除输出参数
492
- * @param name 输出参数名称
493
- */
494
- removeReturn(name: string): void;
495
-
496
- /**
497
- * 删除输出参数
498
- * @param ret 已有的输出参数实例
499
- */
500
- removeReturn(ret: Return): void;
501
-
502
- removeReturn(options: string | Return) {
503
- let ret: Return;
504
- if (typeof options === 'string') {
505
- ret = (this.returns as Return[]).find((item) => item.name === options);
506
- if (!ret) {
507
- throw new Error('找不到输出参数 ' + options);
508
- }
657
+ }
658
+
659
+ toService() {
660
+ return {
661
+ config: {
662
+ serviceType: 'external',
663
+ },
664
+ url: {
665
+ method: this.method,
666
+ path: this.path,
667
+ },
668
+ };
669
+ }
670
+
671
+ /**
672
+ * 设置接口描述
673
+ */
674
+ updateOption(source: Partial<Interface>) {
675
+ const object = {
676
+ ...source,
677
+ };
678
+ this.update({
679
+ ...object,
680
+ });
681
+ }
682
+
683
+ // 更新所有调用接口
684
+ async updateAllRefCallInterface() {
685
+ const refs = await this.findUsage();
686
+ refs.forEach((val: any) => {
687
+ const loopFindNode = (item: any) => {
688
+ if (item.children) {
689
+ item.children.forEach((i: any) => loopFindNode(i));
509
690
  } else {
510
- ret = options;
691
+ item.node?.setCallee?.(this);
511
692
  }
512
- return ret.delete();
693
+ };
694
+ loopFindNode(val);
695
+ });
696
+ }
697
+
698
+ /* 删除空数据模块 */
699
+ deleteLogincAndModule() {
700
+ this.rootNode.emit('collect:start', {
701
+ actionMsg: `删除接口“${this.name}”`,
702
+ });
703
+
704
+ this.delete();
705
+ this.deleteStructures();
706
+
707
+ if (this.module && this.module.interfaces.length === 0 && this.module.structures.length === 0) {
708
+ this.app.removeModuleInInterfaceDependencies(this.module);
513
709
  }
514
710
 
515
- __removeReturn(ret: Return) {
516
- const parentKey = ret.parentKey;
517
- const params: Params = {
518
- parentNode: this,
519
- parentKey,
520
- index: -1,
521
- object: null,
522
- oldObject: ret,
523
- };
524
- if (parentKey) {
525
- params.parentKey = parentKey;
526
- if (Array.isArray((this as any)[parentKey])) {
527
- const index = (this as any)[parentKey].indexOf(ret);
528
- ~index && (this as any)[parentKey].splice(index, 1);
529
- params.index = index;
530
- } else if ((this as any)[parentKey] === ret) {
531
- params.index = 0;
532
- (this as any)[parentKey] = undefined;
533
- }
534
- }
535
- return params;
536
- }
711
+ // 结束修改 ,批量操作
712
+ this.rootNode.emit('collect:end');
713
+ }
537
714
 
715
+ /* 删除接口引用的数据结构 */
716
+ deleteStructures() {
717
+ // 需要过滤被其他接口同时引用的数据结构
538
718
 
539
-
540
- /**
541
- * 删除元素绑定属性
542
- * @param name 元素绑定属性名称
543
- */
544
- removeValidation(name: string): void;
545
-
546
- /**
547
- * 删除元素绑定属性
548
- * @param validation 已有的元素绑定属性实例
549
- */
550
- removeValidation(validation: BindAttribute): void;
551
-
552
- removeValidation(options: string | BindAttribute) {
553
- let validation: BindAttribute;
554
- if (typeof options === 'string') {
555
- validation = this.validation;
556
- if (!validation) {
557
- throw new Error('找不到元素绑定属性 ' + options);
558
- }
559
- } else {
560
- validation = options;
561
- }
562
- return validation.delete();
563
- }
564
-
565
- __removeBindAttribute(bindAttribute: BindAttribute) {
566
- const parentKey = bindAttribute.parentKey;
567
- const params: Params = {
568
- parentNode: this,
569
- parentKey,
570
- index: -1,
571
- object: null,
572
- oldObject: bindAttribute,
573
- };
574
- if (parentKey) {
575
- params.parentKey = parentKey;
576
- if (Array.isArray((this as any)[parentKey])) {
577
- const index = (this as any)[parentKey].indexOf(bindAttribute);
578
- ~index && (this as any)[parentKey].splice(index, 1);
579
- params.index = index;
580
- } else if ((this as any)[parentKey] === bindAttribute) {
581
- params.index = 0;
582
- (this as any)[parentKey] = undefined;
583
- }
584
- }
585
- return params;
586
- }
587
-
588
- //================================================================================
589
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
590
- // 自动生成的代码已结束。下面可以手动编写。
591
- //================================================================================
592
-
593
- /**
594
- * 协议
595
- */
596
- @property()
597
- protocol: string = undefined;
598
-
599
- /**
600
- * 协议参数列表
601
- */
602
- @property('Param')
603
- protocolParams: Array<Param> = [];
604
-
605
- /**
606
- * 是否可编辑
607
- * */
608
- get readonly() {
609
- return !!this.module;
610
- }
611
-
612
- afterDelete() {
613
- // 处理 DUBBO 协议接口删除后的操作
614
- if (this.protocol === 'DUBBO') {
615
- const moduleNode = this.parentNode as Module;
616
- if (!moduleNode.interfaces.length) {
617
- // 删除依赖库的config
618
- if (moduleNode.configuration && moduleNode.configuration.groups) {
619
- const configGroupData = moduleNode.configuration.groups[0];
620
- if (configGroupData) {
621
- const configGroup = this.app.configuration.getGroup(configGroupData.name);
622
- if (configGroup) {
623
- const propertyData = configGroupData.properties[0];
624
- if (propertyData) {
625
- const property = configGroup.getProperty(propertyData.name);
626
- if (property) {
627
- property.delete();
628
- }
629
- }
630
- }
631
- }
632
- }
633
- // 删除依赖库
634
- moduleNode.delete();
635
- }
719
+ const { structures } = this.parentNode as Module;
720
+ // 递归找出 response/request 的 Body/Returns 引用的数据结构
721
+ const getStructures = (typeAnnotation: TypeAnnotation, result: Array<Structure> = []) => {
722
+ if (!typeAnnotation) return;
723
+ if (typeAnnotation.typeKind === 'reference') {
724
+ const targetStructure = structures.find((s) => s.name === typeAnnotation.typeName);
725
+ if (targetStructure) {
726
+ result.push(targetStructure);
727
+ targetStructure?.properties.forEach((prop) => {
728
+ getStructures(prop.typeAnnotation, result);
729
+ });
636
730
  }
637
- }
638
-
639
- toService() {
640
- return {
641
- config: {
642
- serviceType: 'external',
643
- },
644
- url: {
645
- method: this.method,
646
- path: this.path,
647
- },
648
- };
649
- }
650
-
651
- /**
652
- * 设置接口描述
653
- */
654
- updateOption(source: Partial<Interface>) {
655
- const object = {
656
- ...source,
657
- };
658
- this.update({
659
- ...object,
660
- });
661
- }
662
-
663
- // 更新所有调用接口
664
- async updateAllRefCallInterface() {
665
- const refs = await this.findUsage();
666
- refs.forEach((val: any) => {
667
- const loopFindNode = (item: any) => {
668
- if (item.children) {
669
- item.children.forEach((i: any) => loopFindNode(i));
670
- } else {
671
- item.node?.setCallee?.(this);
672
- }
673
- };
674
- loopFindNode(val);
731
+ } else if (typeAnnotation.typeKind === 'generic') {
732
+ typeAnnotation.typeArguments.forEach((arg) => {
733
+ getStructures(arg, result);
675
734
  });
676
- }
677
-
678
- /* 删除空数据模块 */
679
- deleteLogincAndModule() {
680
- this.rootNode.emit('collect:start', {
681
- actionMsg: `删除接口“${this.name}”`,
682
- });
683
-
684
- this.delete();
685
- this.deleteStructures();
686
-
687
- if (this.module && this.module.interfaces.length === 0 && this.module.structures.length === 0) {
688
- this.app.removeModuleInInterfaceDependencies(this.module);
689
- }
690
-
691
- // 结束修改 ,批量操作
692
- this.rootNode.emit('collect:end');
693
- }
694
-
695
- /* 删除接口引用的数据结构 */
696
- deleteStructures() {
697
- // 需要过滤被其他接口同时引用的数据结构
698
-
699
- const structures = (this.parentNode as Module).structures;
700
- // 递归找出 response/request 的 Body/Returns 引用的数据结构
701
- const getStructures = (typeAnnotation: TypeAnnotation, result: Array<Structure> = []) => {
702
- if (!typeAnnotation)
703
- return;
704
- if (typeAnnotation.typeKind === 'reference') {
705
- const targetStructure = structures.find((s) => s.name === typeAnnotation.typeName);
706
- if (targetStructure) {
707
- result.push(targetStructure);
708
- targetStructure?.properties.forEach((prop) => {
709
- getStructures(prop.typeAnnotation, result);
710
- });
711
- }
712
- } else if (typeAnnotation.typeKind === 'generic') {
713
- typeAnnotation.typeArguments.forEach((arg) => {
714
- getStructures(arg, result);
715
- });
716
- }
717
- return result;
718
- };
719
-
720
- const otherStructureMap: Record<string, number> = {};
721
- // 找出其他接口引用的数据结构
722
- (this.parentNode as Module).interfaces
723
- .filter((itf) => itf !== this)
724
- .forEach((itf) => {
725
- const params = itf.params || [];
726
- const returns = itf.returns || [];
727
- [...params, ...returns].forEach((p) => {
728
- const strus = getStructures(p.typeAnnotation);
729
- strus.forEach((s) => {
730
- if (!(s.name in otherStructureMap)) {
731
- otherStructureMap[s.name] = 0;
732
- }
733
- otherStructureMap[s.name]++;
734
- });
735
- });
736
- });
737
- const params = this.params || [];
738
- const returns = this.returns || [];
735
+ }
736
+ return result;
737
+ };
738
+
739
+ const otherStructureMap: Record<string, number> = {};
740
+ // 找出其他接口引用的数据结构
741
+ (this.parentNode as Module).interfaces
742
+ .filter((itf) => itf !== this)
743
+ .forEach((itf) => {
744
+ const params = itf.params || [];
745
+ const returns = itf.returns || [];
739
746
  [...params, ...returns].forEach((p) => {
740
- const strus = getStructures(p.typeAnnotation);
741
- strus.forEach((s) => {
742
- if (!(s.name in otherStructureMap)) {
743
- (this.parentNode as Module).removeStructure(s);
744
- }
745
- });
746
- });
747
- }
748
- /**
749
- * 设置逻辑名称
750
- */
751
- setOriginLogicName(originLogicName: string) {
752
- const object = {
753
- originLogicName,
754
- };
755
- this.update({
756
- ...object,
757
- });
758
- }
759
-
760
- toEmbeddedTSFile() {
761
- let code = `namespace ${this.getTsNamespace()} {\n`;
762
-
763
- const state = createCompilerState(code, { tabSize: 1 });
764
- try {
765
- code += this.toEmbeddedTS(state);
766
- } catch (err) {
767
- code += '';
768
- console.log(err);
769
- }
770
- code += '}\n';
771
-
772
- return {
773
- code,
774
- filePath: this.getEmbeddedFilePath(),
775
- sourceMap: state.sourceMap,
776
- };
777
- }
778
-
779
- get calleeKey(): string {
780
- return `${this.getTsNamespace()}.${this.name}`;
781
- }
782
-
783
- get calleewholeKey() {
784
- return this.getNamespace() + '.' + this.name;
785
- }
786
- /**
787
- * 生成宿主语言的文件路径
788
- * @param name 一般不用传,用于 rename
789
- */
790
- getEmbeddedFilePath(name = this.name) {
791
- const _path = this.module ? `/${this.module.parentKey}/${this.module.name}` : '';
792
- return `/embedded/${this.app.name}${_path}/interfaces/${name}.ts`;
793
- }
794
-
795
- get tsName(): string {
796
- const excludeds = [
797
- 'abstract',
798
- 'arguments',
799
- 'await',
800
- 'boolean',
801
- 'break',
802
- 'byte',
803
- 'case',
804
- 'catch',
805
- 'char',
806
- 'class',
807
- 'const',
808
- 'continue',
809
- 'debugger',
810
- 'default',
811
- 'delete',
812
- 'do',
813
- 'double',
814
- 'decimal',
815
- 'else',
816
- 'enum',
817
- 'eval',
818
- 'export',
819
- 'extends',
820
- 'false',
821
- 'final',
822
- 'finally',
823
- 'float',
824
- 'for',
825
- 'function',
826
- 'goto',
827
- 'if',
828
- 'implements',
829
- 'import',
830
- 'in',
831
- 'instanceof',
832
- 'int',
833
- 'interface',
834
- 'let',
835
- 'long',
836
- 'native',
837
- 'new',
838
- 'null',
839
- 'package',
840
- 'private',
841
- 'protected',
842
- 'public',
843
- 'return',
844
- 'short',
845
- 'static',
846
- 'super',
847
- 'switch',
848
- 'synchronized',
849
- 'this',
850
- 'throw',
851
- 'throws',
852
- 'transient',
853
- 'true',
854
- 'try',
855
- 'typeof',
856
- 'var',
857
- 'void',
858
- 'volatile',
859
- 'while',
860
- 'with',
861
- 'yield,as',
862
- 'any',
863
- 'number',
864
- 'string',
865
- 'get',
866
- 'type',
867
- 'typeof',
868
- 'instanceof',
869
- 'require',
870
- ];
871
- if (excludeds.includes(this.name)) {
872
- return '_' + this.name;
873
- }
874
- return this.name;
875
- }
876
- @withSourceMap()
877
- toEmbeddedTS(state?: TranslatorState): string {
878
- let code = '';
879
- const getCheckerCode = () => {
880
- if (this.validation) {
881
- code += '\n(';
882
- code += this.validation.toEmbeddedTS(shiftState(state, code));
883
- code += ');\n';
884
- }
885
- };
886
-
887
- code += `export function ${this.tsName}(`;
888
- this.params.forEach((param, index) => {
889
- if (index === 0) {
890
- code += '{';
891
- }
892
- code += param.tsName;
893
- if (index !== this.params.length - 1) {
894
- code += ', ';
895
- } else {
896
- code += '}:';
897
- }
898
- });
899
- this.params.forEach((param, index) => {
900
- if (index === 0) {
901
- code += '{';
902
- }
903
- code += param.toEmbeddedTS(shiftState(state, code), !(param as InterfaceParam).required);
904
- if (index !== this.params.length - 1) {
905
- code += ', ';
906
- } else {
907
- code += '}';
747
+ const strus = getStructures(p.typeAnnotation);
748
+ strus.forEach((s) => {
749
+ if (!(s.name in otherStructureMap)) {
750
+ otherStructureMap[s.name] = 0;
908
751
  }
752
+ otherStructureMap[s.name]++;
753
+ });
909
754
  });
910
- code += `):`;
911
- if (this.returns && this.returns.length > 0) {
912
- this.returns.forEach((ret) => {
913
- code += ret.typeAnnotation.toEmbeddedTS(shiftState(state, code));
914
- });
915
-
916
- code += '{\n';
917
- getCheckerCode();
918
- code += this.module ? '' : 'let logic =' + (this.parentNode as Namespace).getTsNamespace() + '.logics.' + this.originLogicName + ';\n';
919
- code += 'let ';
920
- code += this.returns[0].toEmbeddedTS(shiftState(state, code, { inline: true }));
921
- code += ';\n';
922
- code += `return `;
923
- code += this.returns[0].tsName || '__return;';
924
- code += '\n }';
925
- } else {
926
- code += 'void {\n';
927
- getCheckerCode();
928
- code += this.module ? '' : 'let logic =' + (this.parentNode as Namespace).getTsNamespace() + '.logics.' + this.originLogicName + ';\n';
929
- code += '};';
755
+ });
756
+ const params = this.params || [];
757
+ const returns = this.returns || [];
758
+ [...params, ...returns].forEach((p) => {
759
+ const strus = getStructures(p.typeAnnotation);
760
+ strus.forEach((s) => {
761
+ if (!(s.name in otherStructureMap)) {
762
+ (this.parentNode as Module).removeStructure(s);
930
763
  }
931
- code += '\n';
932
- return code;
764
+ });
765
+ });
766
+ }
767
+
768
+ /**
769
+ * 设置逻辑名称
770
+ */
771
+ setOriginLogicName(originLogicName: string) {
772
+ const object = {
773
+ originLogicName,
774
+ };
775
+ this.update({
776
+ ...object,
777
+ });
778
+ }
779
+
780
+ toEmbeddedTSFile() {
781
+ let code = `namespace ${this.getTsNamespace()} {\n`;
782
+
783
+ const state = createCompilerState(code, { tabSize: 1 });
784
+ try {
785
+ code += this.toEmbeddedTS(state);
786
+ } catch (err) {
787
+ code += '';
788
+ console.log(err);
933
789
  }
934
-
935
- getNamespace() {
936
- if (this.parentNode && (this.parentNode as Namespace).getNamespace) {
937
- const parentNamespace = (this.parentNode as Namespace).getNamespace();
938
- const parentName = this.parentNode.name;
939
- const arr = [parentNamespace];
940
- if (this.parentNode.concept !== 'App' && parentName) {
941
- arr.push(parentName);
942
- }
943
- return `${arr.join('.')}.interfaces`;
944
- } else
945
- throw new Error('无法获取命名空间,请设置 parentNode!');
790
+ code += '}\n';
791
+
792
+ return {
793
+ code,
794
+ filePath: this.getEmbeddedFilePath(),
795
+ sourceMap: state.sourceMap,
796
+ };
797
+ }
798
+
799
+ get calleeKey(): string {
800
+ return `${this.getTsNamespace()}.${this.name}`;
801
+ }
802
+
803
+ get calleewholeKey() {
804
+ return `${this.getNamespace()}.${this.name}`;
805
+ }
806
+
807
+ /**
808
+ * 生成宿主语言的文件路径
809
+ * @param name 一般不用传,用于 rename
810
+ */
811
+ getEmbeddedFilePath(name = this.name) {
812
+ const _path = this.module ? `/${this.module.parentKey}/${this.module.name}` : '';
813
+ return `/embedded/${this.app.name}${_path}/interfaces/${name}.ts`;
814
+ }
815
+
816
+ get tsName(): string {
817
+ const excludeds = [
818
+ 'abstract',
819
+ 'arguments',
820
+ 'await',
821
+ 'boolean',
822
+ 'break',
823
+ 'byte',
824
+ 'case',
825
+ 'catch',
826
+ 'char',
827
+ 'class',
828
+ 'const',
829
+ 'continue',
830
+ 'debugger',
831
+ 'default',
832
+ 'delete',
833
+ 'do',
834
+ 'double',
835
+ 'decimal',
836
+ 'else',
837
+ 'enum',
838
+ 'eval',
839
+ 'export',
840
+ 'extends',
841
+ 'false',
842
+ 'final',
843
+ 'finally',
844
+ 'float',
845
+ 'for',
846
+ 'function',
847
+ 'goto',
848
+ 'if',
849
+ 'implements',
850
+ 'import',
851
+ 'in',
852
+ 'instanceof',
853
+ 'int',
854
+ 'interface',
855
+ 'let',
856
+ 'long',
857
+ 'native',
858
+ 'new',
859
+ 'null',
860
+ 'package',
861
+ 'private',
862
+ 'protected',
863
+ 'public',
864
+ 'return',
865
+ 'short',
866
+ 'static',
867
+ 'super',
868
+ 'switch',
869
+ 'synchronized',
870
+ 'this',
871
+ 'throw',
872
+ 'throws',
873
+ 'transient',
874
+ 'true',
875
+ 'try',
876
+ 'typeof',
877
+ 'var',
878
+ 'void',
879
+ 'volatile',
880
+ 'while',
881
+ 'with',
882
+ 'yield,as',
883
+ 'any',
884
+ 'number',
885
+ 'string',
886
+ 'get',
887
+ 'type',
888
+ 'typeof',
889
+ 'instanceof',
890
+ 'require',
891
+ ];
892
+ if (excludeds.includes(this.name)) {
893
+ return `_${this.name}`;
946
894
  }
947
-
948
- getTsNamespace() {
949
- if (this.parentNode && (this.parentNode as Namespace).getTsNamespace) {
950
- const parentNamespace = (this.parentNode as Namespace).getTsNamespace();
951
- const parentName = this.parentNode.tsName || this.parentNode.name;
952
- const arr = [parentNamespace];
953
- if (this.parentNode.concept !== 'App' && parentName) {
954
- arr.push(parentName);
955
- }
956
- return `${arr.join('.')}.interfaces`;
957
- } else
958
- throw new Error('无法获取命名空间,请设置 parentNode!');
895
+ return this.name;
896
+ }
897
+
898
+ @withSourceMap()
899
+ toEmbeddedTS(state?: TranslatorState): string {
900
+ let code = '';
901
+ const getCheckerCode = () => {
902
+ if (this.validation) {
903
+ code += '\n(';
904
+ code += this.validation.toEmbeddedTS(shiftState(state, code));
905
+ code += ');\n';
906
+ }
907
+ };
908
+
909
+ code += `export function ${this.tsName}(`;
910
+ this.params.forEach((param, index) => {
911
+ if (index === 0) {
912
+ code += '{';
913
+ }
914
+ code += param.tsName;
915
+ if (index !== this.params.length - 1) {
916
+ code += ', ';
917
+ } else {
918
+ code += '}:';
919
+ }
920
+ });
921
+ this.params.forEach((param, index) => {
922
+ if (index === 0) {
923
+ code += '{';
924
+ }
925
+ code += param.toEmbeddedTS(shiftState(state, code), !(param as InterfaceParam).required);
926
+ if (index !== this.params.length - 1) {
927
+ code += ', ';
928
+ } else {
929
+ code += '}';
930
+ }
931
+ });
932
+ code += `):`;
933
+ if (this.returns && this.returns.length > 0) {
934
+ this.returns.forEach((ret) => {
935
+ code += ret.typeAnnotation.toEmbeddedTS(shiftState(state, code));
936
+ });
937
+
938
+ code += '{\n';
939
+ getCheckerCode();
940
+ code += this.module ? '' : `let logic =${(this.parentNode as Namespace).getTsNamespace()}.logics.${this.originLogicName};\n`;
941
+ code += 'let ';
942
+ code += this.returns[0].toEmbeddedTS(shiftState(state, code, { inline: true }));
943
+ code += ';\n';
944
+ code += `return `;
945
+ code += this.returns[0].tsName || '__return;';
946
+ code += '\n }';
947
+ } else {
948
+ code += 'void {\n';
949
+ getCheckerCode();
950
+ code += this.module ? '' : `let logic =${(this.parentNode as Namespace).getTsNamespace()}.logics.${this.originLogicName};\n`;
951
+ code += '};';
959
952
  }
960
-
961
- getVarExistingNames(excludedList: Array<InterfaceParam | Return> = []) {
962
- const excludedSet = new Set(excludedList);
963
- return [...this.params, ...this.returns].filter((item) => !excludedSet.has(item)).map((item) => item.name);
953
+ code += '\n';
954
+ return code;
955
+ }
956
+
957
+ getNamespace() {
958
+ if (this.parentNode && (this.parentNode as Namespace).getNamespace) {
959
+ const parentNamespace = (this.parentNode as Namespace).getNamespace();
960
+ const parentName = this.parentNode.name;
961
+ const arr = [parentNamespace];
962
+ if (this.parentNode.concept !== 'App' && parentName) {
963
+ arr.push(parentName);
964
+ }
965
+ return `${arr.join('.')}.interfaces`;
964
966
  }
965
-
966
- // 递归找出 response/request 的 Body/Returns 引用的数据结构
967
- getRefStructures(structures: Structure[] = []): Set<Structure> {
968
- const structuresSet: Set<Structure> = new Set();
969
- const loopSaveStructure = (typeAnnotation: TypeAnnotation) => {
970
- if (!typeAnnotation)
971
- return;
972
- if (typeAnnotation.typeKind === 'reference') {
973
- const targetStructure = structures.find((s) => s.name === typeAnnotation.typeName);
974
- if (targetStructure && !structuresSet.has(targetStructure)) {
975
- structuresSet.add(targetStructure);
976
- targetStructure?.properties.forEach((prop) => {
977
- loopSaveStructure(prop.typeAnnotation);
978
- });
979
- }
980
- } else if (typeAnnotation.typeKind === 'generic') {
981
- typeAnnotation.typeArguments.forEach(loopSaveStructure);
982
- }
983
- };
984
-
985
- const { params = [], returns = [] } = this;
986
- [...params, ...returns].forEach((p) => {
987
- if ('in' in p && p.in === 'cookie') {
988
- p.in = 'header';
989
- return;
990
- }
991
- loopSaveStructure(p?.typeAnnotation);
992
- });
993
- return structuresSet;
967
+ throw new Error('无法获取命名空间,请设置 parentNode!');
968
+ }
969
+
970
+ getTsNamespace() {
971
+ if (this.parentNode && (this.parentNode as Namespace).getTsNamespace) {
972
+ const parentNamespace = (this.parentNode as Namespace).getTsNamespace();
973
+ const parentName = this.parentNode.tsName || this.parentNode.name;
974
+ const arr = [parentNamespace];
975
+ if (this.parentNode.concept !== 'App' && parentName) {
976
+ arr.push(parentName);
977
+ }
978
+ return `${arr.join('.')}.interfaces`;
994
979
  }
995
-
996
- //================================================================================
997
- // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
998
- // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
999
- //================================================================================
980
+ throw new Error('无法获取命名空间,请设置 parentNode!');
981
+ }
982
+
983
+ getVarExistingNames(excludedList: Array<InterfaceParam | Return> = []) {
984
+ const excludedSet = new Set(excludedList);
985
+ return [...this.params, ...this.returns].filter((item) => !excludedSet.has(item)).map((item) => item.name);
986
+ }
987
+
988
+ // 递归找出 response/request 的 Body/Returns 引用的数据结构
989
+ getRefStructures(structures: Structure[] = []): Set<Structure> {
990
+ const structuresSet: Set<Structure> = new Set();
991
+ const loopSaveStructure = (typeAnnotation: TypeAnnotation) => {
992
+ if (!typeAnnotation) return;
993
+ if (typeAnnotation.typeKind === 'reference') {
994
+ const targetStructure = structures.find((s) => s.name === typeAnnotation.typeName);
995
+ if (targetStructure && !structuresSet.has(targetStructure)) {
996
+ structuresSet.add(targetStructure);
997
+ targetStructure?.properties.forEach((prop) => {
998
+ loopSaveStructure(prop.typeAnnotation);
999
+ });
1000
+ }
1001
+ } else if (typeAnnotation.typeKind === 'generic') {
1002
+ typeAnnotation.typeArguments.forEach(loopSaveStructure);
1003
+ }
1004
+ };
1005
+
1006
+ const { params = [], returns = [] } = this;
1007
+ [...params, ...returns].forEach((p) => {
1008
+ if ('in' in p && p.in === 'cookie') {
1009
+ p.in = 'header';
1010
+ return;
1011
+ }
1012
+ loopSaveStructure(p?.typeAnnotation);
1013
+ });
1014
+ return structuresSet;
1015
+ }
1016
+
1017
+ //= ===============================================================================
1018
+ // 从这里开始到结尾注释之间的代码由 NASL Workbench 自动生成,请不手动修改!
1019
+ // ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1020
+ //= ===============================================================================
1000
1021
  }
1001
1022
 
1002
1023
  classMap.Interface = Interface;
1003
1024
  export default Interface;
1004
- //================================================================================
1025
+ //= ===============================================================================
1005
1026
  // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1006
1027
  // 自动生成的代码已结束。下面可以手动编写。
1007
- //================================================================================
1028
+ //= ===============================================================================