@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,878 +1,920 @@
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 __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.transformTSCodeToExpression = exports.transformTSCodeEx = exports.tryTransformTSCode = exports.transformTSCode = exports.tryParseTS = void 0;
30
- /* eslint-disable global-require */
31
- /* eslint-disable @typescript-eslint/no-use-before-define */
32
- const babel = __importStar(require("@babel/core"));
33
- const generator_1 = __importDefault(require("@babel/generator"));
34
- const naslTypes = __importStar(require("../concepts"));
35
- const debug = false;
36
- function tryParseTS(tsCode) {
37
- try {
38
- const root = babel.parseSync(tsCode, {
39
- filename: 'result.ts',
40
- presets: [require('@babel/preset-typescript')],
41
- });
42
- // console.log((root as any).program.body[0].body.body.map((item) => item.trailingComments));
43
- return root;
44
- }
45
- catch (e) {
46
- return null;
47
- }
48
- }
49
- exports.tryParseTS = tryParseTS;
50
- function flatMemberExpression(node) {
51
- if (node.type === 'MemberExpression')
52
- return [...flatMemberExpression(node.object), node.property];
53
- return [node];
54
- }
55
- function flatMatchPatternsExpression(node) {
56
- if (node.concept === 'BinaryExpression') {
57
- if (node.operator === '||') {
58
- return [...flatMatchPatternsExpression(node.left), ...flatMatchPatternsExpression(node.right)];
59
- }
60
- if (node.operator === '==') {
61
- return [node.right];
62
- }
63
- return [node];
64
- }
65
- return [node];
66
- }
67
- function flatIfStatement(node) {
68
- if (node.alternate.type === 'IfStatement') {
69
- return [...flatIfStatement(node.alternate), node];
70
- }
71
- return [node];
72
- }
73
- /**
74
- * 这个函数是修复 AI 翻译出错的情况,与正常的 transform 做个区分
75
- * @param node
76
- * @returns
77
- */
78
- function fixLogicNode(node) {
79
- if (node?.type === 'CallExpression') {
80
- const calleeName = (0, generator_1.default)(node.callee).code;
81
- if (calleeName === 'nasl.util.ForEach') {
82
- const callee = flatMemberExpression(node.callee);
83
- node.callee = callee[2];
84
- }
85
- }
86
- }
87
- function transformTSCode(tsCode, contextLogicName, type) {
88
- const logic = new naslTypes.Logic();
89
- logic.body = [];
90
- function transformTypeAnnotation(node) {
91
- if (node.type === 'TSTypeReference') {
92
- const typeName = node.typeName.name;
93
- const primitiveType = naslTypes.primitiveTypeList.find((ta) => ta.typeName === typeName);
94
- if (node?.typeNamespace) {
95
- return naslTypes.TypeAnnotation.createReference(typeName, {
96
- typeNamespace: node.typeNamespace,
97
- });
98
- }
99
- if (typeName === 'Integer') {
100
- return naslTypes.TypeAnnotation.createPrimitive('Long');
101
- }
102
- if (primitiveType) {
103
- return naslTypes.TypeAnnotation.createPrimitive(typeName);
104
- }
105
- if (['List', 'Map', 'Current'].includes(typeName) && node.typeParameters) {
106
- return naslTypes.TypeAnnotation.createGeneric(typeName, {
107
- typeArguments: node.typeParameters.params.map(transformTypeAnnotation),
108
- });
109
- }
110
- if (!node.typeParameters) {
111
- return naslTypes.TypeAnnotation.createReference(typeName, {
112
- typeNamespace: 'app.dataSources.defaultDS',
113
- });
114
- }
115
- console.error(node);
116
- if (debug) {
117
- throw new Error(`Unhandled node ${node.type}`);
118
- }
119
- }
120
- else if (node.type === 'TSTypeLiteral') {
121
- return naslTypes.TypeAnnotation.createTypeAnonymousStructure(node.members.map((member) => new naslTypes.StructureProperty({
122
- name: member.key.name,
123
- typeAnnotation: transformTypeAnnotation(member.typeAnnotation.typeAnnotation),
124
- })));
125
- }
126
- else if (node.type === 'TSBooleanKeyword') {
127
- return naslTypes.TypeAnnotation.createPrimitive('Boolean');
128
- }
129
- else if (node.type === 'TSStringKeyword') {
130
- return naslTypes.TypeAnnotation.createPrimitive('String');
131
- }
132
- else if (node.type === 'TSNumberKeyword') {
133
- return naslTypes.TypeAnnotation.createPrimitive('Double');
134
- }
135
- else if (node.type === 'TSUnionType') {
136
- const union = naslTypes.TypeAnnotation.createPrimitive('Union');
137
- union.typeArguments = [];
138
- node.types.forEach((curType) => {
139
- union.typeArguments.push(transformTypeAnnotation(curType));
140
- });
141
- return union;
142
- }
143
- else {
144
- console.error(node);
145
- if (debug) {
146
- throw new Error(`Unhandled node ${node.type}`);
147
- }
148
- }
149
- }
150
- function transformParam(node) {
151
- const typeAnnotation = node.typeAnnotation?.typeAnnotation;
152
- return new naslTypes.Param({
153
- name: node.name,
154
- typeAnnotation: typeAnnotation ? transformTypeAnnotation(typeAnnotation) : null,
155
- });
156
- }
157
- function pushElseIf(ifNode, switchStatement) {
158
- switchStatement.cases.push(new naslTypes.SwitchCase({
159
- test: transformLogicNode(ifNode.test),
160
- consequent: !ifNode.consequent ? [] : ifNode.consequent.body.map((item) => transformLogicNode(item)).filter((item) => !!item),
161
- }));
162
- if (ifNode.alternate && ifNode.alternate.type === 'IfStatement') {
163
- pushElseIf(ifNode.alternate, switchStatement);
164
- }
165
- else {
166
- switchStatement.cases.push(new naslTypes.SwitchCase({
167
- test: undefined,
168
- consequent: !ifNode?.alternate ? [] : ifNode?.alternate?.body.map((item) => transformLogicNode(item)).filter((item) => !!item),
169
- }));
170
- }
171
- }
172
- function handleBinaryExpression(calleeName, argument) {
173
- const map = {
174
- plus: '+',
175
- minus: '-',
176
- multiply: '*',
177
- divide: '/',
178
- remainder: '%',
179
- };
180
- return new naslTypes.BinaryExpression({
181
- operator: map?.[calleeName],
182
- left: transformLogicNode(argument?.[0]),
183
- right: transformLogicNode(argument?.[1]),
184
- });
185
- }
186
- function handleNewExpression(calleeName, node) {
187
- if (calleeName === 'NewList') {
188
- return new naslTypes.NewList({
189
- typeAnnotation: naslTypes.TypeAnnotation.createGeneric('List', {
190
- typeArguments: node?.typeParameters?.params.map(transformTypeAnnotation),
191
- }),
192
- items: node?.arguments?.[0]?.elements?.map((arg) => transformLogicNode(arg)),
193
- });
194
- }
195
- if (calleeName === 'NewMap') {
196
- const keys = [];
197
- const values = [];
198
- node?.arguments?.[0]?.properties.forEach((arg) => {
199
- keys.push(transformLogicNode(arg.key));
200
- values.push(transformLogicNode(arg.value));
201
- });
202
- return new naslTypes.NewMap({
203
- typeAnnotation: naslTypes.TypeAnnotation.createGeneric('Map', {
204
- typeArguments: node?.typeParameters?.params.map(transformTypeAnnotation),
205
- }),
206
- keys,
207
- values,
208
- });
209
- }
210
- if (calleeName === 'NewEntity') {
211
- const properties = [];
212
- const rights = [];
213
- node?.arguments?.[0]?.properties.forEach((arg) => {
214
- properties.push(transformLogicNode(arg.key));
215
- rights.push(new naslTypes.SelectMembers({
216
- expression: transformLogicNode(arg.value)
217
- }));
218
- });
219
- const typeName = node?.typeParameters?.params?.[0]?.typeName?.name;
220
- return new naslTypes.NewComposite({
221
- typeAnnotation: naslTypes.TypeAnnotation.createReference(typeName, {
222
- typeNamespace: 'app.dataSources.defaultDS.entities',
223
- typeName
224
- }),
225
- properties,
226
- rights,
227
- });
228
- }
229
- if (calleeName === 'NewAnonymityStructure') {
230
- const properties = [];
231
- const rights = [];
232
- const structureProperties = [];
233
- node?.arguments?.[0]?.properties?.forEach((arg) => {
234
- properties.push(transformLogicNode(arg.key));
235
- rights.push(new naslTypes.SelectMembers({
236
- expression: transformLogicNode(arg.value)
237
- }));
238
- structureProperties.push(new naslTypes.StructureProperty({
239
- name: arg?.key?.name,
240
- typeAnnotation: null
241
- }));
242
- });
243
- return new naslTypes.NewComposite({
244
- typeAnnotation: naslTypes.TypeAnnotation.createTypeAnonymousStructure(structureProperties),
245
- properties,
246
- rights,
247
- });
248
- }
249
- return node;
250
- }
251
- function transformLogicNode(node, typeAnnotation) {
252
- fixLogicNode(node);
253
- // console.log('lemon ~~~ node--1:', node);
254
- if (node.type === 'VariableDeclaration') { // 拆成局部变量和赋值
255
- const declList = node?.declarations || [];
256
- declList?.forEach((decl) => {
257
- const variableName = decl.id.name;
258
- if (!logic.variables.find((variable) => variable.name === variableName)) {
259
- const varTypeAnnotation = decl.id.typeAnnotation?.typeAnnotation;
260
- logic.variables.push(new naslTypes.Variable({
261
- name: variableName,
262
- typeAnnotation: varTypeAnnotation && transformTypeAnnotation(varTypeAnnotation),
263
- }));
264
- }
265
- if (decl.init) {
266
- if (decl.init.type !== 'ArrayExpression' && decl.init.type !== 'ObjectExpression') {
267
- if (type === 'expression') {
268
- return transformLogicNode(decl.init);
269
- }
270
- const item = new naslTypes.Assignment({
271
- left: new naslTypes.Identifier({
272
- name: variableName,
273
- }),
274
- right: transformLogicNode(decl.init),
275
- });
276
- item && logic.body.push(item);
277
- }
278
- }
279
- });
280
- }
281
- else if (node.type === 'CallExpression') {
282
- const callee = flatMemberExpression(node.callee);
283
- const calleeName = (0, generator_1.default)(node.callee).code;
284
- // console.log('lemon ~~~ node--2', node, callee, calleeName);
285
- if (/^\$refs\./.test(calleeName)) {
286
- return new naslTypes.CallLogic({
287
- calleeNamespace: `elements.${callee[1].name}.logics`,
288
- calleeName: callee[2].name,
289
- arguments: node.arguments.map((arg) => new naslTypes.Argument({
290
- expression: transformLogicNode(arg),
291
- })),
292
- });
293
- }
294
- if (callee.length === 2 && callee[0].type === 'Identifier' && callee[0].name.endsWith('Entity')) {
295
- const entityName = callee[0].name.replace(/Entity$/, '');
296
- return new naslTypes.CallLogic({
297
- calleeNamespace: `app.dataSources.defaultDS.entities.${entityName}.logics`,
298
- calleeName: callee[1].name,
299
- arguments: node.arguments.map((arg) => new naslTypes.Argument({
300
- expression: transformLogicNode(arg),
301
- })),
302
- });
303
- }
304
- if (calleeName === 'nasl.oql.query') {
305
- return new naslTypes.OqlQueryComponent({
306
- dataSource: 'app.dataSources.defaultDS',
307
- code: (0, generator_1.default)(node.arguments[0]).code.trim().slice(1, -1),
308
- });
309
- }
310
- if (calleeName === 'nasl.util.consoleLog' || calleeName === 'console.log') {
311
- if (contextLogicName.includes('on_') || contextLogicName.includes('viewLogic_')) {
312
- return new naslTypes.CallLogic({
313
- calleeNamespace: 'nasl.util',
314
- calleeName: 'consoleLog',
315
- shortcut: true,
316
- arguments: node.arguments.map((arg) => new naslTypes.Argument({
317
- expression: transformLogicNode(arg),
318
- })),
319
- });
320
- }
321
- return new naslTypes.CallLogic({
322
- calleeNamespace: 'nasl.logging',
323
- calleeName: 'INFO',
324
- shortcut: true,
325
- arguments: node.arguments.map((arg) => new naslTypes.Argument({
326
- expression: transformLogicNode(arg),
327
- })),
328
- });
329
- }
330
- if (calleeName === 'nasl.util.jsonSerialize' || calleeName === 'nasl.util.jsonDeserialize') {
331
- const curCalleeName = node.callee.property.name;
332
- return new naslTypes.CallLogic({
333
- calleeNamespace: 'nasl.util',
334
- calleeName: curCalleeName,
335
- shortcut: true,
336
- arguments: node.arguments.map((arg) => new naslTypes.Argument({
337
- expression: transformLogicNode(arg),
338
- })),
339
- typeArguments: node?.typeParameters?.params.map((curType) => transformTypeAnnotation({ ...curType })),
340
- });
341
- }
342
- ;
343
- if (calleeName.startsWith('nasl.util.')) {
344
- const curCalleeName = callee.length === 3 ? callee[callee.length - 1].name : callee[0].callee.property.name;
345
- const argument = callee.length === 3 ? node.arguments : callee[0].arguments;
346
- if (['plus', 'minus', 'multiply', 'divide', 'remainder'].includes(curCalleeName)) {
347
- return handleBinaryExpression(curCalleeName, argument);
348
- }
349
- ;
350
- if (['NewList', 'NewMap', 'NewEntity', 'NewAnonymityStructure'].includes(curCalleeName)) {
351
- return handleNewExpression(curCalleeName, node);
352
- }
353
- let typeNamespace;
354
- if (argument?.[argument.length - 1]?.type === 'ObjectExpression') {
355
- typeNamespace = argument.splice(-1)[0].properties[0].value.value;
356
- }
357
- const nodeElement = new naslTypes.CallFunction({
358
- calleeNamespace: 'nasl.util',
359
- calleeName: curCalleeName,
360
- arguments: argument.map((arg, index) => new naslTypes.Argument({
361
- expression: transformLogicNode(arg),
362
- keyword: `str${index + 1}`,
363
- })),
364
- typeArguments: node?.typeParameters?.params.map((curType) => transformTypeAnnotation({ ...curType, typeNamespace })),
365
- });
366
- // console.log('lemon ~ callFunction ~ 3:', nodeElement);
367
- return nodeElement;
368
- }
369
- if (callee.length === 3 && calleeName.startsWith('nasl.ui.')) {
370
- if (callee[2].name === 'destination') {
371
- const namespace = node.arguments[0].value;
372
- const nsArr = namespace.split('.').map((item) => item.replace(/_view$/, ''));
373
- const viewName = nsArr.pop();
374
- return new naslTypes.Destination({
375
- viewNamespace: `app.frontends.pc.views${nsArr.map((item) => `.${item}.views`).join('')}`,
376
- viewName,
377
- arguments: node.arguments.slice(1).map((arg) => new naslTypes.Argument({
378
- expression: transformLogicNode(arg),
379
- })),
380
- });
381
- }
382
- return new naslTypes.CallLogic({
383
- calleeNamespace: 'nasl.ui',
384
- calleeName: callee[2].name,
385
- shortcut: true,
386
- /**
387
- * 这个函数是修复 AI 翻译出错的情况,与正常的 transform 做个区分
388
- * @param node
389
- * @returns
390
- */
391
- arguments: node.arguments.map((arg) => new naslTypes.Argument({
392
- expression: transformLogicNode(arg),
393
- })),
394
- });
395
- }
396
- if (calleeName === 'ForEach') {
397
- const newCallee = node.arguments;
398
- const arrowFunction = node.arguments[3];
399
- const nodeElement = new naslTypes.ForEachStatement({
400
- each: transformLogicNode(newCallee[0]),
401
- start: transformLogicNode(newCallee[1]),
402
- end: transformLogicNode(newCallee[2]),
403
- item: transformParam(arrowFunction.params[0]),
404
- index: transformParam(arrowFunction.params[1]),
405
- body: arrowFunction.body.body.map((item) => transformLogicNode(item)).filter((item) => !!item),
406
- });
407
- return nodeElement;
408
- }
409
- if (callee.length === 2) {
410
- const curCalleeName = node.callee.property.name;
411
- if (curCalleeName === 'forEach') {
412
- const newCallee = node.callee.object;
413
- const arrowFunction = node.arguments[0];
414
- const nodeElement = new naslTypes.ForEachStatement({
415
- each: transformLogicNode(newCallee.callee.object),
416
- start: transformLogicNode(newCallee?.arguments?.[0]),
417
- end: transformLogicNode(newCallee?.arguments?.[1]),
418
- item: transformParam(arrowFunction.params[0]),
419
- index: transformParam(arrowFunction.params[1]),
420
- body: arrowFunction.body.body.map((item) => transformLogicNode(item)).filter((item) => !!item),
421
- });
422
- return nodeElement;
423
- }
424
- }
425
- else if (['plus', 'minus', 'multiply', 'divide', 'remainder'].includes(calleeName)) {
426
- return handleBinaryExpression(calleeName, node?.arguments);
427
- }
428
- else if (calleeName === 'alert') {
429
- return new naslTypes.CallLogic({
430
- calleeNamespace: 'nasl.ui',
431
- calleeName: 'showMessage',
432
- shortcut: true,
433
- arguments: node.arguments.map((arg) => new naslTypes.Argument({
434
- expression: transformLogicNode(arg),
435
- })),
436
- });
437
- }
438
- else if (/^app.dataSources|app.logics|load/.test(calleeName)) {
439
- return new naslTypes.CallLogic({
440
- calleeNamespace: (0, generator_1.default)(node.callee.object).code,
441
- calleeName: callee[callee.length - 1].name,
442
- arguments: node.arguments.map((arg) => new naslTypes.Argument({
443
- expression: transformLogicNode(arg),
444
- })),
445
- });
446
- }
447
- else if (callee.length === 1) {
448
- if (calleeName.startsWith('viewLogic_')) {
449
- return new naslTypes.CallLogic({
450
- calleeNamespace: '',
451
- calleeName: calleeName.slice('viewLogic_'.length),
452
- arguments: node.arguments.map((arg) => new naslTypes.Argument({
453
- expression: transformLogicNode(arg),
454
- })),
455
- });
456
- }
457
- return new naslTypes.CallLogic({
458
- calleeNamespace: `app.logics`,
459
- calleeName,
460
- arguments: node.arguments.map((arg) => new naslTypes.Argument({
461
- expression: transformLogicNode(arg),
462
- })),
463
- });
464
- }
465
- else if (/interfaces/.test(calleeName)) {
466
- return new naslTypes.CallInterface({
467
- calleeNamespace: (0, generator_1.default)(node.callee.object).code,
468
- calleeName: callee[callee.length - 1].name,
469
- arguments: node.arguments.map((arg) => new naslTypes.Argument({
470
- keyword: arg.properties[0].key.name,
471
- expression: transformLogicNode(arg.properties[0].value),
472
- })),
473
- });
474
- }
475
- // else if (/destination/.test(calleeName)) {
476
- // const newCallee = flatMemberExpression((node.callee as any).object);
477
- // return new naslTypes.Destination({
478
- // viewNamespace: generate((node.callee as any).object.object).code,
479
- // viewName: (newCallee[newCallee.length - 1] as babelTypes.Identifier).name,
480
- // target: (node.arguments[0] as any).properties[1].value.value,
481
- // anchor: new naslTypes.Anchor({
482
- // expression: transformLogicNode((node.arguments[0] as any).properties[0].value),
483
- // }),
484
- // });
485
- // }
486
- else if (node.callee.type === 'ArrowFunctionExpression') {
487
- // NOTE: 适用于 if else
488
- const newCallee = node.callee.body.body;
489
- if (newCallee[newCallee.length - 1].argument?.callee?.name === '__MatchExpressionFuntion') {
490
- const match = new naslTypes.Match({
491
- expression: transformLogicNode(newCallee[0]),
492
- isExpression: type === 'expression',
493
- cases: flatIfStatement(newCallee[1].body.body[0]).map((_case) => new naslTypes.MatchCase({
494
- patterns: !_case.test ? [] : flatMatchPatternsExpression(transformLogicNode(_case.test)),
495
- body: _case.consequent.body.filter((item) => item.type !== 'BreakStatement').map((item) => transformLogicNode(item)).filter((item) => !!item),
496
- })),
497
- });
498
- if (!match.cases.length || match.cases[match.cases.length - 1].patterns.length) {
499
- match.cases.push(new naslTypes.MatchCase({
500
- patterns: [],
501
- body: [],
502
- }));
503
- }
504
- match.cases.forEach((case_) => {
505
- if (case_.body.length && (case_.body[0].concept === 'BooleanLiteral' || case_.body[0].concept === 'StringLiteral')) {
506
- case_.isMatchedTypeEnumable = true;
507
- }
508
- if (case_.patterns.length && case_.patterns[0].concept === 'MemberExpression') {
509
- case_.isMatchedTypeEnumable = true;
510
- case_.patterns[0] = new naslTypes.MemberExpression({
511
- object: {
512
- concept: 'Identifier',
513
- name: case_.patterns[0].object.property.name,
514
- folded: false,
515
- namespace: 'app.enums'
516
- },
517
- property: {
518
- concept: 'Identifier',
519
- name: case_.patterns[0].property.value,
520
- folded: false,
521
- },
522
- });
523
- }
524
- });
525
- return match;
526
- }
527
- if (newCallee[newCallee.length - 1].argument?.callee?.name === '__SwitchExpressionFuntion') {
528
- const switchStatement = transformLogicNode(newCallee[0].body.body[0]);
529
- return switchStatement;
530
- }
531
- console.error(node);
532
- if (debug) {
533
- throw new Error(`Unhandled ArrowFunctionExpression node ${node.type}`);
534
- }
535
- }
536
- else {
537
- console.error(node);
538
- if (debug) {
539
- throw new Error(`Unhandled node ${callee.map((item) => item.name).join('.')} ${node.type}`);
540
- }
541
- }
542
- }
543
- else if (node.type === 'IfStatement') {
544
- if (node.alternate && node.alternate.type === 'IfStatement') {
545
- const switchStatement = new naslTypes.SwitchStatement({
546
- cases: [],
547
- });
548
- pushElseIf(node, switchStatement);
549
- return switchStatement;
550
- }
551
- return new naslTypes.IfStatement({
552
- test: transformLogicNode(node.test),
553
- consequent: !node.consequent ? [] : node.consequent.body.map((item) => transformLogicNode(item)).filter((item) => !!item),
554
- alternate: !node.alternate ? [] : node.alternate.body.map((item) => transformLogicNode(item)).filter((item) => !!item),
555
- });
556
- }
557
- else if (node.type === 'WhileStatement') {
558
- return new naslTypes.WhileStatement({
559
- test: transformLogicNode(node.test),
560
- body: node.body.body.map((item) => transformLogicNode(item)).filter((item) => !!item),
561
- });
562
- }
563
- else if (node.type === 'SwitchStatement') {
564
- const match = new naslTypes.Match({
565
- expression: transformLogicNode(node.discriminant),
566
- isExpression: type === 'expression',
567
- cases: node.cases.map((_case) => new naslTypes.MatchCase({
568
- patterns: !_case.test ? [] : [transformLogicNode(_case.test)],
569
- body: _case.consequent.filter((item) => item.type !== 'BreakStatement').map((item) => transformLogicNode(item)).filter((item) => !!item),
570
- })),
571
- });
572
- if (!match.cases.length || match.cases[match.cases.length - 1].patterns.length) {
573
- match.cases.push(new naslTypes.MatchCase({
574
- patterns: [],
575
- body: [],
576
- }));
577
- }
578
- match.cases.forEach((case_) => {
579
- if (case_.body.length && (case_.body[0].concept === 'BooleanLiteral' || case_.body[0].concept === 'StringLiteral')) {
580
- case_.isMatchedTypeEnumable = true;
581
- }
582
- if (case_.patterns.length && case_.patterns[0].concept === 'MemberExpression') {
583
- case_.isMatchedTypeEnumable = true;
584
- case_.patterns[0].object.namespace = 'app.enums';
585
- }
586
- });
587
- return match;
588
- }
589
- else if (node.type === 'MemberExpression') {
590
- if (node.property.type === 'NumericLiteral') {
591
- return new naslTypes.CallFunction({
592
- calleeNamespace: 'nasl.util',
593
- calleeName: 'Get',
594
- arguments: [
595
- new naslTypes.Argument({
596
- expression: transformLogicNode(node.object),
597
- }),
598
- new naslTypes.Argument({
599
- expression: transformLogicNode(node.property),
600
- }),
601
- ],
602
- });
603
- }
604
- return new naslTypes.MemberExpression({
605
- object: transformLogicNode(node.object),
606
- property: transformLogicNode(node.property),
607
- });
608
- }
609
- else if (node.type === 'Identifier') {
610
- return new naslTypes.Identifier({
611
- name: node.name,
612
- });
613
- }
614
- else if (node.type === 'ExpressionStatement') {
615
- return transformLogicNode(node.expression);
616
- }
617
- else if (node.type === 'AssignmentExpression') {
618
- if (node.operator === '+=' || node.operator === '-=') {
619
- if (type === 'expression') {
620
- return new naslTypes.BinaryExpression({
621
- operator: node.operator[0],
622
- left: transformLogicNode(node.left),
623
- right: transformLogicNode(node.right),
624
- });
625
- }
626
- return new naslTypes.Assignment({
627
- left: transformLogicNode(node.left),
628
- right: new naslTypes.BinaryExpression({
629
- operator: node.operator[0],
630
- left: transformLogicNode(node.left),
631
- right: transformLogicNode(node.right),
632
- }),
633
- });
634
- }
635
- if (type === 'expression') {
636
- return transformLogicNode(node.right);
637
- }
638
- return new naslTypes.Assignment({
639
- left: transformLogicNode(node.left),
640
- right: transformLogicNode(node.right),
641
- });
642
- }
643
- else if (node.type === 'NewExpression') {
644
- const calleeName = (0, generator_1.default)(node.callee).code;
645
- if (['Boolean', 'Integer', 'Double', 'Decimal', 'Long'].includes(calleeName)) {
646
- return transformLogicNode(node.arguments[0], naslTypes.TypeAnnotation.createPrimitive(calleeName));
647
- }
648
- console.error(node);
649
- if (debug) {
650
- throw new Error(`Unhandled node ${node.type}`);
651
- }
652
- }
653
- else if (node.type === 'ArrowFunctionExpression') {
654
- return new naslTypes.AnonymousFunction({
655
- params: node.params.map((param) => transformParam(param)),
656
- body: transformLogicNode(node.body),
657
- });
658
- }
659
- else if (node.type === 'BooleanLiteral') {
660
- return new naslTypes.BooleanLiteral({
661
- value: String(node.value),
662
- });
663
- }
664
- else if (node.type === 'StringLiteral') {
665
- return new naslTypes.StringLiteral({
666
- value: node.value,
667
- });
668
- }
669
- else if (node.type === 'NumericLiteral') {
670
- const literal = new naslTypes.NumericLiteral({
671
- value: String(node.value),
672
- typeAnnotation: typeAnnotation || naslTypes.TypeAnnotation.createPrimitive('Integer'),
673
- });
674
- literal.typeAnnotation.typeName = literal.changeType(String(node.value));
675
- return literal;
676
- }
677
- else if (node.type === 'NullLiteral') {
678
- return new naslTypes.NullLiteral();
679
- }
680
- else if (node.type === 'TemplateLiteral') {
681
- const expressions = [...node.expressions, ...node.quasis.map((element) => ({
682
- type: 'StringLiteral',
683
- value: element.value.raw,
684
- start: element.start,
685
- end: element.end,
686
- }))];
687
- expressions.sort((a, b) => a.start - b.start);
688
- return new naslTypes.StringInterpolation({
689
- expressions: expressions.map((item) => transformLogicNode(item)),
690
- });
691
- }
692
- else if (node.type === 'BinaryExpression' || node.type === 'LogicalExpression') {
693
- if (node.operator === '===')
694
- node.operator = '==';
695
- if (node.operator === '!==')
696
- node.operator = '!=';
697
- if (['+', '-', '*', '/', '%', '==', '!=', '>', '<', '>=', '<=', '&&', '||', 'startwith', 'endwith', 'like', 'in'].includes(node.operator)) {
698
- return new naslTypes.BinaryExpression({
699
- operator: node.operator,
700
- left: transformLogicNode(node.left),
701
- right: transformLogicNode(node.right),
702
- });
703
- }
704
- console.error(node);
705
- if (debug) {
706
- throw new Error(`Unhandled node ${node.type}`);
707
- }
708
- }
709
- else if (node.type === 'UnaryExpression') {
710
- if (['!'].includes(node.operator)) {
711
- return new naslTypes.UnaryExpression({
712
- operator: node.operator,
713
- argument: transformLogicNode(node.argument),
714
- });
715
- }
716
- if (['-'].includes(node.operator) && node.argument.type === 'NumericLiteral') {
717
- return transformLogicNode({
718
- type: 'NumericLiteral',
719
- value: -node.argument.value,
720
- });
721
- }
722
- console.error(node);
723
- if (debug) {
724
- throw new Error(`Unhandled node ${node.type}`);
725
- }
726
- }
727
- else if (node.type === 'UpdateExpression') {
728
- if (node.operator === '++' || node.operator === '--') {
729
- return new naslTypes.Assignment({
730
- left: transformLogicNode(node.argument),
731
- right: new naslTypes.BinaryExpression({
732
- operator: node.operator[0],
733
- left: transformLogicNode(node.argument),
734
- right: new naslTypes.NumericLiteral({
735
- value: '1',
736
- typeAnnotation: naslTypes.TypeAnnotation.createPrimitive('Integer'),
737
- }),
738
- }),
739
- });
740
- }
741
- }
742
- else if (node.type === 'ReturnStatement') {
743
- if (node.argument) {
744
- if (type === 'expression') {
745
- return transformLogicNode(node.argument);
746
- }
747
- if (!logic.returns.length) {
748
- logic.returns.push(new naslTypes.Return({
749
- name: 'result',
750
- }));
751
- }
752
- return new naslTypes.Assignment({
753
- left: new naslTypes.Identifier({
754
- name: logic.returns[0].name,
755
- }),
756
- right: transformLogicNode(node.argument),
757
- });
758
- }
759
- }
760
- else if (node.type === 'EmptyStatement') {
761
- return node.leadingComments && new naslTypes.Comment({
762
- value: String(node.leadingComments[0].value),
763
- });
764
- }
765
- else if (node.type === 'BlockStatement') {
766
- return transformLogicNode(node?.body?.[0]);
767
- }
768
- else {
769
- console.error(node);
770
- if (debug) {
771
- throw new Error(`Unhandled node ${node.type}`);
772
- }
773
- }
774
- }
775
- const root = babel.parseSync(tsCode, {
776
- filename: 'result.ts',
777
- presets: [require('@babel/preset-typescript')],
778
- });
779
- let parameters = [];
780
- let statements = [];
781
- let func;
782
- if (root.program.body[0].type === 'ExportNamedDeclaration') {
783
- func = root.program.body[0].declaration;
784
- }
785
- parameters = func.params;
786
- statements = func.body.body;
787
- // traverse<babelTypes.Node>((current) => {
788
- // if (current.node.type === 'FunctionDeclaration' && (current.node.id.name === contextLogicName || type === 'expression')) {
789
- // return true;
790
- // }
791
- // }, { node: root.program }, { mode: 'anyObject' });
792
- const currentPositionComment = root.comments.find((comment) => comment.type === 'CommentLine' && comment.value === ' 当前位置');
793
- if (currentPositionComment) {
794
- statements = statements.filter((stat) => stat.start > currentPositionComment.start);
795
- }
796
- // traverse<babelTypes.Node>((current) => {
797
- // if (!current.node.type)
798
- // console.log(current.key, current.node);
799
- // // console.log(current.node.type);
800
- // }, { node: {
801
- // type: 'BlockStatement',
802
- // body: statements,
803
- // } as babelTypes.BlockStatement }, {
804
- // mode: 'anyObject',
805
- // depthFirst: true,
806
- // excludedKeySet: new Set(['loc']),
807
- // });
808
- parameters.forEach((node) => {
809
- const param = transformParam(node);
810
- param && logic.params.push(param);
811
- });
812
- statements.forEach((node) => {
813
- const item = transformLogicNode(node);
814
- item && logic.body.push(item);
815
- });
816
- // console.log(JSON.stringify(logic));
817
- // try {
818
- // console.log(logic.toNaturalTS());
819
- // } catch (e) {
820
- // console.error(e);
821
- // }
822
- return logic;
823
- }
824
- exports.transformTSCode = transformTSCode;
825
- function tryTransformTSCode(tsCode, contextLogicName, type) {
826
- if (tsCode.includes('```')) {
827
- const cap = tsCode.match(/```.*\n([\s\S]+?)```/);
828
- if (cap)
829
- tsCode = cap[1].trim();
830
- }
831
- return transformTSCode(tsCode, contextLogicName, type);
832
- }
833
- exports.tryTransformTSCode = tryTransformTSCode;
834
- function transformTSCodeEx(answer, activeLogic, context) {
835
- let logicName = activeLogic.name;
836
- const { app, nasl } = context;
837
- if (activeLogic.parentNode instanceof nasl.BindEvent && activeLogic.parentNode.parentNode instanceof nasl.View) {
838
- logicName = `viewLogic_${activeLogic.name}`;
839
- }
840
- else if (activeLogic.parentNode instanceof nasl.BindEvent && activeLogic.parentNode.parentNode instanceof nasl.ViewElement) {
841
- logicName = `on_${(activeLogic.parentNode).element.name}_${activeLogic.name}`;
842
- }
843
- else {
844
- logicName = activeLogic.name;
845
- }
846
- const logic = tryTransformTSCode(answer, logicName);
847
- app.emit('collect:start', { actionMsg: '自然语言生成代码' });
848
- logic.params.forEach((param) => {
849
- if (!activeLogic.params.find((_) => _.name === param.name))
850
- activeLogic.addParam(param.toJSON());
851
- });
852
- logic.variables.forEach((variable) => {
853
- if (!activeLogic.variables.find((_) => _.name === variable.name))
854
- activeLogic.addVariable(variable.toJSON());
855
- });
856
- if (logic.returns.length && !activeLogic.returns.length) {
857
- activeLogic.addReturn(logic.returns[0].toJSON());
858
- }
859
- logic.body.forEach((item) => activeLogic.insertItemInBodyAt(item.toJSON(), activeLogic.body.length - 1));
860
- app.emit('collect:end');
861
- }
862
- exports.transformTSCodeEx = transformTSCodeEx;
863
- function transformTSCodeToExpression(answer, context) {
864
- let logic;
865
- try {
866
- logic = tryTransformTSCode(answer, '', 'expression');
867
- }
868
- catch (error) {
869
- throw new Error(error);
870
- }
871
- const { app } = context;
872
- app.emit('collect:start', { actionMsg: '自然语言生成代码' });
873
- const { body } = logic;
874
- app.emit('collect:end');
875
- return body;
876
- }
877
- exports.transformTSCodeToExpression = transformTSCodeToExpression;
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 __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.transformTSCodeToExpression = exports.transformTSCodeEx = exports.tryTransformTSCode = exports.transformTSCode = exports.tryParseTS = void 0;
30
+ /* eslint-disable global-require */
31
+ /* eslint-disable @typescript-eslint/no-use-before-define */
32
+ const babel = __importStar(require("@babel/core"));
33
+ const generator_1 = __importDefault(require("@babel/generator"));
34
+ const naslTypes = __importStar(require("../concepts"));
35
+ const debug = false;
36
+ function tryParseTS(tsCode) {
37
+ try {
38
+ const root = babel.parseSync(tsCode, {
39
+ filename: 'result.ts',
40
+ presets: [require('@babel/preset-typescript')],
41
+ });
42
+ // console.log((root as any).program.body[0].body.body.map((item) => item.trailingComments));
43
+ return root;
44
+ }
45
+ catch (e) {
46
+ return null;
47
+ }
48
+ }
49
+ exports.tryParseTS = tryParseTS;
50
+ function flatMemberExpression(node) {
51
+ if (node.type === 'MemberExpression')
52
+ return [...flatMemberExpression(node.object), node.property];
53
+ return [node];
54
+ }
55
+ function flatMatchPatternsExpression(node) {
56
+ if (node.concept === 'BinaryExpression') {
57
+ if (node.operator === '||') {
58
+ return [...flatMatchPatternsExpression(node.left), ...flatMatchPatternsExpression(node.right)];
59
+ }
60
+ if (node.operator === '==') {
61
+ return [node.right];
62
+ }
63
+ return [node];
64
+ }
65
+ return [node];
66
+ }
67
+ function flatIfStatement(node) {
68
+ if (node.alternate.type === 'IfStatement') {
69
+ return [...flatIfStatement(node.alternate), node];
70
+ }
71
+ return [node];
72
+ }
73
+ /**
74
+ * 这个函数是修复 AI 翻译出错的情况,与正常的 transform 做个区分
75
+ * @param node
76
+ * @returns
77
+ */
78
+ function fixLogicNode(node) {
79
+ if (node?.type === 'CallExpression') {
80
+ const calleeName = (0, generator_1.default)(node.callee).code;
81
+ if (calleeName === 'nasl.util.ForEach') {
82
+ const callee = flatMemberExpression(node.callee);
83
+ node.callee = callee[2];
84
+ }
85
+ }
86
+ }
87
+ function transformTSCode(tsCode, contextLogicName, type) {
88
+ const logic = new naslTypes.Logic();
89
+ logic.body = [];
90
+ function transformTypeAnnotation(node) {
91
+ if (node.type === 'TSTypeReference') {
92
+ const typeName = node.typeName.name;
93
+ const primitiveType = naslTypes.primitiveTypeList.find((ta) => ta.typeName === typeName);
94
+ if (node?.typeNamespace) {
95
+ return naslTypes.TypeAnnotation.createReference(typeName, {
96
+ typeNamespace: node.typeNamespace,
97
+ });
98
+ }
99
+ if (typeName === 'Integer') {
100
+ return naslTypes.TypeAnnotation.createPrimitive('Long');
101
+ }
102
+ if (primitiveType) {
103
+ return naslTypes.TypeAnnotation.createPrimitive(typeName);
104
+ }
105
+ if (['List', 'Map', 'Current'].includes(typeName) && node.typeParameters) {
106
+ return naslTypes.TypeAnnotation.createGeneric(typeName, {
107
+ typeArguments: node.typeParameters.params.map(transformTypeAnnotation),
108
+ });
109
+ }
110
+ if (!node.typeParameters) {
111
+ return naslTypes.TypeAnnotation.createReference(typeName, {
112
+ typeNamespace: 'app.dataSources.defaultDS',
113
+ });
114
+ }
115
+ console.error(node);
116
+ if (debug) {
117
+ throw new Error(`Unhandled node ${node.type}`);
118
+ }
119
+ }
120
+ else if (node.type === 'TSTypeLiteral') {
121
+ return naslTypes.TypeAnnotation.createTypeAnonymousStructure(node.members.map((member) => new naslTypes.StructureProperty({
122
+ name: member.key.name,
123
+ typeAnnotation: transformTypeAnnotation(member.typeAnnotation.typeAnnotation),
124
+ })));
125
+ }
126
+ else if (node.type === 'TSBooleanKeyword') {
127
+ return naslTypes.TypeAnnotation.createPrimitive('Boolean');
128
+ }
129
+ else if (node.type === 'TSStringKeyword') {
130
+ return naslTypes.TypeAnnotation.createPrimitive('String');
131
+ }
132
+ else if (node.type === 'TSNumberKeyword') {
133
+ return naslTypes.TypeAnnotation.createPrimitive('Double');
134
+ }
135
+ else if (node.type === 'TSUnionType') {
136
+ const union = naslTypes.TypeAnnotation.createPrimitive('Union');
137
+ union.typeArguments = [];
138
+ node.types.forEach((curType) => {
139
+ union.typeArguments.push(transformTypeAnnotation(curType));
140
+ });
141
+ return union;
142
+ }
143
+ else {
144
+ console.error(node);
145
+ if (debug) {
146
+ throw new Error(`Unhandled node ${node.type}`);
147
+ }
148
+ }
149
+ }
150
+ function transformParam(node) {
151
+ const typeAnnotation = node.typeAnnotation?.typeAnnotation;
152
+ return new naslTypes.Param({
153
+ name: node.name,
154
+ typeAnnotation: typeAnnotation ? transformTypeAnnotation(typeAnnotation) : null,
155
+ });
156
+ }
157
+ function pushElseIf(ifNode, switchStatement) {
158
+ switchStatement.cases.push(new naslTypes.SwitchCase({
159
+ test: transformLogicNode(ifNode.test),
160
+ consequent: !ifNode.consequent ? [] : ifNode.consequent.body.map((item) => transformLogicNode(item)).filter((item) => !!item),
161
+ }));
162
+ if (ifNode.alternate && ifNode.alternate.type === 'IfStatement') {
163
+ pushElseIf(ifNode.alternate, switchStatement);
164
+ }
165
+ else {
166
+ switchStatement.cases.push(new naslTypes.SwitchCase({
167
+ test: undefined,
168
+ consequent: !ifNode?.alternate ? [] : ifNode?.alternate?.body.map((item) => transformLogicNode(item)).filter((item) => !!item),
169
+ }));
170
+ }
171
+ }
172
+ function handleBinaryExpression(calleeName, argument) {
173
+ const map = {
174
+ plus: '+',
175
+ minus: '-',
176
+ multiply: '*',
177
+ divide: '/',
178
+ remainder: '%',
179
+ };
180
+ return new naslTypes.BinaryExpression({
181
+ operator: map?.[calleeName],
182
+ left: transformLogicNode(argument?.[0]),
183
+ right: transformLogicNode(argument?.[1]),
184
+ });
185
+ }
186
+ function handleNewExpression(calleeName, node) {
187
+ if (calleeName === 'NewList') {
188
+ return new naslTypes.NewList({
189
+ typeAnnotation: naslTypes.TypeAnnotation.createGeneric('List', {
190
+ typeArguments: node?.typeParameters?.params.map(transformTypeAnnotation),
191
+ }),
192
+ items: node?.arguments?.[0]?.elements?.map((arg) => transformLogicNode(arg)),
193
+ });
194
+ }
195
+ if (calleeName === 'NewMap') {
196
+ const keys = [];
197
+ const values = [];
198
+ node?.arguments?.[0]?.properties.forEach((arg) => {
199
+ keys.push(transformLogicNode(arg.key));
200
+ values.push(transformLogicNode(arg.value));
201
+ });
202
+ return new naslTypes.NewMap({
203
+ typeAnnotation: naslTypes.TypeAnnotation.createGeneric('Map', {
204
+ typeArguments: node?.typeParameters?.params.map(transformTypeAnnotation),
205
+ }),
206
+ keys,
207
+ values,
208
+ });
209
+ }
210
+ if (calleeName === 'NewEntity') {
211
+ const properties = [];
212
+ const rights = [];
213
+ node?.arguments?.[0]?.properties.forEach((arg) => {
214
+ properties.push(transformLogicNode(arg.key));
215
+ rights.push(new naslTypes.SelectMembers({
216
+ expression: transformLogicNode(arg.value)
217
+ }));
218
+ });
219
+ const typeName = node?.typeParameters?.params?.[0]?.typeName?.name;
220
+ return new naslTypes.NewComposite({
221
+ typeAnnotation: naslTypes.TypeAnnotation.createReference(typeName, {
222
+ typeNamespace: 'app.dataSources.defaultDS.entities',
223
+ typeName
224
+ }),
225
+ properties,
226
+ rights,
227
+ });
228
+ }
229
+ if (calleeName === 'NewAnonymityStructure') {
230
+ const properties = [];
231
+ const rights = [];
232
+ const structureProperties = [];
233
+ node?.arguments?.[0]?.properties?.forEach((arg) => {
234
+ properties.push(transformLogicNode(arg.key));
235
+ rights.push(new naslTypes.SelectMembers({
236
+ expression: transformLogicNode(arg.value)
237
+ }));
238
+ structureProperties.push(new naslTypes.StructureProperty({
239
+ name: arg?.key?.name,
240
+ typeAnnotation: null
241
+ }));
242
+ });
243
+ return new naslTypes.NewComposite({
244
+ typeAnnotation: naslTypes.TypeAnnotation.createTypeAnonymousStructure(structureProperties),
245
+ properties,
246
+ rights,
247
+ });
248
+ }
249
+ return node;
250
+ }
251
+ function isPageLogic(logicName) {
252
+ return logicName.includes('on_') || logicName.includes('viewLogic_');
253
+ }
254
+ function transformLogicNode(node, typeAnnotation) {
255
+ fixLogicNode(node);
256
+ // console.log('lemon ~~~ node--1:', node);
257
+ if (node.type === 'VariableDeclaration') { // 拆成局部变量和赋值
258
+ const declList = node?.declarations || [];
259
+ let newNode;
260
+ declList?.forEach((decl) => {
261
+ const variableName = decl.id.name;
262
+ if (!logic.variables.find((variable) => variable.name === variableName)) {
263
+ const varTypeAnnotation = decl.id.typeAnnotation?.typeAnnotation;
264
+ logic.variables.push(new naslTypes.Variable({
265
+ name: variableName,
266
+ typeAnnotation: varTypeAnnotation && transformTypeAnnotation(varTypeAnnotation),
267
+ }));
268
+ }
269
+ if (decl.init) {
270
+ if (decl.init.type !== 'ArrayExpression' && decl.init.type !== 'ObjectExpression') {
271
+ if (type === 'expression') {
272
+ return transformLogicNode(decl.init);
273
+ }
274
+ newNode = new naslTypes.Assignment({
275
+ left: new naslTypes.Identifier({
276
+ name: variableName,
277
+ }),
278
+ right: transformLogicNode(decl.init),
279
+ });
280
+ }
281
+ }
282
+ });
283
+ if (newNode)
284
+ return newNode;
285
+ }
286
+ else if (node.type === 'CallExpression') {
287
+ const callee = flatMemberExpression(node.callee);
288
+ const calleeName = (0, generator_1.default)(node.callee).code;
289
+ // console.log('lemon ~~~ node--2', node, callee, calleeName);
290
+ if (/^\$refs\./.test(calleeName)) {
291
+ return new naslTypes.CallLogic({
292
+ calleeNamespace: `elements.${callee[1].name}.logics`,
293
+ calleeName: callee[2].name,
294
+ arguments: node.arguments.map((arg) => new naslTypes.Argument({
295
+ expression: transformLogicNode(arg),
296
+ })),
297
+ });
298
+ }
299
+ if (callee.length === 2 && callee[0].type === 'Identifier' && callee[0].name.endsWith('Entity')) {
300
+ const entityName = callee[0].name.replace(/Entity$/, '');
301
+ return new naslTypes.CallLogic({
302
+ calleeNamespace: `app.dataSources.defaultDS.entities.${entityName}.logics`,
303
+ calleeName: callee[1].name,
304
+ arguments: node.arguments.map((arg) => new naslTypes.Argument({
305
+ expression: transformLogicNode(arg),
306
+ })),
307
+ });
308
+ }
309
+ if (calleeName === 'nasl.oql.query') {
310
+ if (!isPageLogic(contextLogicName)) {
311
+ return new naslTypes.OqlQueryComponent({
312
+ dataSource: 'app.dataSources.defaultDS',
313
+ code: (0, generator_1.default)(node.arguments[0]).code.trim().slice(1, -1),
314
+ });
315
+ }
316
+ }
317
+ if (calleeName === 'nasl.util.consoleLog' || calleeName === 'console.log') {
318
+ if (isPageLogic(contextLogicName)) {
319
+ return new naslTypes.CallLogic({
320
+ calleeNamespace: 'nasl.util',
321
+ calleeName: 'consoleLog',
322
+ shortcut: true,
323
+ arguments: node.arguments.map((arg) => new naslTypes.Argument({
324
+ expression: transformLogicNode(arg),
325
+ })),
326
+ });
327
+ }
328
+ return new naslTypes.CallLogic({
329
+ calleeNamespace: 'nasl.logging',
330
+ calleeName: 'INFO',
331
+ shortcut: true,
332
+ arguments: node.arguments.map((arg) => new naslTypes.Argument({
333
+ expression: transformLogicNode(arg),
334
+ })),
335
+ });
336
+ }
337
+ if (calleeName === 'nasl.util.jsonSerialize' || calleeName === 'nasl.util.jsonDeserialize') {
338
+ const curCalleeName = node.callee.property.name;
339
+ return new naslTypes.CallLogic({
340
+ calleeNamespace: 'nasl.util',
341
+ calleeName: curCalleeName,
342
+ shortcut: true,
343
+ arguments: node.arguments.map((arg) => new naslTypes.Argument({
344
+ expression: transformLogicNode(arg),
345
+ })),
346
+ typeArguments: node?.typeParameters?.params.map((curType) => transformTypeAnnotation({ ...curType })),
347
+ });
348
+ }
349
+ ;
350
+ if (calleeName.startsWith('nasl.util.')) {
351
+ const curCalleeName = callee.length === 3 ? callee[callee.length - 1].name : callee[0].callee.property.name;
352
+ const argument = callee.length === 3 ? node.arguments : callee[0].arguments;
353
+ if (['plus', 'minus', 'multiply', 'divide', 'remainder'].includes(curCalleeName)) {
354
+ return handleBinaryExpression(curCalleeName, argument);
355
+ }
356
+ ;
357
+ if (['NewList', 'NewMap', 'NewEntity', 'NewAnonymityStructure'].includes(curCalleeName)) {
358
+ return handleNewExpression(curCalleeName, node);
359
+ }
360
+ let typeNamespace;
361
+ // if (argument?.[argument.length - 1]?.type === 'ObjectExpression') {
362
+ // typeNamespace = argument.splice(-1)[0].properties[0].value.value;
363
+ // }
364
+ const nodeElement = new naslTypes.CallFunction({
365
+ calleeNamespace: 'nasl.util',
366
+ calleeName: curCalleeName,
367
+ arguments: argument.map((arg, index) => new naslTypes.Argument({
368
+ expression: transformLogicNode(arg),
369
+ keyword: `str${index + 1}`,
370
+ })),
371
+ typeArguments: node?.typeParameters?.params.map((curType) => transformTypeAnnotation({ ...curType, typeNamespace })),
372
+ });
373
+ // console.log('lemon ~ callFunction ~ 3:', nodeElement);
374
+ return nodeElement;
375
+ }
376
+ if (callee.length === 3 && calleeName.startsWith('nasl.ui.')) {
377
+ if (callee[2].name === 'destination') {
378
+ const namespace = node.arguments[0].value;
379
+ const nsArr = namespace.split('.').map((item) => item.replace(/_view$/, ''));
380
+ const viewName = nsArr.pop();
381
+ return new naslTypes.Destination({
382
+ viewNamespace: `app.frontends.pc.views${nsArr.map((item) => `.${item}.views`).join('')}`,
383
+ viewName,
384
+ arguments: node.arguments.slice(1).map((arg) => new naslTypes.Argument({
385
+ expression: transformLogicNode(arg),
386
+ })),
387
+ });
388
+ }
389
+ return new naslTypes.CallLogic({
390
+ calleeNamespace: 'nasl.ui',
391
+ calleeName: callee[2].name,
392
+ shortcut: true,
393
+ /**
394
+ * 这个函数是修复 AI 翻译出错的情况,与正常的 transform 做个区分
395
+ * @param node
396
+ * @returns
397
+ */
398
+ arguments: node.arguments.map((arg) => new naslTypes.Argument({
399
+ expression: transformLogicNode(arg),
400
+ })),
401
+ });
402
+ }
403
+ if (calleeName.endsWith('.map')) {
404
+ return new naslTypes.CallFunction({
405
+ calleeNamespace: 'nasl.util',
406
+ calleeName: 'ListTransform',
407
+ arguments: [new naslTypes.Argument({
408
+ expression: transformLogicNode(node.callee.object),
409
+ }), ...node.arguments.map((arg) => new naslTypes.Argument({
410
+ expression: transformLogicNode(arg),
411
+ }))],
412
+ });
413
+ }
414
+ if (calleeName === 'ForEach') {
415
+ const newCallee = node.arguments;
416
+ const arrowFunction = node.arguments[3];
417
+ const nodeElement = new naslTypes.ForEachStatement({
418
+ each: transformLogicNode(newCallee[0]),
419
+ start: transformLogicNode(newCallee[1]),
420
+ end: transformLogicNode(newCallee[2]),
421
+ item: transformParam(arrowFunction.params[0]),
422
+ index: arrowFunction.params[1] ? transformParam(arrowFunction.params[1]) : new naslTypes.Param({
423
+ name: 'index', typeAnnotation: naslTypes.TypeAnnotation.createPrimitive('Long'),
424
+ }),
425
+ body: arrowFunction.body.body.map((item) => transformLogicNode(item)).filter((item) => !!item),
426
+ });
427
+ return nodeElement;
428
+ }
429
+ if (callee.length === 2) {
430
+ const curCalleeName = node.callee.property.name;
431
+ if (curCalleeName === 'forEach') {
432
+ const newCallee = node.callee.object;
433
+ const arrowFunction = node.arguments[0];
434
+ const nodeElement = new naslTypes.ForEachStatement({
435
+ each: transformLogicNode(newCallee.callee.object),
436
+ start: transformLogicNode(newCallee?.arguments?.[0]),
437
+ end: transformLogicNode(newCallee?.arguments?.[1]),
438
+ item: transformParam(arrowFunction.params[0]),
439
+ index: arrowFunction.params[1] ? transformParam(arrowFunction.params[1]) : new naslTypes.Param({
440
+ name: 'index', typeAnnotation: naslTypes.TypeAnnotation.createPrimitive('Long'),
441
+ }),
442
+ body: arrowFunction.body.body.map((item) => transformLogicNode(item)).filter((item) => !!item),
443
+ });
444
+ return nodeElement;
445
+ }
446
+ }
447
+ else if (['plus', 'minus', 'multiply', 'divide', 'remainder'].includes(calleeName)) {
448
+ return handleBinaryExpression(calleeName, node?.arguments);
449
+ }
450
+ else if (calleeName === 'alert') {
451
+ return new naslTypes.CallLogic({
452
+ calleeNamespace: 'nasl.ui',
453
+ calleeName: 'showMessage',
454
+ shortcut: true,
455
+ arguments: node.arguments.map((arg) => new naslTypes.Argument({
456
+ expression: transformLogicNode(arg),
457
+ })),
458
+ });
459
+ }
460
+ else if (/^app.dataSources|app.logics|load/.test(calleeName)) {
461
+ return new naslTypes.CallLogic({
462
+ calleeNamespace: (0, generator_1.default)(node.callee.object).code,
463
+ calleeName: callee[callee.length - 1].name,
464
+ arguments: node.arguments.map((arg) => new naslTypes.Argument({
465
+ expression: transformLogicNode(arg),
466
+ })),
467
+ });
468
+ }
469
+ else if (callee.length === 1) {
470
+ if (calleeName.startsWith('viewLogic_')) {
471
+ return new naslTypes.CallLogic({
472
+ calleeNamespace: '',
473
+ calleeName: calleeName.slice('viewLogic_'.length),
474
+ arguments: node.arguments.map((arg) => new naslTypes.Argument({
475
+ expression: transformLogicNode(arg),
476
+ })),
477
+ });
478
+ }
479
+ return new naslTypes.CallLogic({
480
+ calleeNamespace: `app.logics`,
481
+ calleeName,
482
+ arguments: node.arguments.map((arg) => new naslTypes.Argument({
483
+ expression: transformLogicNode(arg),
484
+ })),
485
+ });
486
+ }
487
+ else if (/interfaces/.test(calleeName)) {
488
+ return new naslTypes.CallInterface({
489
+ calleeNamespace: (0, generator_1.default)(node.callee.object).code,
490
+ calleeName: callee[callee.length - 1].name,
491
+ arguments: node.arguments.map((arg) => new naslTypes.Argument({
492
+ keyword: arg.properties[0].key.name,
493
+ expression: transformLogicNode(arg.properties[0].value),
494
+ })),
495
+ });
496
+ }
497
+ // else if (/destination/.test(calleeName)) {
498
+ // const newCallee = flatMemberExpression((node.callee as any).object);
499
+ // return new naslTypes.Destination({
500
+ // viewNamespace: generate((node.callee as any).object.object).code,
501
+ // viewName: (newCallee[newCallee.length - 1] as babelTypes.Identifier).name,
502
+ // target: (node.arguments[0] as any).properties[1].value.value,
503
+ // anchor: new naslTypes.Anchor({
504
+ // expression: transformLogicNode((node.arguments[0] as any).properties[0].value),
505
+ // }),
506
+ // });
507
+ // }
508
+ else if (node.callee.type === 'ArrowFunctionExpression') {
509
+ // NOTE: 适用于 if else
510
+ const newCallee = node.callee.body.body;
511
+ if (newCallee[newCallee.length - 1].argument?.callee?.name === '__MatchExpressionFuntion') {
512
+ const match = new naslTypes.Match({
513
+ expression: transformLogicNode(newCallee[0]),
514
+ isExpression: type === 'expression',
515
+ cases: flatIfStatement(newCallee[1].body.body[0]).map((_case) => new naslTypes.MatchCase({
516
+ patterns: !_case.test ? [] : flatMatchPatternsExpression(transformLogicNode(_case.test)),
517
+ body: _case.consequent.body.filter((item) => item.type !== 'BreakStatement').map((item) => transformLogicNode(item)).filter((item) => !!item),
518
+ })),
519
+ });
520
+ if (!match.cases.length || match.cases[match.cases.length - 1].patterns.length) {
521
+ match.cases.push(new naslTypes.MatchCase({
522
+ patterns: [],
523
+ body: [],
524
+ }));
525
+ }
526
+ match.cases.forEach((case_) => {
527
+ if (case_.body.length && (case_.body[0].concept === 'BooleanLiteral' || case_.body[0].concept === 'StringLiteral')) {
528
+ case_.isMatchedTypeEnumable = true;
529
+ }
530
+ if (case_.patterns.length && case_.patterns[0].concept === 'MemberExpression') {
531
+ case_.isMatchedTypeEnumable = true;
532
+ case_.patterns[0] = new naslTypes.MemberExpression({
533
+ object: {
534
+ concept: 'Identifier',
535
+ name: case_.patterns[0].object.property.name,
536
+ folded: false,
537
+ namespace: 'app.enums'
538
+ },
539
+ property: {
540
+ concept: 'Identifier',
541
+ name: case_.patterns[0].property.value,
542
+ folded: false,
543
+ },
544
+ });
545
+ }
546
+ });
547
+ return match;
548
+ }
549
+ if (newCallee[newCallee.length - 1].argument?.callee?.name === '__SwitchExpressionFuntion') {
550
+ const switchStatement = transformLogicNode(newCallee[0].body.body[0]);
551
+ return switchStatement;
552
+ }
553
+ console.error(node);
554
+ if (debug) {
555
+ throw new Error(`Unhandled ArrowFunctionExpression node ${node.type}`);
556
+ }
557
+ }
558
+ else {
559
+ console.error(node);
560
+ if (debug) {
561
+ throw new Error(`Unhandled node ${callee.map((item) => item.name).join('.')} ${node.type}`);
562
+ }
563
+ }
564
+ }
565
+ else if (node.type === 'IfStatement') {
566
+ if (node.alternate && node.alternate.type === 'IfStatement') {
567
+ const switchStatement = new naslTypes.SwitchStatement({
568
+ cases: [],
569
+ });
570
+ pushElseIf(node, switchStatement);
571
+ return switchStatement;
572
+ }
573
+ return new naslTypes.IfStatement({
574
+ test: transformLogicNode(node.test),
575
+ consequent: !node.consequent ? [] : node.consequent.body.map((item) => transformLogicNode(item)).filter((item) => !!item),
576
+ alternate: !node.alternate ? [] : node.alternate.body.map((item) => transformLogicNode(item)).filter((item) => !!item),
577
+ });
578
+ }
579
+ else if (node.type === 'WhileStatement') {
580
+ return new naslTypes.WhileStatement({
581
+ test: transformLogicNode(node.test),
582
+ body: node.body.body.map((item) => transformLogicNode(item)).filter((item) => !!item),
583
+ });
584
+ }
585
+ else if (node.type === 'SwitchStatement') {
586
+ const match = new naslTypes.Match({
587
+ expression: transformLogicNode(node.discriminant),
588
+ isExpression: type === 'expression',
589
+ cases: node.cases.map((_case) => new naslTypes.MatchCase({
590
+ patterns: !_case.test ? [] : [transformLogicNode(_case.test)],
591
+ body: _case.consequent.filter((item) => item.type !== 'BreakStatement').map((item) => transformLogicNode(item)).filter((item) => !!item),
592
+ })),
593
+ });
594
+ if (!match.cases.length || match.cases[match.cases.length - 1].patterns.length) {
595
+ match.cases.push(new naslTypes.MatchCase({
596
+ patterns: [],
597
+ body: [],
598
+ }));
599
+ }
600
+ match.cases.forEach((case_) => {
601
+ if (case_.body.length && (case_.body[0].concept === 'BooleanLiteral' || case_.body[0].concept === 'StringLiteral')) {
602
+ case_.isMatchedTypeEnumable = true;
603
+ }
604
+ if (case_.patterns.length && case_.patterns[0].concept === 'MemberExpression') {
605
+ case_.isMatchedTypeEnumable = true;
606
+ case_.patterns[0].object.namespace = 'app.enums';
607
+ }
608
+ });
609
+ return match;
610
+ }
611
+ else if (node.type === 'MemberExpression') {
612
+ if (node.property.type === 'NumericLiteral') {
613
+ return new naslTypes.CallFunction({
614
+ calleeNamespace: 'nasl.util',
615
+ calleeName: 'Get',
616
+ arguments: [
617
+ new naslTypes.Argument({
618
+ expression: transformLogicNode(node.object),
619
+ }),
620
+ new naslTypes.Argument({
621
+ expression: transformLogicNode(node.property),
622
+ }),
623
+ ],
624
+ });
625
+ }
626
+ return new naslTypes.MemberExpression({
627
+ object: transformLogicNode(node.object),
628
+ property: transformLogicNode(node.property),
629
+ });
630
+ }
631
+ else if (node.type === 'Identifier') {
632
+ return new naslTypes.Identifier({
633
+ name: node.name,
634
+ });
635
+ }
636
+ else if (node.type === 'ExpressionStatement') {
637
+ return transformLogicNode(node.expression);
638
+ }
639
+ else if (node.type === 'AssignmentExpression') {
640
+ if (node.operator === '+=' || node.operator === '-=') {
641
+ if (type === 'expression') {
642
+ return new naslTypes.BinaryExpression({
643
+ operator: node.operator[0],
644
+ left: transformLogicNode(node.left),
645
+ right: transformLogicNode(node.right),
646
+ });
647
+ }
648
+ return new naslTypes.Assignment({
649
+ left: transformLogicNode(node.left),
650
+ right: new naslTypes.BinaryExpression({
651
+ operator: node.operator[0],
652
+ left: transformLogicNode(node.left),
653
+ right: transformLogicNode(node.right),
654
+ }),
655
+ });
656
+ }
657
+ if (type === 'expression') {
658
+ return transformLogicNode(node.right);
659
+ }
660
+ return new naslTypes.Assignment({
661
+ left: transformLogicNode(node.left),
662
+ right: transformLogicNode(node.right),
663
+ });
664
+ }
665
+ else if (node.type === 'NewExpression') {
666
+ const calleeName = (0, generator_1.default)(node.callee).code;
667
+ if (['Boolean', 'Integer', 'Double', 'Decimal', 'Long'].includes(calleeName)) {
668
+ return transformLogicNode(node.arguments[0], naslTypes.TypeAnnotation.createPrimitive(calleeName));
669
+ }
670
+ console.error(node);
671
+ if (debug) {
672
+ throw new Error(`Unhandled node ${node.type}`);
673
+ }
674
+ }
675
+ else if (node.type === 'ArrowFunctionExpression') {
676
+ return new naslTypes.AnonymousFunction({
677
+ params: node.params.map((param) => transformParam(param)),
678
+ body: transformLogicNode(node.body),
679
+ });
680
+ }
681
+ else if (node.type === 'BooleanLiteral') {
682
+ return new naslTypes.BooleanLiteral({
683
+ value: String(node.value),
684
+ });
685
+ }
686
+ else if (node.type === 'StringLiteral') {
687
+ return new naslTypes.StringLiteral({
688
+ value: node.value,
689
+ });
690
+ }
691
+ else if (node.type === 'NumericLiteral') {
692
+ const literal = new naslTypes.NumericLiteral({
693
+ value: String(node.value),
694
+ typeAnnotation: typeAnnotation || naslTypes.TypeAnnotation.createPrimitive('Integer'),
695
+ });
696
+ literal.typeAnnotation.typeName = literal.changeType(String(node.value));
697
+ return literal;
698
+ }
699
+ else if (node.type === 'NullLiteral') {
700
+ return new naslTypes.NullLiteral();
701
+ }
702
+ else if (node.type === 'TemplateLiteral') {
703
+ const expressions = [...node.expressions, ...node.quasis.map((element) => ({
704
+ type: 'StringLiteral',
705
+ value: element.value.raw,
706
+ start: element.start,
707
+ end: element.end,
708
+ }))];
709
+ expressions.sort((a, b) => a.start - b.start);
710
+ return new naslTypes.StringInterpolation({
711
+ expressions: expressions.map((item) => transformLogicNode(item)),
712
+ });
713
+ }
714
+ else if (node.type === 'BinaryExpression' || node.type === 'LogicalExpression') {
715
+ if (node.operator === '===')
716
+ node.operator = '==';
717
+ if (node.operator === '!==')
718
+ node.operator = '!=';
719
+ if (['+', '-', '*', '/', '%', '==', '!=', '>', '<', '>=', '<=', '&&', '||', 'startwith', 'endwith', 'like', 'in'].includes(node.operator)) {
720
+ return new naslTypes.BinaryExpression({
721
+ operator: node.operator,
722
+ left: transformLogicNode(node.left),
723
+ right: transformLogicNode(node.right),
724
+ });
725
+ }
726
+ console.error(node);
727
+ if (debug) {
728
+ throw new Error(`Unhandled node ${node.type}`);
729
+ }
730
+ }
731
+ else if (node.type === 'UnaryExpression') {
732
+ if (['!'].includes(node.operator)) {
733
+ return new naslTypes.UnaryExpression({
734
+ operator: node.operator,
735
+ argument: transformLogicNode(node.argument),
736
+ });
737
+ }
738
+ if (['-'].includes(node.operator) && node.argument.type === 'NumericLiteral') {
739
+ return transformLogicNode({
740
+ type: 'NumericLiteral',
741
+ value: -node.argument.value,
742
+ });
743
+ }
744
+ console.error(node);
745
+ if (debug) {
746
+ throw new Error(`Unhandled node ${node.type}`);
747
+ }
748
+ }
749
+ else if (node.type === 'UpdateExpression') {
750
+ if (node.operator === '++' || node.operator === '--') {
751
+ return new naslTypes.Assignment({
752
+ left: transformLogicNode(node.argument),
753
+ right: new naslTypes.BinaryExpression({
754
+ operator: node.operator[0],
755
+ left: transformLogicNode(node.argument),
756
+ right: new naslTypes.NumericLiteral({
757
+ value: '1',
758
+ typeAnnotation: naslTypes.TypeAnnotation.createPrimitive('Integer'),
759
+ }),
760
+ }),
761
+ });
762
+ }
763
+ }
764
+ else if (node.type === 'ReturnStatement') {
765
+ if (node.argument) {
766
+ if (type === 'expression') {
767
+ return transformLogicNode(node.argument);
768
+ }
769
+ if (!logic.returns.length) {
770
+ logic.returns.push(new naslTypes.Return({
771
+ name: 'result',
772
+ }));
773
+ }
774
+ return new naslTypes.Assignment({
775
+ left: new naslTypes.Identifier({
776
+ name: logic.returns[0].name,
777
+ }),
778
+ right: transformLogicNode(node.argument),
779
+ });
780
+ }
781
+ }
782
+ else if (node.type === 'EmptyStatement') {
783
+ return node.leadingComments && new naslTypes.Comment({
784
+ value: String(node.leadingComments[0].value),
785
+ });
786
+ }
787
+ else if (node.type === 'BlockStatement') {
788
+ return transformLogicNode(node?.body?.[0]);
789
+ }
790
+ else if (node.type === 'ObjectExpression' && node?.properties?.length > 0) {
791
+ const properties = [];
792
+ const rights = [];
793
+ const structureProperties = [];
794
+ node?.properties?.forEach((arg) => {
795
+ properties.push(transformLogicNode(arg.key));
796
+ rights.push(new naslTypes.SelectMembers({
797
+ expression: transformLogicNode(arg.value)
798
+ }));
799
+ structureProperties.push(new naslTypes.StructureProperty({
800
+ name: arg?.key?.name,
801
+ typeAnnotation: null
802
+ }));
803
+ });
804
+ return new naslTypes.NewComposite({
805
+ typeAnnotation: naslTypes.TypeAnnotation.createTypeAnonymousStructure(structureProperties),
806
+ properties,
807
+ rights,
808
+ });
809
+ }
810
+ else {
811
+ console.error(node);
812
+ if (debug) {
813
+ throw new Error(`Unhandled node ${node.type}`);
814
+ }
815
+ }
816
+ }
817
+ const root = babel.parseSync(tsCode, {
818
+ filename: 'result.ts',
819
+ presets: [require('@babel/preset-typescript')],
820
+ });
821
+ let parameters = [];
822
+ let statements = [];
823
+ let func;
824
+ if (root.program.body[0].type === 'ExportNamedDeclaration') {
825
+ func = root.program.body[0].declaration;
826
+ }
827
+ parameters = func.params;
828
+ statements = func.body.body;
829
+ // traverse<babelTypes.Node>((current) => {
830
+ // if (current.node.type === 'FunctionDeclaration' && (current.node.id.name === contextLogicName || type === 'expression')) {
831
+ // return true;
832
+ // }
833
+ // }, { node: root.program }, { mode: 'anyObject' });
834
+ const currentPositionComment = root.comments.find((comment) => comment.type === 'CommentLine' && comment.value === ' 当前位置');
835
+ if (currentPositionComment) {
836
+ statements = statements.filter((stat) => stat.start > currentPositionComment.start);
837
+ }
838
+ // traverse<babelTypes.Node>((current) => {
839
+ // if (!current.node.type)
840
+ // console.log(current.key, current.node);
841
+ // // console.log(current.node.type);
842
+ // }, { node: {
843
+ // type: 'BlockStatement',
844
+ // body: statements,
845
+ // } as babelTypes.BlockStatement }, {
846
+ // mode: 'anyObject',
847
+ // depthFirst: true,
848
+ // excludedKeySet: new Set(['loc']),
849
+ // });
850
+ parameters.forEach((node) => {
851
+ const param = transformParam(node);
852
+ param && logic.params.push(param);
853
+ });
854
+ statements.forEach((node) => {
855
+ const item = transformLogicNode(node);
856
+ item && logic.body.push(item);
857
+ });
858
+ // console.log(JSON.stringify(logic));
859
+ // try {
860
+ // console.log(logic.toNaturalTS());
861
+ // } catch (e) {
862
+ // console.error(e);
863
+ // }
864
+ return logic;
865
+ }
866
+ exports.transformTSCode = transformTSCode;
867
+ function tryTransformTSCode(tsCode, contextLogicName, type) {
868
+ if (tsCode.includes('```')) {
869
+ const cap = tsCode.match(/```.*\n([\s\S]+?)```/);
870
+ if (cap)
871
+ tsCode = cap[1].trim();
872
+ }
873
+ return transformTSCode(tsCode, contextLogicName, type);
874
+ }
875
+ exports.tryTransformTSCode = tryTransformTSCode;
876
+ function transformTSCodeEx(answer, activeLogic, context) {
877
+ let logicName = activeLogic.name;
878
+ const { app, nasl } = context;
879
+ if (activeLogic.parentNode instanceof nasl.BindEvent && activeLogic.parentNode.parentNode instanceof nasl.View) {
880
+ logicName = `viewLogic_${activeLogic.name}`;
881
+ }
882
+ else if (activeLogic.parentNode instanceof nasl.BindEvent && activeLogic.parentNode.parentNode instanceof nasl.ViewElement) {
883
+ logicName = `on_${(activeLogic.parentNode).element.name}_${activeLogic.name}`;
884
+ }
885
+ else {
886
+ logicName = activeLogic.name;
887
+ }
888
+ const logic = tryTransformTSCode(answer, logicName);
889
+ app.emit('collect:start', { actionMsg: '自然语言生成代码' });
890
+ logic.params.forEach((param) => {
891
+ if (!activeLogic.params.find((_) => _.name === param.name))
892
+ activeLogic.addParam(param.toJSON());
893
+ });
894
+ logic.variables.forEach((variable) => {
895
+ if (!activeLogic.variables.find((_) => _.name === variable.name))
896
+ activeLogic.addVariable(variable.toJSON());
897
+ });
898
+ if (logic.returns.length && !activeLogic.returns.length) {
899
+ activeLogic.addReturn(logic.returns[0].toJSON());
900
+ }
901
+ logic.body.forEach((item) => activeLogic.insertItemInBodyAt(item.toJSON(), activeLogic.body.length - 1));
902
+ app.emit('collect:end');
903
+ }
904
+ exports.transformTSCodeEx = transformTSCodeEx;
905
+ function transformTSCodeToExpression(answer, context) {
906
+ let logic;
907
+ try {
908
+ logic = tryTransformTSCode(answer, '', 'expression');
909
+ }
910
+ catch (error) {
911
+ throw new Error(error);
912
+ }
913
+ const { app } = context;
914
+ app.emit('collect:start', { actionMsg: '自然语言生成代码' });
915
+ const { body } = logic;
916
+ app.emit('collect:end');
917
+ return body;
918
+ }
919
+ exports.transformTSCodeToExpression = transformTSCodeToExpression;
878
920
  //# sourceMappingURL=transformTSCode.js.map