@lcap/nasl 3.4.0-beta.3 → 3.4.0-beta.4

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 (880) hide show
  1. package/out/automate/engine/index.d.ts +4 -4
  2. package/out/automate/engine/index.js +363 -363
  3. package/out/automate/engine/operators.d.ts +26 -16
  4. package/out/automate/engine/operators.js +363 -363
  5. package/out/automate/engine/uniqueName.d.ts +12 -12
  6. package/out/automate/engine/uniqueName.js +111 -111
  7. package/out/automate/engine/utils.d.ts +25 -25
  8. package/out/automate/engine/utils.js +443 -443
  9. package/out/automate/engine/viewCache.d.ts +19 -18
  10. package/out/automate/engine/viewCache.js +44 -44
  11. package/out/automate/template/myProcess.d.ts +10 -9
  12. package/out/automate/template/myProcess.js +11501 -11500
  13. package/out/automate/template/myProcess.js.map +1 -1
  14. package/out/automate/upgrader/2.12.d.ts +7 -7
  15. package/out/automate/upgrader/2.12.js +62 -62
  16. package/out/automate/upgrader/2.14-components.d.ts +1115 -1115
  17. package/out/automate/upgrader/2.14-components.js +1086 -1086
  18. package/out/automate/upgrader/2.14.d.ts +10 -10
  19. package/out/automate/upgrader/2.14.js +235 -235
  20. package/out/automate/upgrader/2.14.old.d.ts +1 -1
  21. package/out/automate/upgrader/2.14.old.js +124 -124
  22. package/out/automate/upgrader/2.16.d.ts +10 -10
  23. package/out/automate/upgrader/2.16.js +74 -74
  24. package/out/automate/upgrader/2.17.d.ts +21 -21
  25. package/out/automate/upgrader/2.17.js +556 -556
  26. package/out/automate/upgrader/2.18.d.ts +10 -10
  27. package/out/automate/upgrader/2.18.js +106 -106
  28. package/out/automate/upgrader/2.20.d.ts +17 -17
  29. package/out/automate/upgrader/2.20.js +67 -67
  30. package/out/bak/translator.d.ts +1 -1
  31. package/out/bak/translator.js +143 -143
  32. package/out/breakpoint/generator/AfterStartNode.d.ts +7 -7
  33. package/out/breakpoint/generator/AfterStartNode.js +29 -29
  34. package/out/breakpoint/generator/BeforeEndNode.d.ts +7 -7
  35. package/out/breakpoint/generator/BeforeEndNode.js +27 -27
  36. package/out/breakpoint/generator/BreakpointNode.d.ts +15 -15
  37. package/out/breakpoint/generator/BreakpointNode.js +283 -283
  38. package/out/breakpoint/generator/CallbackNode.d.ts +4 -4
  39. package/out/breakpoint/generator/CallbackNode.js +21 -21
  40. package/out/breakpoint/generator/FragmentNode.d.ts +4 -4
  41. package/out/breakpoint/generator/FragmentNode.js +17 -17
  42. package/out/breakpoint/generator/index.d.ts +4 -4
  43. package/out/breakpoint/generator/index.js +118 -118
  44. package/out/breakpoint/index.d.ts +3 -3
  45. package/out/breakpoint/index.js +19 -19
  46. package/out/breakpoint/shared/constants.d.ts +37 -37
  47. package/out/breakpoint/shared/constants.js +105 -105
  48. package/out/breakpoint/shared/index.d.ts +3 -3
  49. package/out/breakpoint/shared/index.js +32 -32
  50. package/out/breakpoint/shared/operations.d.ts +10 -10
  51. package/out/breakpoint/shared/operations.js +24 -24
  52. package/out/breakpoint/shared/socket.d.ts +48 -48
  53. package/out/breakpoint/shared/socket.js +256 -256
  54. package/out/breakpoint/shared/utils.d.ts +27 -27
  55. package/out/breakpoint/shared/utils.js +228 -228
  56. package/out/breakpoint/store/core.d.ts +80 -80
  57. package/out/breakpoint/store/core.js +415 -415
  58. package/out/breakpoint/store/dock.d.ts +1 -1
  59. package/out/breakpoint/store/dock.js +159 -159
  60. package/out/breakpoint/store/index.d.ts +2 -2
  61. package/out/breakpoint/store/index.js +18 -18
  62. package/out/common/BaseNode.d.ts +347 -334
  63. package/out/common/BaseNode.js +1376 -1325
  64. package/out/common/BaseNode.js.map +1 -1
  65. package/out/common/Command.d.ts +21 -21
  66. package/out/common/Command.js +78 -78
  67. package/out/common/ComponentAPI.d.ts +110 -110
  68. package/out/common/ComponentAPI.js +2 -2
  69. package/out/common/EventEmitter.d.ts +60 -60
  70. package/out/common/EventEmitter.js +68 -68
  71. package/out/common/EventEmitter.js.map +1 -1
  72. package/out/common/Messager.d.ts +91 -91
  73. package/out/common/Messager.js +206 -206
  74. package/out/common/asyncFuncMap.d.ts +2 -2
  75. package/out/common/asyncFuncMap.js +15 -15
  76. package/out/common/index.d.ts +3 -3
  77. package/out/common/index.js +19 -19
  78. package/out/concepts/Abort__.d.ts +28 -26
  79. package/out/concepts/Abort__.js +83 -81
  80. package/out/concepts/Abort__.js.map +1 -1
  81. package/out/concepts/AbstractInterface__.d.ts +22 -0
  82. package/out/concepts/AbstractInterface__.js +60 -0
  83. package/out/concepts/AbstractInterface__.js.map +1 -0
  84. package/out/concepts/Anchor__.d.ts +48 -46
  85. package/out/concepts/Anchor__.js +208 -206
  86. package/out/concepts/Anchor__.js.map +1 -1
  87. package/out/concepts/AnonymousFunction__.d.ts +175 -173
  88. package/out/concepts/AnonymousFunction__.js +548 -546
  89. package/out/concepts/AnonymousFunction__.js.map +1 -1
  90. package/out/concepts/App__.d.ts +1770 -1687
  91. package/out/concepts/App__.js +2777 -2670
  92. package/out/concepts/App__.js.map +1 -1
  93. package/out/concepts/Argument__.d.ts +70 -68
  94. package/out/concepts/Argument__.js +285 -285
  95. package/out/concepts/Argument__.js.map +1 -1
  96. package/out/concepts/Assignee__.d.ts +291 -289
  97. package/out/concepts/Assignee__.js +455 -452
  98. package/out/concepts/Assignee__.js.map +1 -1
  99. package/out/concepts/AssignmentLine__.d.ts +44 -42
  100. package/out/concepts/AssignmentLine__.js +120 -118
  101. package/out/concepts/AssignmentLine__.js.map +1 -1
  102. package/out/concepts/Assignment__.d.ts +77 -75
  103. package/out/concepts/Assignment__.js +328 -327
  104. package/out/concepts/Assignment__.js.map +1 -1
  105. package/out/concepts/Attribute__.d.ts +112 -110
  106. package/out/concepts/Attribute__.js +259 -265
  107. package/out/concepts/Attribute__.js.map +1 -1
  108. package/out/concepts/AuthInterface__.d.ts +38 -36
  109. package/out/concepts/AuthInterface__.js +86 -85
  110. package/out/concepts/AuthInterface__.js.map +1 -1
  111. package/out/concepts/AuthLogicForCallInterface__.d.ts +141 -139
  112. package/out/concepts/AuthLogicForCallInterface__.js +535 -532
  113. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  114. package/out/concepts/AuthLogic__.d.ts +69 -67
  115. package/out/concepts/AuthLogic__.js +222 -221
  116. package/out/concepts/AuthLogic__.js.map +1 -1
  117. package/out/concepts/BackendVariable__.d.ts +148 -146
  118. package/out/concepts/BackendVariable__.js +482 -481
  119. package/out/concepts/BackendVariable__.js.map +1 -1
  120. package/out/concepts/Backend__.d.ts +137 -135
  121. package/out/concepts/Backend__.js +287 -285
  122. package/out/concepts/Backend__.js.map +1 -1
  123. package/out/concepts/BatchAssignment__.d.ts +255 -253
  124. package/out/concepts/BatchAssignment__.js +883 -880
  125. package/out/concepts/BatchAssignment__.js.map +1 -1
  126. package/out/concepts/BinaryExpression__.d.ts +74 -72
  127. package/out/concepts/BinaryExpression__.js +398 -398
  128. package/out/concepts/BinaryExpression__.js.map +1 -1
  129. package/out/concepts/BindAttribute__.d.ts +330 -328
  130. package/out/concepts/BindAttribute__.js +1064 -1071
  131. package/out/concepts/BindAttribute__.js.map +1 -1
  132. package/out/concepts/BindDirective__.d.ts +169 -167
  133. package/out/concepts/BindDirective__.js +558 -562
  134. package/out/concepts/BindDirective__.js.map +1 -1
  135. package/out/concepts/BindEvent__.d.ts +255 -253
  136. package/out/concepts/BindEvent__.js +943 -942
  137. package/out/concepts/BindEvent__.js.map +1 -1
  138. package/out/concepts/BindStyle__.d.ts +142 -140
  139. package/out/concepts/BindStyle__.js +424 -423
  140. package/out/concepts/BindStyle__.js.map +1 -1
  141. package/out/concepts/BooleanLiteral__.d.ts +38 -36
  142. package/out/concepts/BooleanLiteral__.js +109 -108
  143. package/out/concepts/BooleanLiteral__.js.map +1 -1
  144. package/out/concepts/CallAuthInterface__.d.ts +128 -126
  145. package/out/concepts/CallAuthInterface__.js +421 -414
  146. package/out/concepts/CallAuthInterface__.js.map +1 -1
  147. package/out/concepts/CallConnector__.d.ts +49 -47
  148. package/out/concepts/CallConnector__.js +267 -266
  149. package/out/concepts/CallConnector__.js.map +1 -1
  150. package/out/concepts/CallFunction__.d.ts +161 -159
  151. package/out/concepts/CallFunction__.js +589 -568
  152. package/out/concepts/CallFunction__.js.map +1 -1
  153. package/out/concepts/CallInterface__.d.ts +132 -130
  154. package/out/concepts/CallInterface__.js +808 -802
  155. package/out/concepts/CallInterface__.js.map +1 -1
  156. package/out/concepts/CallLogic__.d.ts +233 -231
  157. package/out/concepts/CallLogic__.js +1317 -1319
  158. package/out/concepts/CallLogic__.js.map +1 -1
  159. package/out/concepts/CallQueryComponent__.d.ts +435 -433
  160. package/out/concepts/CallQueryComponent__.js +1313 -1325
  161. package/out/concepts/CallQueryComponent__.js.map +1 -1
  162. package/out/concepts/Comment__.d.ts +35 -33
  163. package/out/concepts/Comment__.js +101 -100
  164. package/out/concepts/Comment__.js.map +1 -1
  165. package/out/concepts/CompletionProperty__.d.ts +107 -105
  166. package/out/concepts/CompletionProperty__.js +279 -283
  167. package/out/concepts/CompletionProperty__.js.map +1 -1
  168. package/out/concepts/ConfigGroup__.d.ts +127 -125
  169. package/out/concepts/ConfigGroup__.js +266 -264
  170. package/out/concepts/ConfigGroup__.js.map +1 -1
  171. package/out/concepts/ConfigPropertyValue__.d.ts +47 -45
  172. package/out/concepts/ConfigPropertyValue__.js +110 -110
  173. package/out/concepts/ConfigPropertyValue__.js.map +1 -1
  174. package/out/concepts/ConfigProperty__.d.ts +156 -154
  175. package/out/concepts/ConfigProperty__.js +334 -334
  176. package/out/concepts/ConfigProperty__.js.map +1 -1
  177. package/out/concepts/Configuration__.d.ts +126 -124
  178. package/out/concepts/Configuration__.js +239 -236
  179. package/out/concepts/Configuration__.js.map +1 -1
  180. package/out/concepts/Connection__.d.ts +168 -166
  181. package/out/concepts/Connection__.js +347 -347
  182. package/out/concepts/Connection__.js.map +1 -1
  183. package/out/concepts/ConnectorTrigger__.d.ts +81 -79
  184. package/out/concepts/ConnectorTrigger__.js +160 -161
  185. package/out/concepts/ConnectorTrigger__.js.map +1 -1
  186. package/out/concepts/Connector__.d.ts +929 -570
  187. package/out/concepts/Connector__.js +1346 -907
  188. package/out/concepts/Connector__.js.map +1 -1
  189. package/out/concepts/Constant__.d.ts +121 -119
  190. package/out/concepts/Constant__.js +313 -313
  191. package/out/concepts/Constant__.js.map +1 -1
  192. package/out/concepts/DataSource__.d.ts +171 -169
  193. package/out/concepts/DataSource__.js +477 -477
  194. package/out/concepts/DataSource__.js.map +1 -1
  195. package/out/concepts/DatabaseTypeAnnotation__.d.ts +34 -32
  196. package/out/concepts/DatabaseTypeAnnotation__.js +82 -82
  197. package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -1
  198. package/out/concepts/DefaultValue__.d.ts +98 -98
  199. package/out/concepts/DefaultValue__.js +210 -209
  200. package/out/concepts/DefaultValue__.js.map +1 -1
  201. package/out/concepts/Destination__.d.ts +160 -158
  202. package/out/concepts/Destination__.js +804 -804
  203. package/out/concepts/Destination__.js.map +1 -1
  204. package/out/concepts/End__.d.ts +27 -25
  205. package/out/concepts/End__.js +117 -115
  206. package/out/concepts/End__.js.map +1 -1
  207. package/out/concepts/EntityIndex__.d.ts +98 -96
  208. package/out/concepts/EntityIndex__.js +227 -229
  209. package/out/concepts/EntityIndex__.js.map +1 -1
  210. package/out/concepts/EntityProperty__.d.ts +289 -287
  211. package/out/concepts/EntityProperty__.js +883 -888
  212. package/out/concepts/EntityProperty__.js.map +1 -1
  213. package/out/concepts/Entity__.d.ts +342 -340
  214. package/out/concepts/Entity__.js +779 -769
  215. package/out/concepts/Entity__.js.map +1 -1
  216. package/out/concepts/EnumItem__.d.ts +67 -65
  217. package/out/concepts/EnumItem__.js +155 -155
  218. package/out/concepts/EnumItem__.js.map +1 -1
  219. package/out/concepts/Enum__.d.ts +141 -139
  220. package/out/concepts/Enum__.js +341 -341
  221. package/out/concepts/Enum__.js.map +1 -1
  222. package/out/concepts/Event__.d.ts +146 -144
  223. package/out/concepts/Event__.js +261 -263
  224. package/out/concepts/Event__.js.map +1 -1
  225. package/out/concepts/ExternalDestination__.d.ts +78 -76
  226. package/out/concepts/ExternalDestination__.js +292 -291
  227. package/out/concepts/ExternalDestination__.js.map +1 -1
  228. package/out/concepts/ForEachStatement__.d.ts +173 -190
  229. package/out/concepts/ForEachStatement__.js +533 -534
  230. package/out/concepts/ForEachStatement__.js.map +1 -1
  231. package/out/concepts/FrontendLibrary__.d.ts +216 -214
  232. package/out/concepts/FrontendLibrary__.js +374 -372
  233. package/out/concepts/FrontendLibrary__.js.map +1 -1
  234. package/out/concepts/FrontendVariable__.d.ts +24 -22
  235. package/out/concepts/FrontendVariable__.js +66 -63
  236. package/out/concepts/FrontendVariable__.js.map +1 -1
  237. package/out/concepts/Frontend__.d.ts +511 -509
  238. package/out/concepts/Frontend__.js +1043 -1003
  239. package/out/concepts/Frontend__.js.map +1 -1
  240. package/out/concepts/Function__.d.ts +420 -418
  241. package/out/concepts/Function__.js +805 -801
  242. package/out/concepts/Function__.js.map +1 -1
  243. package/out/concepts/I18nInfo__.d.ts +44 -44
  244. package/out/concepts/I18nInfo__.js +110 -110
  245. package/out/concepts/I18nInfo__.js.map +1 -1
  246. package/out/concepts/Identifier__.d.ts +54 -52
  247. package/out/concepts/Identifier__.js +309 -305
  248. package/out/concepts/Identifier__.js.map +1 -1
  249. package/out/concepts/IfStatement__.d.ts +161 -159
  250. package/out/concepts/IfStatement__.js +353 -352
  251. package/out/concepts/IfStatement__.js.map +1 -1
  252. package/out/concepts/Integration__.d.ts +146 -144
  253. package/out/concepts/Integration__.js +301 -298
  254. package/out/concepts/Integration__.js.map +1 -1
  255. package/out/concepts/InterfaceFromExample__.d.ts +88 -0
  256. package/out/concepts/InterfaceFromExample__.js +172 -0
  257. package/out/concepts/InterfaceFromExample__.js.map +1 -0
  258. package/out/concepts/InterfaceParam__.d.ts +151 -144
  259. package/out/concepts/InterfaceParam__.js +354 -346
  260. package/out/concepts/InterfaceParam__.js.map +1 -1
  261. package/out/concepts/Interface__.d.ts +334 -331
  262. package/out/concepts/Interface__.js +923 -910
  263. package/out/concepts/Interface__.js.map +1 -1
  264. package/out/concepts/JSBlock__.d.ts +37 -35
  265. package/out/concepts/JSBlock__.js +113 -112
  266. package/out/concepts/JSBlock__.js.map +1 -1
  267. package/out/concepts/JavaLogic__.d.ts +45 -43
  268. package/out/concepts/JavaLogic__.js +127 -128
  269. package/out/concepts/JavaLogic__.js.map +1 -1
  270. package/out/concepts/LogicItem__.d.ts +154 -152
  271. package/out/concepts/LogicItem__.js +289 -291
  272. package/out/concepts/LogicItem__.js.map +1 -1
  273. package/out/concepts/Logic__.d.ts +648 -644
  274. package/out/concepts/Logic__.js +1967 -1946
  275. package/out/concepts/Logic__.js.map +1 -1
  276. package/out/concepts/MatchCase__.d.ts +261 -259
  277. package/out/concepts/MatchCase__.js +703 -693
  278. package/out/concepts/MatchCase__.js.map +1 -1
  279. package/out/concepts/Match__.d.ts +127 -125
  280. package/out/concepts/Match__.js +697 -695
  281. package/out/concepts/Match__.js.map +1 -1
  282. package/out/concepts/MemberExpression__.d.ts +77 -75
  283. package/out/concepts/MemberExpression__.js +496 -495
  284. package/out/concepts/MemberExpression__.js.map +1 -1
  285. package/out/concepts/MicroApp__.d.ts +54 -52
  286. package/out/concepts/MicroApp__.js +122 -127
  287. package/out/concepts/MicroApp__.js.map +1 -1
  288. package/out/concepts/Module__.d.ts +985 -1236
  289. package/out/concepts/Module__.js +1450 -1756
  290. package/out/concepts/Module__.js.map +1 -1
  291. package/out/concepts/MsgTriggerEvent__.d.ts +140 -138
  292. package/out/concepts/MsgTriggerEvent__.js +239 -236
  293. package/out/concepts/MsgTriggerEvent__.js.map +1 -1
  294. package/out/concepts/MsgTriggerLauncher__.d.ts +129 -127
  295. package/out/concepts/MsgTriggerLauncher__.js +234 -232
  296. package/out/concepts/MsgTriggerLauncher__.js.map +1 -1
  297. package/out/concepts/Namespace__.d.ts +1086 -1070
  298. package/out/concepts/Namespace__.js +1546 -1491
  299. package/out/concepts/Namespace__.js.map +1 -1
  300. package/out/concepts/NewComposite__.d.ts +351 -349
  301. package/out/concepts/NewComposite__.js +1261 -1311
  302. package/out/concepts/NewComposite__.js.map +1 -1
  303. package/out/concepts/NewList__.d.ts +138 -136
  304. package/out/concepts/NewList__.js +455 -449
  305. package/out/concepts/NewList__.js.map +1 -1
  306. package/out/concepts/NewMap__.d.ts +229 -227
  307. package/out/concepts/NewMap__.js +600 -589
  308. package/out/concepts/NewMap__.js.map +1 -1
  309. package/out/concepts/New__.d.ts +23 -21
  310. package/out/concepts/New__.js +71 -69
  311. package/out/concepts/New__.js.map +1 -1
  312. package/out/concepts/NullLiteral__.d.ts +29 -27
  313. package/out/concepts/NullLiteral__.js +84 -82
  314. package/out/concepts/NullLiteral__.js.map +1 -1
  315. package/out/concepts/NumericLiteral__.d.ts +59 -57
  316. package/out/concepts/NumericLiteral__.js +190 -189
  317. package/out/concepts/NumericLiteral__.js.map +1 -1
  318. package/out/concepts/OqlQueryComponent__.d.ts +76 -74
  319. package/out/concepts/OqlQueryComponent__.js +368 -365
  320. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  321. package/out/concepts/OverriddenLogic__.d.ts +637 -635
  322. package/out/concepts/OverriddenLogic__.js +1693 -1691
  323. package/out/concepts/OverriddenLogic__.js.map +1 -1
  324. package/out/concepts/Param__.d.ts +182 -180
  325. package/out/concepts/Param__.js +512 -512
  326. package/out/concepts/Param__.js.map +1 -1
  327. package/out/concepts/Point__.d.ts +34 -32
  328. package/out/concepts/Point__.js +82 -82
  329. package/out/concepts/Point__.js.map +1 -1
  330. package/out/concepts/ProcessComponent__.d.ts +222 -220
  331. package/out/concepts/ProcessComponent__.js +360 -360
  332. package/out/concepts/ProcessComponent__.js.map +1 -1
  333. package/out/concepts/ProcessElement__.d.ts +649 -647
  334. package/out/concepts/ProcessElement__.js +1335 -1334
  335. package/out/concepts/ProcessElement__.js.map +1 -1
  336. package/out/concepts/ProcessOutcome__.d.ts +33 -32
  337. package/out/concepts/ProcessOutcome__.js +108 -92
  338. package/out/concepts/ProcessOutcome__.js.map +1 -1
  339. package/out/concepts/ProcessOutcomes__.d.ts +33 -32
  340. package/out/concepts/ProcessOutcomes__.js +110 -93
  341. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  342. package/out/concepts/Process__.d.ts +616 -614
  343. package/out/concepts/Process__.js +1139 -1135
  344. package/out/concepts/Process__.js.map +1 -1
  345. package/out/concepts/QueryAggregateExpression__.d.ts +54 -52
  346. package/out/concepts/QueryAggregateExpression__.js +159 -159
  347. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  348. package/out/concepts/QueryFieldExpression__.d.ts +56 -54
  349. package/out/concepts/QueryFieldExpression__.js +163 -164
  350. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  351. package/out/concepts/QueryFromExpression__.d.ts +101 -99
  352. package/out/concepts/QueryFromExpression__.js +220 -220
  353. package/out/concepts/QueryFromExpression__.js.map +1 -1
  354. package/out/concepts/QueryGroupByExpression__.d.ts +49 -47
  355. package/out/concepts/QueryGroupByExpression__.js +150 -148
  356. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  357. package/out/concepts/QueryJoinExpression__.d.ts +188 -186
  358. package/out/concepts/QueryJoinExpression__.js +347 -348
  359. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  360. package/out/concepts/QueryLimitExpression__.d.ts +60 -58
  361. package/out/concepts/QueryLimitExpression__.js +172 -171
  362. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  363. package/out/concepts/QueryOrderByExpression__.d.ts +71 -69
  364. package/out/concepts/QueryOrderByExpression__.js +185 -184
  365. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  366. package/out/concepts/QuerySelectExpression__.d.ts +206 -204
  367. package/out/concepts/QuerySelectExpression__.js +311 -308
  368. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  369. package/out/concepts/Rect__.d.ts +42 -40
  370. package/out/concepts/Rect__.js +98 -100
  371. package/out/concepts/Rect__.js.map +1 -1
  372. package/out/concepts/Return__.d.ts +147 -145
  373. package/out/concepts/Return__.js +410 -409
  374. package/out/concepts/Return__.js.map +1 -1
  375. package/out/concepts/Role__.d.ts +65 -63
  376. package/out/concepts/Role__.js +172 -173
  377. package/out/concepts/Role__.js.map +1 -1
  378. package/out/concepts/SelectMembers__.d.ts +145 -143
  379. package/out/concepts/SelectMembers__.js +307 -305
  380. package/out/concepts/SelectMembers__.js.map +1 -1
  381. package/out/concepts/Slot__.d.ts +77 -75
  382. package/out/concepts/Slot__.js +175 -178
  383. package/out/concepts/Slot__.js.map +1 -1
  384. package/out/concepts/SqlQueryComponent__.d.ts +74 -72
  385. package/out/concepts/SqlQueryComponent__.js +291 -292
  386. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  387. package/out/concepts/Start__.d.ts +27 -25
  388. package/out/concepts/Start__.js +76 -74
  389. package/out/concepts/Start__.js.map +1 -1
  390. package/out/concepts/StringInterpolation__.d.ts +118 -116
  391. package/out/concepts/StringInterpolation__.js +275 -272
  392. package/out/concepts/StringInterpolation__.js.map +1 -1
  393. package/out/concepts/StringLiteral__.d.ts +45 -43
  394. package/out/concepts/StringLiteral__.js +165 -157
  395. package/out/concepts/StringLiteral__.js.map +1 -1
  396. package/out/concepts/StructureProperty__.d.ts +150 -148
  397. package/out/concepts/StructureProperty__.js +373 -372
  398. package/out/concepts/StructureProperty__.js.map +1 -1
  399. package/out/concepts/Structure__.d.ts +252 -248
  400. package/out/concepts/Structure__.js +521 -506
  401. package/out/concepts/Structure__.js.map +1 -1
  402. package/out/concepts/SwitchCase__.d.ts +97 -95
  403. package/out/concepts/SwitchCase__.js +287 -281
  404. package/out/concepts/SwitchCase__.js.map +1 -1
  405. package/out/concepts/SwitchStatement__.d.ts +87 -85
  406. package/out/concepts/SwitchStatement__.js +212 -209
  407. package/out/concepts/SwitchStatement__.js.map +1 -1
  408. package/out/concepts/Theme__.d.ts +40 -38
  409. package/out/concepts/Theme__.js +91 -89
  410. package/out/concepts/Theme__.js.map +1 -1
  411. package/out/concepts/Transactional__.d.ts +90 -88
  412. package/out/concepts/Transactional__.js +171 -172
  413. package/out/concepts/Transactional__.js.map +1 -1
  414. package/out/concepts/TriggerEvent__.d.ts +123 -121
  415. package/out/concepts/TriggerEvent__.js +236 -234
  416. package/out/concepts/TriggerEvent__.js.map +1 -1
  417. package/out/concepts/TriggerLauncher__.d.ts +84 -82
  418. package/out/concepts/TriggerLauncher__.js +223 -225
  419. package/out/concepts/TriggerLauncher__.js.map +1 -1
  420. package/out/concepts/TypeAnnotation__.d.ts +304 -299
  421. package/out/concepts/TypeAnnotation__.js +1054 -1025
  422. package/out/concepts/TypeAnnotation__.js.map +1 -1
  423. package/out/concepts/TypeParam__.d.ts +28 -26
  424. package/out/concepts/TypeParam__.js +82 -81
  425. package/out/concepts/TypeParam__.js.map +1 -1
  426. package/out/concepts/UnaryExpression__.d.ts +52 -50
  427. package/out/concepts/UnaryExpression__.js +200 -199
  428. package/out/concepts/UnaryExpression__.js.map +1 -1
  429. package/out/concepts/Unparsed__.d.ts +36 -33
  430. package/out/concepts/Unparsed__.js +103 -102
  431. package/out/concepts/Unparsed__.js.map +1 -1
  432. package/out/concepts/UseComponent__.d.ts +34 -32
  433. package/out/concepts/UseComponent__.js +82 -82
  434. package/out/concepts/UseComponent__.js.map +1 -1
  435. package/out/concepts/ValidationRule__.d.ts +152 -150
  436. package/out/concepts/ValidationRule__.js +531 -525
  437. package/out/concepts/ValidationRule__.js.map +1 -1
  438. package/out/concepts/Variable__.d.ts +167 -165
  439. package/out/concepts/Variable__.js +479 -478
  440. package/out/concepts/Variable__.js.map +1 -1
  441. package/out/concepts/ViewBlock__.d.ts +38 -36
  442. package/out/concepts/ViewBlock__.js +90 -91
  443. package/out/concepts/ViewBlock__.js.map +1 -1
  444. package/out/concepts/ViewComponent__.d.ts +568 -566
  445. package/out/concepts/ViewComponent__.js +819 -816
  446. package/out/concepts/ViewComponent__.js.map +1 -1
  447. package/out/concepts/ViewElement__.d.ts +628 -626
  448. package/out/concepts/ViewElement__.js +2315 -2316
  449. package/out/concepts/ViewElement__.js.map +1 -1
  450. package/out/concepts/View__.d.ts +725 -723
  451. package/out/concepts/View__.js +2219 -2217
  452. package/out/concepts/View__.js.map +1 -1
  453. package/out/concepts/WhileStatement__.d.ts +100 -98
  454. package/out/concepts/WhileStatement__.js +251 -247
  455. package/out/concepts/WhileStatement__.js.map +1 -1
  456. package/out/concepts/basics/constants.d.ts +1 -0
  457. package/out/concepts/basics/constants.js +6 -0
  458. package/out/concepts/basics/constants.js.map +1 -0
  459. package/out/concepts/basics/stdlib/index.d.ts +4 -4
  460. package/out/concepts/basics/stdlib/index.js +44 -44
  461. package/out/concepts/basics/stdlib/nasl.auth.d.ts +7 -7
  462. package/out/concepts/basics/stdlib/nasl.auth.js +163 -163
  463. package/out/concepts/basics/stdlib/nasl.browser.d.ts +3 -3
  464. package/out/concepts/basics/stdlib/nasl.browser.js +148 -148
  465. package/out/concepts/basics/stdlib/nasl.collection.d.ts +7 -7
  466. package/out/concepts/basics/stdlib/nasl.collection.js +51 -51
  467. package/out/concepts/basics/stdlib/nasl.configuration.d.ts +3 -3
  468. package/out/concepts/basics/stdlib/nasl.configuration.js +55 -55
  469. package/out/concepts/basics/stdlib/nasl.core.d.ts +5 -5
  470. package/out/concepts/basics/stdlib/nasl.core.js +48 -48
  471. package/out/concepts/basics/stdlib/nasl.event.d.ts +3 -3
  472. package/out/concepts/basics/stdlib/nasl.event.js +24 -24
  473. package/out/concepts/basics/stdlib/nasl.http.d.ts +7 -7
  474. package/out/concepts/basics/stdlib/nasl.http.js +168 -168
  475. package/out/concepts/basics/stdlib/nasl.interface.d.ts +7 -7
  476. package/out/concepts/basics/stdlib/nasl.interface.js +42 -42
  477. package/out/concepts/basics/stdlib/nasl.io.d.ts +3 -3
  478. package/out/concepts/basics/stdlib/nasl.io.js +51 -51
  479. package/out/concepts/basics/stdlib/nasl.logging.d.ts +3 -3
  480. package/out/concepts/basics/stdlib/nasl.logging.js +55 -55
  481. package/out/concepts/basics/stdlib/nasl.process.d.ts +7 -7
  482. package/out/concepts/basics/stdlib/nasl.process.js +637 -637
  483. package/out/concepts/basics/stdlib/nasl.ui.d.ts +7 -7
  484. package/out/concepts/basics/stdlib/nasl.ui.js +1062 -1062
  485. package/out/concepts/basics/stdlib/nasl.util.d.ts +5 -5
  486. package/out/concepts/basics/stdlib/nasl.util.js +2291 -2291
  487. package/out/concepts/basics/stdlib/nasl.util.js.map +1 -1
  488. package/out/concepts/basics/stdlib/nasl.validation.d.ts +3 -3
  489. package/out/concepts/basics/stdlib/nasl.validation.js +564 -564
  490. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.d.ts +5 -5
  491. package/out/concepts/basics/stdlib/reference2TypeAnnotationList.js +25 -25
  492. package/out/concepts/basics/stdlib/timeZone.d.ts +5 -5
  493. package/out/concepts/basics/stdlib/timeZone.js +195 -195
  494. package/out/concepts/basics/types/coreTypeList.d.ts +2 -2
  495. package/out/concepts/basics/types/coreTypeList.js +14 -14
  496. package/out/concepts/basics/types/index.d.ts +16 -16
  497. package/out/concepts/basics/types/index.js +34 -34
  498. package/out/concepts/index.d.ts +6 -6
  499. package/out/concepts/index.js +24 -24
  500. package/out/concepts/index__.d.ts +126 -124
  501. package/out/concepts/index__.js +142 -140
  502. package/out/concepts/index__.js.map +1 -1
  503. package/out/concepts/types__.d.ts +128 -126
  504. package/out/concepts/types__.js +2 -2
  505. package/out/config.d.ts +43 -43
  506. package/out/config.js +71 -71
  507. package/out/decorators/index.d.ts +69 -57
  508. package/out/decorators/index.js +216 -172
  509. package/out/decorators/index.js.map +1 -1
  510. package/out/decorators/promise.d.ts +7 -7
  511. package/out/decorators/promise.js +27 -27
  512. package/out/enums/KEYWORDS.d.ts +6 -6
  513. package/out/enums/KEYWORDS.js +1245 -1243
  514. package/out/enums/KEYWORDS.js.map +1 -1
  515. package/out/enums/LEVEL_NAME_MAP.d.ts +26 -26
  516. package/out/enums/LEVEL_NAME_MAP.js +29 -29
  517. package/out/eventBus.d.ts +3 -3
  518. package/out/eventBus.js +6 -6
  519. package/out/generator/compileComponent.d.ts +11 -11
  520. package/out/generator/compileComponent.js +11 -11
  521. package/out/generator/genBundleFiles.d.ts +34 -34
  522. package/out/generator/genBundleFiles.js +356 -356
  523. package/out/generator/genBundleFiles.js.map +1 -1
  524. package/out/generator/genHash.d.ts +7 -7
  525. package/out/generator/genHash.js +38 -38
  526. package/out/generator/genMetaData.d.ts +31 -31
  527. package/out/generator/genMetaData.js +305 -301
  528. package/out/generator/genMetaData.js.map +1 -1
  529. package/out/generator/genReleaseBody.d.ts +72 -72
  530. package/out/generator/genReleaseBody.js +323 -321
  531. package/out/generator/genReleaseBody.js.map +1 -1
  532. package/out/generator/icestark.d.ts +2 -2
  533. package/out/generator/icestark.js +7 -5
  534. package/out/generator/icestark.js.map +1 -1
  535. package/out/generator/index.d.ts +7 -7
  536. package/out/generator/index.js +23 -23
  537. package/out/generator/microApp.d.ts +2 -2
  538. package/out/generator/microApp.js +35 -35
  539. package/out/generator/permission.d.ts +10 -10
  540. package/out/generator/permission.js +269 -269
  541. package/out/generator/qiankun.d.ts +2 -2
  542. package/out/generator/qiankun.js +6 -4
  543. package/out/generator/qiankun.js.map +1 -1
  544. package/out/generator/styleReplacer.d.ts +3 -3
  545. package/out/generator/styleReplacer.js +67 -67
  546. package/out/index.d.ts +13 -13
  547. package/out/index.js +66 -66
  548. package/out/manager/diagnostic.d.ts +35 -35
  549. package/out/manager/diagnostic.js +62 -62
  550. package/out/manager/stepRecorder.d.ts +20 -20
  551. package/out/manager/stepRecorder.js +108 -108
  552. package/out/natural/componentData.d.ts +31 -31
  553. package/out/natural/componentData.js +84 -84
  554. package/out/natural/genNaturalTS.d.ts +3 -3
  555. package/out/natural/genNaturalTS.js +89 -90
  556. package/out/natural/genNaturalTS.js.map +1 -1
  557. package/out/natural/index.d.ts +2 -2
  558. package/out/natural/index.js +18 -18
  559. package/out/natural/naslStdlibMap.d.ts +2 -2
  560. package/out/natural/naslStdlibMap.js +25 -25
  561. package/out/natural/transformTSCode.d.ts +7 -7
  562. package/out/natural/transformTSCode.js +919 -877
  563. package/out/natural/transformTSCode.js.map +1 -1
  564. package/out/sentry/index.d.ts +34 -34
  565. package/out/sentry/index.js +148 -147
  566. package/out/sentry/index.js.map +1 -1
  567. package/out/server/createUiTs.d.ts +16 -16
  568. package/out/server/createUiTs.js +242 -242
  569. package/out/server/entity2LogicNamespace.d.ts +10 -10
  570. package/out/server/entity2LogicNamespace.js +381 -381
  571. package/out/server/event.d.ts +30 -30
  572. package/out/server/event.js +150 -150
  573. package/out/server/extendBaseNode.d.ts +1 -1
  574. package/out/server/extendBaseNode.js +574 -543
  575. package/out/server/extendBaseNode.js.map +1 -1
  576. package/out/server/formatTsUtils.d.ts +37 -37
  577. package/out/server/formatTsUtils.js +851 -851
  578. package/out/server/getConnector.d.ts +14 -14
  579. package/out/server/getConnector.js +77 -77
  580. package/out/server/getExtensionModules.d.ts +3 -3
  581. package/out/server/getExtensionModules.js +33 -33
  582. package/out/server/getFunctions.d.ts +3 -3
  583. package/out/server/getFunctions.js +19 -19
  584. package/out/server/getInterfaces.d.ts +2 -2
  585. package/out/server/getInterfaces.js +47 -47
  586. package/out/server/getLogging.d.ts +1 -1
  587. package/out/server/getLogging.js +8 -8
  588. package/out/server/getLogics.d.ts +4 -4
  589. package/out/server/getLogics.js +380 -380
  590. package/out/server/getMemberIdentifier.d.ts +17 -17
  591. package/out/server/getMemberIdentifier.js +508 -508
  592. package/out/server/getProcessComponents.d.ts +2 -2
  593. package/out/server/getProcessComponents.js +12 -12
  594. package/out/server/getProcesses.d.ts +33 -33
  595. package/out/server/getProcesses.js +596 -596
  596. package/out/server/getScope.d.ts +13 -13
  597. package/out/server/getScope.js +60 -60
  598. package/out/server/getValidates.d.ts +3 -3
  599. package/out/server/getValidates.js +13 -13
  600. package/out/server/index.d.ts +5 -5
  601. package/out/server/index.js +41 -41
  602. package/out/server/naslServer.d.ts +375 -371
  603. package/out/server/naslServer.js +4706 -4585
  604. package/out/server/naslServer.js.map +1 -1
  605. package/out/server/naslStdlibMap.d.ts +2 -2
  606. package/out/server/naslStdlibMap.js +53 -53
  607. package/out/server/process2LogicNamespace.d.ts +26 -26
  608. package/out/server/process2LogicNamespace.js +108 -108
  609. package/out/server/translator.d.ts +26 -26
  610. package/out/server/translator.js +819 -805
  611. package/out/server/translator.js.map +1 -1
  612. package/out/service/creator/add.configs.d.ts +1 -1
  613. package/out/service/creator/add.configs.js +102 -102
  614. package/out/service/creator/errHandles.d.ts +18 -18
  615. package/out/service/creator/errHandles.js +67 -67
  616. package/out/service/creator/index.d.ts +1 -1
  617. package/out/service/creator/index.js +86 -86
  618. package/out/service/datasource/api.d.ts +12 -12
  619. package/out/service/datasource/api.js +13 -13
  620. package/out/service/datasource/index.d.ts +2 -2
  621. package/out/service/datasource/index.js +9 -9
  622. package/out/service/defaultErrorMessage.json +98 -98
  623. package/out/service/logic/api.d.ts +9 -9
  624. package/out/service/logic/api.js +10 -10
  625. package/out/service/logic/checktypeSocket.d.ts +5 -5
  626. package/out/service/logic/checktypeSocket.js +54 -54
  627. package/out/service/logic/index.d.ts +2 -2
  628. package/out/service/logic/index.js +9 -9
  629. package/out/service/storage/api.d.ts +54 -54
  630. package/out/service/storage/api.js +41 -41
  631. package/out/service/storage/index.d.ts +2 -2
  632. package/out/service/storage/index.js +9 -9
  633. package/out/service/storage/init.d.ts +102 -102
  634. package/out/service/storage/init.js +1161 -1161
  635. package/out/service/storage/jsoner.d.ts +36 -36
  636. package/out/service/storage/jsoner.js +128 -130
  637. package/out/service/storage/jsoner.js.map +1 -1
  638. package/out/service/storage/map.d.ts +4 -4
  639. package/out/service/storage/map.js +53 -53
  640. package/out/service/storage/service.d.ts +25 -25
  641. package/out/service/storage/service.js +79 -79
  642. package/out/service/storage/storagePoint.d.ts +17 -17
  643. package/out/service/storage/storagePoint.js +75 -75
  644. package/out/service/video/BaseService.d.ts +7 -7
  645. package/out/service/video/BaseService.js +60 -60
  646. package/out/service/video/MainCallbackService.d.ts +12 -12
  647. package/out/service/video/MainCallbackService.js +182 -182
  648. package/out/service/video/VideoTranscribe.d.ts +15 -15
  649. package/out/service/video/VideoTranscribe.js +95 -95
  650. package/out/service/video/publishService.d.ts +1 -1
  651. package/out/service/video/publishService.js +57 -57
  652. package/out/templator/genCallComponentLogic.d.ts +17 -17
  653. package/out/templator/genCallComponentLogic.js +28 -28
  654. package/out/templator/genCreateBlock.d.ts +10 -10
  655. package/out/templator/genCreateBlock.js +297 -297
  656. package/out/templator/genCurdEditMultipleKeyBlock.d.ts +8 -8
  657. package/out/templator/genCurdEditMultipleKeyBlock.js +398 -398
  658. package/out/templator/genCurdMultipleKeyBlock.d.ts +34 -34
  659. package/out/templator/genCurdMultipleKeyBlock.js +541 -541
  660. package/out/templator/genEditTableBlock.d.ts +51 -51
  661. package/out/templator/genEditTableBlock.js +255 -255
  662. package/out/templator/genEnumSelectBlock.d.ts +10 -10
  663. package/out/templator/genEnumSelectBlock.js +21 -21
  664. package/out/templator/genGetBlock.d.ts +6 -6
  665. package/out/templator/genGetBlock.js +96 -96
  666. package/out/templator/genGridViewBlock.d.ts +55 -55
  667. package/out/templator/genGridViewBlock.js +286 -286
  668. package/out/templator/genListViewBlock.d.ts +19 -19
  669. package/out/templator/genListViewBlock.js +108 -108
  670. package/out/templator/genQueryComponent.d.ts +34 -34
  671. package/out/templator/genQueryComponent.js +348 -348
  672. package/out/templator/genSelectBlock.d.ts +45 -45
  673. package/out/templator/genSelectBlock.js +340 -340
  674. package/out/templator/genTableBlock.d.ts +53 -53
  675. package/out/templator/genTableBlock.js +226 -226
  676. package/out/templator/genUpdateBlock.d.ts +6 -6
  677. package/out/templator/genUpdateBlock.js +322 -322
  678. package/out/templator/index.d.ts +19 -19
  679. package/out/templator/index.js +37 -37
  680. package/out/templator/utils.d.ts +683 -683
  681. package/out/templator/utils.js +458 -458
  682. package/out/translator/constant.d.ts +6 -6
  683. package/out/translator/constant.js +9 -9
  684. package/out/translator/index.d.ts +3 -3
  685. package/out/translator/index.js +19 -19
  686. package/out/translator/types.d.ts +33 -32
  687. package/out/translator/types.js +2 -2
  688. package/out/translator/utils.d.ts +17 -17
  689. package/out/translator/utils.js +110 -97
  690. package/out/translator/utils.js.map +1 -1
  691. package/out/utils/cookie.d.ts +9 -9
  692. package/out/utils/cookie.js +61 -61
  693. package/out/utils/env.d.ts +2 -2
  694. package/out/utils/env.js +5 -5
  695. package/out/utils/i18nInfo.d.ts +5 -5
  696. package/out/utils/i18nInfo.js +60 -60
  697. package/out/utils/index.d.ts +44 -44
  698. package/out/utils/index.js +200 -200
  699. package/out/utils/logger.d.ts +7 -7
  700. package/out/utils/logger.js +22 -22
  701. package/out/utils/sortTsString.d.ts +1 -1
  702. package/out/utils/sortTsString.js +43 -37
  703. package/out/utils/sortTsString.js.map +1 -1
  704. package/out/utils/string.d.ts +51 -51
  705. package/out/utils/string.js +106 -106
  706. package/out/utils/time-slicing.d.ts +41 -41
  707. package/out/utils/time-slicing.js +81 -81
  708. package/out/utils/traverse.d.ts +36 -36
  709. package/out/utils/traverse.js +142 -142
  710. package/out/utils/types.d.ts +1 -1
  711. package/out/utils/types.js +2 -2
  712. package/out/utils/window.d.ts +7 -7
  713. package/out/utils/window.js +13 -13
  714. package/package.json +8 -8
  715. package/sandbox/stdlib/nasl.oql.ts +6 -1
  716. package/sandbox-natural/stdlib/nasl.core.ts +6 -3
  717. package/sandbox-natural/stdlib/nasl.oql.ts +6 -0
  718. package/sandbox-natural/stdlib/nasl.util.ts +2 -1
  719. package/src/automate/template/myProcess.js +3 -2
  720. package/src/common/BaseNode.ts +108 -51
  721. package/src/concepts/Abort__.ts +4 -1
  722. package/src/concepts/AbstractInterface__.ts +64 -0
  723. package/src/concepts/Anchor__.ts +6 -2
  724. package/src/concepts/AnonymousFunction__.ts +11 -5
  725. package/src/concepts/App__.ts +1648 -1378
  726. package/src/concepts/Argument__.ts +7 -3
  727. package/src/concepts/Assignee__.ts +10 -5
  728. package/src/concepts/AssignmentLine__.ts +3 -0
  729. package/src/concepts/Assignment__.ts +8 -4
  730. package/src/concepts/Attribute__.ts +7 -2
  731. package/src/concepts/AuthInterface__.ts +3 -0
  732. package/src/concepts/AuthLogicForCallInterface__.ts +8 -4
  733. package/src/concepts/AuthLogic__.ts +3 -0
  734. package/src/concepts/BackendVariable__.ts +11 -4
  735. package/src/concepts/Backend__.ts +5 -1
  736. package/src/concepts/BatchAssignment__.ts +13 -8
  737. package/src/concepts/BinaryExpression__.ts +10 -6
  738. package/src/concepts/BindAttribute__.ts +6 -2
  739. package/src/concepts/BindDirective__.ts +11 -4
  740. package/src/concepts/BindEvent__.ts +8 -3
  741. package/src/concepts/BindStyle__.ts +5 -1
  742. package/src/concepts/BooleanLiteral__.ts +4 -1
  743. package/src/concepts/CallAuthInterface__.ts +11 -3
  744. package/src/concepts/CallConnector__.ts +3 -0
  745. package/src/concepts/CallFunction__.ts +41 -15
  746. package/src/concepts/CallInterface__.ts +33 -21
  747. package/src/concepts/CallLogic__.ts +41 -35
  748. package/src/concepts/CallQueryComponent__.ts +11 -14
  749. package/src/concepts/Comment__.ts +3 -0
  750. package/src/concepts/CompletionProperty__.ts +5 -1
  751. package/src/concepts/ConfigGroup__.ts +5 -1
  752. package/src/concepts/ConfigPropertyValue__.ts +3 -0
  753. package/src/concepts/ConfigProperty__.ts +5 -1
  754. package/src/concepts/Configuration__.ts +5 -1
  755. package/src/concepts/Connection__.ts +5 -1
  756. package/src/concepts/ConnectorTrigger__.ts +3 -0
  757. package/src/concepts/Connector__.ts +910 -25
  758. package/src/concepts/Constant__.ts +9 -4
  759. package/src/concepts/DataSource__.ts +5 -1
  760. package/src/concepts/DatabaseTypeAnnotation__.ts +3 -0
  761. package/src/concepts/DefaultValue__.ts +4 -3
  762. package/src/concepts/Destination__.ts +8 -4
  763. package/src/concepts/End__.ts +3 -0
  764. package/src/concepts/EntityIndex__.ts +3 -0
  765. package/src/concepts/EntityProperty__.ts +14 -4
  766. package/src/concepts/Entity__.ts +17 -2
  767. package/src/concepts/EnumItem__.ts +3 -0
  768. package/src/concepts/Enum__.ts +5 -1
  769. package/src/concepts/Event__.ts +5 -1
  770. package/src/concepts/ExternalDestination__.ts +7 -3
  771. package/src/concepts/ForEachStatement__.ts +21 -16
  772. package/src/concepts/FrontendLibrary__.ts +7 -2
  773. package/src/concepts/FrontendVariable__.ts +3 -0
  774. package/src/concepts/Frontend__.ts +59 -14
  775. package/src/concepts/Function__.ts +15 -7
  776. package/src/concepts/I18nInfo__.ts +1 -0
  777. package/src/concepts/Identifier__.ts +9 -2
  778. package/src/concepts/IfStatement__.ts +25 -22
  779. package/src/concepts/Integration__.ts +8 -4
  780. package/src/concepts/InterfaceFromExample__.ts +194 -0
  781. package/src/concepts/InterfaceParam__.ts +20 -4
  782. package/src/concepts/Interface__.ts +51 -25
  783. package/src/concepts/JSBlock__.ts +3 -0
  784. package/src/concepts/JavaLogic__.ts +3 -0
  785. package/src/concepts/LogicItem__.ts +3 -0
  786. package/src/concepts/Logic__.ts +48 -19
  787. package/src/concepts/MatchCase__.ts +16 -5
  788. package/src/concepts/Match__.ts +8 -4
  789. package/src/concepts/MemberExpression__.ts +8 -4
  790. package/src/concepts/MicroApp__.ts +3 -0
  791. package/src/concepts/Module__.ts +286 -893
  792. package/src/concepts/MsgTriggerEvent__.ts +5 -1
  793. package/src/concepts/MsgTriggerLauncher__.ts +6 -2
  794. package/src/concepts/Namespace__.ts +246 -173
  795. package/src/concepts/NewComposite__.ts +54 -103
  796. package/src/concepts/NewList__.ts +27 -18
  797. package/src/concepts/NewMap__.ts +29 -15
  798. package/src/concepts/New__.ts +3 -0
  799. package/src/concepts/NullLiteral__.ts +4 -1
  800. package/src/concepts/NumericLiteral__.ts +6 -2
  801. package/src/concepts/OqlQueryComponent__.ts +8 -1
  802. package/src/concepts/OverriddenLogic__.ts +18 -7
  803. package/src/concepts/Param__.ts +8 -2
  804. package/src/concepts/Point__.ts +3 -0
  805. package/src/concepts/ProcessComponent__.ts +7 -2
  806. package/src/concepts/ProcessElement__.ts +19 -8
  807. package/src/concepts/ProcessOutcome__.ts +20 -2
  808. package/src/concepts/ProcessOutcomes__.ts +20 -2
  809. package/src/concepts/Process__.ts +15 -7
  810. package/src/concepts/QueryAggregateExpression__.ts +5 -1
  811. package/src/concepts/QueryFieldExpression__.ts +3 -0
  812. package/src/concepts/QueryFromExpression__.ts +5 -1
  813. package/src/concepts/QueryGroupByExpression__.ts +5 -1
  814. package/src/concepts/QueryJoinExpression__.ts +5 -1
  815. package/src/concepts/QueryLimitExpression__.ts +5 -1
  816. package/src/concepts/QueryOrderByExpression__.ts +5 -1
  817. package/src/concepts/QuerySelectExpression__.ts +5 -1
  818. package/src/concepts/Rect__.ts +3 -0
  819. package/src/concepts/Return__.ts +9 -3
  820. package/src/concepts/Role__.ts +3 -0
  821. package/src/concepts/SelectMembers__.ts +5 -1
  822. package/src/concepts/Slot__.ts +5 -1
  823. package/src/concepts/SqlQueryComponent__.ts +5 -1
  824. package/src/concepts/Start__.ts +3 -0
  825. package/src/concepts/StringInterpolation__.ts +7 -3
  826. package/src/concepts/StringLiteral__.ts +12 -3
  827. package/src/concepts/StructureProperty__.ts +12 -4
  828. package/src/concepts/Structure__.ts +25 -3
  829. package/src/concepts/SwitchCase__.ts +9 -1
  830. package/src/concepts/SwitchStatement__.ts +7 -3
  831. package/src/concepts/Theme__.ts +3 -0
  832. package/src/concepts/Transactional__.ts +3 -0
  833. package/src/concepts/TriggerEvent__.ts +5 -1
  834. package/src/concepts/TriggerLauncher__.ts +3 -0
  835. package/src/concepts/TypeAnnotation__.ts +62 -23
  836. package/src/concepts/TypeParam__.ts +3 -0
  837. package/src/concepts/UnaryExpression__.ts +8 -4
  838. package/src/concepts/Unparsed__.ts +5 -2
  839. package/src/concepts/UseComponent__.ts +3 -0
  840. package/src/concepts/ValidationRule__.ts +21 -7
  841. package/src/concepts/Variable__.ts +10 -4
  842. package/src/concepts/ViewBlock__.ts +3 -0
  843. package/src/concepts/ViewComponent__.ts +15 -6
  844. package/src/concepts/ViewElement__.ts +13 -5
  845. package/src/concepts/View__.ts +27 -11
  846. package/src/concepts/WhileStatement__.ts +7 -1
  847. package/src/concepts/basics/constants.ts +2 -0
  848. package/src/concepts/basics/stdlib/nasl.util.ts +3 -3
  849. package/src/concepts/index__.ts +2 -0
  850. package/src/concepts/types__.ts +4 -0
  851. package/src/decorators/index.ts +55 -0
  852. package/src/enums/KEYWORDS.ts +2 -0
  853. package/src/generator/genBundleFiles.ts +7 -7
  854. package/src/generator/genMetaData.ts +7 -2
  855. package/src/generator/genReleaseBody.ts +8 -4
  856. package/src/generator/icestark.ts +4 -2
  857. package/src/generator/qiankun.ts +3 -1
  858. package/src/natural/genNaturalTS.ts +5 -6
  859. package/src/natural/transformTSCode.ts +53 -13
  860. package/src/sentry/index.ts +3 -1
  861. package/src/server/extendBaseNode.ts +30 -2
  862. package/src/server/naslServer.ts +142 -22
  863. package/src/server/translator.ts +13 -1
  864. package/src/service/storage/jsoner.ts +2 -2
  865. package/src/translator/types.ts +1 -0
  866. package/src/translator/utils.ts +15 -0
  867. package/src/utils/sortTsString.ts +9 -4
  868. package/test/concepts/call-function/__snapshots__/toEmbeddedTS.spec.ts.snap +26 -0
  869. package/test/concepts/call-function/__snapshots__/toJS.spec.ts.snap +26 -0
  870. package/test/concepts/call-function/constant.ts +5 -0
  871. package/test/concepts/call-function/fixtures/from-string.json +100 -0
  872. package/test/concepts/call-function/fixtures/to-string-global-tz.json +99 -0
  873. package/test/concepts/call-function/fixtures/to-string-no-tz.json +89 -0
  874. package/test/concepts/call-function/fixtures/to-string-user-tz.json +101 -0
  875. package/test/concepts/call-function/fixtures/to-string-utc-tz.json +101 -0
  876. package/test/concepts/call-function/toEmbeddedTS.spec.ts +14 -0
  877. package/test/concepts/call-function/toJS.spec.ts +14 -0
  878. package/test/concepts/call-interface/__snapshots__/toEmbeddedTS.spec.ts.snap +6 -3
  879. package/test/concepts/call-logic/__snapshots__/getQuickInfoOffset.spec.ts.snap +3 -3
  880. package/test/concepts/call-logic/__snapshots__/toEmbeddedTS.spec.ts.snap +3 -3
