@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,1337 +1,1335 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
- var __importDefault = (this && this.__importDefault) || function (mod) {
32
- return (mod && mod.__esModule) ? mod : { "default": mod };
33
- };
34
- var CallLogic_1;
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.CallLogic = void 0;
37
- const JSON5 = __importStar(require("json5"));
38
- const translator_1 = require("../translator");
39
- const Logic__1 = __importDefault(require("./Logic__"));
40
- const View__1 = __importDefault(require("./View__"));
41
- const utils_1 = require("../automate/engine/utils");
42
- const utils_2 = require("../utils");
43
- const Identifier__1 = __importDefault(require("./Identifier__"));
44
- const decorators_1 = require("../decorators");
45
- const uuid_1 = require("uuid");
46
- const BaseNode_1 = __importDefault(require("../common/BaseNode"));
47
- const TypeAnnotation__1 = __importDefault(require("./TypeAnnotation__"));
48
- const Argument__1 = __importDefault(require("./Argument__"));
49
- const LogicItem__1 = __importDefault(require("./LogicItem__"));
50
- /**
51
- * 调用逻辑
52
- */
53
- let CallLogic = class CallLogic extends LogicItem__1.default {
54
- static { CallLogic_1 = this; }
55
- /** 类名 */
56
- static ConceptName = 'CallLogic';
57
- /**
58
- * 唯一标识
59
- */
60
- uuid = (0, uuid_1.v4)().replace(/-/g, '');
61
- /**
62
- * 产品概念
63
- */
64
- concept;
65
- /**
66
- * 调用逻辑标题
67
- */
68
- label = '调用逻辑';
69
- /**
70
- * calleeNamespace
71
- */
72
- // @ts-ignore
73
- calleeNamespace;
74
- /**
75
- * calleeName
76
- */
77
- // @ts-ignore
78
- calleeName;
79
- /**
80
- * shortcut
81
- */
82
- // @ts-ignore
83
- shortcut;
84
- /**
85
- * handleError
86
- */
87
- // @ts-ignore
88
- handleError;
89
- /**
90
- * 类型参数
91
- */
92
- typeArguments = null;
93
- /**
94
- * 实际参数
95
- */
96
- arguments = [];
97
- /**
98
- * 验证规则
99
- */
100
- // @ts-ignore
101
- validation;
102
- /**
103
- * 是否被折叠
104
- */
105
- // @ts-ignore
106
- isAdvancedSettingFolded;
107
- /**
108
- * @param source 需要合并的部分参数
109
- */
110
- constructor(source) {
111
- source = Object.assign({}, CallLogic_1.getDefaultOptions(), source);
112
- super(source);
113
- super.subConstructor(source);
114
- }
115
- static from(source, parentNode, parentKey) {
116
- return super.from(source, parentNode, parentKey);
117
- }
118
- /**
119
- * 设置验证规则
120
- */
121
- setValidation(validation) {
122
- validation._delete();
123
- const relationOptions = { parentNode: this, parentKey: 'validation' };
124
- Object.assign(validation, relationOptions);
125
- const object = {
126
- validation,
127
- };
128
- this.update({
129
- ...object,
130
- });
131
- }
132
- /**
133
- * 设置是否被折叠
134
- */
135
- setIsAdvancedSettingFolded(isAdvancedSettingFolded) {
136
- const object = {
137
- isAdvancedSettingFolded,
138
- };
139
- this.update({
140
- ...object,
141
- });
142
- }
143
- _insertTypeAnnotationAt(options, index) {
144
- const typeAnnotationOptions = {};
145
- const relationOptions = { parentNode: this, parentKey: 'typeArguments' };
146
- let typeAnnotation;
147
- if (options instanceof TypeAnnotation__1.default) {
148
- options.ensureDelete(); // 同一实例不支持多处存在
149
- typeAnnotation = options;
150
- Object.assign(typeAnnotation, relationOptions);
151
- }
152
- else {
153
- typeAnnotation = TypeAnnotation__1.default.from({
154
- ...typeAnnotationOptions,
155
- ...options,
156
- }, this, 'typeArguments');
157
- }
158
- this.typeArguments.splice(index, 0, typeAnnotation);
159
- return typeAnnotation;
160
- }
161
- insertTypeAnnotationAt(options, index) {
162
- const node = this._insertTypeAnnotationAt(options, index);
163
- node.create({
164
- index,
165
- parentNode: this,
166
- parentKey: 'typeArguments',
167
- });
168
- return node;
169
- }
170
- _addTypeAnnotation(options) {
171
- const index = this.typeArguments.length;
172
- return this._insertTypeAnnotationAt(options, index);
173
- }
174
- addTypeAnnotation(options) {
175
- const node = this._addTypeAnnotation(options);
176
- const index = this.typeArguments.indexOf(node);
177
- node.create({
178
- index,
179
- parentNode: this,
180
- parentKey: 'typeArguments',
181
- });
182
- return node;
183
- }
184
- _insertArgumentAt(options, index) {
185
- const argumentOptions = {};
186
- const relationOptions = { parentNode: this, parentKey: 'arguments' };
187
- let argument;
188
- if (options instanceof Argument__1.default) {
189
- options.ensureDelete(); // 同一实例不支持多处存在
190
- argument = options;
191
- Object.assign(argument, relationOptions);
192
- }
193
- else {
194
- argument = Argument__1.default.from({
195
- ...argumentOptions,
196
- ...options,
197
- }, this, 'arguments');
198
- }
199
- this.arguments.splice(index, 0, argument);
200
- return argument;
201
- }
202
- insertArgumentAt(options, index) {
203
- const node = this._insertArgumentAt(options, index);
204
- node.create({
205
- index,
206
- parentNode: this,
207
- parentKey: 'arguments',
208
- });
209
- return node;
210
- }
211
- _addArgument(options) {
212
- const index = this.arguments.length;
213
- return this._insertArgumentAt(options, index);
214
- }
215
- addArgument(options) {
216
- const node = this._addArgument(options);
217
- const index = this.arguments.indexOf(node);
218
- node.create({
219
- index,
220
- parentNode: this,
221
- parentKey: 'arguments',
222
- });
223
- return node;
224
- }
225
- removeTypeAnnotation(options) {
226
- let typeAnnotation = options;
227
- return typeAnnotation.delete();
228
- }
229
- __removeTypeAnnotation(typeAnnotation) {
230
- const parentKey = typeAnnotation.parentKey;
231
- const params = {
232
- parentNode: this,
233
- parentKey,
234
- index: -1,
235
- object: null,
236
- oldObject: typeAnnotation,
237
- };
238
- if (parentKey) {
239
- params.parentKey = parentKey;
240
- // @ts-ignore
241
- const t = this.__v_raw || this;
242
- // @ts-ignore
243
- const n = typeAnnotation.__v_raw || typeAnnotation;
244
- if (Array.isArray(t[parentKey])) {
245
- const index = t[parentKey].indexOf(n);
246
- ~index && this[parentKey].splice(index, 1);
247
- params.index = index;
248
- }
249
- else if (t[parentKey] === n) {
250
- params.index = 0;
251
- this[parentKey] = undefined;
252
- }
253
- }
254
- return params;
255
- }
256
- removeArgument(options) {
257
- let argument = options;
258
- return argument.delete();
259
- }
260
- __removeLogicItem(logicItem) {
261
- const parentKey = logicItem.parentKey;
262
- const params = {
263
- parentNode: this,
264
- parentKey,
265
- index: -1,
266
- object: null,
267
- oldObject: logicItem,
268
- };
269
- if (parentKey) {
270
- params.parentKey = parentKey;
271
- // @ts-ignore
272
- const t = this.__v_raw || this;
273
- // @ts-ignore
274
- const n = logicItem.__v_raw || logicItem;
275
- if (Array.isArray(t[parentKey])) {
276
- const index = t[parentKey].indexOf(n);
277
- ~index && this[parentKey].splice(index, 1);
278
- params.index = index;
279
- }
280
- else if (t[parentKey] === n) {
281
- params.index = 0;
282
- this[parentKey] = undefined;
283
- }
284
- }
285
- return params;
286
- }
287
- removeValidation(options) {
288
- let validation;
289
- if (typeof options === 'string') {
290
- validation = this.validation;
291
- if (!validation) {
292
- throw new Error('找不到元素绑定属性 ' + options);
293
- }
294
- }
295
- else {
296
- validation = options;
297
- }
298
- return validation.delete();
299
- }
300
- __removeBindAttribute(bindAttribute) {
301
- const parentKey = bindAttribute.parentKey;
302
- const params = {
303
- parentNode: this,
304
- parentKey,
305
- index: -1,
306
- object: null,
307
- oldObject: bindAttribute,
308
- };
309
- if (parentKey) {
310
- params.parentKey = parentKey;
311
- // @ts-ignore
312
- const t = this.__v_raw || this;
313
- // @ts-ignore
314
- const n = bindAttribute.__v_raw || bindAttribute;
315
- if (Array.isArray(t[parentKey])) {
316
- const index = t[parentKey].indexOf(n);
317
- ~index && this[parentKey].splice(index, 1);
318
- params.index = index;
319
- }
320
- else if (t[parentKey] === n) {
321
- params.index = 0;
322
- this[parentKey] = undefined;
323
- }
324
- }
325
- return params;
326
- }
327
- //================================================================================
328
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
329
- // 自动生成的代码已结束。下面可以手动编写。
330
- //================================================================================
331
- get tsCalleeNamespace() {
332
- if (this.calleeNamespace) {
333
- let tsCalleeNamespace = this.calleeNamespace;
334
- tsCalleeNamespace = tsCalleeNamespace.replace(/\.[0-9]/g, (m) => m.replace('.', '.$'));
335
- tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
336
- return tsCalleeNamespace;
337
- }
338
- return '';
339
- }
340
- // 用于logic回填
341
- get calleewholeKey() {
342
- if (!this.calleeNamespace && this.calleeName && this.view) {
343
- // 页面逻辑单独处理
344
- return `${this.view.getNamespace()}.${this.view.name}.logics.${this.calleeName}`;
345
- }
346
- // "app.logics"
347
- return `${this.calleeNamespace}.${this.calleeName}`;
348
- }
349
- get calleeKey() {
350
- const { tsCalleeNamespace } = this;
351
- const { calleeName } = this;
352
- if (!tsCalleeNamespace) {
353
- return calleeName ? `${calleeName}` : '__IDENTIFIER__';
354
- }
355
- // elements单独处理相对路径,和后缀的问题
356
- if (tsCalleeNamespace.startsWith('elements') && tsCalleeNamespace.endsWith('logics')) {
357
- const methodName = tsCalleeNamespace.substring(0, tsCalleeNamespace.length - '.logics'.length);
358
- return `__${methodName}.${calleeName}`;
359
- }
360
- return calleeName ? `${tsCalleeNamespace}.${calleeName}` : '__IDENTIFIER__';
361
- }
362
- /**
363
- * 设置argment 触发别的地方的更新
364
- */
365
- setArgumentName({ argument }) {
366
- // argument.setKeyword(newKeyword);
367
- // this.arguments = argument;
368
- }
369
- /**
370
- * 设置setCalleeName
371
- */
372
- setCalleeName(calleeName) {
373
- const object = {
374
- calleeName,
375
- };
376
- this.update({
377
- ...object,
378
- });
379
- }
380
- /**
381
- * 设置calleeNamespace
382
- */
383
- setCalleeNamespace(calleeNamespace) {
384
- const object = {
385
- calleeNamespace,
386
- };
387
- this.update({
388
- ...object,
389
- });
390
- }
391
- /**
392
- * 设置 handleError
393
- */
394
- setHandleError(handleError) {
395
- const object = {
396
- handleError,
397
- };
398
- this.update({
399
- ...object,
400
- });
401
- }
402
- _setCallee(logic) {
403
- this.calleeNamespace = logic.getNamespace();
404
- if (logic.parentNode instanceof View__1.default) {
405
- this.calleeNamespace = '';
406
- }
407
- this.calleeName = logic.name;
408
- this.arguments = [];
409
- logic.params.forEach((param) => {
410
- const argument = this._addArgument({
411
- keyword: param.name,
412
- });
413
- if (param.defaultExpression) {
414
- const exp = BaseNode_1.default.from(param.defaultExpression.toJSON());
415
- argument.setExpression(exp);
416
- }
417
- });
418
- if (logic.typeParams) {
419
- this.typeArguments = [];
420
- logic.typeParams.forEach(() => {
421
- this._addTypeAnnotation({});
422
- });
423
- }
424
- }
425
- setCallee(logic) {
426
- let calleeNamespace = logic?.getNamespace() || '';
427
- if (logic.parentNode instanceof View__1.default) {
428
- calleeNamespace = '';
429
- }
430
- const calleeName = logic.name;
431
- const params = logic?.params?.map((param) => {
432
- const relationOptions = { parentNode: this, parentKey: 'arguments' };
433
- const argument = Argument__1.default.from({
434
- keyword: param.name,
435
- expression: param.isFunction ? new Identifier__1.default() : param.defaultExpression,
436
- }, this);
437
- Object.assign(argument, relationOptions);
438
- return argument;
439
- });
440
- let typeArguments = null;
441
- if (logic.typeParams) {
442
- typeArguments = logic.typeParams.map(() => {
443
- const relationOptions = { parentNode: this, parentKey: 'typeArguments' };
444
- const typeArgu = new TypeAnnotation__1.default();
445
- Object.assign(typeArgu, relationOptions);
446
- return typeArgu;
447
- });
448
- }
449
- // 如果打开了处理error的开关 或者是 依赖库的逻辑引用,而且类型中携带了Error的
450
- let handleError = false;
451
- if (calleeNamespace?.startsWith('extensions') && Logic__1.default.checkLogicReturnTypeHasError(logic)) {
452
- handleError = true;
453
- }
454
- if (this.app) {
455
- this.app.emit('collect:start', {
456
- actionMsg: `切换调用逻辑`,
457
- });
458
- const { parentNode } = this;
459
- this.update({
460
- calleeNamespace,
461
- calleeName,
462
- arguments: params,
463
- typeArguments,
464
- folded: false,
465
- handleError,
466
- });
467
- if (parentNode.concept === 'MemberExpression') {
468
- const topNode = parentNode.firstMemberExpressionNode();
469
- topNode.replaceNode(this);
470
- }
471
- this.app.emit('collect:end');
472
- }
473
- else {
474
- this.update({
475
- calleeNamespace,
476
- calleeName,
477
- arguments: params,
478
- typeArguments,
479
- folded: false,
480
- handleError,
481
- });
482
- }
483
- }
484
- addCalleeArg(logic) {
485
- const newArgs = this.arguments.map((argument) => Argument__1.default.from({
486
- ...argument,
487
- }, this));
488
- const relationOptions = { parentNode: this, parentKey: 'arguments' };
489
- /**
490
- * 当前两个参数对应上,添加的时候,logic会比参数位内容多,就添加一个 argment
491
- */
492
- if (logic.params.length >= newArgs.length) {
493
- logic.params.forEach((param, index) => {
494
- const arg = newArgs[index];
495
- if (!arg) {
496
- const newParam = Argument__1.default.from({
497
- keyword: param.name,
498
- }, this);
499
- Object.assign(newParam, relationOptions);
500
- newArgs.push(newParam);
501
- }
502
- else {
503
- arg.keyword = param.name;
504
- }
505
- });
506
- }
507
- else {
508
- /**
509
- * 当前calllogic上数量比logic参数还多,他就需要找一个arg使他变成可用的参数
510
- */
511
- newArgs.forEach((arg, index) => {
512
- const param = logic.params[index];
513
- if (param) {
514
- arg.keyword = param.name;
515
- }
516
- });
517
- }
518
- this.update({
519
- arguments: newArgs,
520
- });
521
- }
522
- deleteCalleeArg(argIndex) {
523
- /**
524
- * 传递过下标来,然后直接移动到最后结束
525
- * 如果原来就是最后一个位置就不移动了
526
- */
527
- if (typeof argIndex === 'number') {
528
- if (!this.arguments[argIndex]?.expression) {
529
- // 如果本身没有值就直接删除
530
- return this.arguments[argIndex]?.delete();
531
- }
532
- if (argIndex !== this.arguments.length - 1) {
533
- this.arguments[argIndex]?.moveNode({
534
- sourceNode: this.arguments[this.arguments.length - 1],
535
- position: 'insertAfter',
536
- });
537
- }
538
- }
539
- }
540
- toVue(options) {
541
- let code = '';
542
- if (this.calleeNamespace === 'nasl.browser' ||
543
- this.calleeNamespace === 'nasl.auth' ||
544
- this.calleeNamespace === 'nasl.configuration' ||
545
- this.calleeNamespace === 'nasl.process') {
546
- code += '$global.';
547
- }
548
- const completeArguments = this.completeArguments;
549
- if (this.concept === 'CallLogic' && this.getAncestor('BindAttribute')?.name === 'data-source') {
550
- if (this.calleeNamespace) {
551
- const currentElement = this.getAncestor('ViewElement');
552
- code += `__${currentElement.name}_dataSourceLoad`;
553
- return code;
554
- }
555
- else {
556
- // 前端逻辑的calleeNamespace一直为空字符串
557
- code += this.calleeName;
558
- return code;
559
- }
560
- }
561
- else {
562
- code += this.calleeName;
563
- code += '(';
564
- completeArguments.forEach((arg, index) => {
565
- code += arg?.toVue(options);
566
- if (index !== completeArguments.length - 1)
567
- code += ', ';
568
- });
569
- }
570
- code += ')}';
571
- return code;
572
- }
573
- toUI(state) {
574
- let code = this.calleeName;
575
- code += '(';
576
- if (this.arguments?.length) {
577
- this.arguments.forEach((arg, index) => {
578
- code += arg?.toUI();
579
- if (index !== this.arguments?.length - 1)
580
- code += ', ';
581
- });
582
- }
583
- code += ')';
584
- if (this.concept === 'CallLogic' && this.getAncestor('BindAttribute')?.name === 'data-source') {
585
- return this.calleeName;
586
- }
587
- return code;
588
- }
589
- // 是否属于页面逻辑
590
- get isViewLogic() {
591
- // 页面逻辑
592
- let flag = true;
593
- const { calleeNamespace } = this;
594
- // calleeNamespace不存在,一定是页面逻辑
595
- if (calleeNamespace) {
596
- const namespaceArr = calleeNamespace.split('.');
597
- const start = namespaceArr[0];
598
- const isFrontendLibrary = ~calleeNamespace.indexOf('frontends');
599
- if (start === 'app' || (start === 'extensions' && !isFrontendLibrary)) {
600
- const keywordViewsIndex = (0, utils_2.findConceptKeyWordIndexFromNamespace)(this.calleeNamespace, 'views');
601
- if (keywordViewsIndex === -1) {
602
- flag = false;
603
- }
604
- }
605
- }
606
- return flag;
607
- }
608
- // 是否属于组件逻辑
609
- get isComponentLogic() {
610
- // 组件逻辑
611
- let flag = false;
612
- const { calleeNamespace } = this;
613
- // calleeNamespace不存在,一定是页面逻辑
614
- if (calleeNamespace) {
615
- const namespaceArr = calleeNamespace.split('.');
616
- const start = namespaceArr[0];
617
- if (start === 'elements' && namespaceArr.length === 3 && namespaceArr[2] === 'logics') {
618
- flag = true;
619
- }
620
- }
621
- return flag;
622
- }
623
- toJS(state) {
624
- let code = '';
625
- code += 'await (';
626
- let refName = '';
627
- let extensionName = '';
628
- const { calleeName, calleeNamespace, isComponentLogic, completeArguments, isViewLogic, typeArguments } = this;
629
- const isShowArgument = (arg) => {
630
- return arg.expression;
631
- };
632
- const keywordProcessIndex = (0, utils_2.findConceptKeyWordIndexFromNamespace)(calleeNamespace, 'processes');
633
- const isProcessLogic = keywordProcessIndex !== -1;
634
- const isFrontendLibrary = calleeNamespace.startsWith('extensions') && calleeNamespace.indexOf('frontends');
635
- // calleeNamespace不存在,一定是页面逻辑
636
- if (calleeNamespace) {
637
- const namespaceArr = calleeNamespace.split('.');
638
- if (isComponentLogic) {
639
- const componentName = namespaceArr[1];
640
- const viewElement = this.view?.findElementByName(componentName);
641
- refName = viewElement?.refName ?? componentName;
642
- }
643
- if (isFrontendLibrary) {
644
- extensionName = namespaceArr[1];
645
- }
646
- }
647
- // 全局逻辑
648
- if (!isViewLogic) {
649
- const logic = this.getCallNode();
650
- const args = logic?.params || [];
651
- const keywordEntitiesIndex = (0, utils_2.findConceptKeyWordIndexFromNamespace)(this.calleeNamespace, 'entities');
652
- code += `this.$logics['${this.calleeNamespace ? `${this.calleeNamespace}.${this.calleeName}` : this.calleeName}']`;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __importDefault = (this && this.__importDefault) || function (mod) {
32
+ return (mod && mod.__esModule) ? mod : { "default": mod };
33
+ };
34
+ var CallLogic_1;
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.CallLogic = void 0;
37
+ const JSON5 = __importStar(require("json5"));
38
+ const translator_1 = require("../translator");
39
+ const Logic__1 = __importDefault(require("./Logic__"));
40
+ const View__1 = __importDefault(require("./View__"));
41
+ const utils_1 = require("../automate/engine/utils");
42
+ const utils_2 = require("../utils");
43
+ const Identifier__1 = __importDefault(require("./Identifier__"));
44
+ const decorators_1 = require("../decorators");
45
+ const uuid_1 = require("uuid");
46
+ const BaseNode_1 = __importDefault(require("../common/BaseNode"));
47
+ const TypeAnnotation__1 = __importDefault(require("./TypeAnnotation__"));
48
+ const Argument__1 = __importDefault(require("./Argument__"));
49
+ const LogicItem__1 = __importDefault(require("./LogicItem__"));
50
+ /**
51
+ * 调用逻辑
52
+ */
53
+ let CallLogic = CallLogic_1 =
54
+ // @ts-ignore
55
+ class CallLogic extends LogicItem__1.default {
56
+ /** 类名 */
57
+ static ConceptName = 'CallLogic';
58
+ /** 继承链 */
59
+ static inheritanceChain = ['LogicItem', 'BaseNode'];
60
+ /**
61
+ * 唯一标识
62
+ */
63
+ uuid = (0, uuid_1.v4)().replace(/-/g, '');
64
+ /**
65
+ * 产品概念
66
+ */
67
+ concept;
68
+ /**
69
+ * 调用逻辑标题
70
+ */
71
+ label = '调用逻辑';
72
+ /**
73
+ * calleeNamespace
74
+ */
75
+ // @ts-ignore
76
+ calleeNamespace;
77
+ /**
78
+ * calleeName
79
+ */
80
+ // @ts-ignore
81
+ calleeName;
82
+ /**
83
+ * shortcut
84
+ */
85
+ // @ts-ignore
86
+ shortcut;
87
+ /**
88
+ * handleError
89
+ */
90
+ // @ts-ignore
91
+ handleError;
92
+ /**
93
+ * 类型参数
94
+ */
95
+ typeArguments = null;
96
+ /**
97
+ * 实际参数
98
+ */
99
+ arguments = [];
100
+ /**
101
+ * 验证规则
102
+ */
103
+ // @ts-ignore
104
+ validation;
105
+ /**
106
+ * 是否被折叠
107
+ */
108
+ // @ts-ignore
109
+ isAdvancedSettingFolded;
110
+ /**
111
+ * @param source 需要合并的部分参数
112
+ */
113
+ constructor(source) {
114
+ source = Object.assign({}, CallLogic_1.getDefaultOptions(), source);
115
+ super(source);
116
+ super.subConstructor(source);
117
+ }
118
+ static from(source, parentNode, parentKey) {
119
+ return super.from(source, parentNode, parentKey);
120
+ }
121
+ /**
122
+ * 设置验证规则
123
+ */
124
+ setValidation(validation) {
125
+ validation._delete();
126
+ const relationOptions = { parentNode: this, parentKey: 'validation' };
127
+ Object.assign(validation, relationOptions);
128
+ const object = {
129
+ validation,
130
+ };
131
+ this.update({
132
+ ...object,
133
+ });
134
+ }
135
+ /**
136
+ * 设置是否被折叠
137
+ */
138
+ setIsAdvancedSettingFolded(isAdvancedSettingFolded) {
139
+ const object = {
140
+ isAdvancedSettingFolded,
141
+ };
142
+ this.update({
143
+ ...object,
144
+ });
145
+ }
146
+ _insertTypeAnnotationAt(options, index) {
147
+ const typeAnnotationOptions = {};
148
+ const relationOptions = { parentNode: this, parentKey: 'typeArguments' };
149
+ let typeAnnotation;
150
+ if (options instanceof TypeAnnotation__1.default) {
151
+ options.ensureDelete(); // 同一实例不支持多处存在
152
+ typeAnnotation = options;
153
+ Object.assign(typeAnnotation, relationOptions);
154
+ }
155
+ else {
156
+ typeAnnotation = TypeAnnotation__1.default.from({
157
+ ...typeAnnotationOptions,
158
+ ...options,
159
+ }, this, 'typeArguments');
160
+ }
161
+ this.typeArguments.splice(index, 0, typeAnnotation);
162
+ return typeAnnotation;
163
+ }
164
+ insertTypeAnnotationAt(options, index) {
165
+ const node = this._insertTypeAnnotationAt(options, index);
166
+ node.create({
167
+ index,
168
+ parentNode: this,
169
+ parentKey: 'typeArguments',
170
+ });
171
+ return node;
172
+ }
173
+ _addTypeAnnotation(options) {
174
+ const index = this.typeArguments.length;
175
+ return this._insertTypeAnnotationAt(options, index);
176
+ }
177
+ addTypeAnnotation(options) {
178
+ const node = this._addTypeAnnotation(options);
179
+ const index = this.typeArguments.indexOf(node);
180
+ node.create({
181
+ index,
182
+ parentNode: this,
183
+ parentKey: 'typeArguments',
184
+ });
185
+ return node;
186
+ }
187
+ _insertArgumentAt(options, index) {
188
+ const argumentOptions = {};
189
+ const relationOptions = { parentNode: this, parentKey: 'arguments' };
190
+ let argument;
191
+ if (options instanceof Argument__1.default) {
192
+ options.ensureDelete(); // 同一实例不支持多处存在
193
+ argument = options;
194
+ Object.assign(argument, relationOptions);
195
+ }
196
+ else {
197
+ argument = Argument__1.default.from({
198
+ ...argumentOptions,
199
+ ...options,
200
+ }, this, 'arguments');
201
+ }
202
+ this.arguments.splice(index, 0, argument);
203
+ return argument;
204
+ }
205
+ insertArgumentAt(options, index) {
206
+ const node = this._insertArgumentAt(options, index);
207
+ node.create({
208
+ index,
209
+ parentNode: this,
210
+ parentKey: 'arguments',
211
+ });
212
+ return node;
213
+ }
214
+ _addArgument(options) {
215
+ const index = this.arguments.length;
216
+ return this._insertArgumentAt(options, index);
217
+ }
218
+ addArgument(options) {
219
+ const node = this._addArgument(options);
220
+ const index = this.arguments.indexOf(node);
221
+ node.create({
222
+ index,
223
+ parentNode: this,
224
+ parentKey: 'arguments',
225
+ });
226
+ return node;
227
+ }
228
+ removeTypeAnnotation(options) {
229
+ let typeAnnotation = options;
230
+ return typeAnnotation.delete();
231
+ }
232
+ __removeTypeAnnotation(typeAnnotation) {
233
+ const parentKey = typeAnnotation.parentKey;
234
+ const params = {
235
+ parentNode: this,
236
+ parentKey,
237
+ index: -1,
238
+ object: null,
239
+ oldObject: typeAnnotation,
240
+ };
241
+ if (parentKey) {
242
+ params.parentKey = parentKey;
243
+ // @ts-ignore
244
+ const t = this.__v_raw || this;
245
+ // @ts-ignore
246
+ const n = typeAnnotation.__v_raw || typeAnnotation;
247
+ if (Array.isArray(t[parentKey])) {
248
+ // @ts-ignore
249
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
250
+ ~index && this[parentKey].splice(index, 1);
251
+ params.index = index;
252
+ }
253
+ else if (t[parentKey] === n) {
254
+ params.index = 0;
255
+ this[parentKey] = undefined;
256
+ }
257
+ }
258
+ return params;
259
+ }
260
+ removeArgument(options) {
261
+ let argument = options;
262
+ return argument.delete();
263
+ }
264
+ __removeLogicItem(logicItem) {
265
+ const parentKey = logicItem.parentKey;
266
+ const params = {
267
+ parentNode: this,
268
+ parentKey,
269
+ index: -1,
270
+ object: null,
271
+ oldObject: logicItem,
272
+ };
273
+ if (parentKey) {
274
+ params.parentKey = parentKey;
275
+ // @ts-ignore
276
+ const t = this.__v_raw || this;
277
+ // @ts-ignore
278
+ const n = logicItem.__v_raw || logicItem;
279
+ if (Array.isArray(t[parentKey])) {
280
+ // @ts-ignore
281
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
282
+ ~index && this[parentKey].splice(index, 1);
283
+ params.index = index;
284
+ }
285
+ else if (t[parentKey] === n) {
286
+ params.index = 0;
287
+ this[parentKey] = undefined;
288
+ }
289
+ }
290
+ return params;
291
+ }
292
+ removeValidation(options) {
293
+ let validation;
294
+ if (typeof options === 'string') {
295
+ validation = this.validation;
296
+ if (!validation) {
297
+ throw new Error('找不到元素绑定属性 ' + options);
298
+ }
299
+ }
300
+ else {
301
+ validation = options;
302
+ }
303
+ return validation.delete();
304
+ }
305
+ __removeBindAttribute(bindAttribute) {
306
+ const parentKey = bindAttribute.parentKey;
307
+ const params = {
308
+ parentNode: this,
309
+ parentKey,
310
+ index: -1,
311
+ object: null,
312
+ oldObject: bindAttribute,
313
+ };
314
+ if (parentKey) {
315
+ params.parentKey = parentKey;
316
+ // @ts-ignore
317
+ const t = this.__v_raw || this;
318
+ // @ts-ignore
319
+ const n = bindAttribute.__v_raw || bindAttribute;
320
+ if (Array.isArray(t[parentKey])) {
321
+ // @ts-ignore
322
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
323
+ ~index && this[parentKey].splice(index, 1);
324
+ params.index = index;
325
+ }
326
+ else if (t[parentKey] === n) {
327
+ params.index = 0;
328
+ this[parentKey] = undefined;
329
+ }
330
+ }
331
+ return params;
332
+ }
333
+ //================================================================================
334
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
335
+ // 自动生成的代码已结束。下面可以手动编写。
336
+ //================================================================================
337
+ get tsCalleeNamespace() {
338
+ if (this.calleeNamespace) {
339
+ let tsCalleeNamespace = this.calleeNamespace;
340
+ tsCalleeNamespace = tsCalleeNamespace.replace(/\.[0-9]/g, (m) => m.replace('.', '.$'));
341
+ tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
342
+ return tsCalleeNamespace;
343
+ }
344
+ return '';
345
+ }
346
+ // 用于logic回填
347
+ get calleewholeKey() {
348
+ if (!this.calleeNamespace && this.calleeName && this.view) {
349
+ // 页面逻辑单独处理
350
+ return `${this.view.getNamespace()}.${this.view.name}.logics.${this.calleeName}`;
351
+ }
352
+ // "app.logics"
353
+ return `${this.calleeNamespace}.${this.calleeName}`;
354
+ }
355
+ get calleeKey() {
356
+ const { tsCalleeNamespace } = this;
357
+ const { calleeName } = this;
358
+ if (!tsCalleeNamespace) {
359
+ return calleeName ? `${calleeName}` : '__IDENTIFIER__';
360
+ }
361
+ // elements单独处理相对路径,和后缀的问题
362
+ if (tsCalleeNamespace.startsWith('elements') && tsCalleeNamespace.endsWith('logics')) {
363
+ const methodName = tsCalleeNamespace.substring(0, tsCalleeNamespace.length - '.logics'.length);
364
+ return `__${methodName}.${calleeName}`;
365
+ }
366
+ return calleeName ? `${tsCalleeNamespace}.${calleeName}` : '__IDENTIFIER__';
367
+ }
368
+ /**
369
+ * 设置argment 触发别的地方的更新
370
+ */
371
+ setArgumentName({ argument }) {
372
+ // argument.setKeyword(newKeyword);
373
+ // this.arguments = argument;
374
+ }
375
+ /**
376
+ * 设置setCalleeName
377
+ */
378
+ setCalleeName(calleeName) {
379
+ const object = {
380
+ calleeName,
381
+ };
382
+ this.update({
383
+ ...object,
384
+ });
385
+ }
386
+ /**
387
+ * 设置calleeNamespace
388
+ */
389
+ setCalleeNamespace(calleeNamespace) {
390
+ const object = {
391
+ calleeNamespace,
392
+ };
393
+ this.update({
394
+ ...object,
395
+ });
396
+ }
397
+ /**
398
+ * 设置 handleError
399
+ */
400
+ setHandleError(handleError) {
401
+ const object = {
402
+ handleError,
403
+ };
404
+ this.update({
405
+ ...object,
406
+ });
407
+ }
408
+ _setCallee(logic) {
409
+ this.calleeNamespace = logic.getNamespace();
410
+ if (logic.parentNode instanceof View__1.default) {
411
+ this.calleeNamespace = '';
412
+ }
413
+ this.calleeName = logic.name;
414
+ this.arguments = [];
415
+ logic.params.forEach((param) => {
416
+ const argument = this._addArgument({
417
+ keyword: param.name,
418
+ });
419
+ if (param.defaultExpression) {
420
+ const exp = BaseNode_1.default.from(param.defaultExpression.toJSON());
421
+ argument.setExpression(exp);
422
+ }
423
+ });
424
+ if (logic.typeParams) {
425
+ this.typeArguments = [];
426
+ logic.typeParams.forEach(() => {
427
+ this._addTypeAnnotation({});
428
+ });
429
+ }
430
+ }
431
+ setCallee(logic) {
432
+ let calleeNamespace = logic?.getNamespace() || '';
433
+ if (logic.parentNode instanceof View__1.default) {
434
+ calleeNamespace = '';
435
+ }
436
+ const calleeName = logic.name;
437
+ const params = logic?.params?.map((param) => {
438
+ const relationOptions = { parentNode: this, parentKey: 'arguments' };
439
+ const argument = Argument__1.default.from({
440
+ keyword: param.name,
441
+ expression: param.isFunction ? new Identifier__1.default() : param.defaultExpression,
442
+ }, this);
443
+ Object.assign(argument, relationOptions);
444
+ return argument;
445
+ });
446
+ let typeArguments = null;
447
+ if (logic.typeParams) {
448
+ typeArguments = logic.typeParams.map(() => {
449
+ const relationOptions = { parentNode: this, parentKey: 'typeArguments' };
450
+ const typeArgu = new TypeAnnotation__1.default();
451
+ Object.assign(typeArgu, relationOptions);
452
+ return typeArgu;
453
+ });
454
+ }
455
+ // 如果打开了处理error的开关 或者是 依赖库的逻辑引用,而且类型中携带了Error的
456
+ let handleError = false;
457
+ if (calleeNamespace?.startsWith('extensions') && Logic__1.default.checkLogicReturnTypeHasError(logic)) {
458
+ handleError = true;
459
+ }
460
+ if (this.app) {
461
+ this.app.emit('collect:start', {
462
+ actionMsg: `切换调用逻辑`,
463
+ });
464
+ const { parentNode } = this;
465
+ this.update({
466
+ calleeNamespace,
467
+ calleeName,
468
+ arguments: params,
469
+ typeArguments,
470
+ folded: false,
471
+ handleError,
472
+ });
473
+ if (parentNode.concept === 'MemberExpression') {
474
+ const topNode = parentNode.firstMemberExpressionNode();
475
+ topNode.replaceNode(this);
476
+ }
477
+ this.app.emit('collect:end');
478
+ }
479
+ else {
480
+ this.update({
481
+ calleeNamespace,
482
+ calleeName,
483
+ arguments: params,
484
+ typeArguments,
485
+ folded: false,
486
+ handleError,
487
+ });
488
+ }
489
+ }
490
+ addCalleeArg(logic) {
491
+ const newArgs = this.arguments.map((argument) => Argument__1.default.from({
492
+ ...argument,
493
+ }, this));
494
+ const relationOptions = { parentNode: this, parentKey: 'arguments' };
495
+ /**
496
+ * 当前两个参数对应上,添加的时候,logic会比参数位内容多,就添加一个 argment
497
+ */
498
+ if (logic.params.length >= newArgs.length) {
499
+ logic.params.forEach((param, index) => {
500
+ const arg = newArgs[index];
501
+ if (!arg) {
502
+ const newParam = Argument__1.default.from({
503
+ keyword: param.name,
504
+ }, this);
505
+ Object.assign(newParam, relationOptions);
506
+ newArgs.push(newParam);
507
+ }
508
+ else {
509
+ arg.keyword = param.name;
510
+ }
511
+ });
512
+ }
513
+ else {
514
+ /**
515
+ * 当前calllogic上数量比logic参数还多,他就需要找一个arg使他变成可用的参数
516
+ */
517
+ newArgs.forEach((arg, index) => {
518
+ const param = logic.params[index];
519
+ if (param) {
520
+ arg.keyword = param.name;
521
+ }
522
+ });
523
+ }
524
+ this.update({
525
+ arguments: newArgs,
526
+ });
527
+ }
528
+ deleteCalleeArg(argIndex) {
529
+ /**
530
+ * 传递过下标来,然后直接移动到最后结束
531
+ * 如果原来就是最后一个位置就不移动了
532
+ */
533
+ if (typeof argIndex === 'number') {
534
+ if (!this.arguments[argIndex]?.expression) {
535
+ // 如果本身没有值就直接删除
536
+ return this.arguments[argIndex]?.delete();
537
+ }
538
+ if (argIndex !== this.arguments.length - 1) {
539
+ this.arguments[argIndex]?.moveNode({
540
+ sourceNode: this.arguments[this.arguments.length - 1],
541
+ position: 'insertAfter',
542
+ });
543
+ }
544
+ }
545
+ }
546
+ toVue(options) {
547
+ let code = '';
548
+ if (this.calleeNamespace === 'nasl.browser' ||
549
+ this.calleeNamespace === 'nasl.auth' ||
550
+ this.calleeNamespace === 'nasl.configuration' ||
551
+ this.calleeNamespace === 'nasl.process') {
552
+ code += '$global.';
553
+ }
554
+ const { completeArguments } = this;
555
+ if (this.concept === 'CallLogic' && this.getAncestor('BindAttribute')?.name === 'data-source') {
556
+ if (this.calleeNamespace) {
557
+ const currentElement = this.getAncestor('ViewElement');
558
+ code += `__${currentElement.name}_dataSourceLoad`;
559
+ return code;
560
+ }
561
+ else {
562
+ // 前端逻辑的calleeNamespace一直为空字符串
563
+ code += this.calleeName;
564
+ return code;
565
+ }
566
+ }
567
+ else {
568
+ code += this.calleeName;
569
+ code += '(';
570
+ completeArguments.forEach((arg, index) => {
571
+ code += arg?.toVue(options);
572
+ if (index !== completeArguments.length - 1)
573
+ code += ', ';
574
+ });
575
+ }
576
+ code += ')';
577
+ return code;
578
+ }
579
+ toUI(state, hideDetails) {
580
+ let code = this.calleeName;
581
+ code += '(';
582
+ if (this.arguments?.length && !hideDetails) {
583
+ this.arguments.forEach((arg, index) => {
584
+ code += arg?.toUI();
585
+ if (index !== this.arguments?.length - 1)
586
+ code += ', ';
587
+ });
588
+ }
589
+ code += ')';
590
+ if (this.concept === 'CallLogic' && this.getAncestor('BindAttribute')?.name === 'data-source') {
591
+ return this.calleeName;
592
+ }
593
+ return code;
594
+ }
595
+ // 是否属于页面逻辑
596
+ get isViewLogic() {
597
+ // 页面逻辑
598
+ let flag = true;
599
+ const { calleeNamespace } = this;
600
+ // calleeNamespace不存在,一定是页面逻辑
601
+ if (calleeNamespace) {
602
+ const namespaceArr = calleeNamespace.split('.');
603
+ const start = namespaceArr[0];
604
+ const isFrontendLibrary = ~calleeNamespace.indexOf('frontends');
605
+ if (start === 'app' || (start === 'extensions' && !isFrontendLibrary)) {
606
+ const keywordViewsIndex = (0, utils_2.findConceptKeyWordIndexFromNamespace)(this.calleeNamespace, 'views');
607
+ if (keywordViewsIndex === -1) {
608
+ flag = false;
609
+ }
610
+ }
611
+ }
612
+ return flag;
613
+ }
614
+ // 是否属于组件逻辑
615
+ get isComponentLogic() {
616
+ // 组件逻辑
617
+ let flag = false;
618
+ const { calleeNamespace } = this;
619
+ // calleeNamespace不存在,一定是页面逻辑
620
+ if (calleeNamespace) {
621
+ const namespaceArr = calleeNamespace.split('.');
622
+ const start = namespaceArr[0];
623
+ if (start === 'elements' && namespaceArr.length === 3 && namespaceArr[2] === 'logics') {
624
+ flag = true;
625
+ }
626
+ }
627
+ return flag;
628
+ }
629
+ toJS(state) {
630
+ let code = '';
631
+ code += 'await (';
632
+ let refName = '';
633
+ let extensionName = '';
634
+ const { calleeName, calleeNamespace, isComponentLogic, completeArguments, isViewLogic, typeArguments } = this;
635
+ const isShowArgument = (arg) => {
636
+ return arg.expression;
637
+ };
638
+ const keywordProcessIndex = (0, utils_2.findConceptKeyWordIndexFromNamespace)(calleeNamespace, 'processes');
639
+ const isProcessLogic = keywordProcessIndex !== -1;
640
+ const isFrontendLibrary = calleeNamespace.startsWith('extensions') && calleeNamespace.indexOf('frontends');
641
+ // calleeNamespace不存在,一定是页面逻辑
642
+ if (calleeNamespace) {
643
+ const namespaceArr = calleeNamespace.split('.');
644
+ if (isComponentLogic) {
645
+ const componentName = namespaceArr[1];
646
+ const viewElement = this.view?.findElementByName(componentName);
647
+ refName = viewElement?.refName ?? componentName;
648
+ }
649
+ if (isFrontendLibrary) {
650
+ extensionName = namespaceArr[1];
651
+ }
652
+ }
653
+ // 全局逻辑
654
+ if (!isViewLogic) {
655
+ const logic = this.getCallNode();
656
+ const args = logic?.params || [];
657
+ const keywordEntitiesIndex = (0, utils_2.findConceptKeyWordIndexFromNamespace)(this.calleeNamespace, 'entities');
658
+ code += `this.$logics['${this.calleeNamespace ? `${this.calleeNamespace}.${this.calleeName}` : this.calleeName}']`;
653
659
  code += `({
654
660
  config: {
655
661
  download: false,
656
662
  },
657
- query: {`;
658
- if (isProcessLogic) {
659
- const argsStr = args
660
- .map((arg, index) => {
661
- const actualArg = completeArguments[index];
662
- return {
663
- keyword: arg?.name,
664
- arg: actualArg,
665
- };
666
- })
667
- .filter((item) => isShowArgument(item.arg))
668
- .map((obj) => `\n${obj?.keyword}: ${obj?.arg?.toJS((0, translator_1.shiftState)(state, code))}`)
669
- .join(', ');
670
- code += argsStr;
671
- }
663
+ query: {`;
664
+ if (isProcessLogic) {
665
+ const argsStr = args
666
+ .map((arg, index) => {
667
+ const actualArg = completeArguments[index];
668
+ return {
669
+ keyword: arg?.name,
670
+ arg: actualArg,
671
+ };
672
+ })
673
+ .filter((item) => isShowArgument(item.arg))
674
+ .map((obj) => `\n${obj?.keyword}: ${obj?.arg?.toJS((0, translator_1.shiftState)(state, code))}`)
675
+ .join(', ');
676
+ code += argsStr;
677
+ }
672
678
  code += `},
673
679
  headers: {
674
680
  "lcap-calllogic-uuid": "${this.uuid}",
675
681
  },
676
- `;
677
- if (keywordEntitiesIndex !== -1) {
678
- let logicArgs = this.arguments;
679
- let breakBody = false;
680
- switch (calleeName) {
681
- case 'get':
682
- case 'delete': {
683
- logicArgs = [];
684
- code += `query: {`;
685
- const argsStr = args
686
- .map((arg, index) => {
687
- const actualArg = this.arguments?.[index];
688
- return {
689
- keyword: arg?.name,
690
- arg: actualArg,
691
- };
692
- })
693
- .map((obj) => `\n${obj?.keyword}: ${obj?.arg?.toJS((0, translator_1.shiftState)(state, code))}`)
694
- .join(', ');
695
- code += argsStr;
696
- code += `},\n`;
697
- break;
698
- }
699
- case 'update':
700
- case 'createOrUpdate':
701
- case 'batchUpdate': {
702
- code += `body: {\n`;
703
- const argsStr = logicArgs
704
- .map((arg) => {
705
- const name = arg.keyword === 'body' ? (this.calleeName === 'batchUpdate' ? 'entities' : 'entity') : arg.keyword;
706
- return `${name}: ${arg.expression.toJS((0, translator_1.shiftState)(state, code))}`;
707
- })
708
- .join(',\n');
709
- code += argsStr;
710
- code += `},\n`;
711
- logicArgs = [];
712
- breakBody = true;
713
- break;
714
- }
715
- case 'updateBy': {
716
- code += `body: {`;
717
- const argsStr = logicArgs
718
- .map((arg) => {
719
- const name = arg.keyword === 'body' ? 'entity' : arg.keyword;
720
- // filter回调函数
721
- if (arg.expression.returnExpression) {
722
- const argsStr = JSON.stringify(handleMember(arg.expression.returnExpression)).replace(/"__@@(.*?)@@__"/g, '$1');
682
+ `;
683
+ if (keywordEntitiesIndex !== -1) {
684
+ let logicArgs = this.arguments;
685
+ let breakBody = false;
686
+ switch (calleeName) {
687
+ case 'get':
688
+ case 'delete': {
689
+ logicArgs = [];
690
+ code += `query: {`;
691
+ const argsStr = args
692
+ .map((arg, index) => {
693
+ const actualArg = this.arguments?.[index];
694
+ return {
695
+ keyword: arg?.name,
696
+ arg: actualArg,
697
+ };
698
+ })
699
+ .map((obj) => `\n${obj?.keyword}: ${obj?.arg?.toJS((0, translator_1.shiftState)(state, code))}`)
700
+ .join(', ');
701
+ code += argsStr;
702
+ code += `},\n`;
703
+ break;
704
+ }
705
+ case 'update':
706
+ case 'createOrUpdate':
707
+ case 'batchUpdate': {
708
+ code += `body: {\n`;
709
+ const argsStr = logicArgs
710
+ .map((arg) => {
711
+ const name = arg.keyword === 'body' ? (this.calleeName === 'batchUpdate' ? 'entities' : 'entity') : arg.keyword;
712
+ return `${name}: ${arg.expression.toJS((0, translator_1.shiftState)(state, code))}`;
713
+ })
714
+ .join(',\n');
715
+ code += argsStr;
716
+ code += `},\n`;
717
+ logicArgs = [];
718
+ breakBody = true;
719
+ break;
720
+ }
721
+ case 'updateBy': {
722
+ code += `body: {`;
723
+ const argsStr = logicArgs
724
+ .map((arg) => {
725
+ const name = arg.keyword === 'body' ? 'entity' : arg.keyword;
726
+ // filter回调函数
727
+ if (arg.expression.returnExpression) {
728
+ const argsStr = JSON.stringify(handleMember(arg.expression.returnExpression)).replace(/"__@@(.*?)@@__"/g, '$1');
723
729
  return `${name}: {
724
730
  concept: 'Function',
725
731
  name: 'filter',
726
732
  returnExpression: this.$resolveRequestData(${argsStr})
727
- }`;
728
- }
729
- return `${name}: ${arg.expression.toJS((0, translator_1.shiftState)(state, code))}`;
730
- })
731
- .join(',');
732
- code += argsStr;
733
- code += `},\n`;
734
- logicArgs = [];
735
- breakBody = true;
736
- break;
737
- }
738
- case 'deleteBy': {
739
- code += `body: `;
740
- const argsStr = JSON.stringify(handleMember(logicArgs[0].expression.returnExpression)).replace(/"__@@(.*?)@@__"/g, '$1');
733
+ }`;
734
+ }
735
+ return `${name}: ${arg.expression.toJS((0, translator_1.shiftState)(state, code))}`;
736
+ })
737
+ .join(',');
738
+ code += argsStr;
739
+ code += `},\n`;
740
+ logicArgs = [];
741
+ breakBody = true;
742
+ break;
743
+ }
744
+ case 'deleteBy': {
745
+ code += `body: `;
746
+ const argsStr = JSON.stringify(handleMember(logicArgs[0].expression.returnExpression)).replace(/"__@@(.*?)@@__"/g, '$1');
741
747
  code += `{
742
748
  concept: 'Function',
743
749
  name: 'filter',
744
750
  returnExpression: this.$resolveRequestData(${argsStr})
745
- }`;
746
- code += `,\n`;
747
- logicArgs = [];
748
- breakBody = true;
749
- break;
750
- }
751
- default:
752
- break;
753
- }
754
- const bodyArgument = logicArgs.find((arg) => arg.keyword === 'body');
755
- if (!breakBody) {
756
- if (bodyArgument) {
757
- code += `\n${bodyArgument?.keyword}: ${bodyArgument?.toJS((0, translator_1.shiftState)(state, code))}`;
758
- }
759
- else {
760
- code += `body: {}`;
761
- }
762
- }
763
- }
764
- else {
751
+ }`;
752
+ code += `,\n`;
753
+ logicArgs = [];
754
+ breakBody = true;
755
+ break;
756
+ }
757
+ default:
758
+ break;
759
+ }
760
+ const bodyArgument = logicArgs.find((arg) => arg.keyword === 'body');
761
+ if (!breakBody) {
762
+ if (bodyArgument) {
763
+ code += `\n${bodyArgument?.keyword}: ${bodyArgument?.toJS((0, translator_1.shiftState)(state, code))}`;
764
+ }
765
+ else {
766
+ code += `body: {}`;
767
+ }
768
+ }
769
+ }
770
+ else {
765
771
  code += `path: {},
766
- body: {`;
767
- if (!isProcessLogic) {
768
- const argsStr = args
769
- .map((arg, index) => {
770
- const actualArg = completeArguments[index];
771
- return {
772
- keyword: arg?.name,
773
- arg: actualArg,
774
- };
775
- })
776
- .filter((item) => isShowArgument(item.arg))
777
- .map((obj) => `\n${obj?.keyword}: ${obj?.arg?.toJS((0, translator_1.shiftState)(state, code))}`)
778
- .join(', ');
779
- code += argsStr;
780
- if (Array.isArray(typeArguments) && typeArguments.length) {
781
- code += `,\n__typeArguments: ${JSON5.stringify(this.typeArguments)}`;
782
- }
783
- }
784
- code += '\n}';
785
- }
786
- code += '\n})';
787
- }
788
- else {
789
- if (isComponentLogic) {
790
- // 组件ref元素的对象没有取到的容错
791
- code += `this.$refs && this.$refs[\`${refName}\`] && this.$refs[\`${refName}\`].${this.calleeName} && this.$refs[\`${refName}\`].${this.calleeName}`;
792
- }
793
- else if (calleeNamespace === 'nasl.ui' || calleeNamespace === 'nasl.util') {
794
- switch (this.calleeName) {
795
- case 'showMessage':
796
- code += `this.$toast.show`;
797
- break;
798
- case 'consoleLog':
799
- code += `console.log`;
800
- break;
801
- case 'jsonSerialize':
802
- if (this.arguments[0]?.expression?.__TypeAnnotation?.typeName === 'String' &&
803
- this.arguments[0]?.expression?.__TypeAnnotation?.typeNamespace === 'nasl.core') {
804
- code += `JSON.stringify`;
805
- }
806
- else {
807
- code += `this.$utils['JsonSerialize']`;
808
- }
809
- break;
810
- case 'jsonDeserialize':
811
- code += `JSON.parse`;
812
- break;
813
- default:
814
- }
815
- }
816
- else if (calleeNamespace === 'nasl.browser' ||
817
- calleeNamespace === 'nasl.auth' ||
818
- calleeNamespace === 'nasl.configuration' ||
819
- calleeNamespace === 'nasl.process' ||
820
- calleeNamespace === 'nasl.io') {
821
- code += `this.$global.${this.calleeName}`;
822
- }
823
- else if (calleeNamespace === 'nasl.event') {
824
- code += `event && event.${this.calleeName} && event.${this.calleeName}`; // 防止万一event不存在
825
- }
826
- else if (isFrontendLibrary) {
827
- code += `this.$library['${extensionName}'].${this.calleeName}`;
828
- }
829
- else {
830
- code += `this.${this.calleeName}`;
831
- }
832
- if (calleeNamespace === 'nasl.process' || calleeNamespace === 'nasl.auth') {
833
- code += '({';
834
- this.arguments
835
- ?.filter((arg) => arg?.expression)
836
- .forEach((arg, index) => {
837
- code += `${arg.keyword}: ${arg?.toJS((0, translator_1.shiftState)(state, code))}`;
838
- if (index !== this.arguments?.length - 1)
839
- code += ', ';
840
- });
841
- code += '})';
842
- }
843
- else {
844
- code += '(';
845
- const needToString = ['showMessage', 'consoleLog'].includes(this.calleeName);
846
- if (needToString) {
847
- code += `this.$utils['ToString'](`;
848
- }
849
- if (Array.isArray(completeArguments) && completeArguments.length) {
850
- if (needToString) {
851
- const arg = this.arguments[0];
852
- const argTypeAnnotation = arg.typeAnnotation || arg.__TypeAnnotation;
853
- if (argTypeAnnotation) {
854
- code += `'${argTypeAnnotation?.sortedTypeKey}', `;
855
- }
856
- }
857
- completeArguments.forEach((arg, index) => {
858
- code += arg?.toJS((0, translator_1.shiftState)(state, code));
859
- if (index !== completeArguments?.length - 1)
860
- code += ', ';
861
- });
862
- }
863
- if (needToString) {
864
- code += `)`;
865
- }
866
- code += ')';
867
- }
868
- }
869
- function handleMember(root) {
870
- if (!root)
871
- return;
872
- if (root.concept === 'Identifier') {
873
- return {
874
- concept: root.concept,
875
- name: root.name,
876
- value: `__@@${root.toJS()}@@__`,
877
- expression: root.toJS(),
878
- };
879
- }
880
- if (root.concept === 'MemberExpression') {
881
- let { concept } = root;
882
- let { value } = root;
883
- if (root?.object.name === '_') {
884
- return {
885
- concept,
886
- name: root.name,
887
- value,
888
- object: root.object,
889
- property: root.property,
890
- };
891
- }
892
- let expression = root.toJS();
893
- if (root.object?.namespace === 'app.enums') {
894
- value = expression.replace(/^"(.+)"$/, '$1');
895
- expression = undefined;
896
- concept = 'StringLiteral';
897
- }
898
- else {
899
- value = `__@@${expression}@@__`;
900
- }
901
- return {
902
- concept,
903
- name: root.name,
904
- value,
905
- expression,
906
- };
907
- }
908
- let left;
909
- if (root.concept === 'UnaryExpression') {
910
- left = handleMember(root.argument);
911
- }
912
- else {
913
- left = handleMember(root.left);
914
- }
915
- const right = handleMember(root.right);
916
- return {
917
- concept: root.concept,
918
- name: root.name,
919
- value: root.value,
920
- expression: root.expression,
921
- operator: root.operator,
922
- left,
923
- right,
924
- };
925
- }
926
- const typeAnnotation = this.typeAnnotation || this.__TypeAnnotation;
927
- const needGenInitFromSchema = typeAnnotation &&
928
- (!['primitive', 'union'].includes(typeAnnotation.typeKind) || typeAnnotation.typeName === 'DateTime');
929
- if (needGenInitFromSchema) {
930
- code = `this.$genInitFromSchema('${typeAnnotation?.sortedTypeKey}', ${code})`;
931
- }
932
- code += ')';
933
- return code;
934
- }
935
- toBrief() {
936
- return this.arguments.map((a) => a.toBrief()).join('<br />');
937
- }
938
- get useValidation() {
939
- const { validation, rootNode } = this;
940
- return rootNode?.preferenceMap.serverValidationRules === 'custom' && Boolean(validation);
941
- }
942
- get useIife() {
943
- return Boolean(this.handleError || this.useValidation);
944
- }
945
- toEmbeddedTS(state = (0, translator_1.createCompilerState)()) {
946
- let code = '';
947
- const { handleError, calleeKey, calleeName, parentKey, typeArguments, tsCalleeNamespace, completeArguments, parentNode, validation, useIife, useValidation, arguments: logicArgs, } = this;
948
- /** 设置函数范型参数 */
949
- const setTypeArguments = () => {
950
- if (Array.isArray(typeArguments) && typeArguments.length) {
951
- // 如果有内容
952
- code += `<`;
953
- typeArguments.forEach((arg, i, arr) => {
954
- code += arg.toEmbeddedTS((0, translator_1.shiftState)(state, code, { tabSize: 0 }));
955
- if (i !== arr.length - 1) {
956
- code += ', ';
957
- }
958
- });
959
- code += `>`;
960
- }
961
- };
962
- /** 设置输入参数 */
963
- const setInputParam = () => {
964
- const paramRequired = ['showMessage', 'consoleLog'].includes(calleeName);
965
- if ((tsCalleeNamespace.startsWith('elements') && tsCalleeNamespace.endsWith('logics')) ||
966
- tsCalleeNamespace.startsWith('nasl.')) {
967
- code += '(';
968
- logicArgs.forEach((arg, index) => {
969
- // 页面逻辑先都非必填
970
- code += arg.toEmbeddedTS((0, translator_1.shiftState)(state, code), paramRequired);
971
- if (index !== logicArgs.length - 1)
972
- code += ', ';
973
- });
974
- code += ')';
975
- }
976
- else if (completeArguments.length) {
977
- if (['expression'].includes(parentKey) &&
978
- this.getAncestor('BindAttribute')?.name === 'data-source' &&
979
- state?.noNeedParams) {
980
- return;
981
- }
982
- code += '(';
983
- completeArguments.forEach((arg, index) => {
984
- // 取到是不是必填放入参数中
985
- code += arg.toEmbeddedTS((0, translator_1.shiftState)(state, code), arg?.paramRequired);
986
- if (index !== logicArgs.length - 1)
987
- code += ', ';
988
- });
989
- code += ')';
990
- }
991
- else {
992
- if (['expression'].includes(parentKey) &&
993
- this.getAncestor('BindAttribute')?.name === 'data-source' &&
994
- state?.noNeedParams) {
995
- return;
996
- }
997
- if (completeArguments.length) {
998
- code += '(';
999
- completeArguments.forEach((arg, index) => {
1000
- // 取到是不是必填放入参数中
1001
- code += arg.toEmbeddedTS((0, translator_1.shiftState)(state, code), arg?.paramRequired);
1002
- if (index !== logicArgs.length - 1)
1003
- code += ', ';
1004
- });
1005
- code += ')';
1006
- }
1007
- else {
1008
- code += '()';
1009
- }
1010
- }
1011
- };
1012
- /** 设置表达式末尾分号 */
1013
- const setEndSemi = () => {
1014
- const { concept: parentConcept } = parentNode ?? {};
1015
- if (!['test', 'patterns', 'returnExpression', 'expression'].includes(parentKey) &&
1016
- ![
1017
- 'Argument',
1018
- 'Assignment',
1019
- 'ForEachStatement',
1020
- 'SelectMembers',
1021
- 'UnaryExpression',
1022
- 'BinaryExpression',
1023
- 'StringInterpolation',
1024
- 'MemberExpression',
1025
- 'NewMap',
1026
- 'NewList',
1027
- ].includes(parentConcept)) {
1028
- code += ';';
1029
- }
1030
- };
1031
- if (useIife) {
1032
- code += '(() =>{\nconst wrapper = ';
1033
- if (handleError) {
1034
- code += 'nasl.util.autoHandleError(';
1035
- }
1036
- if (useValidation) {
1037
- code += 'nasl.util.callLogicWithChecker(';
1038
- }
1039
- code += calleeKey;
1040
- setTypeArguments();
1041
- if (useValidation) {
1042
- code += ', (';
1043
- code += completeArguments.map((item) => item.keyword).join(', ');
1044
- code += ') => {\n';
1045
- code += validation.toEmbeddedTS((0, translator_1.shiftState)(state, code));
1046
- code += ';\n})';
1047
- }
1048
- if (handleError) {
1049
- code += ')';
1050
- }
1051
- code += ';\nreturn wrapper';
1052
- setInputParam();
1053
- code += ';\n})()';
1054
- }
1055
- else {
1056
- code += calleeKey;
1057
- setTypeArguments();
1058
- setInputParam();
1059
- }
1060
- setEndSemi();
1061
- return code;
1062
- }
1063
- toNaturalTS(state = (0, translator_1.createCompilerState)()) {
1064
- const { handleError, calleeKey, calleeName, parentKey, typeArguments, tsCalleeNamespace, completeArguments, parentNode, validation, useIife, useValidation, arguments: logicArgs, } = this;
1065
- let code = calleeKey.replace('__elements', '$refs');
1066
- if (/^app.+?\.entities\..+?logics/.test(code))
1067
- code = code.replace(/^app.+?\.entities\.(.+?)\.logics/, '$1');
1068
- /** 设置函数范型参数 */
1069
- const setTypeArguments = () => {
1070
- if (Array.isArray(typeArguments) && typeArguments.length) {
1071
- // 如果有内容
1072
- code += `<`;
1073
- typeArguments.forEach((arg, i, arr) => {
1074
- code += arg.toNaturalTS((0, translator_1.shiftState)(state, code, { tabSize: 0 }));
1075
- if (i !== arr.length - 1) {
1076
- code += ', ';
1077
- }
1078
- });
1079
- code += `>`;
1080
- }
1081
- };
1082
- /** 设置输入参数 */
1083
- const setInputParam = () => {
1084
- const paramRequired = ['showMessage', 'consoleLog'].includes(calleeName);
1085
- if ((tsCalleeNamespace.startsWith('elements') && tsCalleeNamespace.endsWith('logics')) ||
1086
- tsCalleeNamespace.startsWith('nasl.')) {
1087
- code += '(';
1088
- logicArgs.forEach((arg, index) => {
1089
- // 页面逻辑先都非必填
1090
- code += arg.toNaturalTS((0, translator_1.shiftState)(state, code), paramRequired);
1091
- if (index !== logicArgs.length - 1)
1092
- code += ', ';
1093
- });
1094
- code += ')';
1095
- }
1096
- else if (completeArguments.length) {
1097
- code += '(';
1098
- completeArguments.forEach((arg, index) => {
1099
- // 取到是不是必填放入参数中
1100
- code += arg.toNaturalTS((0, translator_1.shiftState)(state, code), arg?.paramRequired);
1101
- if (index !== logicArgs.length - 1)
1102
- code += ', ';
1103
- });
1104
- code += ')';
1105
- }
1106
- else {
1107
- code += '()';
1108
- }
1109
- };
1110
- /** 设置表达式末尾分号 */
1111
- const setEndSemi = () => {
1112
- const { concept: parentConcept } = parentNode ?? {};
1113
- if (!['test', 'patterns', 'returnExpression'].includes(parentKey) &&
1114
- ![
1115
- 'Argument',
1116
- 'Assignment',
1117
- 'ForEachStatement',
1118
- 'SelectMembers',
1119
- 'UnaryExpression',
1120
- 'BinaryExpression',
1121
- 'StringInterpolation',
1122
- 'MemberExpression',
1123
- 'NewMap',
1124
- 'NewList',
1125
- ].includes(parentConcept)) {
1126
- code += ';';
1127
- }
1128
- };
1129
- if (useIife) {
1130
- code += '(() =>{\nconst wrapper = ';
1131
- if (handleError) {
1132
- code += 'nasl.util.autoHandleError(';
1133
- }
1134
- if (useValidation) {
1135
- code += 'nasl.util.callLogicWithChecker(';
1136
- }
1137
- code += calleeKey;
1138
- setTypeArguments();
1139
- if (useValidation) {
1140
- code += ', (';
1141
- code += completeArguments.map((item) => item.keyword).join(', ');
1142
- code += ') => {\n';
1143
- code += validation.toNaturalTS((0, translator_1.shiftState)(state, code));
1144
- code += ';\n})';
1145
- }
1146
- if (handleError) {
1147
- code += ')';
1148
- }
1149
- code += ';\nreturn wrapper';
1150
- setInputParam();
1151
- code += ';\n})()';
1152
- }
1153
- else {
1154
- code += calleeKey;
1155
- setTypeArguments();
1156
- setInputParam();
1157
- }
1158
- setEndSemi();
1159
- return code;
1160
- }
1161
- // 通过内容过去节点
1162
- getCallNode() {
1163
- let node;
1164
- // 如果是页面局部逻辑
1165
- if (!this.calleeNamespace && this.calleeName && this.view) {
1166
- node = this.view.logics.find((l) => l.name === this.calleeName);
1167
- }
1168
- else if (this.calleeNamespace?.startsWith('nasl.')) {
1169
- // 如果是页面组件
1170
- node = (0, utils_1.getNaslNodeByNodeCallee)(this.calleeNamespace, this.calleeName);
1171
- }
1172
- else {
1173
- // 如果是其余app下自定义逻辑
1174
- try {
1175
- node = (0, utils_1.getNodeByNodeCallee)(this.app, this.calleewholeKey, (key, tempPoint) => {
1176
- // 处理 NASL 中未定义的假的节点
1177
- if (key === tempPoint.name) {
1178
- return {
1179
- tempPoint,
1180
- state: 1,
1181
- };
1182
- }
1183
- const t = tempPoint[key];
1184
- return {
1185
- tempPoint: t,
1186
- state: Array.isArray(t) ? 2 : 1,
1187
- };
1188
- });
1189
- }
1190
- catch (err) { }
1191
- }
1192
- return node;
1193
- }
1194
- /** 获取类型标注时的偏移量 */
1195
- getQuickInfoOffset(detail, code) {
1196
- if (this.useIife) {
1197
- const characterOffset = 8;
1198
- const lines = code.split('\n');
1199
- const lineOffset = lines.findIndex((item) => item.startsWith('return wrapper'));
1200
- return {
1201
- line: detail.line + lineOffset,
1202
- offset: characterOffset,
1203
- };
1204
- }
1205
- else {
1206
- let indexOf = 0;
1207
- // 没有括号,表示括号在外面
1208
- if (!code.includes('(')) {
1209
- indexOf = -1;
1210
- }
1211
- // 有括号就找到括号的位置
1212
- else {
1213
- // 如果有泛型先往前找一找
1214
- if (code.includes('<')) {
1215
- indexOf = Math.min(code.indexOf('<'), code.indexOf('('));
1216
- }
1217
- else {
1218
- indexOf = code.indexOf('(');
1219
- }
1220
- const subStr = code.substring(0, indexOf);
1221
- const codeArr = subStr?.split('.');
1222
- const lastLen = codeArr?.[codeArr.length - 1]?.length;
1223
- indexOf = subStr.length - lastLen;
1224
- }
1225
- return {
1226
- ...detail,
1227
- offset: detail.offset + indexOf,
1228
- };
1229
- }
1230
- }
1231
- /**
1232
- * 是否允许验证规则
1233
- * - 当前元素在前端,但是调用的函数在后端
1234
- */
1235
- enableValidation() {
1236
- const calledLogic = this.getCallNode();
1237
- return Boolean(this.view) && calledLogic && !calledLogic.view;
1238
- }
1239
- // 可以设置默认值的节点
1240
- // 目前只开放了app下的,所以这些节点,查找引用吧默认值塞回来
1241
- get completeArguments() {
1242
- const callArguments = (this.arguments ?? []).slice();
1243
- // 没有参数时可以跳过查询原逻辑标签
1244
- const node = callArguments.length > 0 ? this.getCallNode() : undefined;
1245
- const logicParams = node?.params ?? [];
1246
- callArguments.forEach((arg, index) => {
1247
- const param = logicParams[index] || {};
1248
- arg.paramRequired = Boolean(!param?.defaultValue?.expression);
1249
- arg.paramTypeAnnotation = undefined;
1250
- arg.paramDefaultValue = undefined;
1251
- // 强制更新当前的 keyword
1252
- arg.keyword = param?.name && param.name.length > 0 ? param.name : arg.keyword;
1253
- // 取到是不是必填放入参数中
1254
- if (param && !arg.expression) {
1255
- // 非必填时 才会有默认值
1256
- arg.paramTypeAnnotation = param.typeAnnotation;
1257
- arg.paramDefaultValue = param.defaultValue;
1258
- }
1259
- });
1260
- return callArguments;
1261
- }
1262
- static isSystem(node) {
1263
- // 如此处需要更新,则需同时更新 menu-poppup 组件下的 includesSystemLogic 校验逻辑
1264
- return ['nasl.process', 'nasl.browser', 'nasl.auth', 'nasl.configuration', 'nasl.io'].includes(node?.calleeNamespace);
1265
- }
1266
- static getDefaultOptions() {
1267
- return {};
1268
- }
1269
- };
1270
- exports.CallLogic = CallLogic;
1271
- __decorate([
1272
- (0, decorators_1.property)()
1273
- ], CallLogic.prototype, "uuid", void 0);
1274
- __decorate([
1275
- (0, decorators_1.property)('concept')
1276
- // @ts-ignore
1277
- ], CallLogic.prototype, "concept", void 0);
1278
- __decorate([
1279
- (0, decorators_1.property)()
1280
- ], CallLogic.prototype, "label", void 0);
1281
- __decorate([
1282
- (0, decorators_1.property)()
1283
- // @ts-ignore
1284
- ], CallLogic.prototype, "calleeNamespace", void 0);
1285
- __decorate([
1286
- (0, decorators_1.property)()
1287
- // @ts-ignore
1288
- ], CallLogic.prototype, "calleeName", void 0);
1289
- __decorate([
1290
- (0, decorators_1.property)()
1291
- // @ts-ignore
1292
- ], CallLogic.prototype, "shortcut", void 0);
1293
- __decorate([
1294
- (0, decorators_1.property)()
1295
- // @ts-ignore
1296
- ], CallLogic.prototype, "handleError", void 0);
1297
- __decorate([
1298
- (0, decorators_1.property)({
1299
- objectRef: 'TypeAnnotation',
1300
- isArray: true,
1301
- defaultValue: null,
1302
- })
1303
- ], CallLogic.prototype, "typeArguments", void 0);
1304
- __decorate([
1305
- (0, decorators_1.property)({
1306
- objectRef: 'Argument',
1307
- isArray: true,
1308
- defaultValue: [],
1309
- })
1310
- ], CallLogic.prototype, "arguments", void 0);
1311
- __decorate([
1312
- (0, decorators_1.property)({
1313
- objectRef: 'BindAttribute',
1314
- })
1315
- // @ts-ignore
1316
- ], CallLogic.prototype, "validation", void 0);
1317
- __decorate([
1318
- (0, decorators_1.property)()
1319
- // @ts-ignore
1320
- ], CallLogic.prototype, "isAdvancedSettingFolded", void 0);
1321
- __decorate([
1322
- (0, translator_1.withSourceMap)()
1323
- ], CallLogic.prototype, "toEmbeddedTS", null);
1324
- __decorate([
1325
- (0, translator_1.withSourceMap)()
1326
- ], CallLogic.prototype, "toNaturalTS", null);
1327
- exports.CallLogic = CallLogic = CallLogic_1 = __decorate([
1328
- decorators_1.className,
1329
- (0, decorators_1.concept)('调用逻辑')
1330
- // @ts-ignore
1331
- ], CallLogic);
1332
- exports.default = CallLogic;
1333
- //================================================================================
1334
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1335
- // 自动生成的代码已结束。下面可以手动编写。
1336
- //================================================================================
772
+ body: {`;
773
+ if (!isProcessLogic) {
774
+ const argsStr = args
775
+ .map((arg, index) => {
776
+ const actualArg = completeArguments[index];
777
+ return {
778
+ keyword: arg?.name,
779
+ arg: actualArg,
780
+ };
781
+ })
782
+ .filter((item) => isShowArgument(item.arg))
783
+ .map((obj) => `\n${obj?.keyword}: ${obj?.arg?.toJS((0, translator_1.shiftState)(state, code))}`)
784
+ .join(', ');
785
+ code += argsStr;
786
+ if (Array.isArray(typeArguments) && typeArguments.length) {
787
+ code += `,\n__typeArguments: ${JSON5.stringify(this.typeArguments)}`;
788
+ }
789
+ }
790
+ code += '\n}';
791
+ }
792
+ code += '\n})';
793
+ }
794
+ else {
795
+ if (isComponentLogic) {
796
+ // 组件ref元素的对象没有取到的容错
797
+ code += `this.$refs && this.$refs[\`${refName}\`] && this.$refs[\`${refName}\`].${this.calleeName} && this.$refs[\`${refName}\`].${this.calleeName}`;
798
+ }
799
+ else if (calleeNamespace === 'nasl.ui' || calleeNamespace === 'nasl.util') {
800
+ switch (this.calleeName) {
801
+ case 'showMessage':
802
+ code += `this.$toast.show`;
803
+ break;
804
+ case 'consoleLog':
805
+ code += `console.log`;
806
+ break;
807
+ case 'jsonSerialize':
808
+ if (this.arguments[0]?.expression?.__TypeAnnotation?.typeName === 'String' &&
809
+ this.arguments[0]?.expression?.__TypeAnnotation?.typeNamespace === 'nasl.core') {
810
+ code += `JSON.stringify`;
811
+ }
812
+ else {
813
+ code += `this.$utils['JsonSerialize']`;
814
+ }
815
+ break;
816
+ case 'jsonDeserialize':
817
+ code += `JSON.parse`;
818
+ break;
819
+ default:
820
+ }
821
+ }
822
+ else if (calleeNamespace === 'nasl.browser' ||
823
+ calleeNamespace === 'nasl.auth' ||
824
+ calleeNamespace === 'nasl.configuration' ||
825
+ calleeNamespace === 'nasl.process' ||
826
+ calleeNamespace === 'nasl.io') {
827
+ code += `this.$global.${this.calleeName}`;
828
+ }
829
+ else if (calleeNamespace === 'nasl.event') {
830
+ code += `event && event.${this.calleeName} && event.${this.calleeName}`; // 防止万一event不存在
831
+ }
832
+ else if (isFrontendLibrary) {
833
+ code += `this.$library['${extensionName}'].${this.calleeName}`;
834
+ }
835
+ else {
836
+ code += `this.${this.calleeName}`;
837
+ }
838
+ if (calleeNamespace === 'nasl.process' || calleeNamespace === 'nasl.auth') {
839
+ code += '({';
840
+ this.arguments
841
+ ?.filter((arg) => arg?.expression)
842
+ .forEach((arg, index) => {
843
+ code += `${arg.keyword}: ${arg?.toJS((0, translator_1.shiftState)(state, code))}`;
844
+ if (index !== this.arguments?.length - 1)
845
+ code += ', ';
846
+ });
847
+ code += '})';
848
+ }
849
+ else {
850
+ code += '(';
851
+ const needToString = ['showMessage', 'consoleLog'].includes(this.calleeName);
852
+ if (needToString) {
853
+ code += `this.$utils['ToString'](`;
854
+ }
855
+ if (Array.isArray(completeArguments) && completeArguments.length) {
856
+ if (needToString) {
857
+ const arg = this.arguments[0];
858
+ const argTypeAnnotation = arg.typeAnnotation || arg.__TypeAnnotation;
859
+ if (argTypeAnnotation) {
860
+ code += `'${argTypeAnnotation?.sortedTypeKey}', `;
861
+ }
862
+ }
863
+ completeArguments.forEach((arg, index) => {
864
+ code += arg?.toJS((0, translator_1.shiftState)(state, code));
865
+ if (index !== completeArguments?.length - 1)
866
+ code += ', ';
867
+ });
868
+ }
869
+ if (needToString) {
870
+ code += `)`;
871
+ }
872
+ code += ')';
873
+ }
874
+ }
875
+ function handleMember(root) {
876
+ if (!root)
877
+ return;
878
+ if (root.concept === 'Identifier') {
879
+ return {
880
+ concept: root.concept,
881
+ name: root.name,
882
+ value: `__@@${root.toJS()}@@__`,
883
+ expression: root.toJS(),
884
+ };
885
+ }
886
+ if (root.concept === 'MemberExpression') {
887
+ let { concept } = root;
888
+ let { value } = root;
889
+ if (root?.object.name === '_') {
890
+ return {
891
+ concept,
892
+ name: root.name,
893
+ value,
894
+ object: root.object,
895
+ property: root.property,
896
+ };
897
+ }
898
+ let expression = root.toJS();
899
+ if (root.object?.namespace === 'app.enums') {
900
+ value = expression.replace(/^"(.+)"$/, '$1');
901
+ expression = undefined;
902
+ concept = 'StringLiteral';
903
+ }
904
+ else {
905
+ value = `__@@${expression}@@__`;
906
+ }
907
+ return {
908
+ concept,
909
+ name: root.name,
910
+ value,
911
+ expression,
912
+ };
913
+ }
914
+ let left;
915
+ if (root.concept === 'UnaryExpression') {
916
+ left = handleMember(root.argument);
917
+ }
918
+ else {
919
+ left = handleMember(root.left);
920
+ }
921
+ const right = handleMember(root.right);
922
+ return {
923
+ concept: root.concept,
924
+ name: root.name,
925
+ value: root.value,
926
+ expression: root.expression,
927
+ operator: root.operator,
928
+ left,
929
+ right,
930
+ };
931
+ }
932
+ const typeAnnotation = this.typeAnnotation || this.__TypeAnnotation;
933
+ const needGenInitFromSchema = typeAnnotation &&
934
+ (!['primitive', 'union'].includes(typeAnnotation.typeKind) || typeAnnotation.typeName === 'DateTime');
935
+ if (needGenInitFromSchema) {
936
+ code = `this.$genInitFromSchema('${typeAnnotation?.sortedTypeKey}', ${code})`;
937
+ }
938
+ code += ')';
939
+ return code;
940
+ }
941
+ toBrief() {
942
+ return this.arguments.map((a) => a.toBrief()).join('<br />');
943
+ }
944
+ get useValidation() {
945
+ const { validation, rootNode } = this;
946
+ return rootNode?.preferenceMap.serverValidationRules === 'custom' && Boolean(validation);
947
+ }
948
+ get useIife() {
949
+ return Boolean(this.handleError || this.useValidation);
950
+ }
951
+ toEmbeddedTS(state = (0, translator_1.createCompilerState)()) {
952
+ let code = '';
953
+ const { handleError, calleeKey, calleeName, parentKey, typeArguments, tsCalleeNamespace, completeArguments, parentNode, validation, useIife, useValidation, arguments: logicArgs, } = this;
954
+ /** 设置函数范型参数 */
955
+ const setTypeArguments = () => {
956
+ if (Array.isArray(typeArguments) && typeArguments.length) {
957
+ // 如果有内容
958
+ code += `<`;
959
+ typeArguments.forEach((arg, i, arr) => {
960
+ code += arg.toEmbeddedTS((0, translator_1.shiftState)(state, code, { tabSize: 0 }));
961
+ if (i !== arr.length - 1) {
962
+ code += ', ';
963
+ }
964
+ });
965
+ code += `>`;
966
+ }
967
+ };
968
+ /** 设置输入参数 */
969
+ const setInputParam = () => {
970
+ const paramRequired = ['showMessage', 'consoleLog'].includes(calleeName);
971
+ if ((tsCalleeNamespace.startsWith('elements') && tsCalleeNamespace.endsWith('logics')) ||
972
+ tsCalleeNamespace.startsWith('nasl.')) {
973
+ code += '(';
974
+ logicArgs.forEach((arg, index) => {
975
+ // 页面逻辑先都非必填
976
+ code += arg.toEmbeddedTS((0, translator_1.shiftState)(state, code), paramRequired);
977
+ if (index !== logicArgs.length - 1)
978
+ code += ', ';
979
+ });
980
+ code += ')';
981
+ }
982
+ else if (completeArguments.length) {
983
+ if (['expression'].includes(parentKey) &&
984
+ this.getAncestor('BindAttribute')?.name === 'data-source' &&
985
+ state?.noNeedParams) {
986
+ return;
987
+ }
988
+ code += '(';
989
+ completeArguments.forEach((arg, index) => {
990
+ // 取到是不是必填放入参数中
991
+ code += arg.toEmbeddedTS((0, translator_1.shiftState)(state, code), arg?.paramRequired);
992
+ if (index !== logicArgs.length - 1)
993
+ code += ', ';
994
+ });
995
+ code += ')';
996
+ }
997
+ else {
998
+ if (['expression'].includes(parentKey) &&
999
+ this.getAncestor('BindAttribute')?.name === 'data-source' &&
1000
+ state?.noNeedParams) {
1001
+ return;
1002
+ }
1003
+ if (completeArguments.length) {
1004
+ code += '(';
1005
+ completeArguments.forEach((arg, index) => {
1006
+ // 取到是不是必填放入参数中
1007
+ code += arg.toEmbeddedTS((0, translator_1.shiftState)(state, code), arg?.paramRequired);
1008
+ if (index !== logicArgs.length - 1)
1009
+ code += ', ';
1010
+ });
1011
+ code += ')';
1012
+ }
1013
+ else {
1014
+ code += '()';
1015
+ }
1016
+ }
1017
+ };
1018
+ /** 设置表达式末尾分号 */
1019
+ const setEndSemi = () => {
1020
+ const { concept: parentConcept } = parentNode ?? {};
1021
+ if (!['test', 'patterns', 'returnExpression', 'expression'].includes(parentKey) &&
1022
+ ![
1023
+ 'Argument',
1024
+ 'Assignment',
1025
+ 'ForEachStatement',
1026
+ 'SelectMembers',
1027
+ 'UnaryExpression',
1028
+ 'BinaryExpression',
1029
+ 'StringInterpolation',
1030
+ 'MemberExpression',
1031
+ 'NewMap',
1032
+ 'NewList',
1033
+ ].includes(parentConcept)) {
1034
+ code += ';';
1035
+ }
1036
+ };
1037
+ if (useIife) {
1038
+ code += '(() =>{\nconst wrapper = ';
1039
+ if (handleError) {
1040
+ code += 'nasl.util.autoHandleError(';
1041
+ }
1042
+ if (useValidation) {
1043
+ code += 'nasl.util.callLogicWithChecker(';
1044
+ }
1045
+ code += calleeKey;
1046
+ setTypeArguments();
1047
+ if (useValidation) {
1048
+ code += ', (';
1049
+ code += completeArguments.map((item) => item.keyword).join(', ');
1050
+ code += ') => {\n';
1051
+ code += validation.toEmbeddedTS((0, translator_1.shiftState)(state, code));
1052
+ code += ';\n})';
1053
+ }
1054
+ if (handleError) {
1055
+ code += ')';
1056
+ }
1057
+ code += ';\nreturn wrapper';
1058
+ setInputParam();
1059
+ code += ';\n})()';
1060
+ }
1061
+ else {
1062
+ code += calleeKey;
1063
+ setTypeArguments();
1064
+ setInputParam();
1065
+ }
1066
+ setEndSemi();
1067
+ return code;
1068
+ }
1069
+ toNaturalTS(state = (0, translator_1.createCompilerState)()) {
1070
+ const { handleError, calleeName, parentKey, typeArguments, tsCalleeNamespace, completeArguments, parentNode, validation, useIife, useValidation, arguments: logicArgs, } = this;
1071
+ let code = '';
1072
+ let calleeKey = this.calleeKey.replace('__elements', '$refs');
1073
+ if (/^app.+?\.entities\..+?logics/.test(code))
1074
+ calleeKey = calleeKey.replace(/^app.+?\.entities\.(.+?)\.logics/, '$1');
1075
+ /** 设置函数范型参数 */
1076
+ const setTypeArguments = () => {
1077
+ if (Array.isArray(typeArguments) && typeArguments.length) {
1078
+ // 如果有内容
1079
+ code += `<`;
1080
+ typeArguments.forEach((arg, i, arr) => {
1081
+ code += arg.toNaturalTS((0, translator_1.shiftState)(state, code, { tabSize: 0 }));
1082
+ if (i !== arr.length - 1) {
1083
+ code += ', ';
1084
+ }
1085
+ });
1086
+ code += `>`;
1087
+ }
1088
+ };
1089
+ /** 设置输入参数 */
1090
+ const setInputParam = () => {
1091
+ const paramRequired = ['showMessage', 'consoleLog'].includes(calleeName);
1092
+ if ((tsCalleeNamespace.startsWith('elements') && tsCalleeNamespace.endsWith('logics')) ||
1093
+ tsCalleeNamespace.startsWith('nasl.')) {
1094
+ code += '(';
1095
+ logicArgs.forEach((arg, index) => {
1096
+ // 页面逻辑先都非必填
1097
+ code += arg.toNaturalTS((0, translator_1.shiftState)(state, code, { tabSize: 0 }), paramRequired);
1098
+ if (index !== logicArgs.length - 1)
1099
+ code += ', ';
1100
+ });
1101
+ code += ')';
1102
+ }
1103
+ else if (completeArguments.length) {
1104
+ code += '(';
1105
+ completeArguments.forEach((arg, index) => {
1106
+ // 取到是不是必填放入参数中
1107
+ code += arg.toNaturalTS((0, translator_1.shiftState)(state, code, { tabSize: 0 }), arg?.paramRequired);
1108
+ if (index !== logicArgs.length - 1)
1109
+ code += ', ';
1110
+ });
1111
+ code += ')';
1112
+ }
1113
+ else {
1114
+ code += '()';
1115
+ }
1116
+ };
1117
+ /** 设置表达式末尾分号 */
1118
+ const setEndSemi = () => {
1119
+ const { concept: parentConcept } = parentNode ?? {};
1120
+ if (!['test', 'patterns', 'returnExpression'].includes(parentKey) &&
1121
+ ![
1122
+ 'Argument',
1123
+ 'Assignment',
1124
+ 'ForEachStatement',
1125
+ 'SelectMembers',
1126
+ 'UnaryExpression',
1127
+ 'BinaryExpression',
1128
+ 'StringInterpolation',
1129
+ 'MemberExpression',
1130
+ 'NewMap',
1131
+ 'NewList',
1132
+ ].includes(parentConcept)) {
1133
+ code += ';';
1134
+ }
1135
+ };
1136
+ if (useIife) {
1137
+ code += '(() =>{\nconst wrapper = ';
1138
+ if (handleError) {
1139
+ code += 'nasl.util.autoHandleError(';
1140
+ }
1141
+ if (useValidation) {
1142
+ code += 'nasl.util.callLogicWithChecker(';
1143
+ }
1144
+ code += calleeKey;
1145
+ setTypeArguments();
1146
+ if (useValidation) {
1147
+ code += ', (';
1148
+ code += completeArguments.map((item) => item.keyword).join(', ');
1149
+ code += ') => {\n';
1150
+ code += validation.toNaturalTS((0, translator_1.shiftState)(state, code));
1151
+ code += ';\n})';
1152
+ }
1153
+ if (handleError) {
1154
+ code += ')';
1155
+ }
1156
+ code += ';\nreturn wrapper';
1157
+ setInputParam();
1158
+ code += ';\n})()';
1159
+ }
1160
+ else {
1161
+ code += calleeKey;
1162
+ setTypeArguments();
1163
+ setInputParam();
1164
+ }
1165
+ setEndSemi();
1166
+ return code;
1167
+ }
1168
+ // 通过内容过去节点
1169
+ getCallNode() {
1170
+ let node;
1171
+ // 如果是页面局部逻辑
1172
+ if (!this.calleeNamespace && this.calleeName && this.view) {
1173
+ node = this.view.logics.find((l) => l.name === this.calleeName);
1174
+ }
1175
+ else if (this.calleeNamespace?.startsWith('nasl.')) {
1176
+ // 如果是页面组件
1177
+ node = (0, utils_1.getNaslNodeByNodeCallee)(this.calleeNamespace, this.calleeName);
1178
+ }
1179
+ else {
1180
+ // 如果是其余app下自定义逻辑
1181
+ try {
1182
+ node = (0, utils_1.getNodeByNodeCallee)(this.app, this.calleewholeKey, (key, tempPoint) => {
1183
+ // 处理 NASL 中未定义的假的节点
1184
+ if (key === tempPoint.name) {
1185
+ return {
1186
+ tempPoint,
1187
+ state: 1,
1188
+ };
1189
+ }
1190
+ const t = tempPoint[key];
1191
+ return {
1192
+ tempPoint: t,
1193
+ state: Array.isArray(t) ? 2 : 1,
1194
+ };
1195
+ });
1196
+ }
1197
+ catch (err) { }
1198
+ }
1199
+ return node;
1200
+ }
1201
+ /** 获取类型标注时的偏移量 */
1202
+ getQuickInfoOffset(detail, code) {
1203
+ if (this.useIife) {
1204
+ const characterOffset = 8;
1205
+ const lines = code.split('\n');
1206
+ const lineOffset = lines.findIndex((item) => item.startsWith('return wrapper'));
1207
+ return {
1208
+ line: detail.line + lineOffset,
1209
+ offset: characterOffset,
1210
+ };
1211
+ }
1212
+ let indexOf = 0;
1213
+ // 没有括号,表示括号在外面
1214
+ if (!code.includes('(')) {
1215
+ indexOf = -1;
1216
+ }
1217
+ // 有括号就找到括号的位置
1218
+ else {
1219
+ // 如果有泛型先往前找一找
1220
+ if (code.includes('<')) {
1221
+ indexOf = Math.min(code.indexOf('<'), code.indexOf('('));
1222
+ }
1223
+ else {
1224
+ indexOf = code.indexOf('(');
1225
+ }
1226
+ const subStr = code.substring(0, indexOf);
1227
+ const codeArr = subStr?.split('.');
1228
+ const lastLen = codeArr?.[codeArr.length - 1]?.length;
1229
+ indexOf = subStr.length - lastLen;
1230
+ }
1231
+ return {
1232
+ ...detail,
1233
+ offset: detail.offset + indexOf,
1234
+ };
1235
+ }
1236
+ /**
1237
+ * 是否允许验证规则
1238
+ * - 当前元素在前端,但是调用的函数在后端
1239
+ */
1240
+ enableValidation() {
1241
+ const calledLogic = this.getCallNode();
1242
+ return Boolean(this.view) && calledLogic && !calledLogic.view;
1243
+ }
1244
+ // 可以设置默认值的节点
1245
+ // 目前只开放了app下的,所以这些节点,查找引用吧默认值塞回来
1246
+ get completeArguments() {
1247
+ const callArguments = (this.arguments ?? []).slice();
1248
+ // 没有参数时可以跳过查询原逻辑标签
1249
+ const node = callArguments.length > 0 ? this.getCallNode() : undefined;
1250
+ const logicParams = node?.params ?? [];
1251
+ callArguments.forEach((arg, index) => {
1252
+ const param = logicParams[index] || {};
1253
+ arg.paramRequired = Boolean(!param?.defaultValue?.expression);
1254
+ arg.paramTypeAnnotation = undefined;
1255
+ arg.paramDefaultValue = undefined;
1256
+ // 强制更新当前的 keyword
1257
+ arg.keyword = param?.name && param.name.length > 0 ? param.name : arg.keyword;
1258
+ // 取到是不是必填放入参数中
1259
+ if (param && !arg.expression) {
1260
+ // 非必填时 才会有默认值
1261
+ arg.paramTypeAnnotation = param.typeAnnotation;
1262
+ arg.paramDefaultValue = param.defaultValue;
1263
+ }
1264
+ });
1265
+ return callArguments;
1266
+ }
1267
+ static isSystem(node) {
1268
+ // 如此处需要更新,则需同时更新 menu-poppup 组件下的 includesSystemLogic 校验逻辑
1269
+ return ['nasl.process', 'nasl.browser', 'nasl.auth', 'nasl.configuration', 'nasl.io'].includes(node?.calleeNamespace);
1270
+ }
1271
+ static getDefaultOptions() {
1272
+ return {};
1273
+ }
1274
+ };
1275
+ __decorate([
1276
+ (0, decorators_1.property)()
1277
+ ], CallLogic.prototype, "uuid", void 0);
1278
+ __decorate([
1279
+ (0, decorators_1.property)('concept')
1280
+ ], CallLogic.prototype, "concept", void 0);
1281
+ __decorate([
1282
+ (0, decorators_1.property)()
1283
+ ], CallLogic.prototype, "label", void 0);
1284
+ __decorate([
1285
+ (0, decorators_1.property)()
1286
+ ], CallLogic.prototype, "calleeNamespace", void 0);
1287
+ __decorate([
1288
+ (0, decorators_1.property)()
1289
+ ], CallLogic.prototype, "calleeName", void 0);
1290
+ __decorate([
1291
+ (0, decorators_1.property)()
1292
+ ], CallLogic.prototype, "shortcut", void 0);
1293
+ __decorate([
1294
+ (0, decorators_1.property)()
1295
+ ], CallLogic.prototype, "handleError", void 0);
1296
+ __decorate([
1297
+ (0, decorators_1.property)({
1298
+ objectRef: 'TypeAnnotation',
1299
+ isArray: true,
1300
+ defaultValue: null,
1301
+ })
1302
+ ], CallLogic.prototype, "typeArguments", void 0);
1303
+ __decorate([
1304
+ (0, decorators_1.property)({
1305
+ objectRef: 'Argument',
1306
+ isArray: true,
1307
+ defaultValue: [],
1308
+ })
1309
+ ], CallLogic.prototype, "arguments", void 0);
1310
+ __decorate([
1311
+ (0, decorators_1.property)({
1312
+ objectRef: 'BindAttribute',
1313
+ })
1314
+ ], CallLogic.prototype, "validation", void 0);
1315
+ __decorate([
1316
+ (0, decorators_1.property)()
1317
+ ], CallLogic.prototype, "isAdvancedSettingFolded", void 0);
1318
+ __decorate([
1319
+ (0, translator_1.withSourceMap)()
1320
+ ], CallLogic.prototype, "toEmbeddedTS", null);
1321
+ __decorate([
1322
+ (0, translator_1.withSourceMap)()
1323
+ ], CallLogic.prototype, "toNaturalTS", null);
1324
+ CallLogic = CallLogic_1 = __decorate([
1325
+ decorators_1.className,
1326
+ (0, decorators_1.concept)('调用逻辑')
1327
+ // @ts-ignore
1328
+ ], CallLogic);
1329
+ exports.CallLogic = CallLogic;
1330
+ exports.default = CallLogic;
1331
+ //================================================================================
1332
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1333
+ // 自动生成的代码已结束。下面可以手动编写。
1334
+ //================================================================================
1337
1335
  //# sourceMappingURL=CallLogic__.js.map