@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,1312 +1,1262 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
- return c > 3 && r && Object.defineProperty(target, key, r), r;
23
- };
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
- var __importDefault = (this && this.__importDefault) || function (mod) {
32
- return (mod && mod.__esModule) ? mod : { "default": mod };
33
- };
34
- var NewComposite_1;
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.NewComposite = void 0;
37
- const translator_1 = require("../translator");
38
- const StructureProperty__1 = __importDefault(require("./StructureProperty__"));
39
- const generator_1 = require("../generator");
40
- const Logic__1 = __importDefault(require("./Logic__"));
41
- const decorators_1 = require("../decorators");
42
- const utils = __importStar(require("../utils"));
43
- const Identifier__1 = __importDefault(require("./Identifier__"));
44
- const SelectMembers__1 = __importDefault(require("./SelectMembers__"));
45
- const AssignmentLine__1 = __importDefault(require("./AssignmentLine__"));
46
- const LogicItem__1 = __importDefault(require("./LogicItem__"));
47
- /**
48
- * 实体/(匿名)数据结构构造器
49
- */
50
- let NewComposite = class NewComposite extends LogicItem__1.default {
51
- static { NewComposite_1 = this; }
52
- /** 类名 */
53
- static ConceptName = 'NewComposite';
54
- /**
55
- * 产品概念
56
- */
57
- concept;
58
- /**
59
- * 类型
60
- */
61
- // @ts-ignore
62
- typeAnnotation;
63
- /**
64
- * 左边项
65
- */
66
- properties = [];
67
- /**
68
- * 右边项
69
- */
70
- rights = [];
71
- /**
72
- * 赋值线
73
- */
74
- assignmentLines = [];
75
- /**
76
- * hideProperties
77
- */
78
- hideProperties = false;
79
- /**
80
- * hideDefaults
81
- */
82
- hideDefaults = false;
83
- /**
84
- * 自动连线
85
- */
86
- autoConnection = true;
87
- /**
88
- * @param source 需要合并的部分参数
89
- */
90
- constructor(source) {
91
- source = Object.assign({}, NewComposite_1.getDefaultOptions(), source);
92
- super(source);
93
- super.subConstructor(source);
94
- }
95
- static from(source, parentNode, parentKey) {
96
- return super.from(source, parentNode, parentKey);
97
- }
98
- /**
99
- * 设置类型
100
- */
101
- setTypeAnnotation(typeAnnotation) {
102
- typeAnnotation._delete();
103
- const relationOptions = { parentNode: this, parentKey: 'typeAnnotation' };
104
- Object.assign(typeAnnotation, relationOptions);
105
- const object = {
106
- typeAnnotation,
107
- };
108
- this.update({
109
- ...object,
110
- });
111
- }
112
- /**
113
- * 设置左边项
114
- */
115
- setProperties(properties) {
116
- const object = {
117
- properties,
118
- };
119
- this.update({
120
- ...object,
121
- });
122
- }
123
- /**
124
- * 设置右边项
125
- */
126
- setRights(rights) {
127
- const object = {
128
- rights,
129
- };
130
- this.update({
131
- ...object,
132
- });
133
- }
134
- /**
135
- * 设置赋值线
136
- */
137
- setAssignmentLines(assignmentLines) {
138
- const object = {
139
- assignmentLines,
140
- };
141
- this.update({
142
- ...object,
143
- });
144
- }
145
- /**
146
- * 设置hideProperties
147
- */
148
- setHideProperties(hideProperties) {
149
- const object = {
150
- hideProperties,
151
- };
152
- this.update({
153
- ...object,
154
- });
155
- }
156
- /**
157
- * 设置hideDefaults
158
- */
159
- setHideDefaults(hideDefaults) {
160
- const object = {
161
- hideDefaults,
162
- };
163
- this.update({
164
- ...object,
165
- });
166
- }
167
- /**
168
- * 设置自动连线
169
- */
170
- setAutoConnection(autoConnection) {
171
- const object = {
172
- autoConnection,
173
- };
174
- this.update({
175
- ...object,
176
- });
177
- }
178
- getIdentifierExistingNames(excludedList = []) {
179
- const excludedSet = new Set(excludedList);
180
- return (this.properties || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
181
- }
182
- getIdentifierUniqueName(name = 'identifier1') {
183
- return utils.unique(name, this.getIdentifierExistingNames(), undefined, false);
184
- }
185
- _insertIdentifierAt(options, index) {
186
- const identifierOptions = {};
187
- const relationOptions = { parentNode: this, parentKey: 'properties' };
188
- let identifier;
189
- if (!options) {
190
- identifier = Identifier__1.default.from({
191
- ...identifierOptions,
192
- name: this.getIdentifierUniqueName(),
193
- }, this, 'properties');
194
- }
195
- else if (typeof options === 'string') {
196
- identifier = Identifier__1.default.from({
197
- ...identifierOptions,
198
- name: options,
199
- }, this, 'properties');
200
- }
201
- else if (options instanceof Identifier__1.default) {
202
- options.ensureDelete(); // 同一实例不支持多处存在
203
- identifier = options;
204
- Object.assign(identifier, relationOptions);
205
- }
206
- else {
207
- identifier = Identifier__1.default.from({
208
- ...identifierOptions,
209
- ...options,
210
- }, this, 'properties');
211
- }
212
- this.properties.splice(index, 0, identifier);
213
- return identifier;
214
- }
215
- insertIdentifierAt(options, index) {
216
- const node = this._insertIdentifierAt(options, index);
217
- node.create({
218
- index,
219
- parentNode: this,
220
- parentKey: 'properties',
221
- });
222
- return node;
223
- }
224
- _addIdentifier(options) {
225
- const index = this.properties.length;
226
- return this._insertIdentifierAt(options, index);
227
- }
228
- addIdentifier(options) {
229
- const node = this._addIdentifier(options);
230
- const index = this.properties.indexOf(node);
231
- node.create({
232
- index,
233
- parentNode: this,
234
- parentKey: 'properties',
235
- });
236
- return node;
237
- }
238
- getSelectMembersExistingNames(excludedList = []) {
239
- const excludedSet = new Set(excludedList);
240
- return (this.rights || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
241
- }
242
- getSelectMembersUniqueName(name = 'selectMembers1') {
243
- return utils.unique(name, this.getSelectMembersExistingNames(), undefined, false);
244
- }
245
- _insertSelectMembersAt(options, index) {
246
- const selectMembersOptions = {};
247
- const relationOptions = { parentNode: this, parentKey: 'rights' };
248
- let selectMembers;
249
- if (!options) {
250
- selectMembers = SelectMembers__1.default.from({
251
- ...selectMembersOptions,
252
- name: this.getSelectMembersUniqueName(),
253
- }, this, 'rights');
254
- }
255
- else if (typeof options === 'string') {
256
- selectMembers = SelectMembers__1.default.from({
257
- ...selectMembersOptions,
258
- name: options,
259
- }, this, 'rights');
260
- }
261
- else if (options instanceof SelectMembers__1.default) {
262
- options.ensureDelete(); // 同一实例不支持多处存在
263
- selectMembers = options;
264
- Object.assign(selectMembers, relationOptions);
265
- }
266
- else {
267
- selectMembers = SelectMembers__1.default.from({
268
- ...selectMembersOptions,
269
- ...options,
270
- }, this, 'rights');
271
- }
272
- this.rights.splice(index, 0, selectMembers);
273
- return selectMembers;
274
- }
275
- insertSelectMembersAt(options, index) {
276
- const node = this._insertSelectMembersAt(options, index);
277
- node.create({
278
- index,
279
- parentNode: this,
280
- parentKey: 'rights',
281
- });
282
- return node;
283
- }
284
- _addSelectMembers(options) {
285
- const index = this.rights.length;
286
- return this._insertSelectMembersAt(options, index);
287
- }
288
- addSelectMembers(options) {
289
- const node = this._addSelectMembers(options);
290
- const index = this.rights.indexOf(node);
291
- node.create({
292
- index,
293
- parentNode: this,
294
- parentKey: 'rights',
295
- });
296
- return node;
297
- }
298
- getAssignmentLineExistingNames(excludedList = []) {
299
- const excludedSet = new Set(excludedList);
300
- return (this.assignmentLines || [])
301
- .filter((item) => !excludedSet.has(item))
302
- .map((item) => item.name);
303
- }
304
- getAssignmentLineUniqueName(name = 'assignmentLine1') {
305
- return utils.unique(name, this.getAssignmentLineExistingNames(), undefined, false);
306
- }
307
- _insertAssignmentLineAt(options, index) {
308
- const assignmentLineOptions = {};
309
- const relationOptions = { parentNode: this, parentKey: 'assignmentLines' };
310
- let assignmentLine;
311
- if (!options) {
312
- assignmentLine = AssignmentLine__1.default.from({
313
- ...assignmentLineOptions,
314
- name: this.getAssignmentLineUniqueName(),
315
- }, this, 'assignmentLines');
316
- }
317
- else if (typeof options === 'string') {
318
- assignmentLine = AssignmentLine__1.default.from({
319
- ...assignmentLineOptions,
320
- name: options,
321
- }, this, 'assignmentLines');
322
- }
323
- else if (options instanceof AssignmentLine__1.default) {
324
- options.ensureDelete(); // 同一实例不支持多处存在
325
- assignmentLine = options;
326
- Object.assign(assignmentLine, relationOptions);
327
- }
328
- else {
329
- assignmentLine = AssignmentLine__1.default.from({
330
- ...assignmentLineOptions,
331
- ...options,
332
- }, this, 'assignmentLines');
333
- }
334
- this.assignmentLines.splice(index, 0, assignmentLine);
335
- return assignmentLine;
336
- }
337
- insertAssignmentLineAt(options, index) {
338
- const node = this._insertAssignmentLineAt(options, index);
339
- node.create({
340
- index,
341
- parentNode: this,
342
- parentKey: 'assignmentLines',
343
- });
344
- return node;
345
- }
346
- _addAssignmentLine(options) {
347
- const index = this.assignmentLines.length;
348
- return this._insertAssignmentLineAt(options, index);
349
- }
350
- addAssignmentLine(options) {
351
- const node = this._addAssignmentLine(options);
352
- const index = this.assignmentLines.indexOf(node);
353
- node.create({
354
- index,
355
- parentNode: this,
356
- parentKey: 'assignmentLines',
357
- });
358
- return node;
359
- }
360
- removeTypeAnnotation(options) {
361
- let typeAnnotation;
362
- if (typeof options === 'string') {
363
- typeAnnotation = this.typeAnnotation;
364
- if (!typeAnnotation) {
365
- throw new Error('找不到类型标注 ' + options);
366
- }
367
- }
368
- else {
369
- typeAnnotation = options;
370
- }
371
- return typeAnnotation.delete();
372
- }
373
- __removeTypeAnnotation(typeAnnotation) {
374
- const parentKey = typeAnnotation.parentKey;
375
- const params = {
376
- parentNode: this,
377
- parentKey,
378
- index: -1,
379
- object: null,
380
- oldObject: typeAnnotation,
381
- };
382
- if (parentKey) {
383
- params.parentKey = parentKey;
384
- // @ts-ignore
385
- const t = this.__v_raw || this;
386
- // @ts-ignore
387
- const n = typeAnnotation.__v_raw || typeAnnotation;
388
- if (Array.isArray(t[parentKey])) {
389
- const index = t[parentKey].indexOf(n);
390
- ~index && this[parentKey].splice(index, 1);
391
- params.index = index;
392
- }
393
- else if (t[parentKey] === n) {
394
- params.index = 0;
395
- this[parentKey] = undefined;
396
- }
397
- }
398
- return params;
399
- }
400
- removeIdentifier(options) {
401
- let identifier;
402
- if (typeof options === 'string') {
403
- identifier = this.properties.find((item) => item.name === options);
404
- if (!identifier) {
405
- throw new Error('找不到标识符 ' + options);
406
- }
407
- }
408
- else {
409
- identifier = options;
410
- }
411
- return identifier.delete();
412
- }
413
- __removeLogicItem(logicItem) {
414
- const parentKey = logicItem.parentKey;
415
- const params = {
416
- parentNode: this,
417
- parentKey,
418
- index: -1,
419
- object: null,
420
- oldObject: logicItem,
421
- };
422
- if (parentKey) {
423
- params.parentKey = parentKey;
424
- // @ts-ignore
425
- const t = this.__v_raw || this;
426
- // @ts-ignore
427
- const n = logicItem.__v_raw || logicItem;
428
- if (Array.isArray(t[parentKey])) {
429
- const index = t[parentKey].indexOf(n);
430
- ~index && this[parentKey].splice(index, 1);
431
- params.index = index;
432
- }
433
- else if (t[parentKey] === n) {
434
- params.index = 0;
435
- this[parentKey] = undefined;
436
- }
437
- }
438
- return params;
439
- }
440
- removeSelectMembers(options) {
441
- let selectMembers;
442
- if (typeof options === 'string') {
443
- selectMembers = this.rights.find((item) => item.name === options);
444
- if (!selectMembers) {
445
- throw new Error('找不到选择成员 ' + options);
446
- }
447
- }
448
- else {
449
- selectMembers = options;
450
- }
451
- return selectMembers.delete();
452
- }
453
- __removeSelectMembers(selectMembers) {
454
- const parentKey = selectMembers.parentKey;
455
- const params = {
456
- parentNode: this,
457
- parentKey,
458
- index: -1,
459
- object: null,
460
- oldObject: selectMembers,
461
- };
462
- if (parentKey) {
463
- params.parentKey = parentKey;
464
- // @ts-ignore
465
- const t = this.__v_raw || this;
466
- // @ts-ignore
467
- const n = selectMembers.__v_raw || selectMembers;
468
- if (Array.isArray(t[parentKey])) {
469
- const index = t[parentKey].indexOf(n);
470
- ~index && this[parentKey].splice(index, 1);
471
- params.index = index;
472
- }
473
- else if (t[parentKey] === n) {
474
- params.index = 0;
475
- this[parentKey] = undefined;
476
- }
477
- }
478
- return params;
479
- }
480
- removeAssignmentLine(options) {
481
- let assignmentLine;
482
- if (typeof options === 'string') {
483
- assignmentLine = this.assignmentLines.find((item) => item.name === options);
484
- if (!assignmentLine) {
485
- throw new Error('找不到赋值连线 ' + options);
486
- }
487
- }
488
- else {
489
- assignmentLine = options;
490
- }
491
- return assignmentLine.delete();
492
- }
493
- __removeAssignmentLine(assignmentLine) {
494
- const parentKey = assignmentLine.parentKey;
495
- const params = {
496
- parentNode: this,
497
- parentKey,
498
- index: -1,
499
- object: null,
500
- oldObject: assignmentLine,
501
- };
502
- if (parentKey) {
503
- params.parentKey = parentKey;
504
- // @ts-ignore
505
- const t = this.__v_raw || this;
506
- // @ts-ignore
507
- const n = assignmentLine.__v_raw || assignmentLine;
508
- if (Array.isArray(t[parentKey])) {
509
- const index = t[parentKey].indexOf(n);
510
- ~index && this[parentKey].splice(index, 1);
511
- params.index = index;
512
- }
513
- else if (t[parentKey] === n) {
514
- params.index = 0;
515
- this[parentKey] = undefined;
516
- }
517
- }
518
- return params;
519
- }
520
- //================================================================================
521
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
522
- // 自动生成的代码已结束。下面可以手动编写。
523
- //================================================================================
524
- get lines() {
525
- return this.assignmentLines.length;
526
- }
527
- async newConnection(addRightIndex) {
528
- const leftLineSet = new Set();
529
- const lineArr = [];
530
- // 系统属性不可自动连线
531
- ['id', 'createdTime', 'updatedTime', 'createdBy', 'updatedBy'].forEach((name) => leftLineSet.add(name));
532
- // 左边已连线的下标
533
- this.assignmentLines.forEach((line) => {
534
- if (line.leftIndex.length > 1)
535
- leftLineSet.add(Number(line.leftIndex[1]));
536
- });
537
- const autoConnection = () => {
538
- const isAnnotation = this.typeAnnotation.typeKind === 'anonymousStructure';
539
- this.app.emit('collect:start', {
540
- actionMsg: '自动连线',
541
- });
542
- this.properties.forEach((property, leftSecondIndex) => {
543
- const leftName = property.name;
544
- const leftTypeAnnotation = !isAnnotation && property.__TypeAnnotation;
545
- if (leftLineSet.has(leftSecondIndex) || leftLineSet.has(leftName))
546
- return;
547
- this.rights.forEach((selectMember, rightFirstIndex) => {
548
- const { members, expression } = selectMember;
549
- if (leftLineSet.has(leftSecondIndex))
550
- return;
551
- if (addRightIndex !== -1 && addRightIndex !== rightFirstIndex)
552
- return;
553
- // 右侧父节点也不允许自动连线
554
- const rightLineSet = new Set();
555
- for (let i = 0; i < members.length - 1; i++) {
556
- const { completeName } = members[i];
557
- const preCompleteName = members[i + 1].completeName;
558
- if (preCompleteName.includes(completeName) &&
559
- completeName.split('.').length !== preCompleteName.split('.').length)
560
- rightLineSet.add(i);
561
- }
562
- if (leftName === expression.name &&
563
- (isAnnotation || expression.__TypeAnnotation.typeKind === leftTypeAnnotation.typeKind)) {
564
- const Line = new AssignmentLine__1.default({
565
- leftIndex: [0, leftSecondIndex],
566
- rightIndex: [rightFirstIndex],
567
- });
568
- lineArr.push(Line);
569
- leftLineSet.add(leftSecondIndex);
570
- return;
571
- }
572
- members.forEach((rightMember, rightSecondIndex) => {
573
- const rightName = rightMember.property.name;
574
- if (rightLineSet.has(rightSecondIndex))
575
- return;
576
- if (leftName === rightName) {
577
- const rightTypeAnnotation = rightMember.__TypeAnnotation;
578
- if (!isAnnotation && leftTypeAnnotation.typeKind !== rightTypeAnnotation.typeKind)
579
- return;
580
- const leftIndex = [0, leftSecondIndex];
581
- const rightIndex = [rightFirstIndex, rightSecondIndex];
582
- const Line = new AssignmentLine__1.default({ leftIndex, rightIndex });
583
- lineArr.push(Line);
584
- leftLineSet.add(leftSecondIndex);
585
- }
586
- });
587
- });
588
- });
589
- lineArr.length && this.setAssignmentLines([...this.assignmentLines, ...lineArr]);
590
- this.app.emit('collect:end');
591
- };
592
- let count = 0;
593
- const typeAnnotationEnd = () => {
594
- const l = this.properties.every((item) => item.__isCorrectTypeAnnotation);
595
- const r = this.rights.every((right) => right.members.every((item) => item.__isCorrectTypeAnnotation) && right.expression.__isCorrectTypeAnnotation);
596
- count++;
597
- if (r && l) {
598
- autoConnection();
599
- }
600
- else if (count <= 10) {
601
- setTimeout(() => {
602
- typeAnnotationEnd();
603
- }, 100);
604
- }
605
- };
606
- typeAnnotationEnd();
607
- }
608
- connection(leftItem, rightItem, rightToLeft) {
609
- let newLeftIndex = [0];
610
- let newRightIndex = [];
611
- let newLines = [...this.assignmentLines];
612
- let newProperties = this.properties;
613
- if (leftItem.concept === 'Identifier') {
614
- const members = this.properties;
615
- const secondIndex = members.findIndex((ident) => ident === leftItem);
616
- // 连线左边的坐标。
617
- newLeftIndex = [0, secondIndex];
618
- }
619
- else {
620
- newLines = [];
621
- newProperties = [];
622
- }
623
- if (rightItem.concept === 'SelectMembers') {
624
- newRightIndex = [this.rights.findIndex((right) => right === rightItem)];
625
- }
626
- else {
627
- const selectMember = rightItem.getAncestor('SelectMembers');
628
- const firstIndex = this.rights.findIndex((right) => right === selectMember);
629
- const secondIndex = this.rights[firstIndex].members.findIndex((exp) => exp === rightItem);
630
- newRightIndex = [firstIndex, secondIndex];
631
- }
632
- // 左边同一个属性只能有一个连线
633
- if (rightToLeft) {
634
- newLines = newLines.filter(({ leftIndex: index }) => !(newLeftIndex[0] === index[0] && newLeftIndex[1] === index[1]));
635
- }
636
- const Line = new AssignmentLine__1.default({
637
- leftIndex: newLeftIndex,
638
- rightIndex: newRightIndex,
639
- });
640
- newLines.push(Line);
641
- this.update({
642
- assignmentLines: newLines,
643
- properties: newProperties,
644
- });
645
- }
646
- deleteAssignmentLine(assignmentLine) {
647
- const newLine = this.assignmentLines.filter((line) => line !== assignmentLine);
648
- this.update({
649
- assignmentLines: newLine,
650
- });
651
- }
652
- changeLinesLocation(selectMember) {
653
- if (selectMember.concept !== 'SelectMembers')
654
- return;
655
- if (this.rights.findIndex((member) => selectMember === member) !== -1) {
656
- const index = this.rights.findIndex((member) => selectMember === member);
657
- const newRights = this.rights.filter((member) => selectMember !== member);
658
- const filterLine = this.assignmentLines.filter((line) => line.rightIndex[0] !== index);
659
- const newLines = [];
660
- filterLine.forEach((line) => {
661
- if (line.rightIndex[0] > index) {
662
- if (line.rightIndex[1] === undefined) {
663
- const newLine = { ...line?.toJSON(), rightIndex: [line.rightIndex[0] - 1] };
664
- newLines.push(newLine);
665
- }
666
- else {
667
- const newLine = { ...line?.toJSON(), rightIndex: [line.rightIndex[0] - 1, line.rightIndex[1]] };
668
- newLines.push(newLine);
669
- }
670
- }
671
- else {
672
- newLines.push(line);
673
- }
674
- });
675
- this.update({
676
- rights: newRights,
677
- assignmentLines: newLines,
678
- });
679
- }
680
- }
681
- changeMembers(oldNode, members, keepMembers, expression) {
682
- this.app.emit('collect:start', {
683
- actionMsg: 'New初始赋值修改变量',
684
- });
685
- const selectMember = oldNode.parentNode;
686
- const autoConnectionIndex = this.rights.findIndex((right) => right === selectMember);
687
- const newSelectMember = { ...(selectMember?.toJSON?.() ?? selectMember), expression, members };
688
- const splitIndex = this.rights.findIndex((right) => selectMember === right);
689
- const newLines = this.assignmentLines.filter(({ rightIndex }) => rightIndex[0] !== splitIndex);
690
- let oldLines = this.assignmentLines.filter(({ rightIndex }) => rightIndex[0] === splitIndex);
691
- // 右侧变量改变后,修改连线
692
- members.forEach((item, index) => {
693
- if (keepMembers?.has(item.completeName)) {
694
- const lines = this.findlines(item, selectMember);
695
- lines.forEach((line) => {
696
- const newLine = { ...(line?.toJSON()?.toJSON?.() ?? line), rightIndex: [line.rightIndex[0], index] };
697
- newLines.push(newLine);
698
- oldLines = oldLines.filter(({ leftIndex }) => leftIndex[1] !== line.leftIndex[1]);
699
- });
700
- }
701
- });
702
- this.update({
703
- assignmentLines: newLines,
704
- rights: [
705
- ...this.rights.slice(0, splitIndex),
706
- newSelectMember,
707
- ...this.rights.slice(splitIndex + 1, this.rights.length),
708
- ],
709
- });
710
- this.autoConnection && this.newConnection(autoConnectionIndex);
711
- this.app.emit('collect:end');
712
- }
713
- findlines(member, selectMember) {
714
- const lines = [];
715
- // 根节点的情况
716
- if (selectMember === this) {
717
- if (member === this.typeAnnotation)
718
- return this.assignmentLines;
719
- const index2 = this.properties.findIndex((item) => item.completeName === member.completeName);
720
- this.assignmentLines.forEach((line) => {
721
- if (line.leftIndex[1] === index2)
722
- lines.push(line);
723
- });
724
- }
725
- else {
726
- const index1 = this.rights.findIndex((right) => right === selectMember);
727
- const index2 = selectMember.members.findIndex((item) => item.completeName === member.completeName);
728
- this.assignmentLines.forEach((line) => {
729
- if (line.rightIndex[0] === index1 && line.rightIndex[1] === index2)
730
- lines.push(line);
731
- });
732
- }
733
- return lines;
734
- }
735
- findMember(arrIndex, place) {
736
- const [firstIndex, secondIndex] = [arrIndex[0], arrIndex[1]];
737
- if (place === 'left') {
738
- if (secondIndex === undefined) {
739
- return this.typeAnnotation;
740
- }
741
- return this.properties[secondIndex];
742
- }
743
- if (secondIndex === undefined) {
744
- return this.rights[firstIndex].expression;
745
- }
746
- return this.rights[firstIndex].members[secondIndex];
747
- }
748
- toUI(state) {
749
- let code = '{ ';
750
- if (this.typeAnnotation) {
751
- const leftAssignmentMap = new Map();
752
- this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
753
- const rightItem = this.findMember(rightIndex);
754
- const leftItem = this.findMember(leftIndex, 'left');
755
- if (!leftAssignmentMap.has(leftItem)) {
756
- leftAssignmentMap.set(leftItem, rightItem);
757
- }
758
- });
759
- this.properties.forEach((leftItem, index) => {
760
- if (index) {
761
- code += ', ';
762
- }
763
- const rightItem = leftAssignmentMap.get(leftItem);
764
- const value = rightItem ? rightItem.toUI((0, translator_1.shiftState)(state, code)) : 'undefined';
765
- code += `${leftItem.name}: ${value}`;
766
- });
767
- }
768
- code += ` }`;
769
- return code;
770
- }
771
- toJS(state) {
772
- let code = '';
773
- const { typeAnnotation } = this;
774
- const leftTopIndex = this.assignmentLines.findIndex(({ leftIndex }) => leftIndex[1] === undefined);
775
- if (!this.typeAnnotation)
776
- return null;
777
- if (this.getAncestor?.('DefaultValue')) {
778
- code += '(() => { \n';
779
- }
780
- else {
781
- code += 'await (async () => { \n';
782
- }
783
- if (leftTopIndex !== -1) {
784
- const { rightIndex } = this.assignmentLines[leftTopIndex];
785
- const obj = rightIndex[1] !== undefined
786
- ? this.rights[rightIndex[0]].members[rightIndex[1]]
787
- : this.rights[rightIndex[0]].expression;
788
- code += `return ${obj.toJS((0, translator_1.shiftState)(state, code, { inline: true }))};\n`;
789
- }
790
- else if (typeAnnotation.typeKind !== 'anonymousStructure') {
791
- code += `const obj = this.$genInitFromSchema('${typeAnnotation.sortedTypeKey}', this.$utils['New'](${typeAnnotation.toJS((0, translator_1.shiftState)(state, code, { inline: true }))}));\n`;
792
- const rightMap = new Map();
793
- this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
794
- const rightIndexJson = JSON.stringify(rightIndex);
795
- if (rightMap.has(rightIndexJson)) {
796
- rightMap.set(rightIndexJson, [...rightMap.get(rightIndexJson), leftIndex]);
797
- }
798
- else {
799
- rightMap.set(rightIndexJson, [leftIndex]);
800
- }
801
- });
802
- rightMap.forEach((leftIndexs, rightIndexJson) => {
803
- const rightIndex = JSON.parse(rightIndexJson) || [];
804
- const leftItems = leftIndexs.map((leftIndex) => this.properties[leftIndex[1]]);
805
- const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
806
- const rightItem = rightSecond !== undefined ? this.rights[rightFirst].members[rightSecond] : this.rights[rightFirst].expression;
807
- leftItems.forEach((leftItem) => {
808
- code += `obj.${leftItem.name} = `;
809
- });
810
- code += `${rightItem.toJS((0, translator_1.shiftState)(state, code, { inline: true }))}`;
811
- code += ';\n';
812
- });
813
- code += 'return obj;\n';
814
- }
815
- else {
816
- code += `const obj = {};\n`;
817
- this.properties.forEach((property) => {
818
- code += `obj.${property.name} = null;\n`;
819
- });
820
- const rightMap = new Map();
821
- this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
822
- const rightIndexJson = JSON.stringify(rightIndex);
823
- if (rightMap.has(rightIndexJson)) {
824
- rightMap.set(rightIndexJson, [...rightMap.get(rightIndexJson), leftIndex]);
825
- }
826
- else {
827
- rightMap.set(rightIndexJson, [leftIndex]);
828
- }
829
- });
830
- rightMap.forEach((leftIndexs, rightIndexJson) => {
831
- const rightIndex = JSON.parse(rightIndexJson) || [];
832
- const leftItems = leftIndexs.map((leftIndex) => this.properties[leftIndex[1]]);
833
- const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
834
- const rightItem = rightSecond !== undefined ? this.rights[rightFirst].members[rightSecond] : this.rights[rightFirst].expression;
835
- leftItems.forEach((leftItem) => {
836
- code += `obj.${leftItem.name} = `;
837
- });
838
- code += `${rightItem.toJS((0, translator_1.shiftState)(state, code, { inline: true }))}`;
839
- code += ';\n';
840
- });
841
- code += 'return obj;\n';
842
- }
843
- code += '})()';
844
- return code;
845
- }
846
- toEmbeddedTS(state = (0, translator_1.createCompilerState)()) {
847
- const indent0 = (0, translator_1.indent)(state?.tabSize || 0);
848
- const indent1 = (0, translator_1.indent)((state?.tabSize || 0) + 1);
849
- const indent2 = (0, translator_1.indent)((state?.tabSize || 0) + 2);
850
- const indent3 = (0, translator_1.indent)((state?.tabSize || 0) + 3);
851
- let code = '';
852
- if (!this.typeAnnotation) {
853
- code += '__IDENTIFIER__';
854
- }
855
- else if (this.typeAnnotation.typeKind !== 'anonymousStructure') {
856
- const rightMap = new Map();
857
- code += `${indent0}(() => { \n`;
858
- // 提供sourcemap,获取类型标注和上下文可选变量
859
- this.rights.forEach((right) => {
860
- code += indent1;
861
- rightMap.set(right.expression, right.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true })));
862
- code += rightMap.get(right.expression);
863
- code += ';\n';
864
- if (right.members?.length) {
865
- code += indent2;
866
- }
867
- right.members.forEach((member) => {
868
- rightMap.set(member, member.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true })));
869
- code += rightMap.get(member);
870
- code += '; ';
871
- });
872
- code += right.members.length ? '\n' : '';
873
- });
874
- // 方便ts报错检查
875
- code += `${indent1}function __newComposite() {\n`;
876
- const { typeAnnotation } = this;
877
- if (['nasl.ui', 'nasl.interface', 'nasl.http'].includes(typeAnnotation.typeNamespace) &&
878
- typeAnnotation.typeKind === 'generic') {
879
- code += `${indent2}let __obj = new ${typeAnnotation.typeNamespace}.${typeAnnotation.typeName}`;
880
- code += '({';
881
- this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
882
- const leftSecondIndex = leftIndex[1];
883
- const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
884
- const leftItem = this.properties[leftSecondIndex];
885
- const rightItem = rightSecond !== undefined
886
- ? this.rights[rightFirst].members[rightSecond]
887
- : this.rights[rightFirst].expression;
888
- const rightTs = rightMap.get(rightItem);
889
- code += `${leftItem.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))}:`;
890
- code += `${['__IDENTIFIER__', '__IDENTIFIER__()'].includes(rightTs) ? 'null' : rightMap.get(rightItem)},\n `;
891
- });
892
- code += '})\n';
893
- }
894
- else {
895
- code += `${indent2}let __obj = nasl.util.New<`;
896
- code += this.typeAnnotation.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
897
- code += `>();\n`;
898
- }
899
- // 是否是左边的顶层连线
900
- const leftTopIndex = this.assignmentLines.findIndex(({ leftIndex }) => leftIndex[1] === undefined);
901
- if (leftTopIndex !== -1) {
902
- const { rightIndex } = this.assignmentLines[leftTopIndex];
903
- const rightExpression = rightIndex[1] !== undefined
904
- ? this.rights[rightIndex[0]].members[rightIndex[1]]
905
- : this.rights[rightIndex[0]].expression;
906
- code += `__obj = ${rightExpression.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))};`;
907
- code += '\n';
908
- }
909
- else {
910
- // 左侧properties的identifier的类型标注
911
- code += `${indent2}const { `;
912
- this.properties.forEach((item, index) => {
913
- code += item.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
914
- if (index < this.properties.length - 1)
915
- code += ', ';
916
- });
917
- code += ' } = __obj;\n';
918
- this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
919
- const leftSecondIndex = leftIndex[1];
920
- const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
921
- const leftItem = this.properties[leftSecondIndex];
922
- const rightItem = rightSecond !== undefined
923
- ? this.rights[rightFirst].members[rightSecond]
924
- : this.rights[rightFirst].expression;
925
- const rightTs = rightMap.get(rightItem);
926
- code += `${indent2}nasl.core.compareNew(`;
927
- code += `${['__IDENTIFIER__', '__IDENTIFIER__()'].includes(rightTs) ? 'null' : rightMap.get(rightItem)}, `;
928
- code += `${leftItem.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))});\n`;
929
- });
930
- }
931
- code += `${indent2}return __obj;\n`;
932
- code += `${indent1}};\n`;
933
- code += `${indent1}return __newComposite();\n`;
934
- code += `${indent0}})()`;
935
- }
936
- else {
937
- const nameMap = new Map();
938
- const rightMap = new Map();
939
- this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
940
- const leftSecondIndex = leftIndex[1];
941
- const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
942
- const leftItem = this.properties[leftSecondIndex];
943
- const rightItem = rightSecond !== undefined ? this.rights[rightFirst].members[rightSecond] : this.rights[rightFirst].expression;
944
- nameMap.set(leftItem.name, rightItem);
945
- rightMap.set(rightItem, null);
946
- });
947
- code += `${indent0}(() => { \n`;
948
- // 提供sourcemap,获取类型标注和上下文可选变量
949
- this.rights.forEach((right) => {
950
- code += indent1;
951
- let ts = right.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
952
- if (rightMap.has(right.expression))
953
- rightMap.set(right.expression, ts);
954
- code += ts;
955
- code += ';\n';
956
- if (right.members?.length) {
957
- code += indent2;
958
- }
959
- right.members.forEach((member) => {
960
- ts = member.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
961
- if (rightMap.has(member))
962
- rightMap.set(member, ts);
963
- code += ts;
964
- code += '; ';
965
- });
966
- code += right.members.length ? '\n' : '';
967
- });
968
- // 方便ts报错检查
969
- code += `${indent1}function __newComposite() {\n`;
970
- this.properties.forEach((property, index) => {
971
- const temp = `temp${index}`;
972
- const propertyType = this.typeAnnotation.properties[index]?.typeAnnotation;
973
- const { name } = property;
974
- const rightItem = nameMap.get(name);
975
- const ts = rightMap.get(rightItem);
976
- if (ts !== undefined) {
977
- if (['__IDENTIFIER__', '__IDENTIFIER__()'].includes(ts)) {
978
- code += `${indent2}let ${temp}: void = null; `;
979
- }
980
- else {
981
- code += `${indent2}let ${temp}${ts === 'null' ? ':void' : ''} = ${ts}; `;
982
- }
983
- code += `const `;
984
- code += `${property.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))}: `;
985
- code += propertyType
986
- ? propertyType.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))
987
- : `nasl.core.Incompatible<typeof ${temp}, void>`;
988
- code += ` = ${temp};\n`;
989
- }
990
- else if (propertyType) {
991
- code += `${indent2}let ${property.name}: `;
992
- code += `${propertyType.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))}; `;
993
- code += `<`;
994
- code += `${property.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))}`;
995
- code += `>${property.name};\n`;
996
- }
997
- else {
998
- code += `${indent2}const `;
999
- code += property.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
1000
- code += ';\n';
1001
- }
1002
- });
1003
- code += `${indent2}return {\n`;
1004
- this.properties.forEach((property) => {
1005
- code += `${indent3}${property.name},\n`;
1006
- });
1007
- code += `${indent3}__name: "AStructure_${(0, generator_1.genHash)(JSON.stringify(this))}" as const,\n`;
1008
- code += `${indent2}}\n`;
1009
- code += `${indent1}};\n`;
1010
- code += `${indent1}return __newComposite();\n`;
1011
- code += `${indent0}})()`;
1012
- }
1013
- return code;
1014
- }
1015
- toNaturalTS(state = (0, translator_1.createCompilerState)()) {
1016
- const indent0 = (0, translator_1.indent)(state?.tabSize || 0);
1017
- const indent1 = (0, translator_1.indent)((state?.tabSize || 0) + 1);
1018
- const indent2 = (0, translator_1.indent)((state?.tabSize || 0) + 2);
1019
- let code = '';
1020
- if (!this.typeAnnotation) {
1021
- code += '__IDENTIFIER__';
1022
- }
1023
- else if (this.typeAnnotation.typeKind !== 'anonymousStructure') {
1024
- const rightMap = new Map();
1025
- // 提供sourcemap,获取类型标注和上下文可选变量
1026
- this.rights.forEach((right) => {
1027
- code += indent1;
1028
- rightMap.set(right.expression, right.expression.toNaturalTS((0, translator_1.shiftState)(state, code, { inline: true })));
1029
- code += rightMap.get(right.expression);
1030
- code += ';\n';
1031
- if (right.members?.length) {
1032
- code += indent2;
1033
- }
1034
- right.members.forEach((member) => {
1035
- rightMap.set(member, member.toNaturalTS((0, translator_1.shiftState)(state, code, { inline: true })));
1036
- code += rightMap.get(member);
1037
- code += '; ';
1038
- });
1039
- code += right.members.length ? '\n' : '';
1040
- });
1041
- // 方便ts报错检查
1042
- // 是否是左边的顶层连线
1043
- const leftTopIndex = this.assignmentLines.findIndex(({ leftIndex }) => leftIndex[1] === undefined);
1044
- if (leftTopIndex !== -1) {
1045
- // const rightIndex = this.assignmentLines[leftTopIndex].rightIndex;
1046
- // const rightExpression = rightIndex[1] !== undefined ? this.rights[rightIndex[0]].members[rightIndex[1]] : this.rights[rightIndex[0]].expression;
1047
- // code += `__obj = ${rightExpression.toNaturalTS(shiftState(state, code, { inline: true }))};`;
1048
- // code += '\n';
1049
- }
1050
- else {
1051
- code += `${indent0}new ${this.typeAnnotation.typeName}({\n`;
1052
- this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
1053
- const leftSecondIndex = leftIndex[1];
1054
- const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
1055
- const leftItem = this.properties[leftSecondIndex];
1056
- const rightItem = rightSecond !== undefined
1057
- ? this.rights[rightFirst].members[rightSecond]
1058
- : this.rights[rightFirst].expression;
1059
- const rightTs = rightMap.get(rightItem);
1060
- code += `${indent1}${leftItem.toNaturalTS((0, translator_1.shiftState)(state, code, { inline: true }))}: ${['__IDENTIFIER__', '__IDENTIFIER__()'].includes(rightTs) ? 'null' : rightMap.get(rightItem)},\n`;
1061
- });
1062
- code += `${indent0}})`;
1063
- }
1064
- }
1065
- else {
1066
- const nameMap = new Map();
1067
- const rightMap = new Map();
1068
- this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
1069
- const leftSecondIndex = leftIndex[1];
1070
- const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
1071
- const leftItem = this.properties[leftSecondIndex];
1072
- const rightItem = rightSecond !== undefined ? this.rights[rightFirst].members[rightSecond] : this.rights[rightFirst].expression;
1073
- nameMap.set(leftItem.name, rightItem);
1074
- rightMap.set(rightItem, null);
1075
- });
1076
- code += `${indent0}{\n`;
1077
- this.properties.forEach((property, index) => {
1078
- const temp = `temp${index}`;
1079
- const propertyType = this.typeAnnotation.properties[index]?.typeAnnotation;
1080
- const { name } = property;
1081
- const rightItem = nameMap.get(name);
1082
- const ts = rightMap.get(rightItem);
1083
- if (ts !== undefined) {
1084
- if (['__IDENTIFIER__', '__IDENTIFIER__()'].includes(ts)) {
1085
- code += `${indent1}${temp}: null,\n`;
1086
- }
1087
- else {
1088
- code += `${indent1}${temp}: ${ts},\n`;
1089
- }
1090
- }
1091
- else if (propertyType) {
1092
- code += `${indent1}${property.name}: ${propertyType.toNaturalTS((0, translator_1.shiftState)(state, code, { inline: true }))},\n`;
1093
- }
1094
- else {
1095
- code += `${indent1}`;
1096
- code += property.toNaturalTS((0, translator_1.shiftState)(state, code, { inline: true }));
1097
- code += ',\n';
1098
- }
1099
- });
1100
- code += `${indent0}}`;
1101
- }
1102
- return code;
1103
- }
1104
- getInitCode(state) {
1105
- const indent1 = (0, translator_1.indent)((state?.tabSize || 0) + 1);
1106
- const indent2 = (0, translator_1.indent)((state?.tabSize || 0) + 2);
1107
- const indent3 = (0, translator_1.indent)((state?.tabSize || 0) + 3);
1108
- const indent4 = (0, translator_1.indent)((state?.tabSize || 0) + 4);
1109
- let code = '';
1110
- const nameMap = new Map();
1111
- const rightMap = new Map();
1112
- this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
1113
- const leftSecondIndex = leftIndex[1];
1114
- const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
1115
- const leftItem = this.properties[leftSecondIndex];
1116
- const rightItem = rightSecond !== undefined ? this.rights[rightFirst].members[rightSecond] : this.rights[rightFirst].expression;
1117
- nameMap.set(leftItem.name, rightItem);
1118
- rightMap.set(rightItem, null);
1119
- });
1120
- code += '(() => { ';
1121
- // 提供sourcemap,获取类型标注和上下文可选变量
1122
- this.rights.forEach((right) => {
1123
- let ts = right.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
1124
- if (rightMap.has(right.expression))
1125
- rightMap.set(right.expression, ts);
1126
- right.members.forEach((member) => {
1127
- ts = member.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
1128
- if (rightMap.has(member))
1129
- rightMap.set(member, ts);
1130
- });
1131
- });
1132
- // 方便ts报错检查
1133
- code += 'function __newComposite() { ';
1134
- this.properties.forEach((property, index) => {
1135
- const { name } = property;
1136
- const propertyType = this.typeAnnotation.properties[index]?.typeAnnotation;
1137
- const rightItem = nameMap.get(name);
1138
- let ts = rightMap.get(rightItem);
1139
- ts = this.getForeachCode(ts);
1140
- if (propertyType) {
1141
- code += `const ${name}: ${propertyType.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))}; `;
1142
- }
1143
- else if (ts !== undefined) {
1144
- code += `const ${name} = ${['__IDENTIFIER__', '__IDENTIFIER__()'].includes(ts) ? null : ts}; `;
1145
- }
1146
- else {
1147
- code += `const ${name}; `;
1148
- }
1149
- });
1150
- code += `\n${indent3}return {\n`;
1151
- this.properties.forEach((property) => {
1152
- code += `${indent4}${property.name},\n`;
1153
- });
1154
- code += `${indent4}__name: "AStructure_${(0, generator_1.genHash)(JSON.stringify(this))}" as const,\n`;
1155
- code += `${indent3}}\n`;
1156
- code += `${indent2}};\n`;
1157
- code += `${indent2}return __newComposite();\n`;
1158
- code += `${indent1}})()`;
1159
- return code;
1160
- }
1161
- getNewCompositeCode(state) {
1162
- const indent0 = (0, translator_1.indent)(state?.tabSize || 0);
1163
- const indent1 = (0, translator_1.indent)((state?.tabSize || 0) + 1);
1164
- const indent2 = (0, translator_1.indent)((state?.tabSize || 0) + 2);
1165
- let code = '';
1166
- const rightMap = new Map();
1167
- code += `${indent0}(() => { \n`;
1168
- // 提供sourcemap,获取类型标注和上下文可选变量
1169
- this.rights.forEach((right) => {
1170
- code += indent1;
1171
- rightMap.set(right.expression, right.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true })));
1172
- // code += rightMap.get(right.expression);
1173
- // code += ';\n';
1174
- if (right.members?.length) {
1175
- code += indent2;
1176
- }
1177
- right.members.forEach((member) => {
1178
- rightMap.set(member, member.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true })));
1179
- // code += rightMap.get(member);
1180
- // code += '; ';
1181
- });
1182
- // code += right.members.length ? '\n' : '';
1183
- });
1184
- // 方便ts报错检查
1185
- code += `${indent1}function __newComposite() {\n`;
1186
- const { typeAnnotation } = this;
1187
- if (['nasl.ui', 'nasl.interface', 'nasl.http'].includes(typeAnnotation.typeNamespace)) {
1188
- code += `${indent2}let __obj = new ${typeAnnotation.typeNamespace}.${typeAnnotation.typeName}`;
1189
- code += '({';
1190
- this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
1191
- const leftSecondIndex = leftIndex[1];
1192
- const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
1193
- const leftItem = this.properties[leftSecondIndex];
1194
- const rightItem = rightSecond !== undefined ? this.rights[rightFirst].members[rightSecond] : this.rights[rightFirst].expression;
1195
- const rightTs = rightMap.get(rightItem);
1196
- code += `${leftItem.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))}:`;
1197
- code += `${['__IDENTIFIER__', '__IDENTIFIER__()'].includes(rightTs) ? 'null' : rightMap.get(rightItem)},\n `;
1198
- });
1199
- code += '})\n';
1200
- }
1201
- code += `${indent2}return __obj;\n`;
1202
- code += `${indent1}};\n`;
1203
- code += `${indent1}return __newComposite();\n`;
1204
- code += `${indent0}})()`;
1205
- return code;
1206
- }
1207
- __addIdentifier(name, typeAnnotation) {
1208
- const newName = name || 'property1';
1209
- const newType = typeAnnotation || null;
1210
- this.app.emit('collect:start', {
1211
- actionMsg: '添加匿名数据结构属性',
1212
- });
1213
- const node = this.addIdentifier({ name: this.getIdentifierUniqueName(newName) });
1214
- const struct = StructureProperty__1.default.from({
1215
- name: node.name,
1216
- typeAnnotation: newType,
1217
- });
1218
- this.typeAnnotation.addStructureProperty(struct);
1219
- this.app.emit('collect:end');
1220
- }
1221
- __deleteIdentifier(property) {
1222
- const index = this.properties.findIndex((p) => p === property);
1223
- const newLines = [];
1224
- const newProperties = this.typeAnnotation.properties.filter((item) => item.name !== property.name);
1225
- this.assignmentLines.forEach((line) => {
1226
- const { leftIndex } = line;
1227
- if (leftIndex[1] < index) {
1228
- newLines.push(line);
1229
- }
1230
- else if (leftIndex[1] > index) {
1231
- const newLine = { ...line?.toJSON(), leftIndex: [leftIndex[0], leftIndex[1] - 1] };
1232
- newLines.push(newLine);
1233
- }
1234
- });
1235
- this.app.emit('collect:start', {
1236
- actionMsg: '删除匿名数据结属性',
1237
- });
1238
- this.setAssignmentLines(newLines);
1239
- this.typeAnnotation.update({
1240
- properties: newProperties,
1241
- });
1242
- property.delete();
1243
- this.app.emit('collect:end');
1244
- }
1245
- getForeachCode(code) {
1246
- // ForEachStatement 内部变量需要替换处理,如 item、index
1247
- const forEachStatement = this.getAncestor('ForEachStatement');
1248
- if (forEachStatement && code) {
1249
- code = code.replaceAll('\n', ' ');
1250
- code = new Logic__1.default().handleForEachCode(code, forEachStatement);
1251
- }
1252
- return code;
1253
- }
1254
- };
1255
- exports.NewComposite = NewComposite;
1256
- __decorate([
1257
- (0, decorators_1.property)('concept')
1258
- // @ts-ignore
1259
- ], NewComposite.prototype, "concept", void 0);
1260
- __decorate([
1261
- (0, decorators_1.property)({
1262
- objectRef: 'TypeAnnotation',
1263
- })
1264
- // @ts-ignore
1265
- ], NewComposite.prototype, "typeAnnotation", void 0);
1266
- __decorate([
1267
- (0, decorators_1.property)({
1268
- objectRef: 'Identifier',
1269
- isArray: true,
1270
- defaultValue: [],
1271
- })
1272
- ], NewComposite.prototype, "properties", void 0);
1273
- __decorate([
1274
- (0, decorators_1.property)({
1275
- objectRef: 'SelectMembers',
1276
- isArray: true,
1277
- defaultValue: [],
1278
- })
1279
- ], NewComposite.prototype, "rights", void 0);
1280
- __decorate([
1281
- (0, decorators_1.property)({
1282
- objectRef: 'AssignmentLine',
1283
- isArray: true,
1284
- defaultValue: [],
1285
- })
1286
- ], NewComposite.prototype, "assignmentLines", void 0);
1287
- __decorate([
1288
- (0, decorators_1.property)()
1289
- ], NewComposite.prototype, "hideProperties", void 0);
1290
- __decorate([
1291
- (0, decorators_1.property)()
1292
- ], NewComposite.prototype, "hideDefaults", void 0);
1293
- __decorate([
1294
- (0, decorators_1.property)()
1295
- ], NewComposite.prototype, "autoConnection", void 0);
1296
- __decorate([
1297
- (0, translator_1.withSourceMap)()
1298
- ], NewComposite.prototype, "toEmbeddedTS", null);
1299
- __decorate([
1300
- (0, translator_1.withSourceMap)()
1301
- ], NewComposite.prototype, "toNaturalTS", null);
1302
- exports.NewComposite = NewComposite = NewComposite_1 = __decorate([
1303
- decorators_1.className,
1304
- (0, decorators_1.concept)('实体/(匿名)数据结构构造器')
1305
- // @ts-ignore
1306
- ], NewComposite);
1307
- exports.default = NewComposite;
1308
- //================================================================================
1309
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1310
- // 自动生成的代码已结束。下面可以手动编写。
1311
- //================================================================================
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __importDefault = (this && this.__importDefault) || function (mod) {
32
+ return (mod && mod.__esModule) ? mod : { "default": mod };
33
+ };
34
+ var NewComposite_1;
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.NewComposite = void 0;
37
+ const translator_1 = require("../translator");
38
+ const StructureProperty__1 = __importDefault(require("./StructureProperty__"));
39
+ const generator_1 = require("../generator");
40
+ const Logic__1 = __importDefault(require("./Logic__"));
41
+ const decorators_1 = require("../decorators");
42
+ const utils = __importStar(require("../utils"));
43
+ const Identifier__1 = __importDefault(require("./Identifier__"));
44
+ const SelectMembers__1 = __importDefault(require("./SelectMembers__"));
45
+ const AssignmentLine__1 = __importDefault(require("./AssignmentLine__"));
46
+ const LogicItem__1 = __importDefault(require("./LogicItem__"));
47
+ /**
48
+ * 实体/(匿名)数据结构构造器
49
+ */
50
+ let NewComposite = NewComposite_1 =
51
+ // @ts-ignore
52
+ class NewComposite extends LogicItem__1.default {
53
+ /** 类名 */
54
+ static ConceptName = 'NewComposite';
55
+ /** 继承链 */
56
+ static inheritanceChain = ['LogicItem', 'BaseNode'];
57
+ /**
58
+ * 产品概念
59
+ */
60
+ concept;
61
+ /**
62
+ * 类型
63
+ */
64
+ // @ts-ignore
65
+ typeAnnotation;
66
+ /**
67
+ * 左边项
68
+ */
69
+ properties = [];
70
+ /**
71
+ * 右边项
72
+ */
73
+ rights = [];
74
+ /**
75
+ * 赋值线
76
+ */
77
+ assignmentLines = [];
78
+ /**
79
+ * hideProperties
80
+ */
81
+ hideProperties = false;
82
+ /**
83
+ * hideDefaults
84
+ */
85
+ hideDefaults = false;
86
+ /**
87
+ * 自动连线
88
+ */
89
+ autoConnection = true;
90
+ /**
91
+ * @param source 需要合并的部分参数
92
+ */
93
+ constructor(source) {
94
+ source = Object.assign({}, NewComposite_1.getDefaultOptions(), source);
95
+ super(source);
96
+ super.subConstructor(source);
97
+ }
98
+ static from(source, parentNode, parentKey) {
99
+ return super.from(source, parentNode, parentKey);
100
+ }
101
+ /**
102
+ * 设置类型
103
+ */
104
+ setTypeAnnotation(typeAnnotation) {
105
+ typeAnnotation._delete();
106
+ const relationOptions = { parentNode: this, parentKey: 'typeAnnotation' };
107
+ Object.assign(typeAnnotation, relationOptions);
108
+ const object = {
109
+ typeAnnotation,
110
+ };
111
+ this.update({
112
+ ...object,
113
+ });
114
+ }
115
+ /**
116
+ * 设置左边项
117
+ */
118
+ setProperties(properties) {
119
+ const object = {
120
+ properties,
121
+ };
122
+ this.update({
123
+ ...object,
124
+ });
125
+ }
126
+ /**
127
+ * 设置右边项
128
+ */
129
+ setRights(rights) {
130
+ const object = {
131
+ rights,
132
+ };
133
+ this.update({
134
+ ...object,
135
+ });
136
+ }
137
+ /**
138
+ * 设置赋值线
139
+ */
140
+ setAssignmentLines(assignmentLines) {
141
+ const object = {
142
+ assignmentLines,
143
+ };
144
+ this.update({
145
+ ...object,
146
+ });
147
+ }
148
+ /**
149
+ * 设置hideProperties
150
+ */
151
+ setHideProperties(hideProperties) {
152
+ const object = {
153
+ hideProperties,
154
+ };
155
+ this.update({
156
+ ...object,
157
+ });
158
+ }
159
+ /**
160
+ * 设置hideDefaults
161
+ */
162
+ setHideDefaults(hideDefaults) {
163
+ const object = {
164
+ hideDefaults,
165
+ };
166
+ this.update({
167
+ ...object,
168
+ });
169
+ }
170
+ /**
171
+ * 设置自动连线
172
+ */
173
+ setAutoConnection(autoConnection) {
174
+ const object = {
175
+ autoConnection,
176
+ };
177
+ this.update({
178
+ ...object,
179
+ });
180
+ }
181
+ getIdentifierExistingNames(excludedList = []) {
182
+ const excludedSet = new Set(excludedList);
183
+ return (this.properties || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
184
+ }
185
+ getIdentifierUniqueName(name = 'identifier1') {
186
+ return utils.unique(name, this.getIdentifierExistingNames(), undefined, false);
187
+ }
188
+ _insertIdentifierAt(options, index) {
189
+ const identifierOptions = {};
190
+ const relationOptions = { parentNode: this, parentKey: 'properties' };
191
+ let identifier;
192
+ if (!options) {
193
+ identifier = Identifier__1.default.from({
194
+ ...identifierOptions,
195
+ name: this.getIdentifierUniqueName(),
196
+ }, this, 'properties');
197
+ }
198
+ else if (typeof options === 'string') {
199
+ identifier = Identifier__1.default.from({
200
+ ...identifierOptions,
201
+ name: options,
202
+ }, this, 'properties');
203
+ }
204
+ else if (options instanceof Identifier__1.default) {
205
+ options.ensureDelete(); // 同一实例不支持多处存在
206
+ identifier = options;
207
+ Object.assign(identifier, relationOptions);
208
+ }
209
+ else {
210
+ identifier = Identifier__1.default.from({
211
+ ...identifierOptions,
212
+ ...options,
213
+ }, this, 'properties');
214
+ }
215
+ this.properties.splice(index, 0, identifier);
216
+ return identifier;
217
+ }
218
+ insertIdentifierAt(options, index) {
219
+ const node = this._insertIdentifierAt(options, index);
220
+ node.create({
221
+ index,
222
+ parentNode: this,
223
+ parentKey: 'properties',
224
+ });
225
+ return node;
226
+ }
227
+ _addIdentifier(options) {
228
+ const index = this.properties.length;
229
+ return this._insertIdentifierAt(options, index);
230
+ }
231
+ addIdentifier(options) {
232
+ const node = this._addIdentifier(options);
233
+ const index = this.properties.indexOf(node);
234
+ node.create({
235
+ index,
236
+ parentNode: this,
237
+ parentKey: 'properties',
238
+ });
239
+ return node;
240
+ }
241
+ getSelectMembersExistingNames(excludedList = []) {
242
+ const excludedSet = new Set(excludedList);
243
+ return (this.rights || []).filter((item) => !excludedSet.has(item)).map((item) => item.name);
244
+ }
245
+ getSelectMembersUniqueName(name = 'selectMembers1') {
246
+ return utils.unique(name, this.getSelectMembersExistingNames(), undefined, false);
247
+ }
248
+ _insertSelectMembersAt(options, index) {
249
+ const selectMembersOptions = {};
250
+ const relationOptions = { parentNode: this, parentKey: 'rights' };
251
+ let selectMembers;
252
+ if (!options) {
253
+ selectMembers = SelectMembers__1.default.from({
254
+ ...selectMembersOptions,
255
+ name: this.getSelectMembersUniqueName(),
256
+ }, this, 'rights');
257
+ }
258
+ else if (typeof options === 'string') {
259
+ selectMembers = SelectMembers__1.default.from({
260
+ ...selectMembersOptions,
261
+ name: options,
262
+ }, this, 'rights');
263
+ }
264
+ else if (options instanceof SelectMembers__1.default) {
265
+ options.ensureDelete(); // 同一实例不支持多处存在
266
+ selectMembers = options;
267
+ Object.assign(selectMembers, relationOptions);
268
+ }
269
+ else {
270
+ selectMembers = SelectMembers__1.default.from({
271
+ ...selectMembersOptions,
272
+ ...options,
273
+ }, this, 'rights');
274
+ }
275
+ this.rights.splice(index, 0, selectMembers);
276
+ return selectMembers;
277
+ }
278
+ insertSelectMembersAt(options, index) {
279
+ const node = this._insertSelectMembersAt(options, index);
280
+ node.create({
281
+ index,
282
+ parentNode: this,
283
+ parentKey: 'rights',
284
+ });
285
+ return node;
286
+ }
287
+ _addSelectMembers(options) {
288
+ const index = this.rights.length;
289
+ return this._insertSelectMembersAt(options, index);
290
+ }
291
+ addSelectMembers(options) {
292
+ const node = this._addSelectMembers(options);
293
+ const index = this.rights.indexOf(node);
294
+ node.create({
295
+ index,
296
+ parentNode: this,
297
+ parentKey: 'rights',
298
+ });
299
+ return node;
300
+ }
301
+ getAssignmentLineExistingNames(excludedList = []) {
302
+ const excludedSet = new Set(excludedList);
303
+ return (this.assignmentLines || [])
304
+ .filter((item) => !excludedSet.has(item))
305
+ .map((item) => item.name);
306
+ }
307
+ getAssignmentLineUniqueName(name = 'assignmentLine1') {
308
+ return utils.unique(name, this.getAssignmentLineExistingNames(), undefined, false);
309
+ }
310
+ _insertAssignmentLineAt(options, index) {
311
+ const assignmentLineOptions = {};
312
+ const relationOptions = { parentNode: this, parentKey: 'assignmentLines' };
313
+ let assignmentLine;
314
+ if (!options) {
315
+ assignmentLine = AssignmentLine__1.default.from({
316
+ ...assignmentLineOptions,
317
+ name: this.getAssignmentLineUniqueName(),
318
+ }, this, 'assignmentLines');
319
+ }
320
+ else if (typeof options === 'string') {
321
+ assignmentLine = AssignmentLine__1.default.from({
322
+ ...assignmentLineOptions,
323
+ name: options,
324
+ }, this, 'assignmentLines');
325
+ }
326
+ else if (options instanceof AssignmentLine__1.default) {
327
+ options.ensureDelete(); // 同一实例不支持多处存在
328
+ assignmentLine = options;
329
+ Object.assign(assignmentLine, relationOptions);
330
+ }
331
+ else {
332
+ assignmentLine = AssignmentLine__1.default.from({
333
+ ...assignmentLineOptions,
334
+ ...options,
335
+ }, this, 'assignmentLines');
336
+ }
337
+ this.assignmentLines.splice(index, 0, assignmentLine);
338
+ return assignmentLine;
339
+ }
340
+ insertAssignmentLineAt(options, index) {
341
+ const node = this._insertAssignmentLineAt(options, index);
342
+ node.create({
343
+ index,
344
+ parentNode: this,
345
+ parentKey: 'assignmentLines',
346
+ });
347
+ return node;
348
+ }
349
+ _addAssignmentLine(options) {
350
+ const index = this.assignmentLines.length;
351
+ return this._insertAssignmentLineAt(options, index);
352
+ }
353
+ addAssignmentLine(options) {
354
+ const node = this._addAssignmentLine(options);
355
+ const index = this.assignmentLines.indexOf(node);
356
+ node.create({
357
+ index,
358
+ parentNode: this,
359
+ parentKey: 'assignmentLines',
360
+ });
361
+ return node;
362
+ }
363
+ removeTypeAnnotation(options) {
364
+ let typeAnnotation;
365
+ if (typeof options === 'string') {
366
+ typeAnnotation = this.typeAnnotation;
367
+ if (!typeAnnotation) {
368
+ throw new Error('找不到类型标注 ' + options);
369
+ }
370
+ }
371
+ else {
372
+ typeAnnotation = options;
373
+ }
374
+ return typeAnnotation.delete();
375
+ }
376
+ __removeTypeAnnotation(typeAnnotation) {
377
+ const parentKey = typeAnnotation.parentKey;
378
+ const params = {
379
+ parentNode: this,
380
+ parentKey,
381
+ index: -1,
382
+ object: null,
383
+ oldObject: typeAnnotation,
384
+ };
385
+ if (parentKey) {
386
+ params.parentKey = parentKey;
387
+ // @ts-ignore
388
+ const t = this.__v_raw || this;
389
+ // @ts-ignore
390
+ const n = typeAnnotation.__v_raw || typeAnnotation;
391
+ if (Array.isArray(t[parentKey])) {
392
+ // @ts-ignore
393
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
394
+ ~index && this[parentKey].splice(index, 1);
395
+ params.index = index;
396
+ }
397
+ else if (t[parentKey] === n) {
398
+ params.index = 0;
399
+ this[parentKey] = undefined;
400
+ }
401
+ }
402
+ return params;
403
+ }
404
+ removeIdentifier(options) {
405
+ let identifier;
406
+ if (typeof options === 'string') {
407
+ identifier = this.properties.find((item) => item.name === options);
408
+ if (!identifier) {
409
+ throw new Error('找不到标识符 ' + options);
410
+ }
411
+ }
412
+ else {
413
+ identifier = options;
414
+ }
415
+ return identifier.delete();
416
+ }
417
+ __removeLogicItem(logicItem) {
418
+ const parentKey = logicItem.parentKey;
419
+ const params = {
420
+ parentNode: this,
421
+ parentKey,
422
+ index: -1,
423
+ object: null,
424
+ oldObject: logicItem,
425
+ };
426
+ if (parentKey) {
427
+ params.parentKey = parentKey;
428
+ // @ts-ignore
429
+ const t = this.__v_raw || this;
430
+ // @ts-ignore
431
+ const n = logicItem.__v_raw || logicItem;
432
+ if (Array.isArray(t[parentKey])) {
433
+ // @ts-ignore
434
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
435
+ ~index && this[parentKey].splice(index, 1);
436
+ params.index = index;
437
+ }
438
+ else if (t[parentKey] === n) {
439
+ params.index = 0;
440
+ this[parentKey] = undefined;
441
+ }
442
+ }
443
+ return params;
444
+ }
445
+ removeSelectMembers(options) {
446
+ let selectMembers;
447
+ if (typeof options === 'string') {
448
+ selectMembers = this.rights.find((item) => item.name === options);
449
+ if (!selectMembers) {
450
+ throw new Error('找不到选择成员 ' + options);
451
+ }
452
+ }
453
+ else {
454
+ selectMembers = options;
455
+ }
456
+ return selectMembers.delete();
457
+ }
458
+ __removeSelectMembers(selectMembers) {
459
+ const parentKey = selectMembers.parentKey;
460
+ const params = {
461
+ parentNode: this,
462
+ parentKey,
463
+ index: -1,
464
+ object: null,
465
+ oldObject: selectMembers,
466
+ };
467
+ if (parentKey) {
468
+ params.parentKey = parentKey;
469
+ // @ts-ignore
470
+ const t = this.__v_raw || this;
471
+ // @ts-ignore
472
+ const n = selectMembers.__v_raw || selectMembers;
473
+ if (Array.isArray(t[parentKey])) {
474
+ // @ts-ignore
475
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
476
+ ~index && this[parentKey].splice(index, 1);
477
+ params.index = index;
478
+ }
479
+ else if (t[parentKey] === n) {
480
+ params.index = 0;
481
+ this[parentKey] = undefined;
482
+ }
483
+ }
484
+ return params;
485
+ }
486
+ removeAssignmentLine(options) {
487
+ let assignmentLine;
488
+ if (typeof options === 'string') {
489
+ assignmentLine = this.assignmentLines.find((item) => item.name === options);
490
+ if (!assignmentLine) {
491
+ throw new Error('找不到赋值连线 ' + options);
492
+ }
493
+ }
494
+ else {
495
+ assignmentLine = options;
496
+ }
497
+ return assignmentLine.delete();
498
+ }
499
+ __removeAssignmentLine(assignmentLine) {
500
+ const parentKey = assignmentLine.parentKey;
501
+ const params = {
502
+ parentNode: this,
503
+ parentKey,
504
+ index: -1,
505
+ object: null,
506
+ oldObject: assignmentLine,
507
+ };
508
+ if (parentKey) {
509
+ params.parentKey = parentKey;
510
+ // @ts-ignore
511
+ const t = this.__v_raw || this;
512
+ // @ts-ignore
513
+ const n = assignmentLine.__v_raw || assignmentLine;
514
+ if (Array.isArray(t[parentKey])) {
515
+ // @ts-ignore
516
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
517
+ ~index && this[parentKey].splice(index, 1);
518
+ params.index = index;
519
+ }
520
+ else if (t[parentKey] === n) {
521
+ params.index = 0;
522
+ this[parentKey] = undefined;
523
+ }
524
+ }
525
+ return params;
526
+ }
527
+ //================================================================================
528
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
529
+ // 自动生成的代码已结束。下面可以手动编写。
530
+ //================================================================================
531
+ get lines() {
532
+ return this.assignmentLines.length;
533
+ }
534
+ async newConnection(addRightIndex) {
535
+ const leftLineSet = new Set();
536
+ const lineArr = [];
537
+ // 系统属性不可自动连线
538
+ ['id', 'createdTime', 'updatedTime', 'createdBy', 'updatedBy'].forEach((name) => leftLineSet.add(name));
539
+ // 左边已连线的下标
540
+ this.assignmentLines.forEach((line) => {
541
+ if (line.leftIndex.length > 1)
542
+ leftLineSet.add(Number(line.leftIndex[1]));
543
+ });
544
+ const autoConnection = () => {
545
+ const isAnnotation = this.typeAnnotation.typeKind === 'anonymousStructure';
546
+ this.app.emit('collect:start', {
547
+ actionMsg: '自动连线',
548
+ });
549
+ this.properties.forEach((property, leftSecondIndex) => {
550
+ const leftName = property.name;
551
+ const leftTypeAnnotation = !isAnnotation && property.__TypeAnnotation;
552
+ if (leftLineSet.has(leftSecondIndex) || leftLineSet.has(leftName))
553
+ return;
554
+ this.rights.forEach((selectMember, rightFirstIndex) => {
555
+ const { members, expression } = selectMember;
556
+ if (leftLineSet.has(leftSecondIndex))
557
+ return;
558
+ if (addRightIndex !== -1 && addRightIndex !== rightFirstIndex)
559
+ return;
560
+ // 右侧父节点也不允许自动连线
561
+ const rightLineSet = new Set();
562
+ for (let i = 0; i < members.length - 1; i++) {
563
+ const { completeName } = members[i];
564
+ const preCompleteName = members[i + 1].completeName;
565
+ if (preCompleteName.includes(completeName) &&
566
+ completeName.split('.').length !== preCompleteName.split('.').length)
567
+ rightLineSet.add(i);
568
+ }
569
+ if (leftName === expression.name &&
570
+ (isAnnotation || expression.__TypeAnnotation.typeKind === leftTypeAnnotation.typeKind)) {
571
+ const Line = new AssignmentLine__1.default({
572
+ leftIndex: [0, leftSecondIndex],
573
+ rightIndex: [rightFirstIndex],
574
+ });
575
+ lineArr.push(Line);
576
+ leftLineSet.add(leftSecondIndex);
577
+ return;
578
+ }
579
+ members.forEach((rightMember, rightSecondIndex) => {
580
+ const rightName = rightMember.property.name;
581
+ if (rightLineSet.has(rightSecondIndex) || leftLineSet.has(leftSecondIndex))
582
+ return;
583
+ if (leftName === rightName) {
584
+ const rightTypeAnnotation = rightMember.__TypeAnnotation;
585
+ if (!isAnnotation && leftTypeAnnotation.typeKind !== rightTypeAnnotation.typeKind)
586
+ return;
587
+ const leftIndex = [0, leftSecondIndex];
588
+ const rightIndex = [rightFirstIndex, rightSecondIndex];
589
+ const Line = new AssignmentLine__1.default({ leftIndex, rightIndex });
590
+ lineArr.push(Line);
591
+ leftLineSet.add(leftSecondIndex);
592
+ }
593
+ });
594
+ });
595
+ });
596
+ lineArr.length && this.setAssignmentLines([...this.assignmentLines, ...lineArr]);
597
+ this.app.emit('collect:end');
598
+ };
599
+ let count = 0;
600
+ const typeAnnotationEnd = () => {
601
+ const l = this.properties.every((item) => item.__isCorrectTypeAnnotation);
602
+ const r = this.rights.every((right) => right.members.every((item) => item.__isCorrectTypeAnnotation) && right.expression.__isCorrectTypeAnnotation);
603
+ count++;
604
+ if (r && l) {
605
+ autoConnection();
606
+ }
607
+ else if (count <= 10) {
608
+ setTimeout(() => {
609
+ typeAnnotationEnd();
610
+ }, 100);
611
+ }
612
+ };
613
+ typeAnnotationEnd();
614
+ }
615
+ connection(leftItem, rightItem, rightToLeft) {
616
+ let newLeftIndex = [0];
617
+ let newRightIndex = [];
618
+ let newLines = [...this.assignmentLines];
619
+ let newProperties = this.properties;
620
+ if (leftItem.concept === 'Identifier') {
621
+ const members = this.properties;
622
+ const secondIndex = members.findIndex((ident) => ident === leftItem);
623
+ // 连线左边的坐标。
624
+ newLeftIndex = [0, secondIndex];
625
+ }
626
+ else {
627
+ newLines = [];
628
+ newProperties = [];
629
+ }
630
+ if (rightItem.concept === 'SelectMembers') {
631
+ newRightIndex = [this.rights.findIndex((right) => right === rightItem)];
632
+ }
633
+ else {
634
+ const selectMember = rightItem.getAncestor('SelectMembers');
635
+ const firstIndex = this.rights.findIndex((right) => right === selectMember);
636
+ const secondIndex = this.rights[firstIndex].members.findIndex((exp) => exp === rightItem);
637
+ newRightIndex = [firstIndex, secondIndex];
638
+ }
639
+ // 左边同一个属性只能有一个连线
640
+ if (rightToLeft) {
641
+ newLines = newLines.filter(({ leftIndex: index }) => !(newLeftIndex[0] === index[0] && newLeftIndex[1] === index[1]));
642
+ }
643
+ const Line = new AssignmentLine__1.default({
644
+ leftIndex: newLeftIndex,
645
+ rightIndex: newRightIndex,
646
+ });
647
+ newLines.push(Line);
648
+ this.update({
649
+ assignmentLines: newLines,
650
+ properties: newProperties,
651
+ });
652
+ }
653
+ deleteAssignmentLine(assignmentLine) {
654
+ const newLine = this.assignmentLines.filter((line) => line !== assignmentLine);
655
+ this.update({
656
+ assignmentLines: newLine,
657
+ });
658
+ }
659
+ changeLinesLocation(selectMember) {
660
+ if (selectMember.concept !== 'SelectMembers')
661
+ return;
662
+ if (this.rights.findIndex((member) => selectMember === member) !== -1) {
663
+ const index = this.rights.findIndex((member) => selectMember === member);
664
+ const newRights = this.rights.filter((member) => selectMember !== member);
665
+ const filterLine = this.assignmentLines.filter((line) => line.rightIndex[0] !== index);
666
+ const newLines = [];
667
+ filterLine.forEach((line) => {
668
+ if (line.rightIndex[0] > index) {
669
+ if (line.rightIndex[1] === undefined) {
670
+ const newLine = { ...line?.toJSON(), rightIndex: [line.rightIndex[0] - 1] };
671
+ newLines.push(newLine);
672
+ }
673
+ else {
674
+ const newLine = { ...line?.toJSON(), rightIndex: [line.rightIndex[0] - 1, line.rightIndex[1]] };
675
+ newLines.push(newLine);
676
+ }
677
+ }
678
+ else {
679
+ newLines.push(line);
680
+ }
681
+ });
682
+ this.update({
683
+ rights: newRights,
684
+ assignmentLines: newLines,
685
+ });
686
+ }
687
+ }
688
+ changeMembers(oldNode, members, keepMembers, expression) {
689
+ this.app.emit('collect:start', {
690
+ actionMsg: 'New初始赋值修改变量',
691
+ });
692
+ const selectMember = oldNode.parentNode;
693
+ const autoConnectionIndex = this.rights.findIndex((right) => right === selectMember);
694
+ const newSelectMember = { ...(selectMember?.toJSON?.() ?? selectMember), expression, members };
695
+ const splitIndex = this.rights.findIndex((right) => selectMember === right);
696
+ const newLines = this.assignmentLines.filter(({ rightIndex }) => rightIndex[0] !== splitIndex);
697
+ let oldLines = this.assignmentLines.filter(({ rightIndex }) => rightIndex[0] === splitIndex);
698
+ // 右侧变量改变后,修改连线
699
+ members.forEach((item, index) => {
700
+ if (keepMembers?.has(item.completeName)) {
701
+ const lines = this.findlines(item, selectMember);
702
+ lines.forEach((line) => {
703
+ const newLine = { ...(line?.toJSON()?.toJSON?.() ?? line), rightIndex: [line.rightIndex[0], index] };
704
+ newLines.push(newLine);
705
+ oldLines = oldLines.filter(({ leftIndex }) => leftIndex[1] !== line.leftIndex[1]);
706
+ });
707
+ }
708
+ });
709
+ this.update({
710
+ assignmentLines: newLines,
711
+ rights: [
712
+ ...this.rights.slice(0, splitIndex),
713
+ newSelectMember,
714
+ ...this.rights.slice(splitIndex + 1, this.rights.length),
715
+ ],
716
+ });
717
+ this.autoConnection && this.newConnection(autoConnectionIndex);
718
+ this.app.emit('collect:end');
719
+ }
720
+ findlines(member, selectMember) {
721
+ const lines = [];
722
+ // 根节点的情况
723
+ if (selectMember === this) {
724
+ if (member === this.typeAnnotation)
725
+ return this.assignmentLines;
726
+ const index2 = this.properties.findIndex((item) => item.completeName === member.completeName);
727
+ this.assignmentLines.forEach((line) => {
728
+ if (line.leftIndex[1] === index2)
729
+ lines.push(line);
730
+ });
731
+ }
732
+ else {
733
+ const index1 = this.rights.findIndex((right) => right === selectMember);
734
+ const index2 = selectMember.members.findIndex((item) => item.completeName === member.completeName);
735
+ this.assignmentLines.forEach((line) => {
736
+ if (line.rightIndex[0] === index1 && line.rightIndex[1] === index2)
737
+ lines.push(line);
738
+ });
739
+ }
740
+ return lines;
741
+ }
742
+ findMember(arrIndex, place) {
743
+ const [firstIndex, secondIndex] = [arrIndex[0], arrIndex[1]];
744
+ if (place === 'left') {
745
+ if (secondIndex === undefined) {
746
+ return this.typeAnnotation;
747
+ }
748
+ return this.properties[secondIndex];
749
+ }
750
+ if (secondIndex === undefined) {
751
+ return this.rights[firstIndex].expression;
752
+ }
753
+ return this.rights[firstIndex].members[secondIndex];
754
+ }
755
+ toUI(state, hideDetails) {
756
+ let code = '{ ';
757
+ if (this.typeAnnotation) {
758
+ const leftAssignmentMap = new Map();
759
+ this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
760
+ const rightItem = this.findMember(rightIndex);
761
+ const leftItem = this.findMember(leftIndex, 'left');
762
+ if (!leftAssignmentMap.has(leftItem)) {
763
+ leftAssignmentMap.set(leftItem, rightItem);
764
+ }
765
+ });
766
+ this.properties.forEach((leftItem, index) => {
767
+ if (index) {
768
+ code += ', ';
769
+ }
770
+ const rightItem = leftAssignmentMap.get(leftItem);
771
+ const value = rightItem ? rightItem.toUI((0, translator_1.shiftState)(state, code)) : 'null';
772
+ code += `${leftItem.name}: ${value}`;
773
+ });
774
+ }
775
+ code += ` }`;
776
+ return code;
777
+ }
778
+ toJS(state) {
779
+ let code = '';
780
+ const { typeAnnotation } = this;
781
+ const leftTopIndex = this.assignmentLines.findIndex(({ leftIndex }) => leftIndex[1] === undefined);
782
+ if (!this.typeAnnotation)
783
+ return null;
784
+ if (this.getAncestor?.('DefaultValue')) {
785
+ code += '(() => { \n';
786
+ }
787
+ else {
788
+ code += 'await (async () => { \n';
789
+ }
790
+ if (leftTopIndex !== -1) {
791
+ const { rightIndex } = this.assignmentLines[leftTopIndex];
792
+ const obj = rightIndex[1] !== undefined
793
+ ? this.rights[rightIndex[0]].members[rightIndex[1]]
794
+ : this.rights[rightIndex[0]].expression;
795
+ code += `return ${obj.toJS((0, translator_1.shiftState)(state, code, { inline: true }))};\n`;
796
+ }
797
+ else if (typeAnnotation.typeKind !== 'anonymousStructure') {
798
+ code += `const obj = this.$genInitFromSchema('${typeAnnotation.sortedTypeKey}', this.$utils['New'](${typeAnnotation.toJS((0, translator_1.shiftState)(state, code, { inline: true }))}));\n`;
799
+ const rightMap = new Map();
800
+ this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
801
+ const rightIndexJson = JSON.stringify(rightIndex);
802
+ if (rightMap.has(rightIndexJson)) {
803
+ rightMap.set(rightIndexJson, [...rightMap.get(rightIndexJson), leftIndex]);
804
+ }
805
+ else {
806
+ rightMap.set(rightIndexJson, [leftIndex]);
807
+ }
808
+ });
809
+ rightMap.forEach((leftIndexs, rightIndexJson) => {
810
+ const rightIndex = JSON.parse(rightIndexJson) || [];
811
+ const leftItems = leftIndexs.map((leftIndex) => this.properties[leftIndex[1]]);
812
+ const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
813
+ const rightItem = rightSecond !== undefined ? this.rights[rightFirst].members[rightSecond] : this.rights[rightFirst].expression;
814
+ leftItems.forEach((leftItem) => {
815
+ code += `obj.${leftItem.name} = `;
816
+ });
817
+ code += `${rightItem.toJS((0, translator_1.shiftState)(state, code, { inline: true }))}`;
818
+ code += ';\n';
819
+ });
820
+ code += 'return obj;\n';
821
+ }
822
+ else {
823
+ code += `const obj = {};\n`;
824
+ this.properties.forEach((property) => {
825
+ code += `obj.${property.name} = null;\n`;
826
+ });
827
+ const rightMap = new Map();
828
+ this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
829
+ const rightIndexJson = JSON.stringify(rightIndex);
830
+ if (rightMap.has(rightIndexJson)) {
831
+ rightMap.set(rightIndexJson, [...rightMap.get(rightIndexJson), leftIndex]);
832
+ }
833
+ else {
834
+ rightMap.set(rightIndexJson, [leftIndex]);
835
+ }
836
+ });
837
+ rightMap.forEach((leftIndexs, rightIndexJson) => {
838
+ const rightIndex = JSON.parse(rightIndexJson) || [];
839
+ const leftItems = leftIndexs.map((leftIndex) => this.properties[leftIndex[1]]);
840
+ const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
841
+ const rightItem = rightSecond !== undefined ? this.rights[rightFirst].members[rightSecond] : this.rights[rightFirst].expression;
842
+ leftItems.forEach((leftItem) => {
843
+ code += `obj.${leftItem.name} = `;
844
+ });
845
+ code += `${rightItem.toJS((0, translator_1.shiftState)(state, code, { inline: true }))}`;
846
+ code += ';\n';
847
+ });
848
+ code += 'return obj;\n';
849
+ }
850
+ code += '})()';
851
+ return code;
852
+ }
853
+ toEmbeddedTS(state = (0, translator_1.createCompilerState)()) {
854
+ const indent0 = (0, translator_1.indent)(state?.tabSize || 0);
855
+ const indent1 = (0, translator_1.indent)((state?.tabSize || 0) + 1);
856
+ const indent2 = (0, translator_1.indent)((state?.tabSize || 0) + 2);
857
+ const indent3 = (0, translator_1.indent)((state?.tabSize || 0) + 3);
858
+ let code = '';
859
+ if (!this.typeAnnotation) {
860
+ code += '__IDENTIFIER__';
861
+ }
862
+ else if (this.typeAnnotation.typeKind !== 'anonymousStructure') {
863
+ const rightMap = new Map();
864
+ code += `${indent0}(() => { \n`;
865
+ // 提供sourcemap,获取类型标注和上下文可选变量
866
+ this.rights.forEach((right) => {
867
+ code += indent1;
868
+ rightMap.set(right.expression, right.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true })));
869
+ code += rightMap.get(right.expression);
870
+ code += ';\n';
871
+ if (right.members?.length) {
872
+ code += indent2;
873
+ }
874
+ right.members.forEach((member) => {
875
+ rightMap.set(member, member.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true })));
876
+ code += rightMap.get(member);
877
+ code += '; ';
878
+ });
879
+ code += right.members.length ? '\n' : '';
880
+ });
881
+ // 方便ts报错检查
882
+ code += `${indent1}function __newComposite() {\n`;
883
+ const { typeAnnotation } = this;
884
+ if (['nasl.ui', 'nasl.interface', 'nasl.http'].includes(typeAnnotation.typeNamespace) &&
885
+ typeAnnotation.typeKind === 'generic') {
886
+ code += `${indent2}let __obj = new ${typeAnnotation.typeNamespace}.${typeAnnotation.typeName}`;
887
+ code += '({';
888
+ this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
889
+ const leftSecondIndex = leftIndex[1];
890
+ const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
891
+ const leftItem = this.properties[leftSecondIndex];
892
+ const rightItem = rightSecond !== undefined
893
+ ? this.rights[rightFirst].members[rightSecond]
894
+ : this.rights[rightFirst].expression;
895
+ const rightTs = rightMap.get(rightItem);
896
+ code += `${leftItem.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))}:`;
897
+ code += `${['__IDENTIFIER__', '__IDENTIFIER__()'].includes(rightTs) ? 'null' : rightMap.get(rightItem)},\n `;
898
+ });
899
+ code += '})\n';
900
+ }
901
+ else {
902
+ code += `${indent2}let __obj = nasl.util.New<`;
903
+ code += this.typeAnnotation.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
904
+ code += `>();\n`;
905
+ }
906
+ // 是否是左边的顶层连线
907
+ const leftTopIndex = this.assignmentLines.findIndex(({ leftIndex }) => leftIndex[1] === undefined);
908
+ if (leftTopIndex !== -1) {
909
+ const { rightIndex } = this.assignmentLines[leftTopIndex];
910
+ const rightExpression = rightIndex[1] !== undefined
911
+ ? this.rights[rightIndex[0]].members[rightIndex[1]]
912
+ : this.rights[rightIndex[0]].expression;
913
+ code += `__obj = ${rightExpression.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))};`;
914
+ code += '\n';
915
+ }
916
+ else {
917
+ // 左侧properties的identifier的类型标注
918
+ code += `${indent2}const { `;
919
+ this.properties.forEach((item, index) => {
920
+ code += item.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
921
+ if (index < this.properties.length - 1)
922
+ code += ', ';
923
+ });
924
+ code += ' } = __obj;\n';
925
+ this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
926
+ const leftSecondIndex = leftIndex[1];
927
+ const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
928
+ const leftItem = this.properties[leftSecondIndex];
929
+ const rightItem = rightSecond !== undefined
930
+ ? this.rights[rightFirst].members[rightSecond]
931
+ : this.rights[rightFirst].expression;
932
+ const rightTs = rightMap.get(rightItem);
933
+ code += `${indent2}nasl.core.compareNew(`;
934
+ code += `${['__IDENTIFIER__', '__IDENTIFIER__()'].includes(rightTs) ? 'null' : rightMap.get(rightItem)}, `;
935
+ code += `${leftItem.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }), { isNewcomposite: true })});\n`;
936
+ });
937
+ }
938
+ code += `${indent2}return __obj;\n`;
939
+ code += `${indent1}};\n`;
940
+ code += `${indent1}return __newComposite();\n`;
941
+ code += `${indent0}})()`;
942
+ }
943
+ else {
944
+ const nameMap = new Map();
945
+ const rightMap = new Map();
946
+ this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
947
+ const leftSecondIndex = leftIndex[1];
948
+ const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
949
+ const leftItem = this.properties[leftSecondIndex];
950
+ const rightItem = rightSecond !== undefined ? this.rights[rightFirst].members[rightSecond] : this.rights[rightFirst].expression;
951
+ nameMap.set(leftItem.name, rightItem);
952
+ rightMap.set(rightItem, null);
953
+ });
954
+ code += `${indent0}(() => { \n`;
955
+ // 提供sourcemap,获取类型标注和上下文可选变量
956
+ this.rights.forEach((right) => {
957
+ code += indent1;
958
+ let ts = right.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
959
+ if (rightMap.has(right.expression))
960
+ rightMap.set(right.expression, ts);
961
+ code += ts;
962
+ code += ';\n';
963
+ if (right.members?.length) {
964
+ code += indent2;
965
+ }
966
+ right.members.forEach((member) => {
967
+ ts = member.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
968
+ if (rightMap.has(member))
969
+ rightMap.set(member, ts);
970
+ code += ts;
971
+ code += '; ';
972
+ });
973
+ code += right.members.length ? '\n' : '';
974
+ });
975
+ // 先把连线的变量定义出来,否则匿名数据结构属性名称与变量名称相同时会报错,
976
+ this.properties.forEach((property, index) => {
977
+ const temp = `temp${index}__`;
978
+ const { name } = property;
979
+ const rightItem = nameMap.get(name);
980
+ const ts = rightMap.get(rightItem);
981
+ if (ts !== undefined) {
982
+ if (['__IDENTIFIER__', '__IDENTIFIER__()'].includes(ts)) {
983
+ code += `${indent1}let ${temp}: void = null; \n`;
984
+ }
985
+ else {
986
+ code += `${indent1}let ${temp}${ts === 'null' ? ':void' : ''} = ${ts}; \n`;
987
+ }
988
+ }
989
+ });
990
+ // 方便ts报错检查
991
+ code += `${indent1}function __newComposite() {\n`;
992
+ this.properties.forEach((property, index) => {
993
+ const temp = `temp${index}__`;
994
+ const propertyType = this.typeAnnotation.properties[index]?.typeAnnotation;
995
+ const { name } = property;
996
+ const rightItem = nameMap.get(name);
997
+ const ts = rightMap.get(rightItem);
998
+ if (ts !== undefined) {
999
+ code += `${indent2}let `;
1000
+ code += `${property.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))}: `;
1001
+ if (propertyType) {
1002
+ const typeTs = propertyType.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
1003
+ code += typeTs;
1004
+ code += ` = ${temp};\n`;
1005
+ // 如果是字段是union类型,且赋值的是当前union允许的类型,会导致property.name类型推断成temp的类型
1006
+ code += `${indent2}${property.name} = ${property.name} as ${typeTs};\n`;
1007
+ }
1008
+ else {
1009
+ code += `nasl.core.Incompatible<typeof ${temp}, void>`;
1010
+ code += ` = ${temp};\n`;
1011
+ }
1012
+ }
1013
+ else if (propertyType) {
1014
+ code += `${indent2}let ${property.name}: `;
1015
+ code += `${propertyType.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))}; `;
1016
+ code += `<`;
1017
+ code += `${property.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))}`;
1018
+ code += `>${property.name};\n`;
1019
+ }
1020
+ else {
1021
+ code += `${indent2}const `;
1022
+ code += property.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
1023
+ code += ';\n';
1024
+ }
1025
+ });
1026
+ code += `${indent2}return {\n`;
1027
+ this.properties.forEach((property) => {
1028
+ code += `${indent3}${property.name},\n`;
1029
+ });
1030
+ code += `${indent3}__name: "AStructure_${(0, generator_1.genHash)(JSON.stringify(this))}" as const,\n`;
1031
+ code += `${indent2}}\n`;
1032
+ code += `${indent1}};\n`;
1033
+ code += `${indent1}return __newComposite();\n`;
1034
+ code += `${indent0}})()`;
1035
+ }
1036
+ return code;
1037
+ }
1038
+ toNaturalTS() {
1039
+ let code = 'nasl.util.';
1040
+ code +=
1041
+ this?.typeAnnotation?.typeKind === 'anonymousStructure'
1042
+ ? 'NewAnonymityStructure'
1043
+ : `NewEntity<${this?.typeAnnotation?.typeName || '__IDENTIFIER__'}>`;
1044
+ let params = '';
1045
+ this?.properties?.forEach((item, index) => {
1046
+ if (item) {
1047
+ params += `${item?.toNaturalTS()}: ${this?.rights?.[index]?.expression?.toNaturalTS()}`;
1048
+ if (index !== this.properties.length - 1) {
1049
+ params += ';';
1050
+ }
1051
+ }
1052
+ });
1053
+ code += `(${params ? `{${params}}` : '__IDENTIFIER__'})`;
1054
+ return code;
1055
+ }
1056
+ getInitCode(state) {
1057
+ const indent1 = (0, translator_1.indent)((state?.tabSize || 0) + 1);
1058
+ const indent2 = (0, translator_1.indent)((state?.tabSize || 0) + 2);
1059
+ const indent3 = (0, translator_1.indent)((state?.tabSize || 0) + 3);
1060
+ const indent4 = (0, translator_1.indent)((state?.tabSize || 0) + 4);
1061
+ let code = '';
1062
+ const nameMap = new Map();
1063
+ const rightMap = new Map();
1064
+ this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
1065
+ const leftSecondIndex = leftIndex[1];
1066
+ const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
1067
+ const leftItem = this.properties[leftSecondIndex];
1068
+ const rightItem = rightSecond !== undefined ? this.rights[rightFirst].members[rightSecond] : this.rights[rightFirst].expression;
1069
+ nameMap.set(leftItem.name, rightItem);
1070
+ rightMap.set(rightItem, null);
1071
+ });
1072
+ code += '(() => { ';
1073
+ // 提供sourcemap,获取类型标注和上下文可选变量
1074
+ this.rights.forEach((right) => {
1075
+ let ts = right.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
1076
+ if (rightMap.has(right.expression))
1077
+ rightMap.set(right.expression, ts);
1078
+ right.members.forEach((member) => {
1079
+ ts = member.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
1080
+ if (rightMap.has(member))
1081
+ rightMap.set(member, ts);
1082
+ });
1083
+ });
1084
+ // 方便ts报错检查
1085
+ code += 'function __newComposite() { ';
1086
+ this.properties.forEach((property, index) => {
1087
+ const { name } = property;
1088
+ const propertyType = this.typeAnnotation.properties[index]?.typeAnnotation;
1089
+ const rightItem = nameMap.get(name);
1090
+ let ts = rightMap.get(rightItem);
1091
+ ts = this.getForeachCode(ts);
1092
+ if (propertyType) {
1093
+ code += `const ${name}: ${propertyType.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))}; `;
1094
+ }
1095
+ else if (ts !== undefined) {
1096
+ code += `const ${name} = ${['__IDENTIFIER__', '__IDENTIFIER__()'].includes(ts) ? null : ts}; `;
1097
+ }
1098
+ else {
1099
+ code += `const ${name}; `;
1100
+ }
1101
+ });
1102
+ code += `\n${indent3}return {\n`;
1103
+ this.properties.forEach((property) => {
1104
+ code += `${indent4}${property.name},\n`;
1105
+ });
1106
+ code += `${indent4}__name: "AStructure_${(0, generator_1.genHash)(JSON.stringify(this))}" as const,\n`;
1107
+ code += `${indent3}}\n`;
1108
+ code += `${indent2}};\n`;
1109
+ code += `${indent2}return __newComposite();\n`;
1110
+ code += `${indent1}})()`;
1111
+ return code;
1112
+ }
1113
+ getNewCompositeCode(state) {
1114
+ const indent0 = (0, translator_1.indent)(state?.tabSize || 0);
1115
+ const indent1 = (0, translator_1.indent)((state?.tabSize || 0) + 1);
1116
+ const indent2 = (0, translator_1.indent)((state?.tabSize || 0) + 2);
1117
+ let code = '';
1118
+ const rightMap = new Map();
1119
+ code += `${indent0}(() => { \n`;
1120
+ // 提供sourcemap,获取类型标注和上下文可选变量
1121
+ this.rights.forEach((right) => {
1122
+ code += indent1;
1123
+ rightMap.set(right.expression, right.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true })));
1124
+ // code += rightMap.get(right.expression);
1125
+ // code += ';\n';
1126
+ if (right.members?.length) {
1127
+ code += indent2;
1128
+ }
1129
+ right.members.forEach((member) => {
1130
+ rightMap.set(member, member.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true })));
1131
+ // code += rightMap.get(member);
1132
+ // code += '; ';
1133
+ });
1134
+ // code += right.members.length ? '\n' : '';
1135
+ });
1136
+ // 方便ts报错检查
1137
+ code += `${indent1}function __newComposite() {\n`;
1138
+ const { typeAnnotation } = this;
1139
+ if (['nasl.ui', 'nasl.interface', 'nasl.http'].includes(typeAnnotation.typeNamespace)) {
1140
+ code += `${indent2}let __obj = new ${typeAnnotation.typeNamespace}.${typeAnnotation.typeName}`;
1141
+ code += '({';
1142
+ this.assignmentLines.forEach(({ leftIndex, rightIndex }) => {
1143
+ const leftSecondIndex = leftIndex[1];
1144
+ const [rightFirst, rightSecond] = [rightIndex[0], rightIndex[1]];
1145
+ const leftItem = this.properties[leftSecondIndex];
1146
+ const rightItem = rightSecond !== undefined ? this.rights[rightFirst].members[rightSecond] : this.rights[rightFirst].expression;
1147
+ const rightTs = rightMap.get(rightItem);
1148
+ code += `${leftItem.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }))}:`;
1149
+ code += `${['__IDENTIFIER__', '__IDENTIFIER__()'].includes(rightTs) ? 'null' : rightMap.get(rightItem)},\n `;
1150
+ });
1151
+ code += '})\n';
1152
+ }
1153
+ code += `${indent2}return __obj;\n`;
1154
+ code += `${indent1}};\n`;
1155
+ code += `${indent1}return __newComposite();\n`;
1156
+ code += `${indent0}})()`;
1157
+ return code;
1158
+ }
1159
+ __addIdentifier(name, typeAnnotation) {
1160
+ const newName = name || 'property1';
1161
+ const newType = typeAnnotation || null;
1162
+ this.app.emit('collect:start', {
1163
+ actionMsg: '添加匿名数据结构属性',
1164
+ });
1165
+ const node = this.addIdentifier({ name: this.getIdentifierUniqueName(newName) });
1166
+ const struct = StructureProperty__1.default.from({
1167
+ name: node.name,
1168
+ typeAnnotation: newType,
1169
+ });
1170
+ this.typeAnnotation.addStructureProperty(struct);
1171
+ this.app.emit('collect:end');
1172
+ }
1173
+ __deleteIdentifier(property) {
1174
+ const index = this.properties.findIndex((p) => p === property);
1175
+ const newLines = [];
1176
+ const newProperties = this.typeAnnotation.properties.filter((item) => item.name !== property.name);
1177
+ this.assignmentLines.forEach((line) => {
1178
+ const { leftIndex } = line;
1179
+ if (leftIndex[1] < index) {
1180
+ newLines.push(line);
1181
+ }
1182
+ else if (leftIndex[1] > index) {
1183
+ const newLine = { ...line?.toJSON(), leftIndex: [leftIndex[0], leftIndex[1] - 1] };
1184
+ newLines.push(newLine);
1185
+ }
1186
+ });
1187
+ this.app.emit('collect:start', {
1188
+ actionMsg: '删除匿名数据结属性',
1189
+ });
1190
+ this.setAssignmentLines(newLines);
1191
+ this.typeAnnotation.update({
1192
+ properties: newProperties,
1193
+ });
1194
+ property.delete();
1195
+ this.app.emit('collect:end');
1196
+ }
1197
+ getForeachCode(code) {
1198
+ // ForEachStatement 内部变量需要替换处理,如 item、index
1199
+ const forEachStatement = this.getAncestor('ForEachStatement');
1200
+ if (forEachStatement && code) {
1201
+ code = code.replaceAll('\n', ' ');
1202
+ code = new Logic__1.default().handleForEachCode(code, forEachStatement);
1203
+ }
1204
+ return code;
1205
+ }
1206
+ };
1207
+ __decorate([
1208
+ (0, decorators_1.property)('concept')
1209
+ ], NewComposite.prototype, "concept", void 0);
1210
+ __decorate([
1211
+ (0, decorators_1.property)({
1212
+ objectRef: 'TypeAnnotation',
1213
+ })
1214
+ ], NewComposite.prototype, "typeAnnotation", void 0);
1215
+ __decorate([
1216
+ (0, decorators_1.property)({
1217
+ objectRef: 'Identifier',
1218
+ isArray: true,
1219
+ defaultValue: [],
1220
+ })
1221
+ ], NewComposite.prototype, "properties", void 0);
1222
+ __decorate([
1223
+ (0, decorators_1.property)({
1224
+ objectRef: 'SelectMembers',
1225
+ isArray: true,
1226
+ defaultValue: [],
1227
+ })
1228
+ ], NewComposite.prototype, "rights", void 0);
1229
+ __decorate([
1230
+ (0, decorators_1.property)({
1231
+ objectRef: 'AssignmentLine',
1232
+ isArray: true,
1233
+ defaultValue: [],
1234
+ })
1235
+ ], NewComposite.prototype, "assignmentLines", void 0);
1236
+ __decorate([
1237
+ (0, decorators_1.property)()
1238
+ ], NewComposite.prototype, "hideProperties", void 0);
1239
+ __decorate([
1240
+ (0, decorators_1.property)()
1241
+ ], NewComposite.prototype, "hideDefaults", void 0);
1242
+ __decorate([
1243
+ (0, decorators_1.property)()
1244
+ ], NewComposite.prototype, "autoConnection", void 0);
1245
+ __decorate([
1246
+ (0, translator_1.withSourceMap)()
1247
+ ], NewComposite.prototype, "toEmbeddedTS", null);
1248
+ __decorate([
1249
+ (0, translator_1.withSourceMap)()
1250
+ ], NewComposite.prototype, "toNaturalTS", null);
1251
+ NewComposite = NewComposite_1 = __decorate([
1252
+ decorators_1.className,
1253
+ (0, decorators_1.concept)('实体/(匿名)数据结构构造器')
1254
+ // @ts-ignore
1255
+ ], NewComposite);
1256
+ exports.NewComposite = NewComposite;
1257
+ exports.default = NewComposite;
1258
+ //================================================================================
1259
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1260
+ // 自动生成的代码已结束。下面可以手动编写。
1261
+ //================================================================================
1312
1262
  //# sourceMappingURL=NewComposite__.js.map