@@ -1,1328 +1,1316 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
- var __importDefault = (this && this.__importDefault) || function (mod) {
32
- return (mod && mod.__esModule) ? mod : { "default": mod };
33
- };
34
- var CallQueryComponent_1;
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.CallQueryComponent = void 0;
37
- const translator_1 = require("../translator");
38
- const Structure__1 = __importDefault(require("./Structure__"));
39
- const StructureProperty__1 = __importDefault(require("./StructureProperty__"));
40
- const CompletionProperty__1 = __importDefault(require("./CompletionProperty__"));
41
- const decorators_1 = require("../decorators");
42
- const utils = __importStar(require("../utils"));
43
- const TypeAnnotation__1 = __importDefault(require("./TypeAnnotation__"));
44
- const LogicItem__1 = __importDefault(require("./LogicItem__"));
45
- const QueryGroupByExpression__1 = __importDefault(require("./QueryGroupByExpression__"));
46
- const QueryOrderByExpression__1 = __importDefault(require("./QueryOrderByExpression__"));
47
- /**
48
- * 数据查询
49
- */
50
- let CallQueryComponent = class CallQueryComponent extends LogicItem__1.default {
51
- static { CallQueryComponent_1 = this; }
52
- /** 类名 */
53
- static ConceptName = 'CallQueryComponent';
54
- /**
55
- * 产品概念
56
- */
57
- concept;
58
- /**
59
- * 类型
60
- */
61
- // @ts-ignore
62
- typeAnnotation;
63
- /**
64
- * select
65
- */
66
- // @ts-ignore
67
- select;
68
- /**
69
- * from
70
- */
71
- // @ts-ignore
72
- from;
73
- /**
74
- * where
75
- */
76
- // @ts-ignore
77
- where;
78
- /**
79
- * where 草稿态
80
- */
81
- wherePlayground = [];
82
- /**
83
- * groupBy
84
- */
85
- groupBy = [];
86
- /**
87
- * having
88
- */
89
- // @ts-ignore
90
- having;
91
- /**
92
- * having 草稿态
93
- */
94
- havingPlayground = [];
95
- /**
96
- * orderBy
97
- */
98
- orderBy = [];
99
- /**
100
- * limit
101
- */
102
- // @ts-ignore
103
- limit;
104
- /**
105
- * 查询组件的局部版本
106
- */
107
- // @ts-ignore
108
- ideVersion;
109
- /**
110
- * @param source 需要合并的部分参数
111
- */
112
- constructor(source) {
113
- source = Object.assign({}, CallQueryComponent_1.getDefaultOptions(), source);
114
- super(source);
115
- super.subConstructor(source);
116
- }
117
- static from(source, parentNode, parentKey) {
118
- return super.from(source, parentNode, parentKey);
119
- }
120
- /**
121
- * 设置select
122
- */
123
- setSelect(select) {
124
- select._delete();
125
- const relationOptions = { parentNode: this, parentKey: 'select' };
126
- Object.assign(select, relationOptions);
127
- const object = {
128
- select,
129
- };
130
- this.update({
131
- ...object,
132
- });
133
- }
134
- /**
135
- * 设置from
136
- */
137
- setFrom(from) {
138
- from._delete();
139
- const relationOptions = { parentNode: this, parentKey: 'from' };
140
- Object.assign(from, relationOptions);
141
- const object = {
142
- from,
143
- };
144
- this.update({
145
- ...object,
146
- });
147
- }
148
- /**
149
- * 设置where
150
- */
151
- setWhere(where) {
152
- where._delete();
153
- const relationOptions = { parentNode: this, parentKey: 'where' };
154
- Object.assign(where, relationOptions);
155
- const object = {
156
- where,
157
- };
158
- this.update({
159
- ...object,
160
- });
161
- }
162
- /**
163
- * 设置groupBy
164
- */
165
- setGroupBy(groupBy) {
166
- const object = {
167
- groupBy,
168
- };
169
- this.update({
170
- ...object,
171
- });
172
- }
173
- /**
174
- * 设置having
175
- */
176
- setHaving(having) {
177
- having._delete();
178
- const relationOptions = { parentNode: this, parentKey: 'having' };
179
- Object.assign(having, relationOptions);
180
- const object = {
181
- having,
182
- };
183
- this.update({
184
- ...object,
185
- });
186
- }
187
- /**
188
- * 设置orderBy
189
- */
190
- setOrderBy(orderBy) {
191
- const object = {
192
- orderBy,
193
- };
194
- this.update({
195
- ...object,
196
- });
197
- }
198
- /**
199
- * 设置limit
200
- */
201
- setLimit(limit) {
202
- limit._delete();
203
- const relationOptions = { parentNode: this, parentKey: 'limit' };
204
- Object.assign(limit, relationOptions);
205
- const object = {
206
- limit,
207
- };
208
- this.update({
209
- ...object,
210
- });
211
- }
212
- _insertItemInWherePlaygroundAt(options, index) {
213
- const logicItemOptions = {};
214
- const relationOptions = { parentNode: this, parentKey: 'wherePlayground' };
215
- let logicItem;
216
- if (options instanceof LogicItem__1.default) {
217
- options.ensureDelete(); // 同一实例不支持多处存在
218
- logicItem = options;
219
- Object.assign(logicItem, relationOptions);
220
- }
221
- else {
222
- logicItem = LogicItem__1.default.from({
223
- ...logicItemOptions,
224
- ...options,
225
- }, this, 'wherePlayground');
226
- }
227
- this.wherePlayground.splice(index, 0, logicItem);
228
- return logicItem;
229
- }
230
- insertItemInWherePlaygroundAt(options, index) {
231
- const node = this._insertItemInWherePlaygroundAt(options, index);
232
- node.create({
233
- index,
234
- parentNode: this,
235
- parentKey: 'wherePlayground',
236
- });
237
- return node;
238
- }
239
- _addItemInWherePlayground(options) {
240
- const index = this.wherePlayground.length;
241
- return this._insertItemInWherePlaygroundAt(options, index);
242
- }
243
- addItemInWherePlayground(options) {
244
- const node = this._addItemInWherePlayground(options);
245
- const index = this.wherePlayground.indexOf(node);
246
- node.create({
247
- index,
248
- parentNode: this,
249
- parentKey: 'wherePlayground',
250
- });
251
- return node;
252
- }
253
- _insertQueryGroupByExpressionInGroupByAt(options, index) {
254
- const queryGroupByExpressionOptions = {};
255
- const relationOptions = { parentNode: this, parentKey: 'groupBy' };
256
- let queryGroupByExpression;
257
- if (options instanceof QueryGroupByExpression__1.default) {
258
- options.ensureDelete(); // 同一实例不支持多处存在
259
- queryGroupByExpression = options;
260
- Object.assign(queryGroupByExpression, relationOptions);
261
- }
262
- else {
263
- queryGroupByExpression = QueryGroupByExpression__1.default.from({
264
- ...queryGroupByExpressionOptions,
265
- ...options,
266
- }, this, 'groupBy');
267
- }
268
- this.groupBy.splice(index, 0, queryGroupByExpression);
269
- return queryGroupByExpression;
270
- }
271
- insertQueryGroupByExpressionInGroupByAt(options, index) {
272
- const node = this._insertQueryGroupByExpressionInGroupByAt(options, index);
273
- node.create({
274
- index,
275
- parentNode: this,
276
- parentKey: 'groupBy',
277
- });
278
- return node;
279
- }
280
- _addQueryGroupByExpressionInGroupBy(options) {
281
- const index = this.groupBy.length;
282
- return this._insertQueryGroupByExpressionInGroupByAt(options, index);
283
- }
284
- addQueryGroupByExpressionInGroupBy(options) {
285
- const node = this._addQueryGroupByExpressionInGroupBy(options);
286
- const index = this.groupBy.indexOf(node);
287
- node.create({
288
- index,
289
- parentNode: this,
290
- parentKey: 'groupBy',
291
- });
292
- return node;
293
- }
294
- _insertItemInHavingPlaygroundAt(options, index) {
295
- const logicItemOptions = {};
296
- const relationOptions = { parentNode: this, parentKey: 'havingPlayground' };
297
- let logicItem;
298
- if (options instanceof LogicItem__1.default) {
299
- options.ensureDelete(); // 同一实例不支持多处存在
300
- logicItem = options;
301
- Object.assign(logicItem, relationOptions);
302
- }
303
- else {
304
- logicItem = LogicItem__1.default.from({
305
- ...logicItemOptions,
306
- ...options,
307
- }, this, 'havingPlayground');
308
- }
309
- this.havingPlayground.splice(index, 0, logicItem);
310
- return logicItem;
311
- }
312
- insertItemInHavingPlaygroundAt(options, index) {
313
- const node = this._insertItemInHavingPlaygroundAt(options, index);
314
- node.create({
315
- index,
316
- parentNode: this,
317
- parentKey: 'havingPlayground',
318
- });
319
- return node;
320
- }
321
- _addItemInHavingPlayground(options) {
322
- const index = this.havingPlayground.length;
323
- return this._insertItemInHavingPlaygroundAt(options, index);
324
- }
325
- addItemInHavingPlayground(options) {
326
- const node = this._addItemInHavingPlayground(options);
327
- const index = this.havingPlayground.indexOf(node);
328
- node.create({
329
- index,
330
- parentNode: this,
331
- parentKey: 'havingPlayground',
332
- });
333
- return node;
334
- }
335
- _insertQueryOrderByExpressionInOrderByAt(options, index) {
336
- const queryOrderByExpressionOptions = {};
337
- const relationOptions = { parentNode: this, parentKey: 'orderBy' };
338
- let queryOrderByExpression;
339
- if (options instanceof QueryOrderByExpression__1.default) {
340
- options.ensureDelete(); // 同一实例不支持多处存在
341
- queryOrderByExpression = options;
342
- Object.assign(queryOrderByExpression, relationOptions);
343
- }
344
- else {
345
- queryOrderByExpression = QueryOrderByExpression__1.default.from({
346
- ...queryOrderByExpressionOptions,
347
- ...options,
348
- }, this, 'orderBy');
349
- }
350
- this.orderBy.splice(index, 0, queryOrderByExpression);
351
- return queryOrderByExpression;
352
- }
353
- insertQueryOrderByExpressionInOrderByAt(options, index) {
354
- const node = this._insertQueryOrderByExpressionInOrderByAt(options, index);
355
- node.create({
356
- index,
357
- parentNode: this,
358
- parentKey: 'orderBy',
359
- });
360
- return node;
361
- }
362
- _addQueryOrderByExpressionInOrderBy(options) {
363
- const index = this.orderBy.length;
364
- return this._insertQueryOrderByExpressionInOrderByAt(options, index);
365
- }
366
- addQueryOrderByExpressionInOrderBy(options) {
367
- const node = this._addQueryOrderByExpressionInOrderBy(options);
368
- const index = this.orderBy.indexOf(node);
369
- node.create({
370
- index,
371
- parentNode: this,
372
- parentKey: 'orderBy',
373
- });
374
- return node;
375
- }
376
- removeTypeAnnotation(options) {
377
- let typeAnnotation;
378
- if (typeof options === 'string') {
379
- typeAnnotation = this.typeAnnotation;
380
- if (!typeAnnotation) {
381
- throw new Error('找不到类型标注 ' + options);
382
- }
383
- }
384
- else {
385
- typeAnnotation = options;
386
- }
387
- return typeAnnotation.delete();
388
- }
389
- __removeTypeAnnotation(typeAnnotation) {
390
- const parentKey = typeAnnotation.parentKey;
391
- const params = {
392
- parentNode: this,
393
- parentKey,
394
- index: -1,
395
- object: null,
396
- oldObject: typeAnnotation,
397
- };
398
- if (parentKey) {
399
- params.parentKey = parentKey;
400
- // @ts-ignore
401
- const t = this.__v_raw || this;
402
- // @ts-ignore
403
- const n = typeAnnotation.__v_raw || typeAnnotation;
404
- if (Array.isArray(t[parentKey])) {
405
- const index = t[parentKey].indexOf(n);
406
- ~index && this[parentKey].splice(index, 1);
407
- params.index = index;
408
- }
409
- else if (t[parentKey] === n) {
410
- params.index = 0;
411
- this[parentKey] = undefined;
412
- }
413
- }
414
- return params;
415
- }
416
- removeSelect(options) {
417
- let select;
418
- if (typeof options === 'string') {
419
- select = this.select;
420
- if (!select) {
421
- throw new Error('找不到查询选择子句 ' + options);
422
- }
423
- }
424
- else {
425
- select = options;
426
- }
427
- return select.delete();
428
- }
429
- removeFrom(options) {
430
- let from;
431
- if (typeof options === 'string') {
432
- from = this.from;
433
- if (!from) {
434
- throw new Error('找不到查询 From 子句 ' + options);
435
- }
436
- }
437
- else {
438
- from = options;
439
- }
440
- return from.delete();
441
- }
442
- removeWhere(options) {
443
- let where;
444
- if (typeof options === 'string') {
445
- where = this.where;
446
- if (!where) {
447
- throw new Error('找不到逻辑项 ' + options);
448
- }
449
- }
450
- else {
451
- where = options;
452
- }
453
- return where.delete();
454
- }
455
- removeItemInWherePlayground(options) {
456
- let logicItem = options;
457
- return logicItem.delete();
458
- }
459
- removeQueryGroupByExpressionInGroupBy(options) {
460
- let queryGroupByExpression = options;
461
- return queryGroupByExpression.delete();
462
- }
463
- removeHaving(options) {
464
- let having;
465
- if (typeof options === 'string') {
466
- having = this.having;
467
- if (!having) {
468
- throw new Error('找不到逻辑项 ' + options);
469
- }
470
- }
471
- else {
472
- having = options;
473
- }
474
- return having.delete();
475
- }
476
- removeItemInHavingPlayground(options) {
477
- let logicItem = options;
478
- return logicItem.delete();
479
- }
480
- removeQueryOrderByExpressionInOrderBy(options) {
481
- let queryOrderByExpression = options;
482
- return queryOrderByExpression.delete();
483
- }
484
- removeLimit(options) {
485
- let limit;
486
- if (typeof options === 'string') {
487
- limit = this.limit;
488
- if (!limit) {
489
- throw new Error('找不到查询分页子句 ' + options);
490
- }
491
- }
492
- else {
493
- limit = options;
494
- }
495
- return limit.delete();
496
- }
497
- __removeLogicItem(logicItem) {
498
- const parentKey = logicItem.parentKey;
499
- const params = {
500
- parentNode: this,
501
- parentKey,
502
- index: -1,
503
- object: null,
504
- oldObject: logicItem,
505
- };
506
- if (parentKey) {
507
- params.parentKey = parentKey;
508
- // @ts-ignore
509
- const t = this.__v_raw || this;
510
- // @ts-ignore
511
- const n = logicItem.__v_raw || logicItem;
512
- if (Array.isArray(t[parentKey])) {
513
- const index = t[parentKey].indexOf(n);
514
- ~index && this[parentKey].splice(index, 1);
515
- params.index = index;
516
- }
517
- else if (t[parentKey] === n) {
518
- params.index = 0;
519
- this[parentKey] = undefined;
520
- }
521
- }
522
- return params;
523
- }
524
- //================================================================================
525
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
526
- // 自动生成的代码已结束。下面可以手动编写。
527
- //================================================================================
528
- /**
529
- * 获取添加时的默认选项
530
- * @returns
531
- */
532
- static getDefaultOptions() {
533
- return {
534
- kind: 'Statement',
535
- concept: 'CallQueryComponent',
536
- label: '数据查询',
537
- select: {
538
- concept: 'QuerySelectExpression',
539
- label: '查询组件Select子句',
540
- distinct: false,
541
- star: true,
542
- selectElements: [],
543
- },
544
- from: null,
545
- where: null,
546
- groupBy: [],
547
- having: null,
548
- orderBy: [],
549
- limit: {
550
- concept: 'QueryLimitExpression',
551
- label: '查询组件Limit子句',
552
- pageElement: {
553
- concept: 'NumericLiteral',
554
- value: 1,
555
- },
556
- pageSizeElement: {
557
- concept: 'NumericLiteral',
558
- value: 1000,
559
- },
560
- },
561
- };
562
- }
563
- toEmbeddedTSOfSubPart(key, list, options) {
564
- let { code, state, multipleErrorType } = options;
565
- if (list.length === 0)
566
- return code;
567
- code += `${(0, translator_1.indent)((state?.tabSize || 0) + 1)}.${key}(() => `;
568
- list.forEach((item, index) => {
569
- if (index > 0)
570
- code += `,\n${(0, translator_1.indent)((state?.tabSize || 0) + 2)}() => `;
571
- code += item?.toEmbeddedTS?.((0, translator_1.shiftState)(state, code, { tabSize: 0 }));
572
- });
573
- if (list.length > 1) {
574
- if (multipleErrorType)
575
- code += `,\n${(0, translator_1.indent)((state?.tabSize || 0) + 2)}() => ${multipleErrorType}`;
576
- code += `\n${(0, translator_1.indent)((state?.tabSize || 0) + 1)}`;
577
- }
578
- code += ')\n';
579
- return code;
580
- }
581
- toJS() {
582
- return '';
583
- // const { entityName } = this.from;
584
- // return `await this.$services["_custom"]["load${entityName}"]({
585
- // config: {
586
- // download: false,
587
- // },
588
- // path: {},
589
- // query: {},
590
- // headers: {},
591
- // body: {
592
- // },
593
- // })`;
594
- }
595
- // 2.11版本,自动推断返回类型
596
- isAutoInfer() {
597
- return this.ideVersion === '2.11' || this.ideVersion === '2.22';
598
- }
599
- // 2.22版本,实体支持列筛选 2.11版本不支持列筛选,需要运维select.selectElements
600
- get entityPropertySelectable() {
601
- return this.ideVersion === '2.22';
602
- }
603
- toEmbeddedTS(state = (0, translator_1.createCompilerState)()) {
604
- if (!this.typeAnnotation)
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __importDefault = (this && this.__importDefault) || function (mod) {
32
+ return (mod && mod.__esModule) ? mod : { "default": mod };
33
+ };
34
+ var CallQueryComponent_1;
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.CallQueryComponent = void 0;
37
+ const translator_1 = require("../translator");
38
+ const Structure__1 = __importDefault(require("./Structure__"));
39
+ const StructureProperty__1 = __importDefault(require("./StructureProperty__"));
40
+ const CompletionProperty__1 = __importDefault(require("./CompletionProperty__"));
41
+ const decorators_1 = require("../decorators");
42
+ const utils = __importStar(require("../utils"));
43
+ const TypeAnnotation__1 = __importDefault(require("./TypeAnnotation__"));
44
+ const LogicItem__1 = __importDefault(require("./LogicItem__"));
45
+ const QueryGroupByExpression__1 = __importDefault(require("./QueryGroupByExpression__"));
46
+ const QueryOrderByExpression__1 = __importDefault(require("./QueryOrderByExpression__"));
47
+ /**
48
+ * 数据查询
49
+ */
50
+ let CallQueryComponent = CallQueryComponent_1 =
51
+ // @ts-ignore
52
+ class CallQueryComponent extends LogicItem__1.default {
53
+ /** 类名 */
54
+ static ConceptName = 'CallQueryComponent';
55
+ /** 继承链 */
56
+ static inheritanceChain = ['LogicItem', 'BaseNode'];
57
+ /**
58
+ * 产品概念
59
+ */
60
+ concept;
61
+ /**
62
+ * 类型
63
+ */
64
+ // @ts-ignore
65
+ typeAnnotation;
66
+ /**
67
+ * select
68
+ */
69
+ // @ts-ignore
70
+ select;
71
+ /**
72
+ * from
73
+ */
74
+ // @ts-ignore
75
+ from;
76
+ /**
77
+ * where
78
+ */
79
+ // @ts-ignore
80
+ where;
81
+ /**
82
+ * where 草稿态
83
+ */
84
+ wherePlayground = [];
85
+ /**
86
+ * groupBy
87
+ */
88
+ groupBy = [];
89
+ /**
90
+ * having
91
+ */
92
+ // @ts-ignore
93
+ having;
94
+ /**
95
+ * having 草稿态
96
+ */
97
+ havingPlayground = [];
98
+ /**
99
+ * orderBy
100
+ */
101
+ orderBy = [];
102
+ /**
103
+ * limit
104
+ */
105
+ // @ts-ignore
106
+ limit;
107
+ /**
108
+ * 查询组件的局部版本
109
+ */
110
+ // @ts-ignore
111
+ ideVersion;
112
+ /**
113
+ * @param source 需要合并的部分参数
114
+ */
115
+ constructor(source) {
116
+ source = Object.assign({}, CallQueryComponent_1.getDefaultOptions(), source);
117
+ super(source);
118
+ super.subConstructor(source);
119
+ }
120
+ static from(source, parentNode, parentKey) {
121
+ return super.from(source, parentNode, parentKey);
122
+ }
123
+ /**
124
+ * 设置select
125
+ */
126
+ setSelect(select) {
127
+ select._delete();
128
+ const relationOptions = { parentNode: this, parentKey: 'select' };
129
+ Object.assign(select, relationOptions);
130
+ const object = {
131
+ select,
132
+ };
133
+ this.update({
134
+ ...object,
135
+ });
136
+ }
137
+ /**
138
+ * 设置from
139
+ */
140
+ setFrom(from) {
141
+ from._delete();
142
+ const relationOptions = { parentNode: this, parentKey: 'from' };
143
+ Object.assign(from, relationOptions);
144
+ const object = {
145
+ from,
146
+ };
147
+ this.update({
148
+ ...object,
149
+ });
150
+ }
151
+ /**
152
+ * 设置where
153
+ */
154
+ setWhere(where) {
155
+ where._delete();
156
+ const relationOptions = { parentNode: this, parentKey: 'where' };
157
+ Object.assign(where, relationOptions);
158
+ const object = {
159
+ where,
160
+ };
161
+ this.update({
162
+ ...object,
163
+ });
164
+ }
165
+ /**
166
+ * 设置groupBy
167
+ */
168
+ setGroupBy(groupBy) {
169
+ const object = {
170
+ groupBy,
171
+ };
172
+ this.update({
173
+ ...object,
174
+ });
175
+ }
176
+ /**
177
+ * 设置having
178
+ */
179
+ setHaving(having) {
180
+ having._delete();
181
+ const relationOptions = { parentNode: this, parentKey: 'having' };
182
+ Object.assign(having, relationOptions);
183
+ const object = {
184
+ having,
185
+ };
186
+ this.update({
187
+ ...object,
188
+ });
189
+ }
190
+ /**
191
+ * 设置orderBy
192
+ */
193
+ setOrderBy(orderBy) {
194
+ const object = {
195
+ orderBy,
196
+ };
197
+ this.update({
198
+ ...object,
199
+ });
200
+ }
201
+ /**
202
+ * 设置limit
203
+ */
204
+ setLimit(limit) {
205
+ limit._delete();
206
+ const relationOptions = { parentNode: this, parentKey: 'limit' };
207
+ Object.assign(limit, relationOptions);
208
+ const object = {
209
+ limit,
210
+ };
211
+ this.update({
212
+ ...object,
213
+ });
214
+ }
215
+ _insertItemInWherePlaygroundAt(options, index) {
216
+ const logicItemOptions = {};
217
+ const relationOptions = { parentNode: this, parentKey: 'wherePlayground' };
218
+ let logicItem;
219
+ if (options instanceof LogicItem__1.default) {
220
+ options.ensureDelete(); // 同一实例不支持多处存在
221
+ logicItem = options;
222
+ Object.assign(logicItem, relationOptions);
223
+ }
224
+ else {
225
+ logicItem = LogicItem__1.default.from({
226
+ ...logicItemOptions,
227
+ ...options,
228
+ }, this, 'wherePlayground');
229
+ }
230
+ this.wherePlayground.splice(index, 0, logicItem);
231
+ return logicItem;
232
+ }
233
+ insertItemInWherePlaygroundAt(options, index) {
234
+ const node = this._insertItemInWherePlaygroundAt(options, index);
235
+ node.create({
236
+ index,
237
+ parentNode: this,
238
+ parentKey: 'wherePlayground',
239
+ });
240
+ return node;
241
+ }
242
+ _addItemInWherePlayground(options) {
243
+ const index = this.wherePlayground.length;
244
+ return this._insertItemInWherePlaygroundAt(options, index);
245
+ }
246
+ addItemInWherePlayground(options) {
247
+ const node = this._addItemInWherePlayground(options);
248
+ const index = this.wherePlayground.indexOf(node);
249
+ node.create({
250
+ index,
251
+ parentNode: this,
252
+ parentKey: 'wherePlayground',
253
+ });
254
+ return node;
255
+ }
256
+ _insertQueryGroupByExpressionInGroupByAt(options, index) {
257
+ const queryGroupByExpressionOptions = {};
258
+ const relationOptions = { parentNode: this, parentKey: 'groupBy' };
259
+ let queryGroupByExpression;
260
+ if (options instanceof QueryGroupByExpression__1.default) {
261
+ options.ensureDelete(); // 同一实例不支持多处存在
262
+ queryGroupByExpression = options;
263
+ Object.assign(queryGroupByExpression, relationOptions);
264
+ }
265
+ else {
266
+ queryGroupByExpression = QueryGroupByExpression__1.default.from({
267
+ ...queryGroupByExpressionOptions,
268
+ ...options,
269
+ }, this, 'groupBy');
270
+ }
271
+ this.groupBy.splice(index, 0, queryGroupByExpression);
272
+ return queryGroupByExpression;
273
+ }
274
+ insertQueryGroupByExpressionInGroupByAt(options, index) {
275
+ const node = this._insertQueryGroupByExpressionInGroupByAt(options, index);
276
+ node.create({
277
+ index,
278
+ parentNode: this,
279
+ parentKey: 'groupBy',
280
+ });
281
+ return node;
282
+ }
283
+ _addQueryGroupByExpressionInGroupBy(options) {
284
+ const index = this.groupBy.length;
285
+ return this._insertQueryGroupByExpressionInGroupByAt(options, index);
286
+ }
287
+ addQueryGroupByExpressionInGroupBy(options) {
288
+ const node = this._addQueryGroupByExpressionInGroupBy(options);
289
+ const index = this.groupBy.indexOf(node);
290
+ node.create({
291
+ index,
292
+ parentNode: this,
293
+ parentKey: 'groupBy',
294
+ });
295
+ return node;
296
+ }
297
+ _insertItemInHavingPlaygroundAt(options, index) {
298
+ const logicItemOptions = {};
299
+ const relationOptions = { parentNode: this, parentKey: 'havingPlayground' };
300
+ let logicItem;
301
+ if (options instanceof LogicItem__1.default) {
302
+ options.ensureDelete(); // 同一实例不支持多处存在
303
+ logicItem = options;
304
+ Object.assign(logicItem, relationOptions);
305
+ }
306
+ else {
307
+ logicItem = LogicItem__1.default.from({
308
+ ...logicItemOptions,
309
+ ...options,
310
+ }, this, 'havingPlayground');
311
+ }
312
+ this.havingPlayground.splice(index, 0, logicItem);
313
+ return logicItem;
314
+ }
315
+ insertItemInHavingPlaygroundAt(options, index) {
316
+ const node = this._insertItemInHavingPlaygroundAt(options, index);
317
+ node.create({
318
+ index,
319
+ parentNode: this,
320
+ parentKey: 'havingPlayground',
321
+ });
322
+ return node;
323
+ }
324
+ _addItemInHavingPlayground(options) {
325
+ const index = this.havingPlayground.length;
326
+ return this._insertItemInHavingPlaygroundAt(options, index);
327
+ }
328
+ addItemInHavingPlayground(options) {
329
+ const node = this._addItemInHavingPlayground(options);
330
+ const index = this.havingPlayground.indexOf(node);
331
+ node.create({
332
+ index,
333
+ parentNode: this,
334
+ parentKey: 'havingPlayground',
335
+ });
336
+ return node;
337
+ }
338
+ _insertQueryOrderByExpressionInOrderByAt(options, index) {
339
+ const queryOrderByExpressionOptions = {};
340
+ const relationOptions = { parentNode: this, parentKey: 'orderBy' };
341
+ let queryOrderByExpression;
342
+ if (options instanceof QueryOrderByExpression__1.default) {
343
+ options.ensureDelete(); // 同一实例不支持多处存在
344
+ queryOrderByExpression = options;
345
+ Object.assign(queryOrderByExpression, relationOptions);
346
+ }
347
+ else {
348
+ queryOrderByExpression = QueryOrderByExpression__1.default.from({
349
+ ...queryOrderByExpressionOptions,
350
+ ...options,
351
+ }, this, 'orderBy');
352
+ }
353
+ this.orderBy.splice(index, 0, queryOrderByExpression);
354
+ return queryOrderByExpression;
355
+ }
356
+ insertQueryOrderByExpressionInOrderByAt(options, index) {
357
+ const node = this._insertQueryOrderByExpressionInOrderByAt(options, index);
358
+ node.create({
359
+ index,
360
+ parentNode: this,
361
+ parentKey: 'orderBy',
362
+ });
363
+ return node;
364
+ }
365
+ _addQueryOrderByExpressionInOrderBy(options) {
366
+ const index = this.orderBy.length;
367
+ return this._insertQueryOrderByExpressionInOrderByAt(options, index);
368
+ }
369
+ addQueryOrderByExpressionInOrderBy(options) {
370
+ const node = this._addQueryOrderByExpressionInOrderBy(options);
371
+ const index = this.orderBy.indexOf(node);
372
+ node.create({
373
+ index,
374
+ parentNode: this,
375
+ parentKey: 'orderBy',
376
+ });
377
+ return node;
378
+ }
379
+ removeTypeAnnotation(options) {
380
+ let typeAnnotation;
381
+ if (typeof options === 'string') {
382
+ typeAnnotation = this.typeAnnotation;
383
+ if (!typeAnnotation) {
384
+ throw new Error('找不到类型标注 ' + options);
385
+ }
386
+ }
387
+ else {
388
+ typeAnnotation = options;
389
+ }
390
+ return typeAnnotation.delete();
391
+ }
392
+ __removeTypeAnnotation(typeAnnotation) {
393
+ const parentKey = typeAnnotation.parentKey;
394
+ const params = {
395
+ parentNode: this,
396
+ parentKey,
397
+ index: -1,
398
+ object: null,
399
+ oldObject: typeAnnotation,
400
+ };
401
+ if (parentKey) {
402
+ params.parentKey = parentKey;
403
+ // @ts-ignore
404
+ const t = this.__v_raw || this;
405
+ // @ts-ignore
406
+ const n = typeAnnotation.__v_raw || typeAnnotation;
407
+ if (Array.isArray(t[parentKey])) {
408
+ // @ts-ignore
409
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
410
+ ~index && this[parentKey].splice(index, 1);
411
+ params.index = index;
412
+ }
413
+ else if (t[parentKey] === n) {
414
+ params.index = 0;
415
+ this[parentKey] = undefined;
416
+ }
417
+ }
418
+ return params;
419
+ }
420
+ removeSelect(options) {
421
+ let select;
422
+ if (typeof options === 'string') {
423
+ select = this.select;
424
+ if (!select) {
425
+ throw new Error('找不到查询选择子句 ' + options);
426
+ }
427
+ }
428
+ else {
429
+ select = options;
430
+ }
431
+ return select.delete();
432
+ }
433
+ removeFrom(options) {
434
+ let from;
435
+ if (typeof options === 'string') {
436
+ from = this.from;
437
+ if (!from) {
438
+ throw new Error('找不到查询 From 子句 ' + options);
439
+ }
440
+ }
441
+ else {
442
+ from = options;
443
+ }
444
+ return from.delete();
445
+ }
446
+ removeWhere(options) {
447
+ let where;
448
+ if (typeof options === 'string') {
449
+ where = this.where;
450
+ if (!where) {
451
+ throw new Error('找不到逻辑项 ' + options);
452
+ }
453
+ }
454
+ else {
455
+ where = options;
456
+ }
457
+ return where.delete();
458
+ }
459
+ removeItemInWherePlayground(options) {
460
+ let logicItem = options;
461
+ return logicItem.delete();
462
+ }
463
+ removeQueryGroupByExpressionInGroupBy(options) {
464
+ let queryGroupByExpression = options;
465
+ return queryGroupByExpression.delete();
466
+ }
467
+ removeHaving(options) {
468
+ let having;
469
+ if (typeof options === 'string') {
470
+ having = this.having;
471
+ if (!having) {
472
+ throw new Error('找不到逻辑项 ' + options);
473
+ }
474
+ }
475
+ else {
476
+ having = options;
477
+ }
478
+ return having.delete();
479
+ }
480
+ removeItemInHavingPlayground(options) {
481
+ let logicItem = options;
482
+ return logicItem.delete();
483
+ }
484
+ removeQueryOrderByExpressionInOrderBy(options) {
485
+ let queryOrderByExpression = options;
486
+ return queryOrderByExpression.delete();
487
+ }
488
+ removeLimit(options) {
489
+ let limit;
490
+ if (typeof options === 'string') {
491
+ limit = this.limit;
492
+ if (!limit) {
493
+ throw new Error('找不到查询分页子句 ' + options);
494
+ }
495
+ }
496
+ else {
497
+ limit = options;
498
+ }
499
+ return limit.delete();
500
+ }
501
+ __removeLogicItem(logicItem) {
502
+ const parentKey = logicItem.parentKey;
503
+ const params = {
504
+ parentNode: this,
505
+ parentKey,
506
+ index: -1,
507
+ object: null,
508
+ oldObject: logicItem,
509
+ };
510
+ if (parentKey) {
511
+ params.parentKey = parentKey;
512
+ // @ts-ignore
513
+ const t = this.__v_raw || this;
514
+ // @ts-ignore
515
+ const n = logicItem.__v_raw || logicItem;
516
+ if (Array.isArray(t[parentKey])) {
517
+ // @ts-ignore
518
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
519
+ ~index && this[parentKey].splice(index, 1);
520
+ params.index = index;
521
+ }
522
+ else if (t[parentKey] === n) {
523
+ params.index = 0;
524
+ this[parentKey] = undefined;
525
+ }
526
+ }
527
+ return params;
528
+ }
529
+ //================================================================================
530
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
531
+ // 自动生成的代码已结束。下面可以手动编写。
532
+ //================================================================================
533
+ /**
534
+ * 获取添加时的默认选项
535
+ * @returns
536
+ */
537
+ static getDefaultOptions() {
538
+ return {
539
+ kind: 'Statement',
540
+ concept: 'CallQueryComponent',
541
+ label: '数据查询',
542
+ select: {
543
+ concept: 'QuerySelectExpression',
544
+ label: '查询组件Select子句',
545
+ distinct: false,
546
+ star: true,
547
+ selectElements: [],
548
+ },
549
+ from: null,
550
+ where: null,
551
+ groupBy: [],
552
+ having: null,
553
+ orderBy: [],
554
+ limit: {
555
+ concept: 'QueryLimitExpression',
556
+ label: '查询组件Limit子句',
557
+ pageElement: {
558
+ concept: 'NumericLiteral',
559
+ value: 1,
560
+ },
561
+ pageSizeElement: {
562
+ concept: 'NumericLiteral',
563
+ value: 1000,
564
+ },
565
+ },
566
+ };
567
+ }
568
+ toEmbeddedTSOfSubPart(key, list, options) {
569
+ let { code, state, multipleErrorType } = options;
570
+ if (list.length === 0)
571
+ return code;
572
+ code += `${(0, translator_1.indent)((state?.tabSize || 0) + 1)}.${key}(() => `;
573
+ list.forEach((item, index) => {
574
+ if (index > 0)
575
+ code += `,\n${(0, translator_1.indent)((state?.tabSize || 0) + 2)}() => `;
576
+ code += item?.toEmbeddedTS?.((0, translator_1.shiftState)(state, code, { tabSize: 0 }));
577
+ });
578
+ if (list.length > 1) {
579
+ if (multipleErrorType)
580
+ code += `,\n${(0, translator_1.indent)((state?.tabSize || 0) + 2)}() => ${multipleErrorType}`;
581
+ code += `\n${(0, translator_1.indent)((state?.tabSize || 0) + 1)}`;
582
+ }
583
+ code += ')\n';
584
+ return code;
585
+ }
586
+ toJS() {
587
+ return '';
588
+ // const { entityName } = this.from;
589
+ // return `await this.$services["_custom"]["load${entityName}"]({
590
+ // config: {
591
+ // download: false,
592
+ // },
593
+ // path: {},
594
+ // query: {},
595
+ // headers: {},
596
+ // body: {
597
+ // },
598
+ // })`;
599
+ }
600
+ // 2.11版本,自动推断返回类型
601
+ isAutoInfer() {
602
+ return this.ideVersion === '2.11' || this.ideVersion === '2.22';
603
+ }
604
+ // 2.22版本,实体支持列筛选 2.11版本不支持列筛选,需要运维select.selectElements
605
+ get entityPropertySelectable() {
606
+ return this.ideVersion === '2.22';
607
+ }
608
+ toEmbeddedTS(state = (0, translator_1.createCompilerState)()) {
609
+ if (!this.typeAnnotation)
605
610
  return `(function () {
606
611
  return;
607
- })()`;
608
- let code = `(function(): `;
609
- if (this.isAutoInfer()) {
610
- code += `${this.typeAnnotation.toEmbeddedTS((0, translator_1.shiftState)(state, code))} {\n`;
611
- }
612
- else {
613
- code += `{ list: nasl.collection.List<`;
614
- code += `${this.typeAnnotation.toEmbeddedTS((0, translator_1.shiftState)(state, code))}>, total: nasl.core.Long } {\n`;
615
- }
616
- // 2.11版本后 分组使用别名
617
- if (this.isAutoInfer()) {
618
- // 分组别名(列别名)
619
- this.groupBy.forEach((item, index, array) => {
620
- code += (0, translator_1.indent)(state.tabSize + 1);
621
- const groupElement = item.groupElement;
622
- if (groupElement.asName)
623
- code += `const __${groupElement.asName} = `;
624
- if (groupElement.propertyName) {
625
- code += groupElement.toEmbeddedTS((0, translator_1.shiftState)(state, code, { tabSize: 0 }));
626
- code += ';\n';
627
- }
628
- else
629
- code += `__EMPTY_GROUP_BY_NAME__;\n`;
630
- if (index === array.length - 1)
631
- code += '\n';
632
- });
633
- }
634
- // 聚合属性别名
635
- this.select.selectAggregateElements.forEach((item, index, array) => {
636
- code += (0, translator_1.indent)((state?.tabSize || 0) + 1);
637
- const { asName, aggregateName, aggregateParam } = item;
638
- if (asName)
639
- code += `const __${asName} = `;
640
- if (aggregateName) {
641
- code += `nasl.langUtil.${aggregateName}(`;
642
- code += aggregateParam.toEmbeddedTS((0, translator_1.shiftState)(state, code, { tabSize: 0 }));
643
- code += ');\n';
644
- }
645
- else
646
- code += `__EMPTY_AGGREGATE_NAME__;\n`;
647
- if (index === array.length - 1)
648
- code += '\n';
649
- });
650
- if (this.from)
651
- code += this.from.toEmbeddedTS((0, translator_1.shiftState)(state, code, { tabSize: (state?.tabSize || 0) + 1 }));
652
- else
653
- code += `${(0, translator_1.indent)((state?.tabSize || 0) + 1)}nasl.langUtil.FROM()\n`;
654
- // where 子句
655
- code = this.toEmbeddedTSOfSubPart('WHERE', this.where ? [this.where] : [], {
656
- code,
657
- state,
658
- multipleErrorType: '__WHERE_MULTIPLE_CONDITION__',
659
- });
660
- if (this.select.selectAggregateElements.length) {
661
- // 聚合属性
662
- code = this.toEmbeddedTSOfSubPart('SELECT', this.select.selectAggregateElements, {
663
- code,
664
- state,
665
- });
666
- }
667
- else {
668
- // select实体字段
669
- code = this.toEmbeddedTSOfSubPart('SELECT', this.select.selectFieldElements, {
670
- code,
671
- state,
672
- });
673
- }
674
- // 分组属性(Group by)
675
- code = this.toEmbeddedTSOfSubPart('GROUP_BY', this.groupBy, {
676
- code,
677
- state,
678
- });
679
- // 聚合属性过滤(Having)
680
- code = this.toEmbeddedTSOfSubPart('HAVING', this.having ? [this.having] : [], {
681
- code,
682
- state,
683
- multipleErrorType: '__HAVING_MULTIPLE_CONDITION__',
684
- });
685
- // 排序规则
686
- code = this.toEmbeddedTSOfSubPart('ORDER_BY', this.orderBy, {
687
- code,
688
- state,
689
- });
690
- // 分页参数
691
- code = this.toEmbeddedTSOfSubPart('LIMIT', this.limit ? [this.limit] : [], {
692
- code,
693
- state,
694
- });
695
- code += '\n';
696
- code += `${(0, translator_1.indent)((state?.tabSize || 0) + 1)}return;\n`;
697
- code += `${(0, translator_1.indent)(state?.tabSize || 0)}})()`;
698
- if (this.parentNode.concept !== 'Argument' &&
699
- this.parentKey !== 'test' &&
700
- this.parentKey !== 'patterns' &&
701
- this.parentNode.concept !== 'Assignment' &&
702
- this.parentNode.concept !== 'ForEachStatement' &&
703
- this.parentNode.concept !== 'SelectMembers' &&
704
- this.parentNode.concept !== 'UnaryExpression' &&
705
- this.parentNode.concept !== 'BinaryExpression' &&
706
- this.parentNode.concept !== 'StringInterpolation' &&
707
- this.parentNode.concept !== 'MemberExpression' &&
708
- ['NewMap', 'NewList'].includes(this.parentNode.concept) &&
709
- this.parentKey !== 'returnExpression') {
710
- code += ';';
711
- }
712
- code += '\n';
713
- return code;
714
- }
715
- genPropertiesFrom(node, properties = []) {
716
- if (!node)
717
- return [];
718
- const { entityName } = node;
719
- const { entityNamespace } = node;
720
- // 生成整个实体类型 { entity1: Entity1 } 在2.11属于默认情况;在2.22勾选实体节点(isDotStar=true)时
721
- if (!this.entityPropertySelectable ||
722
- this.select.selectFieldElements.some((item) => item.entityAsName === entityName && item.isDotStar)) {
723
- properties.push(StructureProperty__1.default.from({
724
- name: utils.firstLowerCase(entityName),
725
- typeAnnotation: TypeAnnotation__1.default.from({
726
- concept: 'TypeAnnotation',
727
- typeKind: 'reference',
728
- typeName: entityName,
729
- typeNamespace: entityNamespace,
730
- }),
731
- }));
732
- }
733
- else if (this.select.selectFieldElements.some((item) => item.entityAsName === entityName && item.propertyName)) {
734
- // 2.22 选择字段时,生成选择字段的匿名数据结构 { entity1: { prop1, prop2 } }
735
- const entity = this.app.findNodeByCompleteName(`${entityNamespace}.${entityName}`);
736
- entity &&
737
- properties.push(StructureProperty__1.default.from({
738
- name: utils.firstLowerCase(entityName),
739
- typeAnnotation: TypeAnnotation__1.default.from({
740
- concept: 'TypeAnnotation',
741
- typeKind: 'anonymousStructure',
742
- properties: this.select.selectFieldElements
743
- .filter((sel) => sel.entityAsName === entityName && sel.propertyName)
744
- .map((item) => {
745
- const property = entity.properties.find((prop) => prop.name === item.propertyName);
746
- return (property &&
747
- StructureProperty__1.default.from({
748
- name: item.propertyName,
749
- typeAnnotation: TypeAnnotation__1.default.from(property.typeAnnotation),
750
- }));
751
- })
752
- .filter(Boolean),
753
- }),
754
- }));
755
- }
756
- else {
757
- /* 实体或属性都不选择时,不生成数据结构 */
758
- }
759
- for (const sub of node.joinParts) {
760
- this.genPropertiesFrom(sub, properties);
761
- }
762
- return properties;
763
- }
764
- genPropertyListOfFrom(node, entities = []) {
765
- if (!node)
766
- return [];
767
- const { entityName } = node;
768
- const { entityNamespace } = node;
769
- entities.push({
770
- concept: 'StructureProperty',
771
- name: utils.firstLowerCase(entityName),
772
- typeAnnotation: {
773
- concept: 'TypeAnnotation',
774
- typeKind: 'reference',
775
- typeName: entityName,
776
- typeNamespace: entityNamespace,
777
- },
778
- });
779
- for (const sub of node.joinParts) {
780
- this.genPropertyListOfFrom(sub, entities);
781
- }
782
- return entities;
783
- }
784
- genPropertyListOfAggregate(node, entities) {
785
- return node.select.selectAggregateElements
786
- .filter((item) => item.aggregateName && item.asName)
787
- .map((item) => {
788
- let typeName;
789
- if (['COUNT', 'COUNTD'].includes(item.aggregateName)) {
790
- typeName = 'Long';
791
- }
792
- else if (['AVG'].includes(item.aggregateName)) {
793
- const { entityAsName, propertyName } = item.aggregateParam;
794
- const entity = entities.find((item) => item.name === entityAsName);
795
- const property = entity?.properties.find((item) => item.name === propertyName);
796
- const propertyTypeName = property?.typeAnnotation?.typeName;
797
- if (propertyTypeName === 'Decimal') {
798
- typeName = 'Decimal';
799
- }
800
- else {
801
- typeName = 'Decimal';
802
- }
803
- }
804
- else {
805
- const { entityAsName, propertyName } = item.aggregateParam;
806
- const entity = entities.find((item) => item.name === entityAsName);
807
- const property = entity?.properties.find((item) => item.name === propertyName);
808
- typeName = property?.typeAnnotation?.typeName;
809
- }
810
- return {
811
- concept: 'StructureProperty',
812
- name: item.asName,
813
- typeAnnotation: {
814
- concept: 'TypeAnnotation',
815
- typeKind: 'primitive',
816
- typeNamespace: 'nasl.core',
817
- typeName,
818
- },
819
- };
820
- });
821
- }
822
- genPropertyListOfGroupBy(node, entities) {
823
- return node.groupBy
824
- .filter((item) => item.groupElement &&
825
- item.groupElement.propertyName &&
826
- item.groupElement.asName)
827
- .map((item) => {
828
- const { entityAsName, propertyName, asName } = item.groupElement;
829
- const entity = entities.find((item) => item.name === entityAsName);
830
- const property = entity?.properties.find((item) => item.name === propertyName);
831
- const propertyTypeAnnotation = property?.typeAnnotation;
832
- return {
833
- concept: 'StructureProperty',
834
- name: asName,
835
- typeAnnotation: {
836
- concept: propertyTypeAnnotation.concept,
837
- typeKind: propertyTypeAnnotation.typeKind,
838
- typeName: propertyTypeAnnotation.typeName,
839
- typeNamespace: propertyTypeAnnotation.typeNamespace,
840
- },
841
- };
842
- });
843
- }
844
- genStructure(structureName, properties = []) {
845
- const logic = this.logic || this.AuthLogic || this.AuthLogicForCallInterface;
846
- return Structure__1.default.from({
847
- concept: 'Structure',
848
- name: structureName || this.typeAnnotation?.typeName || `${utils.firstUpperCase(logic.name)}Structure`,
849
- origin: 'CallQueryComponent',
850
- properties,
851
- });
852
- }
853
- saveStructure() {
854
- // 没有数据源时不初始化数据结构
855
- if (!this.entityInfos.length) {
856
- return;
857
- }
858
- const entityNamespace = this.from?.entityNamespace;
859
- const entities = this.app.findNodeByCompleteName(entityNamespace);
860
- if (!this.isAutoInfer()) {
861
- // 存量应用走之前的逻辑
862
- return this.saveStructureNoInfer(entities);
863
- }
864
- const { groupBy } = this;
865
- const selectElements = this.select.selectAggregateElements;
866
- let structureName;
867
- let typeAnnotation;
868
- // remove structure
869
- if (this.typeAnnotation) {
870
- const { typeNamespace, typeName, typeArguments } = this.typeAnnotation;
871
- if (typeNamespace === 'app.structures') {
872
- structureName = typeName;
873
- this.removeStructure(structureName);
874
- }
875
- else if (typeNamespace === 'nasl.collection' && typeName === 'PageOf') {
876
- // PageOf<Structures>
877
- if (typeArguments[0].typeNamespace === 'app.structures') {
878
- structureName = typeArguments[0].typeName;
879
- this.removeStructure(structureName);
880
- }
881
- }
882
- }
883
- const logic = this.logic || this.AuthLogic || this.AuthLogicForCallInterface || this.OverriddenLogic;
884
- structureName =
885
- structureName ||
886
- utils.unique(`${utils.firstUpperCase(logic?.name)}Structure`, this.app.getStructureExistingNames());
887
- const groupByLength = groupBy.filter((item) => item.groupElement?.propertyName && item.groupElement.asName).length;
888
- const aggregateLength = selectElements.filter((item) => item.aggregateName && item.asName).length;
889
- // 1. 有分组
890
- if (groupByLength) {
891
- if (!aggregateLength && groupByLength === 1) {
892
- // 1.1 单分组无聚合:`{ list: List<列的类型>, total: Long }`
893
- const { entityAsName, propertyName } = groupBy[0].groupElement;
894
- const entity = entities.find((item) => item.name === entityAsName);
895
- const property = entity?.properties.find((item) => item.name === propertyName);
896
- const propertyTypeAnnotation = property.typeAnnotation;
897
- typeAnnotation = TypeAnnotation__1.default.from({
898
- concept: 'TypeAnnotation',
899
- typeKind: 'anonymousStructure',
900
- properties: [
901
- StructureProperty__1.default.from({
902
- name: 'list',
903
- typeAnnotation: TypeAnnotation__1.default.from({
904
- concept: 'TypeAnnotation',
905
- typeKind: 'generic',
906
- typeName: 'List',
907
- typeNamespace: 'nasl.collection',
908
- typeArguments: [
909
- TypeAnnotation__1.default.from({
910
- concept: propertyTypeAnnotation.concept,
911
- typeKind: propertyTypeAnnotation.typeKind,
912
- typeName: propertyTypeAnnotation.typeName,
913
- typeNamespace: propertyTypeAnnotation.typeNamespace,
914
- }),
915
- ],
916
- }, this.typeAnnotation, 'typeAnnotation'),
917
- }),
918
- StructureProperty__1.default.from({
919
- name: 'total',
920
- typeAnnotation: TypeAnnotation__1.default.from({
921
- concept: 'TypeAnnotation',
922
- typeKind: 'primitive',
923
- typeNamespace: 'nasl.core',
924
- typeName: 'Long',
925
- }, this.typeAnnotation, 'typeAnnotation'),
926
- }),
927
- ],
928
- }, this, 'typeAnnotation');
929
- }
930
- else {
931
- // 1.2 多分组:`{ list: List<anonymousStructure>, total: Long }`
932
- typeAnnotation = TypeAnnotation__1.default.from({
933
- concept: 'TypeAnnotation',
934
- typeKind: 'anonymousStructure',
935
- properties: [
936
- StructureProperty__1.default.from({
937
- name: 'list',
938
- typeAnnotation: TypeAnnotation__1.default.from({
939
- concept: 'TypeAnnotation',
940
- typeKind: 'generic',
941
- typeName: 'List',
942
- typeNamespace: 'nasl.collection',
943
- typeArguments: [
944
- TypeAnnotation__1.default.from({
945
- concept: 'TypeAnnotation',
946
- typeKind: 'anonymousStructure',
947
- properties: [
948
- ...this.genPropertyListOfGroupBy(this, entities),
949
- ...this.genPropertyListOfAggregate(this, entities),
950
- ],
951
- }),
952
- ],
953
- }, this.typeAnnotation, 'typeAnnotation'),
954
- }),
955
- StructureProperty__1.default.from({
956
- name: 'total',
957
- typeAnnotation: TypeAnnotation__1.default.from({
958
- concept: 'TypeAnnotation',
959
- typeKind: 'primitive',
960
- typeNamespace: 'nasl.core',
961
- typeName: 'Long',
962
- }, this.typeAnnotation, 'typeAnnotation'),
963
- }),
964
- ],
965
- }, this, 'typeAnnotation');
966
- }
967
- }
968
- else {
969
- // 2. 无分组
970
- if (aggregateLength) {
971
- if (aggregateLength === 1) {
972
- // 2.1 单聚合:`基本类型`
973
- let typeName;
974
- if (['COUNT', 'COUNTD'].includes(selectElements[0].aggregateName)) {
975
- // 2.1.1. `COUNT`、`COUNTD` 返回 `Long`
976
- typeName = 'Long';
977
- }
978
- else if (['AVG'].includes(selectElements[0].aggregateName)) {
979
- const { entityAsName, propertyName } = selectElements[0].aggregateParam;
980
- const entity = entities.find((item) => item.name === entityAsName);
981
- const property = entity?.properties.find((item) => item.name === propertyName);
982
- const propertyTypeName = property?.typeAnnotation?.typeName;
983
- if (propertyTypeName === 'Decimal') {
984
- typeName = 'Decimal';
985
- }
986
- else {
987
- typeName = 'Double';
988
- }
989
- }
990
- else {
991
- // 2.1.3. 其他返回列类型,包含:`Long`、`Long`、`Double`
992
- const { entityAsName, propertyName } = selectElements[0].aggregateParam;
993
- const entity = entities.find((item) => item.name === entityAsName);
994
- const property = entity?.properties.find((item) => item.name === propertyName);
995
- typeName = property?.typeAnnotation?.typeName;
996
- }
997
- typeAnnotation = TypeAnnotation__1.default.from({
998
- concept: 'TypeAnnotation',
999
- typeKind: 'primitive',
1000
- typeName,
1001
- typeNamespace: 'nasl.core',
1002
- }, this, 'typeAnnotation');
1003
- }
1004
- else {
1005
- // 2.2 多聚合:`{ Structure }`
1006
- typeAnnotation = TypeAnnotation__1.default.from({
1007
- concept: 'TypeAnnotation',
1008
- typeKind: 'anonymousStructure',
1009
- properties: [...this.genPropertyListOfAggregate(this, entities)],
1010
- }, this, 'typeAnnotation');
1011
- }
1012
- }
1013
- else {
1014
- // 2.3 无分组&&无聚合 (默认情况):`{ list: List<Structure>, total: Long }`
1015
- typeAnnotation = TypeAnnotation__1.default.from({
1016
- concept: 'TypeAnnotation',
1017
- typeKind: 'anonymousStructure',
1018
- properties: [
1019
- StructureProperty__1.default.from({
1020
- name: 'list',
1021
- typeAnnotation: TypeAnnotation__1.default.from({
1022
- concept: 'TypeAnnotation',
1023
- typeKind: 'generic',
1024
- typeName: 'List',
1025
- typeNamespace: 'nasl.collection',
1026
- typeArguments: [
1027
- TypeAnnotation__1.default.from({
1028
- concept: 'TypeAnnotation',
1029
- typeKind: 'anonymousStructure',
1030
- properties: this.genPropertiesFrom(this.from),
1031
- }),
1032
- ],
1033
- }, this.typeAnnotation, 'typeAnnotation'),
1034
- }),
1035
- StructureProperty__1.default.from({
1036
- name: 'total',
1037
- typeAnnotation: TypeAnnotation__1.default.from({
1038
- concept: 'TypeAnnotation',
1039
- typeKind: 'primitive',
1040
- typeNamespace: 'nasl.core',
1041
- typeName: 'Long',
1042
- }, this.typeAnnotation, 'typeAnnotation'),
1043
- }),
1044
- ],
1045
- }, this, 'typeAnnotation');
1046
- }
1047
- }
1048
- this.update({ typeAnnotation });
1049
- }
1050
- saveStructureNoInfer(entities = []) {
1051
- const source = this.genStructure(null, [
1052
- ...this.genPropertyListOfFrom(this.from),
1053
- ...this.genPropertyListOfAggregate(this, entities),
1054
- ]);
1055
- if (this.typeAnnotation) {
1056
- // 老版本没有 ListTotal 结构,支持匿名数据结构
1057
- if (this.typeAnnotation.typeKind === 'anonymousStructure') {
1058
- const typeAnnotation = TypeAnnotation__1.default.from({
1059
- concept: 'TypeAnnotation',
1060
- typeKind: 'anonymousStructure',
1061
- properties: source.properties,
1062
- }, this, 'typeAnnotation');
1063
- this.update({ typeAnnotation });
1064
- }
1065
- else {
1066
- const structure = this.app.structures.find((item) => item.name === this.typeAnnotation.typeName);
1067
- if (structure) {
1068
- const properties = source.properties.map((property) => StructureProperty__1.default.from(property, structure, 'properties'));
1069
- structure.update({
1070
- properties,
1071
- });
1072
- }
1073
- else
1074
- this.app.addStructure(source);
1075
- }
1076
- }
1077
- else {
1078
- source.name = utils.unique(source.name, this.app.getStructureExistingNames());
1079
- this.app.addStructure(source);
1080
- const typeAnnotation = TypeAnnotation__1.default.from({
1081
- concept: 'TypeAnnotation',
1082
- typeKind: 'reference',
1083
- typeName: source.name,
1084
- typeNamespace: `app.structures`,
1085
- }, this, 'typeAnnotation');
1086
- this.update({
1087
- typeAnnotation,
1088
- });
1089
- }
1090
- }
1091
- removeStructure(structureName) {
1092
- try {
1093
- if (this.typeAnnotation) {
1094
- const { typeNamespace, typeName, typeArguments } = this.typeAnnotation;
1095
- if (typeNamespace === 'app.structures') {
1096
- // Structures
1097
- structureName = typeName;
1098
- this.app.removeStructure(structureName);
1099
- }
1100
- else if (typeNamespace === 'nasl.collection' && typeName === 'PageOf') {
1101
- // PageOf<Structures>
1102
- if (typeArguments[0].typeNamespace === 'app.structures') {
1103
- structureName = typeArguments[0].typeName;
1104
- this.app.removeStructure(structureName);
1105
- }
1106
- }
1107
- }
1108
- }
1109
- catch { }
1110
- }
1111
- getEntityInfos(node, set = new Set()) {
1112
- if (node?.entityName)
1113
- set.add({
1114
- namespace: node.entityNamespace,
1115
- name: node.entityName,
1116
- });
1117
- node?.joinParts?.forEach((child) => {
1118
- this.getEntityInfos(child, set);
1119
- });
1120
- return Array.from(set);
1121
- }
1122
- get entityInfos() {
1123
- return this.getEntityInfos(this.from);
1124
- }
1125
- getCompletionPropertyOfEntities() {
1126
- const firstEntityInfo = this.entityInfos[0];
1127
- if (firstEntityInfo) {
1128
- const { namespace } = firstEntityInfo;
1129
- const entities = this.app.findNodeByCompleteName(namespace);
1130
- if (Array.isArray(entities)) {
1131
- const children = this.entityInfos
1132
- .map(({ name }) => entities.find((item) => item.name === name))
1133
- .filter((item) => item)
1134
- .map((entity) => ({
1135
- concept: 'Entity',
1136
- name: entity.name,
1137
- children: entity.properties.map((property) => {
1138
- const expression = LogicItem__1.default.from({
1139
- concept: 'QueryFieldExpression',
1140
- name: property.name,
1141
- value: `${entity.name}.${property.name}`,
1142
- entityAsName: entity.name,
1143
- propertyName: property.name,
1144
- });
1145
- expression.parentNode = this;
1146
- const completionProperty = new CompletionProperty__1.default({
1147
- concept: 'CompletionProperty',
1148
- name: property.name,
1149
- value: `${entity.name}.${property.name}`,
1150
- expression,
1151
- });
1152
- completionProperty.icon = 'property';
1153
- // 标记实体属性是否是符合类型
1154
- Object.assign(completionProperty, { isComplexType: property.typeAnnotation.isComplexType() });
1155
- return completionProperty;
1156
- }),
1157
- }));
1158
- if (children.length) {
1159
- return {
1160
- name: '实体',
1161
- icon: 'category',
1162
- children,
1163
- };
1164
- }
1165
- }
1166
- }
1167
- }
1168
- getCompletionPropertyOfAggregateAsNames() {
1169
- const children = this.select?.selectElements
1170
- ?.filter((item) => item.concept === 'QueryAggregateExpression' && item.asName)
1171
- .map((item) => new CompletionProperty__1.default({
1172
- concept: 'CompletionProperty',
1173
- name: item.asName,
1174
- value: `inner.${item.asName}`,
1175
- expression: LogicItem__1.default.from({
1176
- concept: 'Identifier',
1177
- name: item.asName,
1178
- namespace: 'inner',
1179
- }),
1180
- }));
1181
- if (!children || children.length === 0)
1182
- return;
1183
- children.forEach((item) => {
1184
- item.icon = 'variable';
1185
- });
1186
- return { name: '聚合属性别名', icon: 'category', children, expanded: true };
1187
- }
1188
- getCompletionPropertyOfGroupByAsNames() {
1189
- const children = this.groupBy
1190
- ?.filter((item) => item.concept === 'QueryGroupByExpression' && item.groupElement?.asName)
1191
- .map((item) => new CompletionProperty__1.default({
1192
- concept: 'CompletionProperty',
1193
- name: item.groupElement.asName,
1194
- value: `inner.${item.groupElement.asName}`,
1195
- expression: LogicItem__1.default.from({
1196
- concept: 'Identifier',
1197
- name: item.groupElement.asName,
1198
- namespace: 'inner',
1199
- }),
1200
- }));
1201
- if (!children || children.length === 0)
1202
- return;
1203
- children.forEach((item) => {
1204
- item.icon = 'variable';
1205
- });
1206
- return { name: '分组属性别名', icon: 'category', children, expanded: true };
1207
- }
1208
- /**
1209
- * 获取当前内部使用到的变量
1210
- */
1211
- getContentVariable() {
1212
- const contentVariables = [];
1213
- utils.traverse(({ node }) => {
1214
- if (node?.parentNode?.concept !== 'MemberExpression') {
1215
- if (node?.concept === 'MemberExpression') {
1216
- contentVariables.push(node);
1217
- }
1218
- else if (node?.concept === 'Identifier') {
1219
- // 因为要是父级是MemberExpression, 就放入了父级,子级就不需要了
1220
- contentVariables.push(node);
1221
- }
1222
- }
1223
- }, { node: this }, {
1224
- mode: 'anyObject',
1225
- excludedKeySet: new Set(['parentNode', '_events', 'globalDataMap', 'havingPlayground', 'wherePlayground']),
1226
- });
1227
- return contentVariables;
1228
- }
1229
- // 临时升级脚本
1230
- // 将所有from的实体,在selectElements中初始化一个isDotStar=true的QueryFieldExpression
1231
- initFieldSelectElement(node = this) {
1232
- const loop = (from) => {
1233
- node.select.addQueryFieldExpressionInSelectElements({
1234
- entityAsName: from.entityName,
1235
- isDotStar: true,
1236
- });
1237
- from.joinParts?.forEach(loop);
1238
- };
1239
- loop(node.from);
1240
- }
1241
- };
1242
- exports.CallQueryComponent = CallQueryComponent;
1243
- __decorate([
1244
- (0, decorators_1.property)('concept')
1245
- // @ts-ignore
1246
- ], CallQueryComponent.prototype, "concept", void 0);
1247
- __decorate([
1248
- (0, decorators_1.property)({
1249
- objectRef: 'TypeAnnotation',
1250
- })
1251
- // @ts-ignore
1252
- ], CallQueryComponent.prototype, "typeAnnotation", void 0);
1253
- __decorate([
1254
- (0, decorators_1.property)({
1255
- objectRef: 'QuerySelectExpression',
1256
- })
1257
- // @ts-ignore
1258
- ], CallQueryComponent.prototype, "select", void 0);
1259
- __decorate([
1260
- (0, decorators_1.property)({
1261
- objectRef: 'QueryFromExpression',
1262
- })
1263
- // @ts-ignore
1264
- ], CallQueryComponent.prototype, "from", void 0);
1265
- __decorate([
1266
- (0, decorators_1.property)({
1267
- objectRef: 'LogicItem',
1268
- })
1269
- // @ts-ignore
1270
- ], CallQueryComponent.prototype, "where", void 0);
1271
- __decorate([
1272
- (0, decorators_1.property)({
1273
- objectRef: 'LogicItem',
1274
- isArray: true,
1275
- defaultValue: [],
1276
- })
1277
- ], CallQueryComponent.prototype, "wherePlayground", void 0);
1278
- __decorate([
1279
- (0, decorators_1.property)({
1280
- objectRef: 'QueryGroupByExpression',
1281
- isArray: true,
1282
- defaultValue: [],
1283
- })
1284
- ], CallQueryComponent.prototype, "groupBy", void 0);
1285
- __decorate([
1286
- (0, decorators_1.property)({
1287
- objectRef: 'LogicItem',
1288
- })
1289
- // @ts-ignore
1290
- ], CallQueryComponent.prototype, "having", void 0);
1291
- __decorate([
1292
- (0, decorators_1.property)({
1293
- objectRef: 'LogicItem',
1294
- isArray: true,
1295
- defaultValue: [],
1296
- })
1297
- ], CallQueryComponent.prototype, "havingPlayground", void 0);
1298
- __decorate([
1299
- (0, decorators_1.property)({
1300
- objectRef: 'QueryOrderByExpression',
1301
- isArray: true,
1302
- defaultValue: [],
1303
- })
1304
- ], CallQueryComponent.prototype, "orderBy", void 0);
1305
- __decorate([
1306
- (0, decorators_1.property)({
1307
- objectRef: 'QueryLimitExpression',
1308
- })
1309
- // @ts-ignore
1310
- ], CallQueryComponent.prototype, "limit", void 0);
1311
- __decorate([
1312
- (0, decorators_1.property)()
1313
- // @ts-ignore
1314
- ], CallQueryComponent.prototype, "ideVersion", void 0);
1315
- __decorate([
1316
- (0, translator_1.withSourceMap)()
1317
- ], CallQueryComponent.prototype, "toEmbeddedTS", null);
1318
- exports.CallQueryComponent = CallQueryComponent = CallQueryComponent_1 = __decorate([
1319
- decorators_1.className,
1320
- (0, decorators_1.concept)('数据查询')
1321
- // @ts-ignore
1322
- ], CallQueryComponent);
1323
- exports.default = CallQueryComponent;
1324
- //================================================================================
1325
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1326
- // 自动生成的代码已结束。下面可以手动编写。
1327
- //================================================================================
612
+ })()`;
613
+ let code = `(function(): `;
614
+ if (this.isAutoInfer()) {
615
+ code += `${this.typeAnnotation.toEmbeddedTS((0, translator_1.shiftState)(state, code))} {\n`;
616
+ }
617
+ else {
618
+ code += `{ list: nasl.collection.List<`;
619
+ code += `${this.typeAnnotation.toEmbeddedTS((0, translator_1.shiftState)(state, code))}>, total: nasl.core.Long } {\n`;
620
+ }
621
+ // 2.11版本后 分组使用别名
622
+ if (this.isAutoInfer()) {
623
+ // 分组别名(列别名)
624
+ this.groupBy.forEach((item, index, array) => {
625
+ code += (0, translator_1.indent)(state.tabSize + 1);
626
+ const groupElement = item.groupElement;
627
+ if (groupElement.asName)
628
+ code += `const __${groupElement.asName} = `;
629
+ if (groupElement.propertyName) {
630
+ code += groupElement.toEmbeddedTS((0, translator_1.shiftState)(state, code, { tabSize: 0 }));
631
+ code += ';\n';
632
+ }
633
+ else
634
+ code += `__EMPTY_GROUP_BY_NAME__;\n`;
635
+ if (index === array.length - 1)
636
+ code += '\n';
637
+ });
638
+ }
639
+ // 聚合属性别名
640
+ this.select.selectAggregateElements.forEach((item, index, array) => {
641
+ code += (0, translator_1.indent)((state?.tabSize || 0) + 1);
642
+ const { asName, aggregateName, aggregateParam } = item;
643
+ if (asName)
644
+ code += `const __${asName} = `;
645
+ if (aggregateName) {
646
+ code += `nasl.langUtil.${aggregateName}(`;
647
+ code += aggregateParam.toEmbeddedTS((0, translator_1.shiftState)(state, code, { tabSize: 0 }));
648
+ code += ');\n';
649
+ }
650
+ else
651
+ code += `__EMPTY_AGGREGATE_NAME__;\n`;
652
+ if (index === array.length - 1)
653
+ code += '\n';
654
+ });
655
+ if (this.from)
656
+ code += this.from.toEmbeddedTS((0, translator_1.shiftState)(state, code, { tabSize: (state?.tabSize || 0) + 1 }));
657
+ else
658
+ code += `${(0, translator_1.indent)((state?.tabSize || 0) + 1)}nasl.langUtil.FROM()\n`;
659
+ // where 子句
660
+ code = this.toEmbeddedTSOfSubPart('WHERE', this.where ? [this.where] : [], {
661
+ code,
662
+ state,
663
+ multipleErrorType: '__WHERE_MULTIPLE_CONDITION__',
664
+ });
665
+ if (this.select.selectAggregateElements.length) {
666
+ // 聚合属性
667
+ code = this.toEmbeddedTSOfSubPart('SELECT', this.select.selectAggregateElements, {
668
+ code,
669
+ state,
670
+ });
671
+ }
672
+ else {
673
+ // select实体字段
674
+ code = this.toEmbeddedTSOfSubPart('SELECT', this.select.selectFieldElements, {
675
+ code,
676
+ state,
677
+ });
678
+ }
679
+ // 分组属性(Group by)
680
+ code = this.toEmbeddedTSOfSubPart('GROUP_BY', this.groupBy, {
681
+ code,
682
+ state,
683
+ });
684
+ // 聚合属性过滤(Having)
685
+ code = this.toEmbeddedTSOfSubPart('HAVING', this.having ? [this.having] : [], {
686
+ code,
687
+ state,
688
+ multipleErrorType: '__HAVING_MULTIPLE_CONDITION__',
689
+ });
690
+ // 排序规则
691
+ code = this.toEmbeddedTSOfSubPart('ORDER_BY', this.orderBy, {
692
+ code,
693
+ state,
694
+ });
695
+ // 分页参数
696
+ code = this.toEmbeddedTSOfSubPart('LIMIT', this.limit ? [this.limit] : [], {
697
+ code,
698
+ state,
699
+ });
700
+ code += '\n';
701
+ code += `${(0, translator_1.indent)((state?.tabSize || 0) + 1)}return;\n`;
702
+ code += `${(0, translator_1.indent)(state?.tabSize || 0)}})()`;
703
+ if (this.parentNode.concept !== 'Argument' &&
704
+ this.parentKey !== 'test' &&
705
+ this.parentKey !== 'patterns' &&
706
+ this.parentNode.concept !== 'Assignment' &&
707
+ this.parentNode.concept !== 'ForEachStatement' &&
708
+ this.parentNode.concept !== 'SelectMembers' &&
709
+ this.parentNode.concept !== 'UnaryExpression' &&
710
+ this.parentNode.concept !== 'BinaryExpression' &&
711
+ this.parentNode.concept !== 'StringInterpolation' &&
712
+ this.parentNode.concept !== 'MemberExpression' &&
713
+ ['NewMap', 'NewList'].includes(this.parentNode.concept) &&
714
+ this.parentKey !== 'returnExpression') {
715
+ code += ';';
716
+ }
717
+ code += '\n';
718
+ return code;
719
+ }
720
+ genPropertiesFrom(node, properties = []) {
721
+ if (!node)
722
+ return [];
723
+ const { entityName } = node;
724
+ const { entityNamespace } = node;
725
+ // 生成整个实体类型 { entity1: Entity1 } 在2.11属于默认情况;在2.22勾选实体节点(isDotStar=true)时
726
+ if (!this.entityPropertySelectable ||
727
+ this.select.selectFieldElements.some((item) => item.entityAsName === entityName && item.isDotStar)) {
728
+ properties.push(StructureProperty__1.default.from({
729
+ name: utils.firstLowerCase(entityName),
730
+ typeAnnotation: TypeAnnotation__1.default.from({
731
+ concept: 'TypeAnnotation',
732
+ typeKind: 'reference',
733
+ typeName: entityName,
734
+ typeNamespace: entityNamespace,
735
+ }),
736
+ }));
737
+ }
738
+ else if (this.select.selectFieldElements.some((item) => item.entityAsName === entityName && item.propertyName)) {
739
+ // 2.22 选择字段时,生成选择字段的匿名数据结构 { entity1: { prop1, prop2 } }
740
+ const entity = this.app.findNodeByCompleteName(`${entityNamespace}.${entityName}`);
741
+ entity &&
742
+ properties.push(StructureProperty__1.default.from({
743
+ name: utils.firstLowerCase(entityName),
744
+ typeAnnotation: TypeAnnotation__1.default.from({
745
+ concept: 'TypeAnnotation',
746
+ typeKind: 'anonymousStructure',
747
+ properties: this.select.selectFieldElements
748
+ .filter((sel) => sel.entityAsName === entityName && sel.propertyName)
749
+ .map((item) => {
750
+ const property = entity.properties.find((prop) => prop.name === item.propertyName);
751
+ return (property &&
752
+ StructureProperty__1.default.from({
753
+ name: item.propertyName,
754
+ typeAnnotation: TypeAnnotation__1.default.from(property.typeAnnotation),
755
+ }));
756
+ })
757
+ .filter(Boolean),
758
+ }),
759
+ }));
760
+ }
761
+ else {
762
+ /* 实体或属性都不选择时,不生成数据结构 */
763
+ }
764
+ for (const sub of node.joinParts) {
765
+ this.genPropertiesFrom(sub, properties);
766
+ }
767
+ return properties;
768
+ }
769
+ genPropertyListOfFrom(node, entities = []) {
770
+ if (!node)
771
+ return [];
772
+ const { entityName } = node;
773
+ const { entityNamespace } = node;
774
+ entities.push({
775
+ concept: 'StructureProperty',
776
+ name: utils.firstLowerCase(entityName),
777
+ typeAnnotation: {
778
+ concept: 'TypeAnnotation',
779
+ typeKind: 'reference',
780
+ typeName: entityName,
781
+ typeNamespace: entityNamespace,
782
+ },
783
+ });
784
+ for (const sub of node.joinParts) {
785
+ this.genPropertyListOfFrom(sub, entities);
786
+ }
787
+ return entities;
788
+ }
789
+ genPropertyListOfAggregate(node, entities) {
790
+ return node.select.selectAggregateElements
791
+ .filter((item) => item.aggregateName && item.asName)
792
+ .map((item) => {
793
+ let typeName;
794
+ if (['COUNT', 'COUNTD'].includes(item.aggregateName)) {
795
+ typeName = 'Long';
796
+ }
797
+ else if (['AVG'].includes(item.aggregateName)) {
798
+ typeName = 'Decimal';
799
+ }
800
+ else {
801
+ const { entityAsName, propertyName } = item.aggregateParam;
802
+ const entity = entities.find((e) => e.name === entityAsName);
803
+ const prop = entity?.properties.find((p) => p.name === propertyName);
804
+ typeName = prop?.typeAnnotation?.typeName;
805
+ }
806
+ return {
807
+ concept: 'StructureProperty',
808
+ name: item.asName,
809
+ typeAnnotation: {
810
+ concept: 'TypeAnnotation',
811
+ typeKind: 'primitive',
812
+ typeNamespace: 'nasl.core',
813
+ typeName,
814
+ },
815
+ };
816
+ });
817
+ }
818
+ genPropertyListOfGroupBy(node, entities) {
819
+ return node.groupBy
820
+ .filter((item) => item.groupElement &&
821
+ item.groupElement.propertyName &&
822
+ item.groupElement.asName)
823
+ .map((item) => {
824
+ const { entityAsName, propertyName, asName } = item.groupElement;
825
+ const entity = entities.find((item) => item.name === entityAsName);
826
+ const property = entity?.properties.find((item) => item.name === propertyName);
827
+ const propertyTypeAnnotation = property?.typeAnnotation;
828
+ return {
829
+ concept: 'StructureProperty',
830
+ name: asName,
831
+ typeAnnotation: {
832
+ concept: propertyTypeAnnotation.concept,
833
+ typeKind: propertyTypeAnnotation.typeKind,
834
+ typeName: propertyTypeAnnotation.typeName,
835
+ typeNamespace: propertyTypeAnnotation.typeNamespace,
836
+ },
837
+ };
838
+ });
839
+ }
840
+ genStructure(structureName, properties = []) {
841
+ const logic = this.logic || this.AuthLogic || this.AuthLogicForCallInterface;
842
+ return Structure__1.default.from({
843
+ concept: 'Structure',
844
+ name: structureName || this.typeAnnotation?.typeName || `${utils.firstUpperCase(logic.name)}Structure`,
845
+ origin: 'CallQueryComponent',
846
+ properties,
847
+ });
848
+ }
849
+ saveStructure() {
850
+ // 没有数据源时不初始化数据结构
851
+ if (!this.entityInfos.length) {
852
+ return;
853
+ }
854
+ const entityNamespace = this.from?.entityNamespace;
855
+ const entities = this.app.findNodeByCompleteName(entityNamespace);
856
+ if (!this.isAutoInfer()) {
857
+ // 存量应用走之前的逻辑
858
+ return this.saveStructureNoInfer(entities);
859
+ }
860
+ const { groupBy } = this;
861
+ const selectElements = this.select.selectAggregateElements;
862
+ let structureName;
863
+ let typeAnnotation;
864
+ // remove structure
865
+ if (this.typeAnnotation) {
866
+ const { typeNamespace, typeName, typeArguments } = this.typeAnnotation;
867
+ if (typeNamespace === 'app.structures') {
868
+ structureName = typeName;
869
+ this.removeStructure(structureName);
870
+ }
871
+ else if (typeNamespace === 'nasl.collection' && typeName === 'PageOf') {
872
+ // PageOf<Structures>
873
+ if (typeArguments[0].typeNamespace === 'app.structures') {
874
+ structureName = typeArguments[0].typeName;
875
+ this.removeStructure(structureName);
876
+ }
877
+ }
878
+ }
879
+ const logic = this.logic || this.AuthLogic || this.AuthLogicForCallInterface || this.OverriddenLogic;
880
+ structureName =
881
+ structureName ||
882
+ utils.unique(`${utils.firstUpperCase(logic?.name)}Structure`, this.app.getStructureExistingNames());
883
+ const groupByLength = groupBy.filter((item) => item.groupElement?.propertyName && item.groupElement.asName).length;
884
+ const aggregateLength = selectElements.filter((item) => item.aggregateName && item.asName).length;
885
+ // 1. 有分组
886
+ if (groupByLength) {
887
+ if (!aggregateLength && groupByLength === 1) {
888
+ // 1.1 单分组无聚合:`{ list: List<列的类型>, total: Long }`
889
+ const { entityAsName, propertyName } = groupBy[0].groupElement;
890
+ const entity = entities.find((item) => item.name === entityAsName);
891
+ const property = entity?.properties.find((item) => item.name === propertyName);
892
+ const propertyTypeAnnotation = property.typeAnnotation;
893
+ typeAnnotation = TypeAnnotation__1.default.from({
894
+ concept: 'TypeAnnotation',
895
+ typeKind: 'anonymousStructure',
896
+ properties: [
897
+ StructureProperty__1.default.from({
898
+ name: 'list',
899
+ typeAnnotation: TypeAnnotation__1.default.from({
900
+ concept: 'TypeAnnotation',
901
+ typeKind: 'generic',
902
+ typeName: 'List',
903
+ typeNamespace: 'nasl.collection',
904
+ typeArguments: [
905
+ TypeAnnotation__1.default.from({
906
+ concept: propertyTypeAnnotation.concept,
907
+ typeKind: propertyTypeAnnotation.typeKind,
908
+ typeName: propertyTypeAnnotation.typeName,
909
+ typeNamespace: propertyTypeAnnotation.typeNamespace,
910
+ }),
911
+ ],
912
+ }, this.typeAnnotation, 'typeAnnotation'),
913
+ }),
914
+ StructureProperty__1.default.from({
915
+ name: 'total',
916
+ typeAnnotation: TypeAnnotation__1.default.from({
917
+ concept: 'TypeAnnotation',
918
+ typeKind: 'primitive',
919
+ typeNamespace: 'nasl.core',
920
+ typeName: 'Long',
921
+ }, this.typeAnnotation, 'typeAnnotation'),
922
+ }),
923
+ ],
924
+ }, this, 'typeAnnotation');
925
+ }
926
+ else {
927
+ // 1.2 多分组:`{ list: List<anonymousStructure>, total: Long }`
928
+ typeAnnotation = TypeAnnotation__1.default.from({
929
+ concept: 'TypeAnnotation',
930
+ typeKind: 'anonymousStructure',
931
+ properties: [
932
+ StructureProperty__1.default.from({
933
+ name: 'list',
934
+ typeAnnotation: TypeAnnotation__1.default.from({
935
+ concept: 'TypeAnnotation',
936
+ typeKind: 'generic',
937
+ typeName: 'List',
938
+ typeNamespace: 'nasl.collection',
939
+ typeArguments: [
940
+ TypeAnnotation__1.default.from({
941
+ concept: 'TypeAnnotation',
942
+ typeKind: 'anonymousStructure',
943
+ properties: [
944
+ ...this.genPropertyListOfGroupBy(this, entities),
945
+ ...this.genPropertyListOfAggregate(this, entities),
946
+ ],
947
+ }),
948
+ ],
949
+ }, this.typeAnnotation, 'typeAnnotation'),
950
+ }),
951
+ StructureProperty__1.default.from({
952
+ name: 'total',
953
+ typeAnnotation: TypeAnnotation__1.default.from({
954
+ concept: 'TypeAnnotation',
955
+ typeKind: 'primitive',
956
+ typeNamespace: 'nasl.core',
957
+ typeName: 'Long',
958
+ }, this.typeAnnotation, 'typeAnnotation'),
959
+ }),
960
+ ],
961
+ }, this, 'typeAnnotation');
962
+ }
963
+ }
964
+ else {
965
+ // 2. 无分组
966
+ if (aggregateLength) {
967
+ if (aggregateLength === 1) {
968
+ // 2.1 单聚合:`基本类型`
969
+ let typeName;
970
+ if (['COUNT', 'COUNTD'].includes(selectElements[0].aggregateName)) {
971
+ // 2.1.1. `COUNT`、`COUNTD` 返回 `Long`
972
+ typeName = 'Long';
973
+ }
974
+ else if (['AVG'].includes(selectElements[0].aggregateName)) {
975
+ const { entityAsName, propertyName } = selectElements[0].aggregateParam;
976
+ const entity = entities.find((item) => item.name === entityAsName);
977
+ const property = entity?.properties.find((item) => item.name === propertyName);
978
+ const propertyTypeName = property?.typeAnnotation?.typeName;
979
+ if (propertyTypeName === 'Decimal') {
980
+ typeName = 'Decimal';
981
+ }
982
+ else {
983
+ typeName = 'Double';
984
+ }
985
+ }
986
+ else {
987
+ // 2.1.3. 其他返回列类型,包含:`Long`、`Long`、`Double`
988
+ const { entityAsName, propertyName } = selectElements[0].aggregateParam;
989
+ const entity = entities.find((item) => item.name === entityAsName);
990
+ const property = entity?.properties.find((item) => item.name === propertyName);
991
+ typeName = property?.typeAnnotation?.typeName;
992
+ }
993
+ typeAnnotation = TypeAnnotation__1.default.from({
994
+ concept: 'TypeAnnotation',
995
+ typeKind: 'primitive',
996
+ typeName,
997
+ typeNamespace: 'nasl.core',
998
+ }, this, 'typeAnnotation');
999
+ }
1000
+ else {
1001
+ // 2.2 多聚合:`{ Structure }`
1002
+ typeAnnotation = TypeAnnotation__1.default.from({
1003
+ concept: 'TypeAnnotation',
1004
+ typeKind: 'anonymousStructure',
1005
+ properties: [...this.genPropertyListOfAggregate(this, entities)],
1006
+ }, this, 'typeAnnotation');
1007
+ }
1008
+ }
1009
+ else {
1010
+ // 2.3 无分组&&无聚合 (默认情况):`{ list: List<Structure>, total: Long }`
1011
+ typeAnnotation = TypeAnnotation__1.default.from({
1012
+ concept: 'TypeAnnotation',
1013
+ typeKind: 'anonymousStructure',
1014
+ properties: [
1015
+ StructureProperty__1.default.from({
1016
+ name: 'list',
1017
+ typeAnnotation: TypeAnnotation__1.default.from({
1018
+ concept: 'TypeAnnotation',
1019
+ typeKind: 'generic',
1020
+ typeName: 'List',
1021
+ typeNamespace: 'nasl.collection',
1022
+ typeArguments: [
1023
+ TypeAnnotation__1.default.from({
1024
+ concept: 'TypeAnnotation',
1025
+ typeKind: 'anonymousStructure',
1026
+ properties: this.genPropertiesFrom(this.from),
1027
+ }),
1028
+ ],
1029
+ }, this.typeAnnotation, 'typeAnnotation'),
1030
+ }),
1031
+ StructureProperty__1.default.from({
1032
+ name: 'total',
1033
+ typeAnnotation: TypeAnnotation__1.default.from({
1034
+ concept: 'TypeAnnotation',
1035
+ typeKind: 'primitive',
1036
+ typeNamespace: 'nasl.core',
1037
+ typeName: 'Long',
1038
+ }, this.typeAnnotation, 'typeAnnotation'),
1039
+ }),
1040
+ ],
1041
+ }, this, 'typeAnnotation');
1042
+ }
1043
+ }
1044
+ this.update({ typeAnnotation });
1045
+ }
1046
+ saveStructureNoInfer(entities = []) {
1047
+ const source = this.genStructure(null, [
1048
+ ...this.genPropertyListOfFrom(this.from),
1049
+ ...this.genPropertyListOfAggregate(this, entities),
1050
+ ]);
1051
+ if (this.typeAnnotation) {
1052
+ // 老版本没有 ListTotal 结构,支持匿名数据结构
1053
+ if (this.typeAnnotation.typeKind === 'anonymousStructure') {
1054
+ const typeAnnotation = TypeAnnotation__1.default.from({
1055
+ concept: 'TypeAnnotation',
1056
+ typeKind: 'anonymousStructure',
1057
+ properties: source.properties,
1058
+ }, this, 'typeAnnotation');
1059
+ this.update({ typeAnnotation });
1060
+ }
1061
+ else {
1062
+ const structure = this.app.structures.find((item) => item.name === this.typeAnnotation.typeName);
1063
+ if (structure) {
1064
+ const properties = source.properties.map((property) => StructureProperty__1.default.from(property, structure, 'properties'));
1065
+ structure.update({
1066
+ properties,
1067
+ });
1068
+ }
1069
+ else
1070
+ this.app.addStructure(source);
1071
+ }
1072
+ }
1073
+ else {
1074
+ source.name = utils.unique(source.name, this.app.getStructureExistingNames());
1075
+ this.app.addStructure(source);
1076
+ const typeAnnotation = TypeAnnotation__1.default.from({
1077
+ concept: 'TypeAnnotation',
1078
+ typeKind: 'reference',
1079
+ typeName: source.name,
1080
+ typeNamespace: `app.structures`,
1081
+ }, this, 'typeAnnotation');
1082
+ this.update({
1083
+ typeAnnotation,
1084
+ });
1085
+ }
1086
+ }
1087
+ removeStructure(structureName) {
1088
+ try {
1089
+ if (this.typeAnnotation) {
1090
+ const { typeNamespace, typeName, typeArguments } = this.typeAnnotation;
1091
+ if (typeNamespace === 'app.structures') {
1092
+ // Structures
1093
+ structureName = typeName;
1094
+ this.app.removeStructure(structureName);
1095
+ }
1096
+ else if (typeNamespace === 'nasl.collection' && typeName === 'PageOf') {
1097
+ // PageOf<Structures>
1098
+ if (typeArguments[0].typeNamespace === 'app.structures') {
1099
+ structureName = typeArguments[0].typeName;
1100
+ this.app.removeStructure(structureName);
1101
+ }
1102
+ }
1103
+ }
1104
+ }
1105
+ catch { }
1106
+ }
1107
+ getEntityInfos(node, set = new Set()) {
1108
+ if (node?.entityName)
1109
+ set.add({
1110
+ namespace: node.entityNamespace,
1111
+ name: node.entityName,
1112
+ });
1113
+ node?.joinParts?.forEach((child) => {
1114
+ this.getEntityInfos(child, set);
1115
+ });
1116
+ return Array.from(set);
1117
+ }
1118
+ get entityInfos() {
1119
+ return this.getEntityInfos(this.from);
1120
+ }
1121
+ getCompletionPropertyOfEntities() {
1122
+ const firstEntityInfo = this.entityInfos[0];
1123
+ if (firstEntityInfo) {
1124
+ const { namespace } = firstEntityInfo;
1125
+ const entities = this.app.findNodeByCompleteName(namespace);
1126
+ if (Array.isArray(entities)) {
1127
+ const children = this.entityInfos
1128
+ .map(({ name }) => entities.find((item) => item.name === name))
1129
+ .filter((item) => item)
1130
+ .map((entity) => ({
1131
+ concept: 'Entity',
1132
+ name: entity.name,
1133
+ children: entity.properties.map((property) => {
1134
+ const expression = LogicItem__1.default.from({
1135
+ concept: 'QueryFieldExpression',
1136
+ name: property.name,
1137
+ value: `${entity.name}.${property.name}`,
1138
+ entityAsName: entity.name,
1139
+ propertyName: property.name,
1140
+ });
1141
+ expression.parentNode = this;
1142
+ const completionProperty = new CompletionProperty__1.default({
1143
+ concept: 'CompletionProperty',
1144
+ name: property.name,
1145
+ value: `${entity.name}.${property.name}`,
1146
+ expression,
1147
+ });
1148
+ completionProperty.icon = 'property';
1149
+ // 标记实体属性是否是符合类型
1150
+ Object.assign(completionProperty, { isComplexType: property.typeAnnotation.isComplexType() });
1151
+ return completionProperty;
1152
+ }),
1153
+ }));
1154
+ if (children.length) {
1155
+ return {
1156
+ name: '实体',
1157
+ icon: 'category',
1158
+ children,
1159
+ };
1160
+ }
1161
+ }
1162
+ }
1163
+ }
1164
+ getCompletionPropertyOfAggregateAsNames() {
1165
+ const children = this.select?.selectElements
1166
+ ?.filter((item) => item.concept === 'QueryAggregateExpression' && item.asName)
1167
+ .map((item) => new CompletionProperty__1.default({
1168
+ concept: 'CompletionProperty',
1169
+ name: item.asName,
1170
+ value: `inner.${item.asName}`,
1171
+ expression: LogicItem__1.default.from({
1172
+ concept: 'Identifier',
1173
+ name: item.asName,
1174
+ namespace: 'inner',
1175
+ }),
1176
+ }));
1177
+ if (!children || children.length === 0)
1178
+ return;
1179
+ children.forEach((item) => {
1180
+ item.icon = 'variable';
1181
+ });
1182
+ return { name: '聚合属性别名', icon: 'category', children, expanded: true };
1183
+ }
1184
+ getCompletionPropertyOfGroupByAsNames() {
1185
+ const children = this.groupBy
1186
+ ?.filter((item) => item.concept === 'QueryGroupByExpression' && item.groupElement?.asName)
1187
+ .map((item) => new CompletionProperty__1.default({
1188
+ concept: 'CompletionProperty',
1189
+ name: item.groupElement.asName,
1190
+ value: `inner.${item.groupElement.asName}`,
1191
+ expression: LogicItem__1.default.from({
1192
+ concept: 'Identifier',
1193
+ name: item.groupElement.asName,
1194
+ namespace: 'inner',
1195
+ }),
1196
+ }));
1197
+ if (!children || children.length === 0)
1198
+ return;
1199
+ children.forEach((item) => {
1200
+ item.icon = 'variable';
1201
+ });
1202
+ return { name: '分组属性别名', icon: 'category', children, expanded: true };
1203
+ }
1204
+ /**
1205
+ * 获取当前内部使用到的变量
1206
+ */
1207
+ getContentVariable() {
1208
+ const contentVariables = [];
1209
+ utils.traverse(({ node }) => {
1210
+ if (node?.parentNode?.concept !== 'MemberExpression') {
1211
+ if (node?.concept === 'MemberExpression') {
1212
+ contentVariables.push(node);
1213
+ }
1214
+ else if (node?.concept === 'Identifier') {
1215
+ // 因为要是父级是MemberExpression, 就放入了父级,子级就不需要了
1216
+ contentVariables.push(node);
1217
+ }
1218
+ }
1219
+ }, { node: this }, {
1220
+ mode: 'anyObject',
1221
+ excludedKeySet: new Set(['parentNode', '_events', 'globalDataMap', 'havingPlayground', 'wherePlayground']),
1222
+ });
1223
+ return contentVariables;
1224
+ }
1225
+ // 临时升级脚本
1226
+ // 将所有from的实体,在selectElements中初始化一个isDotStar=true的QueryFieldExpression
1227
+ initFieldSelectElement(node = this) {
1228
+ const loop = (from) => {
1229
+ node.select.addQueryFieldExpressionInSelectElements({
1230
+ entityAsName: from.entityName,
1231
+ isDotStar: true,
1232
+ });
1233
+ from.joinParts?.forEach(loop);
1234
+ };
1235
+ loop(node.from);
1236
+ }
1237
+ };
1238
+ __decorate([
1239
+ (0, decorators_1.property)('concept')
1240
+ ], CallQueryComponent.prototype, "concept", void 0);
1241
+ __decorate([
1242
+ (0, decorators_1.property)({
1243
+ objectRef: 'TypeAnnotation',
1244
+ })
1245
+ ], CallQueryComponent.prototype, "typeAnnotation", void 0);
1246
+ __decorate([
1247
+ (0, decorators_1.property)({
1248
+ objectRef: 'QuerySelectExpression',
1249
+ })
1250
+ ], CallQueryComponent.prototype, "select", void 0);
1251
+ __decorate([
1252
+ (0, decorators_1.property)({
1253
+ objectRef: 'QueryFromExpression',
1254
+ })
1255
+ ], CallQueryComponent.prototype, "from", void 0);
1256
+ __decorate([
1257
+ (0, decorators_1.property)({
1258
+ objectRef: 'LogicItem',
1259
+ })
1260
+ ], CallQueryComponent.prototype, "where", void 0);
1261
+ __decorate([
1262
+ (0, decorators_1.property)({
1263
+ objectRef: 'LogicItem',
1264
+ isArray: true,
1265
+ defaultValue: [],
1266
+ })
1267
+ ], CallQueryComponent.prototype, "wherePlayground", void 0);
1268
+ __decorate([
1269
+ (0, decorators_1.property)({
1270
+ objectRef: 'QueryGroupByExpression',
1271
+ isArray: true,
1272
+ defaultValue: [],
1273
+ })
1274
+ ], CallQueryComponent.prototype, "groupBy", void 0);
1275
+ __decorate([
1276
+ (0, decorators_1.property)({
1277
+ objectRef: 'LogicItem',
1278
+ })
1279
+ ], CallQueryComponent.prototype, "having", void 0);
1280
+ __decorate([
1281
+ (0, decorators_1.property)({
1282
+ objectRef: 'LogicItem',
1283
+ isArray: true,
1284
+ defaultValue: [],
1285
+ })
1286
+ ], CallQueryComponent.prototype, "havingPlayground", void 0);
1287
+ __decorate([
1288
+ (0, decorators_1.property)({
1289
+ objectRef: 'QueryOrderByExpression',
1290
+ isArray: true,
1291
+ defaultValue: [],
1292
+ })
1293
+ ], CallQueryComponent.prototype, "orderBy", void 0);
1294
+ __decorate([
1295
+ (0, decorators_1.property)({
1296
+ objectRef: 'QueryLimitExpression',
1297
+ })
1298
+ ], CallQueryComponent.prototype, "limit", void 0);
1299
+ __decorate([
1300
+ (0, decorators_1.property)()
1301
+ ], CallQueryComponent.prototype, "ideVersion", void 0);
1302
+ __decorate([
1303
+ (0, translator_1.withSourceMap)()
1304
+ ], CallQueryComponent.prototype, "toEmbeddedTS", null);
1305
+ CallQueryComponent = CallQueryComponent_1 = __decorate([
1306
+ decorators_1.className,
1307
+ (0, decorators_1.concept)('数据查询')
1308
+ // @ts-ignore
1309
+ ], CallQueryComponent);
1310
+ exports.CallQueryComponent = CallQueryComponent;
1311
+ exports.default = CallQueryComponent;
1312
+ //================================================================================
1313
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1314
+ // 自动生成的代码已结束。下面可以手动编写。
1315
+ //================================================================================
1328
1316
  //# sourceMappingURL=CallQueryComponent__.js.map