@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,852 +1,852 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatConfigProperties = exports.formatFrontEndVariables = exports.formatBackendVariables = exports.formatVariableData = exports.nextFindTypeChild = exports.isNoChildType = exports.getPlatformType = exports.displayString2TypeAnnotation = exports.type2TypeAnnotation = void 0;
4
- const __1 = require("..");
5
- const utils_1 = require("../automate/engine/utils");
6
- /**
7
- * 把ts返回的详细信息截取成一个类型字符串
8
- * @param displayParts ts返回的key value
9
- * // 0: {text: 'let', kind: 'keyword'}
10
- // 1: {text: ' ', kind: 'space'}
11
- // 2: {text: 'bindRoles', kind: 'text'}
12
- // 3: {text: ':', kind: 'punctuation'}
13
- // 4: {text: ' ', kind: 'space'}
14
- // 5: {text: 'roles', kind: 'moduleName'}
15
- // 6: {text: '.', kind: 'punctuation'}
16
- // 7: {text: 'DEV_AdminRole', kind: 'enumName'}
17
- * @returns type roles.DEV_AdminRole
18
- */
19
- function formatTs2TypeString(displayParts) {
20
- let str = '';
21
- displayParts?.forEach((item) => {
22
- str += item.text;
23
- });
24
- return str;
25
- }
26
- function isValidName(str) {
27
- const regex = /^[a-zA-Z][a-zA-Z0-9_]*$/;
28
- return regex.test(str);
29
- }
30
- /**
31
- * 解析 Completion 和 QuickInfo 的 displayString
32
- * 生成 TypeAnnotation
33
- * @param displayString
34
- * @returns TypeAnnotation
35
- */
36
- function type2TypeAnnotation(oldType) {
37
- if (!oldType)
38
- return null;
39
- let type = oldType;
40
- if (Array.isArray(oldType)) {
41
- type = oldType[0];
42
- }
43
- let typeAnnotation;
44
- try {
45
- const { typeName, typeNamespace, typeArguments, typeKind, properties } = type;
46
- if (typeKind === 'anonymousStructure') {
47
- // 自定义类型
48
- const newProperties = [];
49
- if (Array.isArray(properties) && properties.length) {
50
- properties.forEach((item) => {
51
- if (!item?.name?.startsWith('__')) {
52
- // 如果没有获取到类型,就默认塞一个string
53
- const itemType = type2TypeAnnotation(item.typeInfo) || __1.TypeAnnotation.createPrimitive('String');
54
- const structureProperty = __1.StructureProperty.from({ name: item.name, typeAnnotation: itemType }, typeAnnotation, 'properties');
55
- newProperties.push(structureProperty);
56
- }
57
- });
58
- }
59
- typeAnnotation = __1.TypeAnnotation.createTypeAnonymousStructure(newProperties);
60
- }
61
- else if (!typeName || typeName === 'Promise' || typeName === 'nasl' || typeName === '___IDENTIFIER__') {
62
- return null;
63
- }
64
- else if (typeName === 'String' || typeName === 'Boolean') {
65
- typeAnnotation = __1.TypeAnnotation.createPrimitive(typeName);
66
- }
67
- else if (typeName === 'Union') {
68
- typeAnnotation = __1.TypeAnnotation.createPrimitive('Union');
69
- typeAnnotation.typeArguments = [];
70
- typeArguments.forEach((item) => {
71
- const typeItem = type2TypeAnnotation(item);
72
- if (typeItem) {
73
- typeAnnotation.typeArgumentsPush(typeItem);
74
- }
75
- });
76
- }
77
- else if (typeNamespace && typeNamespace.startsWith('nasl.core')) {
78
- typeAnnotation = __1.TypeAnnotation.createPrimitive(typeName);
79
- }
80
- else if (typeNamespace && typeArguments?.length) {
81
- // 泛型类型
82
- typeAnnotation = __1.TypeAnnotation.createGeneric(typeName, {
83
- typeNamespace,
84
- });
85
- // 如果有泛型处理泛型
86
- typeAnnotation.typeArguments = [];
87
- typeArguments.forEach((item) => {
88
- const typeItem = type2TypeAnnotation(item);
89
- if (typeItem) {
90
- typeAnnotation.typeArgumentsPush(typeItem);
91
- }
92
- });
93
- }
94
- else {
95
- // 其余的引用类型
96
- typeAnnotation = __1.TypeAnnotation.createReference(typeName, {
97
- typeNamespace,
98
- });
99
- }
100
- }
101
- catch (err) {
102
- console.log(err, type);
103
- }
104
- return typeAnnotation;
105
- }
106
- exports.type2TypeAnnotation = type2TypeAnnotation;
107
- /**
108
- * 解析 Completion 和 QuickInfo 的 displayString
109
- * 生成 TypeAnnotation
110
- * @param displayString
111
- * @returns TypeAnnotation
112
- */
113
- function displayString2TypeAnnotation(typeStr, parentPrefix) {
114
- let type = '';
115
- if (typeStr?.includes(': ')) {
116
- const lastIndexOf = typeStr.lastIndexOf(': ');
117
- type = typeStr.substring(lastIndexOf + 2, typeStr.length);
118
- }
119
- else {
120
- type = typeStr;
121
- }
122
- if (!type)
123
- return;
124
- type = type.replaceAll(' ', '');
125
- if (type === 'Promise<void>')
126
- return null;
127
- // 把后面结尾里带()的比如
128
- // 'function nasl.core.add(left: nasl.core.Long, right: nasl.core.Long): nasl.core.Long (+12 overloads)'
129
- if (type.includes('(') && type.includes(')')) {
130
- type = type.replace(/\([^)]*\)/g, '');
131
- }
132
- let typeAnnotation;
133
- try {
134
- if (type.includes('<') && type.includes('>')) {
135
- // 泛型的处理
136
- typeAnnotation = createGenericTypeAnnotation(type, parentPrefix);
137
- }
138
- else {
139
- typeAnnotation = createType2Annotation(type, parentPrefix);
140
- }
141
- }
142
- catch (err) {
143
- console.log(err);
144
- }
145
- return typeAnnotation;
146
- }
147
- exports.displayString2TypeAnnotation = displayString2TypeAnnotation;
148
- function createGenericTypeAnnotation(type, parentPrefix) {
149
- // 取出匹配的内容
150
- const childType = type.substring(0, type.indexOf('<'));
151
- const typeAnnotation = createType2Annotation(childType);
152
- // 如果还有匹配到的多层泛型;
153
- // 取出匹配到的内容
154
- const types = /<([^()]+)>/g.exec(type);
155
- if (types === null)
156
- return types;
157
- const newtext = types[1];
158
- // 把匹配的值,的内容在,检索一遍,看是不是泛型套泛型
159
- const newTypes = /<([^()]+)>/g.exec(newtext);
160
- // 如果是的话就去递归
161
- if (newTypes) {
162
- const argTypeAnnotation = createGenericTypeAnnotation(newtext, parentPrefix);
163
- typeAnnotation.typeArguments = [argTypeAnnotation];
164
- }
165
- else {
166
- const argTypeAnnotation = createType2Annotation(newtext, parentPrefix);
167
- // 如果不是就创造内部的真正类型
168
- if (newtext.includes(',')) {
169
- typeAnnotation.typeArguments = newtext.split(',').map((item) => createType2Annotation(item));
170
- }
171
- else {
172
- typeAnnotation.typeArguments = [argTypeAnnotation];
173
- }
174
- }
175
- return typeAnnotation;
176
- }
177
- function createType2Annotation(type, parentPrefix) {
178
- let typeAnnotation;
179
- // 没有泛型类型的
180
- const types = type.split('.');
181
- // 长度等于1就说明是
182
- if (types.length === 1) {
183
- typeAnnotation = __1.TypeAnnotation.createPrimitive(types[0]);
184
- }
185
- else {
186
- const typeName = types.pop();
187
- const typeNamespace = types.join('.');
188
- if (type.startsWith('nasl.core')) {
189
- typeAnnotation = __1.TypeAnnotation.createPrimitive(typeName);
190
- }
191
- else if (type.startsWith('nasl.ui')) {
192
- typeAnnotation = __1.TypeAnnotation.createReference(typeName, {
193
- typeNamespace,
194
- });
195
- }
196
- else if (type.startsWith('nasl.process')) {
197
- // nasl的引用类型
198
- typeAnnotation = __1.TypeAnnotation.createReference(typeName, {
199
- typeNamespace,
200
- });
201
- }
202
- else if (type.startsWith('nasl.collection')) {
203
- // nasl的泛型类型
204
- typeAnnotation = __1.TypeAnnotation.createGeneric(typeName, {
205
- typeNamespace,
206
- });
207
- }
208
- else if (type.startsWith('dataSources.') || type.startsWith('structures.') || type.startsWith('enums.')) {
209
- typeAnnotation = __1.TypeAnnotation.createReference(typeName, {
210
- typeNamespace: (parentPrefix || 'app.') + typeNamespace,
211
- });
212
- }
213
- else {
214
- typeAnnotation = __1.TypeAnnotation.createReference(typeName, {
215
- typeNamespace,
216
- });
217
- }
218
- }
219
- return typeAnnotation;
220
- }
221
- function getPlatformType(type) {
222
- let tsType = '';
223
- if (type?.includes(': ')) {
224
- const lastIndexOf = type.lastIndexOf(': ');
225
- tsType = type.substring(lastIndexOf + 2, type.length);
226
- }
227
- else {
228
- tsType = type;
229
- }
230
- tsType = tsType.replaceAll(' ', '');
231
- const namespacePrefix = ['app', 'extensions', 'apis', 'components', 'nasl'];
232
- if (tsType === 'String') {
233
- return 'nasl.core.String';
234
- }
235
- else if (tsType === 'Boolean') {
236
- return 'nasl.core.Boolean';
237
- }
238
- const strTypes = tsType.split('.');
239
- if (strTypes.length) {
240
- const first = strTypes[0];
241
- // 如果不是这几个前缀就加一个namespace
242
- if (!namespacePrefix.includes(first)) {
243
- return 'app.' + tsType;
244
- }
245
- }
246
- return tsType;
247
- }
248
- exports.getPlatformType = getPlatformType;
249
- function isNoChildType(type) {
250
- return (type?.startsWith('nasl.core') && !['String', 'Text', 'Email'].includes(type.split('.')[2])) || type?.startsWith('app.enums');
251
- }
252
- exports.isNoChildType = isNoChildType;
253
- function findNode(typeKey, node) {
254
- let newType;
255
- if (typeKey.startsWith('nasl.') && typeKey.includes('<')) {
256
- const findGenericsIndex = typeKey.indexOf('<');
257
- typeKey = typeKey.substring(0, findGenericsIndex);
258
- const typeIndex = typeKey.lastIndexOf('.');
259
- newType = (0, utils_1.getNaslNodeByNodeCallee)(typeKey.substring(0, typeIndex), typeKey.substring(typeIndex + 1, typeKey.length));
260
- }
261
- else if (typeKey.startsWith('nasl.')) {
262
- const typeIndex = typeKey.lastIndexOf('.');
263
- newType = (0, utils_1.getNaslNodeByNodeCallee)(typeKey.substring(0, typeIndex), typeKey.substring(typeIndex + 1, typeKey.length));
264
- }
265
- else {
266
- newType = node?.app?.findNodeByCompleteName(typeKey);
267
- }
268
- return newType;
269
- }
270
- /**
271
- * 获取下一级的节点进行递归
272
- * @param typeKey 当前节点的类型,主要为了取出内部的 T中的实际类型
273
- * @param item 当前节点的内容
274
- * @param node 获取变量框的位置
275
- */
276
- function nextFindTypeChild(typeKey, item, node) {
277
- const newType = findNode(typeKey, node);
278
- if (newType?.properties && newType.properties.length) {
279
- // 处理泛型的内容要取到值
280
- const StructureJson = newType.toJSON();
281
- const newStructure = new __1.Structure(StructureJson);
282
- newStructure.properties.forEach((item) => {
283
- const itemType = item?.typeAnnotation?.typeKey;
284
- if (itemType === 'T' && /<([^()]+)>/g.exec(typeKey)) {
285
- const newTypes = /<([^()]+)>/g.exec(typeKey);
286
- // 找到当前原来的类型
287
- const contentType = getPlatformType(newTypes[1]);
288
- const typeNamespace = contentType.substring(0, contentType.lastIndexOf('.'));
289
- const typeName = contentType.substring(contentType.lastIndexOf('.') + 1, contentType.length);
290
- item.typeAnnotation = new __1.TypeAnnotation({
291
- typeKind: 'reference',
292
- typeNamespace,
293
- typeName,
294
- });
295
- }
296
- });
297
- item.children = formatVariableData(newStructure.properties, node, item);
298
- }
299
- }
300
- exports.nextFindTypeChild = nextFindTypeChild;
301
- /**
302
- * 获取scope下一级的展示
303
- * @param type 返回的字符串如下展示
304
- * `nasl.ui.Current<{
305
- __name: "AStructure_dc8bcbaf";
306
- entity1: dataSources.defaultDS.entities.Entity1;
307
- lCAPRolePerMapping: dataSources.defaultDS.entities.LCAPRolePerMapping;
308
- }>`
309
- */
310
- function getAStructureScopeType(type, parent, node) {
311
- let newType = type
312
- .replaceAll(' ', '')
313
- .replaceAll('\n', '')
314
- .replace(/__name:"AStructure_\w{8}";/g, '');
315
- const parentItem = parent;
316
- // 如果没有父节点就是Identifier
317
- // value需要拼接生成
318
- const identifier = new __1.Identifier({ name: parentItem.text });
319
- parentItem.expression = identifier;
320
- parentItem.value = parentItem.text;
321
- parentItem.name = parentItem.text;
322
- // 处理泛型的内容要取到值
323
- const newNode = findNode(newType, node);
324
- const StructureJson = newNode.toJSON();
325
- const newStructure = new __1.Structure(StructureJson);
326
- const children = newStructure.properties;
327
- if (children && children.length) {
328
- const newChildren = children.map((structureProperty) => {
329
- const structureItem = structureProperty;
330
- // 如果没有父节点就是Identifier
331
- structureItem.value = `${parentItem.value}.${structureItem.name}`;
332
- const memberExpression = new __1.MemberExpression({
333
- object: parentItem.expression,
334
- property: new __1.Identifier({ name: structureItem.name }),
335
- });
336
- structureItem.expression = memberExpression;
337
- const completionProperty = new __1.CompletionProperty(structureItem);
338
- completionProperty.icon = 'refProperty';
339
- if (structureItem.name === 'item') {
340
- const context = /\{([^()]+)\}/.exec(newType);
341
- newType = context[1];
342
- let res = [];
343
- newType.split(';').forEach((item) => {
344
- if (item) {
345
- const itemArr = item.split(':');
346
- const name = itemArr[0];
347
- let typeKey = itemArr[1];
348
- if (typeKey && typeKey.startsWith('dataSources')) {
349
- typeKey = 'app.' + typeKey;
350
- }
351
- // 如果ls传过来的名字是不合法的就隐藏
352
- if (!isValidName(name)) {
353
- console.warn(item, '获取变量不展示');
354
- return null;
355
- }
356
- res.push({
357
- name,
358
- typeKey,
359
- });
360
- }
361
- });
362
- res = res.map((item) => {
363
- const newItem = item;
364
- // 如果没有父节点就是Identifier
365
- newItem.value = `${structureItem.value}.${newItem.name}`;
366
- const memberExpression = new __1.MemberExpression({
367
- object: structureItem.expression,
368
- property: new __1.Identifier({ name: newItem.name }),
369
- });
370
- newItem.expression = memberExpression;
371
- // 如果有类型而且类型不是没有子集的类型,就把他当前的类型拿到
372
- if (item.typeKey && !isNoChildType(item.typeKey)) {
373
- newItem.children = nextObjectTypeChild(item.typeKey, newItem, node);
374
- }
375
- newItem.typeAnnotation = displayString2TypeAnnotation(newItem.typeKey);
376
- const completionProperty = new __1.CompletionProperty(newItem);
377
- completionProperty.icon = 'refProperty';
378
- return completionProperty;
379
- });
380
- completionProperty.children = res;
381
- return completionProperty;
382
- }
383
- else {
384
- return completionProperty;
385
- }
386
- });
387
- parentItem.children = newChildren;
388
- }
389
- const completionProperty = new __1.CompletionProperty(parentItem);
390
- // 变量 param return 在这里添加图标
391
- completionProperty.icon = getNodeiconFromLogic(completionProperty, node);
392
- return completionProperty;
393
- }
394
- /**
395
- * 获取对象类型的下一级展示
396
- * @param type 返回的字符串如下展示
397
- * `{
398
- __name: "AStructure_bf19c4d5";
399
- list: nasl.collection.List<{
400
- __name: "AStructure_dc8bcbaf";
401
- entity1: app.dataSources.defaultDS.entities.Entity1;
402
- lCAPRolePerMapping: app.dataSources.defaultDS.entities.LCAPRolePerMapping;
403
- }>;
404
- total: nasl.core.Long;
405
- }`
406
- */
407
- function getAStructureObjectStringType(type, parent, node) {
408
- let newType = type
409
- .replaceAll(' ', '')
410
- .replaceAll('\n', '')
411
- .replace(/__name:"AStructure_\w{8}";/g, '');
412
- newType = newType.substring(1, newType.length - 1);
413
- if (/\{([^()]+)\}/.exec(newType)) {
414
- newType = newType.replace(/\{([^()]+)\}/, '');
415
- }
416
- let res = [];
417
- newType.split(';').forEach((item) => {
418
- if (item) {
419
- const itemArr = item.split(':');
420
- const name = itemArr[0];
421
- const typeKey = itemArr[1];
422
- res.push({
423
- name,
424
- typeKey,
425
- });
426
- }
427
- });
428
- const parentItem = parent;
429
- // 如果没有父节点就是Identifier
430
- // value需要拼接生成
431
- const identifier = new __1.Identifier({ name: parentItem.text });
432
- parentItem.expression = identifier;
433
- parentItem.value = parentItem.text;
434
- parentItem.name = parentItem.text;
435
- res = res.map((item) => {
436
- const newItem = item;
437
- // 如果没有父节点就是Identifier
438
- newItem.value = `${parentItem.value}.${newItem.name}`;
439
- const memberExpression = new __1.MemberExpression({
440
- object: parentItem.expression,
441
- property: new __1.Identifier({ name: newItem.name }),
442
- });
443
- newItem.expression = memberExpression;
444
- // 如果有类型而且类型不是没有子集的类型,就把他当前的类型拿到
445
- if (item.typeKey && !isNoChildType(item.typeKey)) {
446
- newItem.children = nextObjectTypeChild(getPlatformType(item.typeKey), newItem, node);
447
- }
448
- newItem.typeAnnotation = displayString2TypeAnnotation(newItem.typeKey);
449
- const completionProperty = new __1.CompletionProperty(newItem);
450
- completionProperty.icon = 'refProperty';
451
- return completionProperty;
452
- });
453
- parentItem.children = res;
454
- const completionProperty = new __1.CompletionProperty(parentItem);
455
- // 变量 param return 在这里添加图标
456
- completionProperty.icon = getNodeiconFromLogic(completionProperty, node);
457
- return completionProperty;
458
- }
459
- function nextObjectTypeChild(typeKey, item, node) {
460
- const newType = findNode(typeKey, node);
461
- if (newType?.properties && newType.properties.length) {
462
- // 处理泛型的内容要取到值
463
- const StructureJson = newType.toJSON();
464
- const newStructure = new __1.Structure(StructureJson);
465
- newStructure.properties.forEach((item) => {
466
- const itemType = item?.typeAnnotation?.typeKey;
467
- if (itemType === 'T' && /<([^()]+)>/g.exec(typeKey)) {
468
- const newTypes = /<([^()]+)>/g.exec(typeKey);
469
- // 找到当前原来的类型
470
- const contentType = getPlatformType(newTypes[1]);
471
- const typeNamespace = contentType.substring(0, contentType.lastIndexOf('.'));
472
- const typeName = contentType.substring(contentType.lastIndexOf('.') + 1, contentType.length);
473
- item.typeAnnotation = new __1.TypeAnnotation({
474
- typeKind: 'reference',
475
- typeNamespace,
476
- typeName,
477
- });
478
- }
479
- });
480
- return formatVariableData(newStructure.properties, node, item);
481
- }
482
- }
483
- function getNodeTypeVariableData(nodeType, item, node) {
484
- item.value = item.text;
485
- item.name = item.text;
486
- const parentExpression = new __1.Identifier({ name: item.text });
487
- item.expression = parentExpression;
488
- if (nodeType) {
489
- const typeAnnotation = type2TypeAnnotation(nodeType);
490
- const typeKeyMap = new Map();
491
- const app = node.rootNode;
492
- let structure = {};
493
- // 有类型在进行下一步运算
494
- if (typeAnnotation) {
495
- // 数据查询没有输出参数,特殊处理
496
- if (typeAnnotation.typeKind === 'anonymousStructure') {
497
- structure = { properties: typeAnnotation.properties };
498
- }
499
- else if (typeAnnotation.typeArguments) {
500
- structure = { properties: app.getSelectRef(typeAnnotation, true) };
501
- }
502
- else {
503
- structure = app.findNodeByCompleteName(typeAnnotation.typeNamespace + '.' + typeAnnotation.typeName);
504
- }
505
- structure?.properties?.forEach((structureProperty) => {
506
- const { name, typeAnnotation } = structureProperty;
507
- const expression = new __1.MemberExpression({
508
- object: parentExpression,
509
- property: new __1.Identifier({ name }),
510
- });
511
- const completionData = new __1.CompletionProperty({
512
- name,
513
- value: name,
514
- expression,
515
- children: [],
516
- });
517
- completionData.icon = 'refProperty';
518
- item.children.push(completionData);
519
- recursionProperty(typeAnnotation, completionData, node, typeKeyMap);
520
- });
521
- }
522
- }
523
- const completionData = new __1.CompletionProperty(item);
524
- // 变量 param return 在这里添加图标
525
- completionData.icon = getNodeiconFromLogic(completionData, node);
526
- return completionData;
527
- }
528
- function recursionProperty(structureTypeAnnotation, parentCompletion, node, typeKeyMap) {
529
- const app = node.rootNode;
530
- let structure;
531
- if (structureTypeAnnotation.typeArguments) {
532
- structure = { properties: app.getSelectRef(structureTypeAnnotation, true) };
533
- }
534
- else {
535
- if (structureTypeAnnotation.typeKind === 'anonymousStructure') {
536
- structure = { properties: structureTypeAnnotation.properties };
537
- }
538
- else {
539
- structure = app.findNodeByCompleteName(structureTypeAnnotation.typeNamespace + '.' + structureTypeAnnotation.typeName);
540
- }
541
- }
542
- structure?.properties?.forEach((structureProperty) => {
543
- const { name, typeAnnotation } = structureProperty;
544
- const object = __1.BaseNode.from({ ...parentCompletion.expression.toJSON() });
545
- const expression = new __1.MemberExpression({
546
- object,
547
- property: new __1.Identifier({ name }),
548
- });
549
- const completionData = new __1.CompletionProperty({
550
- name,
551
- value: name,
552
- expression,
553
- children: [],
554
- });
555
- completionData.icon = 'refProperty';
556
- parentCompletion.children.push(completionData);
557
- if (getNextFlag(typeAnnotation.typeKey, typeKeyMap)) {
558
- recursionProperty(typeAnnotation, completionData, node, typeKeyMap);
559
- }
560
- });
561
- }
562
- function getNextFlag(typeKey, typeKeyMap) {
563
- if (['nasl.core.String', 'nasl.collection.List', 'nasl.collection.Map'].includes(typeKey))
564
- return true;
565
- if (typeKeyMap.get(typeKey) === 3) {
566
- return false;
567
- }
568
- else if (typeKeyMap.get(typeKey) > 0) {
569
- typeKeyMap.set(typeKey, typeKeyMap.get(typeKey) + 1);
570
- }
571
- else {
572
- typeKeyMap.set(typeKey, 1);
573
- }
574
- return true;
575
- }
576
- // 格式化变量数据
577
- function formatVariableData(data, node, parent) {
578
- if (Array.isArray(data)) {
579
- let result = data.map((item) => {
580
- item.children = [];
581
- // 当前的类型如 app.entitys.entity1 nasl.core.String
582
- let typeKey;
583
- if (item.completionDetail) {
584
- if (item.completionDetail?.hasOwnProperty('nodeType') || item.completionDetail?.hasOwnProperty('newNodeType')) {
585
- const completionProperty = getNodeTypeVariableData(item.completionDetail?.nodeType || item.completionDetail?.newNodeType, item, node);
586
- return completionProperty;
587
- }
588
- else {
589
- // 当前节点的完整类型,主要是在有T的内容使用 nasl.list<Enum1> 内部匹配内容给里面子集的T赋值类型
590
- let currentType = formatTs2TypeString(item.completionDetail.displayParts);
591
- if (currentType) {
592
- if (currentType?.includes(': ')) {
593
- const indexOf = currentType.indexOf(': ');
594
- const newCurrentType = currentType.substring(indexOf + 2, currentType.length);
595
- // 如果是对象形式的就单独处理
596
- if (newCurrentType.startsWith('{') && newCurrentType.endsWith('}')) {
597
- const completionProperty = getAStructureObjectStringType(newCurrentType, item, node);
598
- return completionProperty;
599
- }
600
- else if (newCurrentType.startsWith('nasl.ui.Current<{')) {
601
- const completionProperty = getAStructureScopeType(newCurrentType, item, node);
602
- return completionProperty;
603
- }
604
- else if (newCurrentType.startsWith('nasl.collection.List<{') && newCurrentType.endsWith('}>')) {
605
- currentType = 'nasl.collection.List<nasl.core.Any>';
606
- }
607
- }
608
- }
609
- typeKey = getPlatformType(currentType);
610
- item.typeAnnotation = displayString2TypeAnnotation(typeKey);
611
- }
612
- }
613
- else if (item instanceof __1.StructureProperty || item instanceof __1.EntityProperty) {
614
- typeKey = item?.typeAnnotation?.typeKey;
615
- }
616
- // 如果没有父节点就是Identifier
617
- if (!parent) {
618
- // value需要拼接生成
619
- item.value = parent ? `${parent.value}.${item.text}` : item.text;
620
- item.name = item.text;
621
- const identifier = new __1.Identifier({ name: item.name });
622
- item.expression = identifier;
623
- item.typeKey = typeKey;
624
- }
625
- else {
626
- item.value = `${parent.value}.${item.name}`;
627
- const object = __1.BaseNode.from(parent.expression.toJSON());
628
- const memberExpression = new __1.MemberExpression({
629
- object,
630
- property: new __1.Identifier({ name: item.name }),
631
- });
632
- item.expression = memberExpression;
633
- item.variableParent = parent;
634
- item.typeKey = typeKey;
635
- // 标记实体属性是否是符合类型
636
- item.isComplexType = item.typeAnnotation?.isComplexType();
637
- }
638
- // 如果有类型而且类型不是没有子集的类型,就把他当前的类型拿到
639
- if (typeKey && !isNoChildType(typeKey)) {
640
- let currentParent = item;
641
- let typeKeyIndex = 0;
642
- while (currentParent.variableParent) {
643
- currentParent = currentParent.variableParent;
644
- if (currentParent.typeKey === typeKey) {
645
- typeKeyIndex++;
646
- }
647
- }
648
- // 向上找到3次一样的就结束
649
- if (typeKeyIndex < 3) {
650
- nextFindTypeChild(typeKey, item, node);
651
- }
652
- }
653
- const completionProperty = new __1.CompletionProperty(item);
654
- completionProperty.jsonName = item.jsonName;
655
- // 标记实体属性是否是符合类型
656
- if (typeof item.isComplexType === 'boolean') {
657
- Object.assign(completionProperty, { isComplexType: item.isComplexType });
658
- }
659
- if (!parent) {
660
- // 变量 param return 在这里添加图标
661
- completionProperty.icon = getNodeiconFromLogic(completionProperty, node);
662
- }
663
- else {
664
- completionProperty.icon = 'refProperty';
665
- }
666
- return completionProperty;
667
- });
668
- /**
669
- * 排序result
670
- * 如果没有父级就是第一集就排序一下当前result,用户体验优化
671
- */
672
- if (!parent) {
673
- result = sortFirstVariableData(result, node);
674
- }
675
- return result.filter(Boolean);
676
- }
677
- }
678
- exports.formatVariableData = formatVariableData;
679
- // 从logic获取节点的icon
680
- function getNodeiconFromLogic(completionProperty, node) {
681
- const { name: propName } = completionProperty;
682
- const { view } = node;
683
- const logic = node.logic || node.OverriddenLogic || node.AuthLogic || node.AuthLogicForCallInterface;
684
- if (node.concept === 'Identifier' || node.concept === 'BindAttribute' || node.concept === 'MemberExpression') {
685
- const callLogic = node.getAncestor('CallLogic');
686
- const originLogic = callLogic?.getCallNode();
687
- if (originLogic?.params.find((item) => item.name === propName)) {
688
- return 'param';
689
- }
690
- }
691
- if (view) {
692
- // 前端逻辑调用
693
- const { params } = view;
694
- if (params.find((item) => item.name === propName)) {
695
- return 'param';
696
- }
697
- }
698
- if (logic) {
699
- const { params, returns } = logic;
700
- if (logic instanceof __1.AuthLogicForCallInterface) {
701
- const { authParams } = logic;
702
- if (authParams.find((item) => item.name === completionProperty.name))
703
- return 'api-auth-params';
704
- if (params.find((item) => item.name === completionProperty.name))
705
- return 'api-auth-params';
706
- }
707
- else if (logic instanceof __1.AuthLogic) {
708
- if (params.find((item) => item.name === completionProperty.name))
709
- return 'api-auth-params';
710
- }
711
- else {
712
- if (params.find((item) => item.name === completionProperty.name))
713
- return 'param';
714
- }
715
- if (params.find((item) => item.name === propName)) {
716
- return 'param';
717
- }
718
- else if (returns.find((item) => item.name === propName)) {
719
- return 'return';
720
- }
721
- else {
722
- return 'variable';
723
- }
724
- }
725
- const bindAttr = node.getAncestor('BindAttribute');
726
- if (bindAttr) {
727
- const interfaceInstance = bindAttr.getAncestor('Interface');
728
- if (interfaceInstance?.params.find((item) => item.name === propName)) {
729
- return 'param';
730
- }
731
- }
732
- return 'variable';
733
- }
734
- /**
735
- * 把要返回去的数据做一下排序
736
- * @param result 要返回数据
737
- * @param node 当前内容的上下级
738
- * @returns 返回排序后的数组
739
- * 因为ts会按照 a-z的顺序进行排序
740
- * 但是影响用户体验,需要先按照页面排序,其次按照logic进行排序
741
- * 流程的韬哥自己解决了,所以先解决这两部分
742
- */
743
- function sortFirstVariableData(result, node) {
744
- const newResult = [];
745
- const logic = node.logic;
746
- const view = node.view;
747
- if (view) {
748
- const { params, variables } = view;
749
- const list = [...params, ...variables];
750
- list.forEach((item) => {
751
- const findIndex = result.findIndex((findItem) => findItem.name === item.name);
752
- if (findIndex !== -1) {
753
- newResult.push(result[findIndex]);
754
- result.splice(findIndex, 1);
755
- }
756
- });
757
- }
758
- if (logic) {
759
- const { params, returns, variables } = logic;
760
- const list = [...params, ...returns, ...variables];
761
- list.forEach((item) => {
762
- const findIndex = result.findIndex((findItem) => findItem.name === item.name);
763
- if (findIndex !== -1) {
764
- newResult.push(result[findIndex]);
765
- result.splice(findIndex, 1);
766
- }
767
- });
768
- }
769
- newResult.push(...result);
770
- return newResult;
771
- }
772
- function formatBackendVariables(variables) {
773
- const result = variables.map((itemNode) => {
774
- const namespace = itemNode.getNamespace();
775
- const newItem = {
776
- name: itemNode.name,
777
- value: itemNode.name,
778
- expression: new __1.Identifier({
779
- name: itemNode.name,
780
- namespace,
781
- }),
782
- };
783
- const noChildType = isNoChildType(itemNode.typeAnnotation?.typeKey);
784
- if (!noChildType) {
785
- nextFindTypeChild(itemNode?.typeAnnotation?.typeKey, newItem, itemNode);
786
- }
787
- const completionProperty = new __1.CompletionProperty(newItem);
788
- completionProperty.icon = 'backendVariable';
789
- return completionProperty;
790
- });
791
- return result;
792
- }
793
- exports.formatBackendVariables = formatBackendVariables;
794
- function formatFrontEndVariables(frontEndVariables) {
795
- const result = frontEndVariables.map((itemNode) => {
796
- const namespace = itemNode.getNamespace();
797
- const newItem = {
798
- name: itemNode.name,
799
- value: itemNode.name,
800
- expression: new __1.Identifier({
801
- name: itemNode.name,
802
- namespace,
803
- }),
804
- };
805
- const noChildType = isNoChildType(itemNode.typeAnnotation?.typeKey);
806
- if (!noChildType) {
807
- nextFindTypeChild(itemNode.typeAnnotation.typeKey, newItem, itemNode);
808
- }
809
- const completionProperty = new __1.CompletionProperty(newItem);
810
- completionProperty.icon = 'frontendVariable';
811
- return completionProperty;
812
- });
813
- return result;
814
- }
815
- exports.formatFrontEndVariables = formatFrontEndVariables;
816
- function formatConfigProperties(configProperties, isView) {
817
- const result = configProperties.reduce((pre, item) => {
818
- const { isPrivate = false } = item;
819
- if (!isPrivate || !isView) {
820
- const namespace = item.getNamespace();
821
- const newItem = {
822
- name: item.name,
823
- value: item.name,
824
- expression: new __1.Identifier({
825
- name: item.name,
826
- namespace,
827
- }),
828
- icon: 'configProperty',
829
- calleewholeKey: item.calleewholeKey,
830
- };
831
- pre.push(newItem);
832
- }
833
- return pre;
834
- }, []);
835
- // const result = configProperties.map((item) => {
836
- // const namespace = item.getNamespace();
837
- // const newItem: any = {
838
- // name: item.name,
839
- // value: item.name,
840
- // expression: new Identifier({
841
- // name: item.name,
842
- // namespace,
843
- // }),
844
- // icon: 'configProperty',
845
- // calleewholeKey: item.calleewholeKey,
846
- // };
847
- // return newItem;
848
- // });
849
- return result;
850
- }
851
- exports.formatConfigProperties = formatConfigProperties;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatConfigProperties = exports.formatFrontEndVariables = exports.formatBackendVariables = exports.formatVariableData = exports.nextFindTypeChild = exports.isNoChildType = exports.getPlatformType = exports.displayString2TypeAnnotation = exports.type2TypeAnnotation = void 0;
4
+ const __1 = require("..");
5
+ const utils_1 = require("../automate/engine/utils");
6
+ /**
7
+ * 把ts返回的详细信息截取成一个类型字符串
8
+ * @param displayParts ts返回的key value
9
+ * // 0: {text: 'let', kind: 'keyword'}
10
+ // 1: {text: ' ', kind: 'space'}
11
+ // 2: {text: 'bindRoles', kind: 'text'}
12
+ // 3: {text: ':', kind: 'punctuation'}
13
+ // 4: {text: ' ', kind: 'space'}
14
+ // 5: {text: 'roles', kind: 'moduleName'}
15
+ // 6: {text: '.', kind: 'punctuation'}
16
+ // 7: {text: 'DEV_AdminRole', kind: 'enumName'}
17
+ * @returns type roles.DEV_AdminRole
18
+ */
19
+ function formatTs2TypeString(displayParts) {
20
+ let str = '';
21
+ displayParts?.forEach((item) => {
22
+ str += item.text;
23
+ });
24
+ return str;
25
+ }
26
+ function isValidName(str) {
27
+ const regex = /^[a-zA-Z][a-zA-Z0-9_]*$/;
28
+ return regex.test(str);
29
+ }
30
+ /**
31
+ * 解析 Completion 和 QuickInfo 的 displayString
32
+ * 生成 TypeAnnotation
33
+ * @param displayString
34
+ * @returns TypeAnnotation
35
+ */
36
+ function type2TypeAnnotation(oldType) {
37
+ if (!oldType)
38
+ return null;
39
+ let type = oldType;
40
+ if (Array.isArray(oldType)) {
41
+ type = oldType[0];
42
+ }
43
+ let typeAnnotation;
44
+ try {
45
+ const { typeName, typeNamespace, typeArguments, typeKind, properties } = type;
46
+ if (typeKind === 'anonymousStructure') {
47
+ // 自定义类型
48
+ const newProperties = [];
49
+ if (Array.isArray(properties) && properties.length) {
50
+ properties.forEach((item) => {
51
+ if (!item?.name?.startsWith('__')) {
52
+ // 如果没有获取到类型,就默认塞一个string
53
+ const itemType = type2TypeAnnotation(item.typeInfo) || __1.TypeAnnotation.createPrimitive('String');
54
+ const structureProperty = __1.StructureProperty.from({ name: item.name, typeAnnotation: itemType }, typeAnnotation, 'properties');
55
+ newProperties.push(structureProperty);
56
+ }
57
+ });
58
+ }
59
+ typeAnnotation = __1.TypeAnnotation.createTypeAnonymousStructure(newProperties);
60
+ }
61
+ else if (!typeName || typeName === 'Promise' || typeName === 'nasl' || typeName === '___IDENTIFIER__') {
62
+ return null;
63
+ }
64
+ else if (typeName === 'String' || typeName === 'Boolean') {
65
+ typeAnnotation = __1.TypeAnnotation.createPrimitive(typeName);
66
+ }
67
+ else if (typeName === 'Union') {
68
+ typeAnnotation = __1.TypeAnnotation.createPrimitive('Union');
69
+ typeAnnotation.typeArguments = [];
70
+ typeArguments.forEach((item) => {
71
+ const typeItem = type2TypeAnnotation(item);
72
+ if (typeItem) {
73
+ typeAnnotation.typeArgumentsPush(typeItem);
74
+ }
75
+ });
76
+ }
77
+ else if (typeNamespace && typeNamespace.startsWith('nasl.core')) {
78
+ typeAnnotation = __1.TypeAnnotation.createPrimitive(typeName);
79
+ }
80
+ else if (typeNamespace && typeArguments?.length) {
81
+ // 泛型类型
82
+ typeAnnotation = __1.TypeAnnotation.createGeneric(typeName, {
83
+ typeNamespace,
84
+ });
85
+ // 如果有泛型处理泛型
86
+ typeAnnotation.typeArguments = [];
87
+ typeArguments.forEach((item) => {
88
+ const typeItem = type2TypeAnnotation(item);
89
+ if (typeItem) {
90
+ typeAnnotation.typeArgumentsPush(typeItem);
91
+ }
92
+ });
93
+ }
94
+ else {
95
+ // 其余的引用类型
96
+ typeAnnotation = __1.TypeAnnotation.createReference(typeName, {
97
+ typeNamespace,
98
+ });
99
+ }
100
+ }
101
+ catch (err) {
102
+ console.log(err, type);
103
+ }
104
+ return typeAnnotation;
105
+ }
106
+ exports.type2TypeAnnotation = type2TypeAnnotation;
107
+ /**
108
+ * 解析 Completion 和 QuickInfo 的 displayString
109
+ * 生成 TypeAnnotation
110
+ * @param displayString
111
+ * @returns TypeAnnotation
112
+ */
113
+ function displayString2TypeAnnotation(typeStr, parentPrefix) {
114
+ let type = '';
115
+ if (typeStr?.includes(': ')) {
116
+ const lastIndexOf = typeStr.lastIndexOf(': ');
117
+ type = typeStr.substring(lastIndexOf + 2, typeStr.length);
118
+ }
119
+ else {
120
+ type = typeStr;
121
+ }
122
+ if (!type)
123
+ return;
124
+ type = type.replaceAll(' ', '');
125
+ if (type === 'Promise<void>')
126
+ return null;
127
+ // 把后面结尾里带()的比如
128
+ // 'function nasl.core.add(left: nasl.core.Long, right: nasl.core.Long): nasl.core.Long (+12 overloads)'
129
+ if (type.includes('(') && type.includes(')')) {
130
+ type = type.replace(/\([^)]*\)/g, '');
131
+ }
132
+ let typeAnnotation;
133
+ try {
134
+ if (type.includes('<') && type.includes('>')) {
135
+ // 泛型的处理
136
+ typeAnnotation = createGenericTypeAnnotation(type, parentPrefix);
137
+ }
138
+ else {
139
+ typeAnnotation = createType2Annotation(type, parentPrefix);
140
+ }
141
+ }
142
+ catch (err) {
143
+ console.log(err);
144
+ }
145
+ return typeAnnotation;
146
+ }
147
+ exports.displayString2TypeAnnotation = displayString2TypeAnnotation;
148
+ function createGenericTypeAnnotation(type, parentPrefix) {
149
+ // 取出匹配的内容
150
+ const childType = type.substring(0, type.indexOf('<'));
151
+ const typeAnnotation = createType2Annotation(childType);
152
+ // 如果还有匹配到的多层泛型;
153
+ // 取出匹配到的内容
154
+ const types = /<([^()]+)>/g.exec(type);
155
+ if (types === null)
156
+ return types;
157
+ const newtext = types[1];
158
+ // 把匹配的值,的内容在,检索一遍,看是不是泛型套泛型
159
+ const newTypes = /<([^()]+)>/g.exec(newtext);
160
+ // 如果是的话就去递归
161
+ if (newTypes) {
162
+ const argTypeAnnotation = createGenericTypeAnnotation(newtext, parentPrefix);
163
+ typeAnnotation.typeArguments = [argTypeAnnotation];
164
+ }
165
+ else {
166
+ const argTypeAnnotation = createType2Annotation(newtext, parentPrefix);
167
+ // 如果不是就创造内部的真正类型
168
+ if (newtext.includes(',')) {
169
+ typeAnnotation.typeArguments = newtext.split(',').map((item) => createType2Annotation(item));
170
+ }
171
+ else {
172
+ typeAnnotation.typeArguments = [argTypeAnnotation];
173
+ }
174
+ }
175
+ return typeAnnotation;
176
+ }
177
+ function createType2Annotation(type, parentPrefix) {
178
+ let typeAnnotation;
179
+ // 没有泛型类型的
180
+ const types = type.split('.');
181
+ // 长度等于1就说明是
182
+ if (types.length === 1) {
183
+ typeAnnotation = __1.TypeAnnotation.createPrimitive(types[0]);
184
+ }
185
+ else {
186
+ const typeName = types.pop();
187
+ const typeNamespace = types.join('.');
188
+ if (type.startsWith('nasl.core')) {
189
+ typeAnnotation = __1.TypeAnnotation.createPrimitive(typeName);
190
+ }
191
+ else if (type.startsWith('nasl.ui')) {
192
+ typeAnnotation = __1.TypeAnnotation.createReference(typeName, {
193
+ typeNamespace,
194
+ });
195
+ }
196
+ else if (type.startsWith('nasl.process')) {
197
+ // nasl的引用类型
198
+ typeAnnotation = __1.TypeAnnotation.createReference(typeName, {
199
+ typeNamespace,
200
+ });
201
+ }
202
+ else if (type.startsWith('nasl.collection')) {
203
+ // nasl的泛型类型
204
+ typeAnnotation = __1.TypeAnnotation.createGeneric(typeName, {
205
+ typeNamespace,
206
+ });
207
+ }
208
+ else if (type.startsWith('dataSources.') || type.startsWith('structures.') || type.startsWith('enums.')) {
209
+ typeAnnotation = __1.TypeAnnotation.createReference(typeName, {
210
+ typeNamespace: (parentPrefix || 'app.') + typeNamespace,
211
+ });
212
+ }
213
+ else {
214
+ typeAnnotation = __1.TypeAnnotation.createReference(typeName, {
215
+ typeNamespace,
216
+ });
217
+ }
218
+ }
219
+ return typeAnnotation;
220
+ }
221
+ function getPlatformType(type) {
222
+ let tsType = '';
223
+ if (type?.includes(': ')) {
224
+ const lastIndexOf = type.lastIndexOf(': ');
225
+ tsType = type.substring(lastIndexOf + 2, type.length);
226
+ }
227
+ else {
228
+ tsType = type;
229
+ }
230
+ tsType = tsType.replaceAll(' ', '');
231
+ const namespacePrefix = ['app', 'extensions', 'apis', 'components', 'nasl'];
232
+ if (tsType === 'String') {
233
+ return 'nasl.core.String';
234
+ }
235
+ else if (tsType === 'Boolean') {
236
+ return 'nasl.core.Boolean';
237
+ }
238
+ const strTypes = tsType.split('.');
239
+ if (strTypes.length) {
240
+ const first = strTypes[0];
241
+ // 如果不是这几个前缀就加一个namespace
242
+ if (!namespacePrefix.includes(first)) {
243
+ return 'app.' + tsType;
244
+ }
245
+ }
246
+ return tsType;
247
+ }
248
+ exports.getPlatformType = getPlatformType;
249
+ function isNoChildType(type) {
250
+ return (type?.startsWith('nasl.core') && !['String', 'Text', 'Email'].includes(type.split('.')[2])) || type?.startsWith('app.enums');
251
+ }
252
+ exports.isNoChildType = isNoChildType;
253
+ function findNode(typeKey, node) {
254
+ let newType;
255
+ if (typeKey.startsWith('nasl.') && typeKey.includes('<')) {
256
+ const findGenericsIndex = typeKey.indexOf('<');
257
+ typeKey = typeKey.substring(0, findGenericsIndex);
258
+ const typeIndex = typeKey.lastIndexOf('.');
259
+ newType = (0, utils_1.getNaslNodeByNodeCallee)(typeKey.substring(0, typeIndex), typeKey.substring(typeIndex + 1, typeKey.length));
260
+ }
261
+ else if (typeKey.startsWith('nasl.')) {
262
+ const typeIndex = typeKey.lastIndexOf('.');
263
+ newType = (0, utils_1.getNaslNodeByNodeCallee)(typeKey.substring(0, typeIndex), typeKey.substring(typeIndex + 1, typeKey.length));
264
+ }
265
+ else {
266
+ newType = node?.app?.findNodeByCompleteName(typeKey);
267
+ }
268
+ return newType;
269
+ }
270
+ /**
271
+ * 获取下一级的节点进行递归
272
+ * @param typeKey 当前节点的类型,主要为了取出内部的 T中的实际类型
273
+ * @param item 当前节点的内容
274
+ * @param node 获取变量框的位置
275
+ */
276
+ function nextFindTypeChild(typeKey, item, node) {
277
+ const newType = findNode(typeKey, node);
278
+ if (newType?.properties && newType.properties.length) {
279
+ // 处理泛型的内容要取到值
280
+ const StructureJson = newType.toJSON();
281
+ const newStructure = new __1.Structure(StructureJson);
282
+ newStructure.properties.forEach((item) => {
283
+ const itemType = item?.typeAnnotation?.typeKey;
284
+ if (itemType === 'T' && /<([^()]+)>/g.exec(typeKey)) {
285
+ const newTypes = /<([^()]+)>/g.exec(typeKey);
286
+ // 找到当前原来的类型
287
+ const contentType = getPlatformType(newTypes[1]);
288
+ const typeNamespace = contentType.substring(0, contentType.lastIndexOf('.'));
289
+ const typeName = contentType.substring(contentType.lastIndexOf('.') + 1, contentType.length);
290
+ item.typeAnnotation = new __1.TypeAnnotation({
291
+ typeKind: 'reference',
292
+ typeNamespace,
293
+ typeName,
294
+ });
295
+ }
296
+ });
297
+ item.children = formatVariableData(newStructure.properties, node, item);
298
+ }
299
+ }
300
+ exports.nextFindTypeChild = nextFindTypeChild;
301
+ /**
302
+ * 获取scope下一级的展示
303
+ * @param type 返回的字符串如下展示
304
+ * `nasl.ui.Current<{
305
+ __name: "AStructure_dc8bcbaf";
306
+ entity1: dataSources.defaultDS.entities.Entity1;
307
+ lCAPRolePerMapping: dataSources.defaultDS.entities.LCAPRolePerMapping;
308
+ }>`
309
+ */
310
+ function getAStructureScopeType(type, parent, node) {
311
+ let newType = type
312
+ .replaceAll(' ', '')
313
+ .replaceAll('\n', '')
314
+ .replace(/__name:"AStructure_\w{8}";/g, '');
315
+ const parentItem = parent;
316
+ // 如果没有父节点就是Identifier
317
+ // value需要拼接生成
318
+ const identifier = new __1.Identifier({ name: parentItem.text });
319
+ parentItem.expression = identifier;
320
+ parentItem.value = parentItem.text;
321
+ parentItem.name = parentItem.text;
322
+ // 处理泛型的内容要取到值
323
+ const newNode = findNode(newType, node);
324
+ const StructureJson = newNode.toJSON();
325
+ const newStructure = new __1.Structure(StructureJson);
326
+ const children = newStructure.properties;
327
+ if (children && children.length) {
328
+ const newChildren = children.map((structureProperty) => {
329
+ const structureItem = structureProperty;
330
+ // 如果没有父节点就是Identifier
331
+ structureItem.value = `${parentItem.value}.${structureItem.name}`;
332
+ const memberExpression = new __1.MemberExpression({
333
+ object: parentItem.expression,
334
+ property: new __1.Identifier({ name: structureItem.name }),
335
+ });
336
+ structureItem.expression = memberExpression;
337
+ const completionProperty = new __1.CompletionProperty(structureItem);
338
+ completionProperty.icon = 'refProperty';
339
+ if (structureItem.name === 'item') {
340
+ const context = /\{([^()]+)\}/.exec(newType);
341
+ newType = context[1];
342
+ let res = [];
343
+ newType.split(';').forEach((item) => {
344
+ if (item) {
345
+ const itemArr = item.split(':');
346
+ const name = itemArr[0];
347
+ let typeKey = itemArr[1];
348
+ if (typeKey && typeKey.startsWith('dataSources')) {
349
+ typeKey = 'app.' + typeKey;
350
+ }
351
+ // 如果ls传过来的名字是不合法的就隐藏
352
+ if (!isValidName(name)) {
353
+ console.warn(item, '获取变量不展示');
354
+ return null;
355
+ }
356
+ res.push({
357
+ name,
358
+ typeKey,
359
+ });
360
+ }
361
+ });
362
+ res = res.map((item) => {
363
+ const newItem = item;
364
+ // 如果没有父节点就是Identifier
365
+ newItem.value = `${structureItem.value}.${newItem.name}`;
366
+ const memberExpression = new __1.MemberExpression({
367
+ object: structureItem.expression,
368
+ property: new __1.Identifier({ name: newItem.name }),
369
+ });
370
+ newItem.expression = memberExpression;
371
+ // 如果有类型而且类型不是没有子集的类型,就把他当前的类型拿到
372
+ if (item.typeKey && !isNoChildType(item.typeKey)) {
373
+ newItem.children = nextObjectTypeChild(item.typeKey, newItem, node);
374
+ }
375
+ newItem.typeAnnotation = displayString2TypeAnnotation(newItem.typeKey);
376
+ const completionProperty = new __1.CompletionProperty(newItem);
377
+ completionProperty.icon = 'refProperty';
378
+ return completionProperty;
379
+ });
380
+ completionProperty.children = res;
381
+ return completionProperty;
382
+ }
383
+ else {
384
+ return completionProperty;
385
+ }
386
+ });
387
+ parentItem.children = newChildren;
388
+ }
389
+ const completionProperty = new __1.CompletionProperty(parentItem);
390
+ // 变量 param return 在这里添加图标
391
+ completionProperty.icon = getNodeiconFromLogic(completionProperty, node);
392
+ return completionProperty;
393
+ }
394
+ /**
395
+ * 获取对象类型的下一级展示
396
+ * @param type 返回的字符串如下展示
397
+ * `{
398
+ __name: "AStructure_bf19c4d5";
399
+ list: nasl.collection.List<{
400
+ __name: "AStructure_dc8bcbaf";
401
+ entity1: app.dataSources.defaultDS.entities.Entity1;
402
+ lCAPRolePerMapping: app.dataSources.defaultDS.entities.LCAPRolePerMapping;
403
+ }>;
404
+ total: nasl.core.Long;
405
+ }`
406
+ */
407
+ function getAStructureObjectStringType(type, parent, node) {
408
+ let newType = type
409
+ .replaceAll(' ', '')
410
+ .replaceAll('\n', '')
411
+ .replace(/__name:"AStructure_\w{8}";/g, '');
412
+ newType = newType.substring(1, newType.length - 1);
413
+ if (/\{([^()]+)\}/.exec(newType)) {
414
+ newType = newType.replace(/\{([^()]+)\}/, '');
415
+ }
416
+ let res = [];
417
+ newType.split(';').forEach((item) => {
418
+ if (item) {
419
+ const itemArr = item.split(':');
420
+ const name = itemArr[0];
421
+ const typeKey = itemArr[1];
422
+ res.push({
423
+ name,
424
+ typeKey,
425
+ });
426
+ }
427
+ });
428
+ const parentItem = parent;
429
+ // 如果没有父节点就是Identifier
430
+ // value需要拼接生成
431
+ const identifier = new __1.Identifier({ name: parentItem.text });
432
+ parentItem.expression = identifier;
433
+ parentItem.value = parentItem.text;
434
+ parentItem.name = parentItem.text;
435
+ res = res.map((item) => {
436
+ const newItem = item;
437
+ // 如果没有父节点就是Identifier
438
+ newItem.value = `${parentItem.value}.${newItem.name}`;
439
+ const memberExpression = new __1.MemberExpression({
440
+ object: parentItem.expression,
441
+ property: new __1.Identifier({ name: newItem.name }),
442
+ });
443
+ newItem.expression = memberExpression;
444
+ // 如果有类型而且类型不是没有子集的类型,就把他当前的类型拿到
445
+ if (item.typeKey && !isNoChildType(item.typeKey)) {
446
+ newItem.children = nextObjectTypeChild(getPlatformType(item.typeKey), newItem, node);
447
+ }
448
+ newItem.typeAnnotation = displayString2TypeAnnotation(newItem.typeKey);
449
+ const completionProperty = new __1.CompletionProperty(newItem);
450
+ completionProperty.icon = 'refProperty';
451
+ return completionProperty;
452
+ });
453
+ parentItem.children = res;
454
+ const completionProperty = new __1.CompletionProperty(parentItem);
455
+ // 变量 param return 在这里添加图标
456
+ completionProperty.icon = getNodeiconFromLogic(completionProperty, node);
457
+ return completionProperty;
458
+ }
459
+ function nextObjectTypeChild(typeKey, item, node) {
460
+ const newType = findNode(typeKey, node);
461
+ if (newType?.properties && newType.properties.length) {
462
+ // 处理泛型的内容要取到值
463
+ const StructureJson = newType.toJSON();
464
+ const newStructure = new __1.Structure(StructureJson);
465
+ newStructure.properties.forEach((item) => {
466
+ const itemType = item?.typeAnnotation?.typeKey;
467
+ if (itemType === 'T' && /<([^()]+)>/g.exec(typeKey)) {
468
+ const newTypes = /<([^()]+)>/g.exec(typeKey);
469
+ // 找到当前原来的类型
470
+ const contentType = getPlatformType(newTypes[1]);
471
+ const typeNamespace = contentType.substring(0, contentType.lastIndexOf('.'));
472
+ const typeName = contentType.substring(contentType.lastIndexOf('.') + 1, contentType.length);
473
+ item.typeAnnotation = new __1.TypeAnnotation({
474
+ typeKind: 'reference',
475
+ typeNamespace,
476
+ typeName,
477
+ });
478
+ }
479
+ });
480
+ return formatVariableData(newStructure.properties, node, item);
481
+ }
482
+ }
483
+ function getNodeTypeVariableData(nodeType, item, node) {
484
+ item.value = item.text;
485
+ item.name = item.text;
486
+ const parentExpression = new __1.Identifier({ name: item.text });
487
+ item.expression = parentExpression;
488
+ if (nodeType) {
489
+ const typeAnnotation = type2TypeAnnotation(nodeType);
490
+ const typeKeyMap = new Map();
491
+ const app = node.rootNode;
492
+ let structure = {};
493
+ // 有类型在进行下一步运算
494
+ if (typeAnnotation) {
495
+ // 数据查询没有输出参数,特殊处理
496
+ if (typeAnnotation.typeKind === 'anonymousStructure') {
497
+ structure = { properties: typeAnnotation.properties };
498
+ }
499
+ else if (typeAnnotation.typeArguments) {
500
+ structure = { properties: app.getSelectRef(typeAnnotation, true) };
501
+ }
502
+ else {
503
+ structure = app.findNodeByCompleteName(typeAnnotation.typeNamespace + '.' + typeAnnotation.typeName);
504
+ }
505
+ structure?.properties?.forEach((structureProperty) => {
506
+ const { name, typeAnnotation } = structureProperty;
507
+ const expression = new __1.MemberExpression({
508
+ object: parentExpression,
509
+ property: new __1.Identifier({ name }),
510
+ });
511
+ const completionData = new __1.CompletionProperty({
512
+ name,
513
+ value: name,
514
+ expression,
515
+ children: [],
516
+ });
517
+ completionData.icon = 'refProperty';
518
+ item.children.push(completionData);
519
+ recursionProperty(typeAnnotation, completionData, node, typeKeyMap);
520
+ });
521
+ }
522
+ }
523
+ const completionData = new __1.CompletionProperty(item);
524
+ // 变量 param return 在这里添加图标
525
+ completionData.icon = getNodeiconFromLogic(completionData, node);
526
+ return completionData;
527
+ }
528
+ function recursionProperty(structureTypeAnnotation, parentCompletion, node, typeKeyMap) {
529
+ const app = node.rootNode;
530
+ let structure;
531
+ if (structureTypeAnnotation.typeArguments) {
532
+ structure = { properties: app.getSelectRef(structureTypeAnnotation, true) };
533
+ }
534
+ else {
535
+ if (structureTypeAnnotation.typeKind === 'anonymousStructure') {
536
+ structure = { properties: structureTypeAnnotation.properties };
537
+ }
538
+ else {
539
+ structure = app.findNodeByCompleteName(structureTypeAnnotation.typeNamespace + '.' + structureTypeAnnotation.typeName);
540
+ }
541
+ }
542
+ structure?.properties?.forEach((structureProperty) => {
543
+ const { name, typeAnnotation } = structureProperty;
544
+ const object = __1.BaseNode.from({ ...parentCompletion.expression.toJSON() });
545
+ const expression = new __1.MemberExpression({
546
+ object,
547
+ property: new __1.Identifier({ name }),
548
+ });
549
+ const completionData = new __1.CompletionProperty({
550
+ name,
551
+ value: name,
552
+ expression,
553
+ children: [],
554
+ });
555
+ completionData.icon = 'refProperty';
556
+ parentCompletion.children.push(completionData);
557
+ if (getNextFlag(typeAnnotation.typeKey, typeKeyMap)) {
558
+ recursionProperty(typeAnnotation, completionData, node, typeKeyMap);
559
+ }
560
+ });
561
+ }
562
+ function getNextFlag(typeKey, typeKeyMap) {
563
+ if (['nasl.core.String', 'nasl.collection.List', 'nasl.collection.Map'].includes(typeKey))
564
+ return true;
565
+ if (typeKeyMap.get(typeKey) === 3) {
566
+ return false;
567
+ }
568
+ else if (typeKeyMap.get(typeKey) > 0) {
569
+ typeKeyMap.set(typeKey, typeKeyMap.get(typeKey) + 1);
570
+ }
571
+ else {
572
+ typeKeyMap.set(typeKey, 1);
573
+ }
574
+ return true;
575
+ }
576
+ // 格式化变量数据
577
+ function formatVariableData(data, node, parent) {
578
+ if (Array.isArray(data)) {
579
+ let result = data.map((item) => {
580
+ item.children = [];
581
+ // 当前的类型如 app.entitys.entity1 nasl.core.String
582
+ let typeKey;
583
+ if (item.completionDetail) {
584
+ if (item.completionDetail?.hasOwnProperty('nodeType') || item.completionDetail?.hasOwnProperty('newNodeType')) {
585
+ const completionProperty = getNodeTypeVariableData(item.completionDetail?.nodeType || item.completionDetail?.newNodeType, item, node);
586
+ return completionProperty;
587
+ }
588
+ else {
589
+ // 当前节点的完整类型,主要是在有T的内容使用 nasl.list<Enum1> 内部匹配内容给里面子集的T赋值类型
590
+ let currentType = formatTs2TypeString(item.completionDetail.displayParts);
591
+ if (currentType) {
592
+ if (currentType?.includes(': ')) {
593
+ const indexOf = currentType.indexOf(': ');
594
+ const newCurrentType = currentType.substring(indexOf + 2, currentType.length);
595
+ // 如果是对象形式的就单独处理
596
+ if (newCurrentType.startsWith('{') && newCurrentType.endsWith('}')) {
597
+ const completionProperty = getAStructureObjectStringType(newCurrentType, item, node);
598
+ return completionProperty;
599
+ }
600
+ else if (newCurrentType.startsWith('nasl.ui.Current<{')) {
601
+ const completionProperty = getAStructureScopeType(newCurrentType, item, node);
602
+ return completionProperty;
603
+ }
604
+ else if (newCurrentType.startsWith('nasl.collection.List<{') && newCurrentType.endsWith('}>')) {
605
+ currentType = 'nasl.collection.List<nasl.core.Any>';
606
+ }
607
+ }
608
+ }
609
+ typeKey = getPlatformType(currentType);
610
+ item.typeAnnotation = displayString2TypeAnnotation(typeKey);
611
+ }
612
+ }
613
+ else if (item instanceof __1.StructureProperty || item instanceof __1.EntityProperty) {
614
+ typeKey = item?.typeAnnotation?.typeKey;
615
+ }
616
+ // 如果没有父节点就是Identifier
617
+ if (!parent) {
618
+ // value需要拼接生成
619
+ item.value = parent ? `${parent.value}.${item.text}` : item.text;
620
+ item.name = item.text;
621
+ const identifier = new __1.Identifier({ name: item.name });
622
+ item.expression = identifier;
623
+ item.typeKey = typeKey;
624
+ }
625
+ else {
626
+ item.value = `${parent.value}.${item.name}`;
627
+ const object = __1.BaseNode.from(parent.expression.toJSON());
628
+ const memberExpression = new __1.MemberExpression({
629
+ object,
630
+ property: new __1.Identifier({ name: item.name }),
631
+ });
632
+ item.expression = memberExpression;
633
+ item.variableParent = parent;
634
+ item.typeKey = typeKey;
635
+ // 标记实体属性是否是符合类型
636
+ item.isComplexType = item.typeAnnotation?.isComplexType();
637
+ }
638
+ // 如果有类型而且类型不是没有子集的类型,就把他当前的类型拿到
639
+ if (typeKey && !isNoChildType(typeKey)) {
640
+ let currentParent = item;
641
+ let typeKeyIndex = 0;
642
+ while (currentParent.variableParent) {
643
+ currentParent = currentParent.variableParent;
644
+ if (currentParent.typeKey === typeKey) {
645
+ typeKeyIndex++;
646
+ }
647
+ }
648
+ // 向上找到3次一样的就结束
649
+ if (typeKeyIndex < 3) {
650
+ nextFindTypeChild(typeKey, item, node);
651
+ }
652
+ }
653
+ const completionProperty = new __1.CompletionProperty(item);
654
+ completionProperty.jsonName = item.jsonName;
655
+ // 标记实体属性是否是符合类型
656
+ if (typeof item.isComplexType === 'boolean') {
657
+ Object.assign(completionProperty, { isComplexType: item.isComplexType });
658
+ }
659
+ if (!parent) {
660
+ // 变量 param return 在这里添加图标
661
+ completionProperty.icon = getNodeiconFromLogic(completionProperty, node);
662
+ }
663
+ else {
664
+ completionProperty.icon = 'refProperty';
665
+ }
666
+ return completionProperty;
667
+ });
668
+ /**
669
+ * 排序result
670
+ * 如果没有父级就是第一集就排序一下当前result,用户体验优化
671
+ */
672
+ if (!parent) {
673
+ result = sortFirstVariableData(result, node);
674
+ }
675
+ return result.filter(Boolean);
676
+ }
677
+ }
678
+ exports.formatVariableData = formatVariableData;
679
+ // 从logic获取节点的icon
680
+ function getNodeiconFromLogic(completionProperty, node) {
681
+ const { name: propName } = completionProperty;
682
+ const { view } = node;
683
+ const logic = node.logic || node.OverriddenLogic || node.AuthLogic || node.AuthLogicForCallInterface;
684
+ if (node.concept === 'Identifier' || node.concept === 'BindAttribute' || node.concept === 'MemberExpression') {
685
+ const callLogic = node.getAncestor('CallLogic');
686
+ const originLogic = callLogic?.getCallNode();
687
+ if (originLogic?.params.find((item) => item.name === propName)) {
688
+ return 'param';
689
+ }
690
+ }
691
+ if (view) {
692
+ // 前端逻辑调用
693
+ const { params } = view;
694
+ if (params.find((item) => item.name === propName)) {
695
+ return 'param';
696
+ }
697
+ }
698
+ if (logic) {
699
+ const { params, returns } = logic;
700
+ if (logic instanceof __1.AuthLogicForCallInterface) {
701
+ const { authParams } = logic;
702
+ if (authParams.find((item) => item.name === completionProperty.name))
703
+ return 'api-auth-params';
704
+ if (params.find((item) => item.name === completionProperty.name))
705
+ return 'api-auth-params';
706
+ }
707
+ else if (logic instanceof __1.AuthLogic) {
708
+ if (params.find((item) => item.name === completionProperty.name))
709
+ return 'api-auth-params';
710
+ }
711
+ else {
712
+ if (params.find((item) => item.name === completionProperty.name))
713
+ return 'param';
714
+ }
715
+ if (params.find((item) => item.name === propName)) {
716
+ return 'param';
717
+ }
718
+ else if (returns.find((item) => item.name === propName)) {
719
+ return 'return';
720
+ }
721
+ else {
722
+ return 'variable';
723
+ }
724
+ }
725
+ const bindAttr = node.getAncestor('BindAttribute');
726
+ if (bindAttr) {
727
+ const interfaceInstance = bindAttr.getAncestor('Interface');
728
+ if (interfaceInstance?.params.find((item) => item.name === propName)) {
729
+ return 'param';
730
+ }
731
+ }
732
+ return 'variable';
733
+ }
734
+ /**
735
+ * 把要返回去的数据做一下排序
736
+ * @param result 要返回数据
737
+ * @param node 当前内容的上下级
738
+ * @returns 返回排序后的数组
739
+ * 因为ts会按照 a-z的顺序进行排序
740
+ * 但是影响用户体验,需要先按照页面排序,其次按照logic进行排序
741
+ * 流程的韬哥自己解决了,所以先解决这两部分
742
+ */
743
+ function sortFirstVariableData(result, node) {
744
+ const newResult = [];
745
+ const logic = node.logic;
746
+ const view = node.view;
747
+ if (view) {
748
+ const { params, variables } = view;
749
+ const list = [...params, ...variables];
750
+ list.forEach((item) => {
751
+ const findIndex = result.findIndex((findItem) => findItem.name === item.name);
752
+ if (findIndex !== -1) {
753
+ newResult.push(result[findIndex]);
754
+ result.splice(findIndex, 1);
755
+ }
756
+ });
757
+ }
758
+ if (logic) {
759
+ const { params, returns, variables } = logic;
760
+ const list = [...params, ...returns, ...variables];
761
+ list.forEach((item) => {
762
+ const findIndex = result.findIndex((findItem) => findItem.name === item.name);
763
+ if (findIndex !== -1) {
764
+ newResult.push(result[findIndex]);
765
+ result.splice(findIndex, 1);
766
+ }
767
+ });
768
+ }
769
+ newResult.push(...result);
770
+ return newResult;
771
+ }
772
+ function formatBackendVariables(variables) {
773
+ const result = variables.map((itemNode) => {
774
+ const namespace = itemNode.getNamespace();
775
+ const newItem = {
776
+ name: itemNode.name,
777
+ value: itemNode.name,
778
+ expression: new __1.Identifier({
779
+ name: itemNode.name,
780
+ namespace,
781
+ }),
782
+ };
783
+ const noChildType = isNoChildType(itemNode.typeAnnotation?.typeKey);
784
+ if (!noChildType) {
785
+ nextFindTypeChild(itemNode?.typeAnnotation?.typeKey, newItem, itemNode);
786
+ }
787
+ const completionProperty = new __1.CompletionProperty(newItem);
788
+ completionProperty.icon = 'backendVariable';
789
+ return completionProperty;
790
+ });
791
+ return result;
792
+ }
793
+ exports.formatBackendVariables = formatBackendVariables;
794
+ function formatFrontEndVariables(frontEndVariables) {
795
+ const result = frontEndVariables.map((itemNode) => {
796
+ const namespace = itemNode.getNamespace();
797
+ const newItem = {
798
+ name: itemNode.name,
799
+ value: itemNode.name,
800
+ expression: new __1.Identifier({
801
+ name: itemNode.name,
802
+ namespace,
803
+ }),
804
+ };
805
+ const noChildType = isNoChildType(itemNode.typeAnnotation?.typeKey);
806
+ if (!noChildType) {
807
+ nextFindTypeChild(itemNode.typeAnnotation.typeKey, newItem, itemNode);
808
+ }
809
+ const completionProperty = new __1.CompletionProperty(newItem);
810
+ completionProperty.icon = 'frontendVariable';
811
+ return completionProperty;
812
+ });
813
+ return result;
814
+ }
815
+ exports.formatFrontEndVariables = formatFrontEndVariables;
816
+ function formatConfigProperties(configProperties, isView) {
817
+ const result = configProperties.reduce((pre, item) => {
818
+ const { isPrivate = false } = item;
819
+ if (!isPrivate || !isView) {
820
+ const namespace = item.getNamespace();
821
+ const newItem = {
822
+ name: item.name,
823
+ value: item.name,
824
+ expression: new __1.Identifier({
825
+ name: item.name,
826
+ namespace,
827
+ }),
828
+ icon: 'configProperty',
829
+ calleewholeKey: item.calleewholeKey,
830
+ };
831
+ pre.push(newItem);
832
+ }
833
+ return pre;
834
+ }, []);
835
+ // const result = configProperties.map((item) => {
836
+ // const namespace = item.getNamespace();
837
+ // const newItem: any = {
838
+ // name: item.name,
839
+ // value: item.name,
840
+ // expression: new Identifier({
841
+ // name: item.name,
842
+ // namespace,
843
+ // }),
844
+ // icon: 'configProperty',
845
+ // calleewholeKey: item.calleewholeKey,
846
+ // };
847
+ // return newItem;
848
+ // });
849
+ return result;
850
+ }
851
+ exports.formatConfigProperties = formatConfigProperties;
852
852
  //# sourceMappingURL=formatTsUtils.js.map