@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,696 +1,698 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- var Match_1;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.Match = void 0;
14
- const translator_1 = require("../translator");
15
- const TypeAnnotation__1 = __importDefault(require("./TypeAnnotation__"));
16
- const BooleanLiteral__1 = __importDefault(require("./BooleanLiteral__"));
17
- const MemberExpression__1 = __importDefault(require("./MemberExpression__"));
18
- const getMemberIdentifier_1 = require("../server/getMemberIdentifier");
19
- const Identifier__1 = __importDefault(require("./Identifier__"));
20
- const decorators_1 = require("../decorators");
21
- const LogicItem__1 = __importDefault(require("./LogicItem__"));
22
- const MatchCase__1 = __importDefault(require("./MatchCase__"));
23
- /**
24
- * 匹配
25
- */
26
- let Match = class Match extends LogicItem__1.default {
27
- static { Match_1 = this; }
28
- /** 类名 */
29
- static ConceptName = 'Match';
30
- /**
31
- * 产品概念
32
- */
33
- concept;
34
- /**
35
- * 逻辑项
36
- */
37
- // @ts-ignore
38
- expression;
39
- /**
40
- * 是否表达式形态
41
- */
42
- isExpression = false;
43
- /**
44
- * 匹配分支列表
45
- */
46
- cases = [];
47
- /**
48
- * @param source 需要合并的部分参数
49
- */
50
- constructor(source) {
51
- source = Object.assign({}, Match_1.getDefaultOptions(), source);
52
- super(source);
53
- super.subConstructor(source);
54
- }
55
- static from(source, parentNode, parentKey) {
56
- return super.from(source, parentNode, parentKey);
57
- }
58
- _insertMatchCaseAt(options, index) {
59
- const matchCaseOptions = {};
60
- const relationOptions = { parentNode: this, parentKey: 'cases' };
61
- let matchCase;
62
- if (options instanceof MatchCase__1.default) {
63
- options.ensureDelete(); // 同一实例不支持多处存在
64
- matchCase = options;
65
- Object.assign(matchCase, relationOptions);
66
- }
67
- else {
68
- matchCase = MatchCase__1.default.from({
69
- ...matchCaseOptions,
70
- ...options,
71
- }, this, 'cases');
72
- }
73
- this.cases.splice(index, 0, matchCase);
74
- return matchCase;
75
- }
76
- insertMatchCaseAt(options, index) {
77
- const node = this._insertMatchCaseAt(options, index);
78
- node.create({
79
- index,
80
- parentNode: this,
81
- parentKey: 'cases',
82
- });
83
- return node;
84
- }
85
- _addMatchCase(options) {
86
- const index = this.cases.length;
87
- return this._insertMatchCaseAt(options, index);
88
- }
89
- addMatchCase(options) {
90
- const node = this._addMatchCase(options);
91
- const index = this.cases.indexOf(node);
92
- node.create({
93
- index,
94
- parentNode: this,
95
- parentKey: 'cases',
96
- });
97
- return node;
98
- }
99
- removeExpression(options) {
100
- let expression;
101
- if (typeof options === 'string') {
102
- expression = this.expression;
103
- if (!expression) {
104
- throw new Error('找不到逻辑项 ' + options);
105
- }
106
- }
107
- else {
108
- expression = options;
109
- }
110
- return expression.delete();
111
- }
112
- removeMatchCaseInCases(options) {
113
- let matchCase = options;
114
- return matchCase.delete();
115
- }
116
- __removeLogicItem(logicItem) {
117
- const parentKey = logicItem.parentKey;
118
- const params = {
119
- parentNode: this,
120
- parentKey,
121
- index: -1,
122
- object: null,
123
- oldObject: logicItem,
124
- };
125
- if (parentKey) {
126
- params.parentKey = parentKey;
127
- // @ts-ignore
128
- const t = this.__v_raw || this;
129
- // @ts-ignore
130
- const n = logicItem.__v_raw || logicItem;
131
- if (Array.isArray(t[parentKey])) {
132
- const index = t[parentKey].indexOf(n);
133
- ~index && this[parentKey].splice(index, 1);
134
- params.index = index;
135
- }
136
- else if (t[parentKey] === n) {
137
- params.index = 0;
138
- this[parentKey] = undefined;
139
- }
140
- }
141
- return params;
142
- }
143
- //================================================================================
144
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
145
- // 自动生成的代码已结束。下面可以手动编写。
146
- //================================================================================
147
- enumerableItems;
148
- get isEnumerable() {
149
- return !!this.enumerableItems?.length;
150
- }
151
- async cacheStatus() {
152
- this.enumerableItems = await this.getEnumerableItems();
153
- }
154
- /**
155
- * 是否允许新建case
156
- */
157
- get canAddCase() {
158
- const cases = this?.cases;
159
- if (Array.isArray(cases) && cases.length > 1) {
160
- const { enumerableItems } = this;
161
- if (Array.isArray(enumerableItems)) {
162
- const map = {};
163
- cases.forEach((caseItem) => {
164
- const { patterns } = caseItem || {};
165
- if (Array.isArray(patterns)) {
166
- patterns.forEach((pattern) => {
167
- if (pattern instanceof TypeAnnotation__1.default) {
168
- const patternTypeKey = pattern.typeKey;
169
- map[patternTypeKey] = true;
170
- }
171
- else if (pattern instanceof MemberExpression__1.default || pattern instanceof BooleanLiteral__1.default) {
172
- const patternValue = pattern.getValue();
173
- map[patternValue] = true;
174
- }
175
- });
176
- }
177
- });
178
- const enumerableKeys = Object.keys(map);
179
- if (enumerableKeys.length === enumerableItems.length) {
180
- return false;
181
- }
182
- }
183
- }
184
- return true;
185
- }
186
- // 获取可枚举项
187
- async getEnumerableItems(typeAnnotation) {
188
- const { expression } = this;
189
- let currTypeAnnotation = typeAnnotation;
190
- if (!currTypeAnnotation) {
191
- currTypeAnnotation = await expression?.getCurrentTypeAnnotation();
192
- }
193
- const { typeKind, typeNamespace, typeName, typeArguments } = currTypeAnnotation || {};
194
- if (typeKind === 'union' && Array.isArray(typeArguments)) {
195
- return typeArguments.map((typeArg) => {
196
- let typeArgJson = typeArg;
197
- if (typeArg instanceof TypeAnnotation__1.default) {
198
- typeArgJson = typeArg.toJSON();
199
- }
200
- return new TypeAnnotation__1.default(typeArgJson);
201
- });
202
- }
203
- if (typeKind === 'reference') {
204
- const nameArr = [typeName];
205
- if (typeNamespace) {
206
- nameArr.unshift(typeNamespace);
207
- }
208
- const typeNode = this.app.findNodeByCompleteName(nameArr.join('.')) || {};
209
- if (typeNode.concept === 'Enum') {
210
- const enums = (0, getMemberIdentifier_1.formatEnums)([typeNode]);
211
- const { children } = enums?.[0] || {};
212
- if (Array.isArray(children)) {
213
- return children.map((child) => child?.expression);
214
- }
215
- }
216
- }
217
- else if (typeKind === 'primitive' && typeNamespace === 'nasl.core' && typeName === 'Boolean') {
218
- return [
219
- new BooleanLiteral__1.default({
220
- value: 'true',
221
- }),
222
- new BooleanLiteral__1.default({
223
- value: 'false',
224
- }),
225
- ];
226
- }
227
- }
228
- setIsExpression(isExpression) {
229
- const object = {
230
- isExpression,
231
- };
232
- this.update({
233
- ...object,
234
- });
235
- }
236
- /**
237
- * 设置逻辑项
238
- */
239
- setExpression(expression) {
240
- if (expression) {
241
- expression._delete();
242
- const relationOptions = { parentNode: this, parentKey: 'expression' };
243
- Object.assign(expression, relationOptions);
244
- }
245
- const object = {
246
- expression,
247
- };
248
- this.update({
249
- ...object,
250
- });
251
- }
252
- // 设置 expression ,如果 expression 是可枚举类型,加上默认匹配条件
253
- async setExpressionWitchCase(expression) {
254
- const oldExpression = this.expression;
255
- this.app.emit('collect:start', {
256
- actionMsg: `修改${this?.name || this?.label || this?.constructor?.nodeTitle}`,
257
- });
258
- this.setExpression(expression);
259
- // expression切换并且自动生成分支
260
- await this.autoGenCases(oldExpression);
261
- this.app.emit('collect:end');
262
- }
263
- // 自动生成分支
264
- async autoGenCases(oldExpression) {
265
- const { expression } = this;
266
- // 没有新的expression要保留分支不去更新
267
- if (!expression) {
268
- return;
269
- }
270
- // 如果没有旧的oldExpression, 但是已有就分支了,就不去更新了
271
- if (!oldExpression && this.cases.length) {
272
- // 而且case的 patterns 有长度,就说明里面是有值的,就不去更新了,其余就去更新
273
- if (this.cases.some((item) => item.patterns.length)) {
274
- return;
275
- }
276
- }
277
- // 如果新旧nasl一样,就算类型变了也不重新计算
278
- if (JSON.stringify(oldExpression?.toJSON()) === JSON.stringify(expression?.toJSON())) {
279
- return;
280
- }
281
- const oldTypeAnnotation = oldExpression?.__TypeAnnotation;
282
- const currTypeAnnotation = await expression?.getCurrentTypeAnnotation();
283
- // 如果nasl变了,但是新旧类型都是union就return
284
- if (currTypeAnnotation?.typeKind === 'union' && oldTypeAnnotation?.typeKind === 'union') {
285
- return;
286
- }
287
- // 如果不可枚举 变 不可枚举,都会保留分支
288
- // 原来不是 布尔类型 也不是枚举类型, 现在 也不是布尔类型 也不是枚举类型
289
- // 就满足了
290
- if (expression && oldExpression && currTypeAnnotation && oldTypeAnnotation) {
291
- const { typeName: oldTypeName, typeNamespace: oldTypeNamespace, typeKind: oldTypeKind } = oldTypeAnnotation;
292
- const { typeName, typeNamespace, typeKind } = currTypeAnnotation;
293
- // 类型的 name 和 namespace都有值,而且都不是 可枚举
294
- if (oldTypeName &&
295
- oldTypeNamespace &&
296
- typeName &&
297
- typeNamespace &&
298
- oldTypeName !== 'Boolean' &&
299
- !oldTypeNamespace.endsWith('enums') &&
300
- oldTypeKind !== 'union' &&
301
- typeName !== 'Boolean' &&
302
- !typeNamespace.endsWith('enums') &&
303
- typeKind !== 'union') {
304
- return;
305
- }
306
- if (oldTypeName &&
307
- oldTypeNamespace &&
308
- oldTypeName !== 'Boolean' &&
309
- !oldTypeNamespace.endsWith('enums') &&
310
- oldTypeKind !== 'union' &&
311
- typeKind === 'anonymousStructure') {
312
- /**
313
- * 新旧都是匿名数据结构
314
- * 匿名到 可枚举
315
- * 可枚举到匿名
316
- * 匿名到 不可枚举 不动
317
- * 不可枚举到匿名 不动
318
- * 匿名到匿名 不动
319
- * 因为不能在match上不能直接 匿名数据结构替换匿名数据结构
320
- * 而且 匿名数据结构不能 直接换别的分支,所以下面的直留 不可枚举到匿名数据结构的情况
321
- * */
322
- // 不可枚举到匿名 不动
323
- return;
324
- }
325
- if (typeKind === 'anonymousStructure' && oldTypeKind === typeKind) {
326
- // 匿名到匿名 不动
327
- return;
328
- }
329
- // else if (currTypeName && typeNamespace && currTypeName !== 'Boolean' && !typeNamespace.endsWith('enums') && oldTypeKind === 'anonymousStructure') {
330
- // // 匿名到 不可枚举 不动
331
- // return;
332
- // }
333
- }
334
- // 修改分支
335
- await this.changeGenCases();
336
- }
337
- // jflow缓存模式下的传过来参数
338
- async autoGenCasesAST({ oldAst, cacheType }) {
339
- let obj;
340
- try {
341
- obj = JSON.parse(oldAst);
342
- }
343
- catch (err) { }
344
- const oldExpression = LogicItem__1.default.from(obj);
345
- oldExpression.__TypeAnnotation = cacheType;
346
- await this.autoGenCases(oldExpression);
347
- }
348
- async changeGenCases() {
349
- const { expression } = this;
350
- const currTypeAnnotation = await expression?.getCurrentTypeAnnotation();
351
- let cases = [];
352
- let isMatchedTypeEnumable = false;
353
- if (currTypeAnnotation) {
354
- cases = [new MatchCase__1.default()];
355
- const enumerableItems = await this.getEnumerableItems();
356
- if (Array.isArray(enumerableItems) && enumerableItems.length) {
357
- isMatchedTypeEnumable = true;
358
- cases = enumerableItems.map((enumerableItem) => new MatchCase__1.default({
359
- patterns: [enumerableItem],
360
- isMatchedTypeEnumable,
361
- }));
362
- }
363
- }
364
- // body的暂存数组
365
- const bodys = [];
366
- // 最后一项的body
367
- let lastCaseBody;
368
- if (Array.isArray(this.cases) && this.cases.length) {
369
- // 将原分支body中存在的内容拿出来
370
- this.cases.forEach((caseItem, index) => {
371
- const { body } = caseItem || {};
372
- if (Array.isArray(body) && body.length) {
373
- // “其他”分支单独处理
374
- if (index < this.cases.length - 1) {
375
- bodys.push({
376
- body,
377
- isMatchedTypeEnumable: currTypeAnnotation ? isMatchedTypeEnumable : true,
378
- });
379
- }
380
- else {
381
- lastCaseBody = body;
382
- }
383
- }
384
- });
385
- // 将原分支body中存在的内容拿出来赋到新的分支中去
386
- bodys.forEach(({ body, isMatchedTypeEnumable }, index) => {
387
- let caseItem = cases[index];
388
- if (!caseItem) {
389
- caseItem = new MatchCase__1.default({
390
- isMatchedTypeEnumable,
391
- });
392
- cases.push(caseItem);
393
- }
394
- caseItem.update({
395
- body,
396
- });
397
- });
398
- }
399
- // 如果分支项存在时,加上“其他”项
400
- if (cases.length) {
401
- const otherCase = new MatchCase__1.default();
402
- // “其他”项body存在内容时,给新的分支上加上内容
403
- if (lastCaseBody) {
404
- otherCase.update({
405
- body: lastCaseBody,
406
- });
407
- }
408
- cases.push(otherCase);
409
- }
410
- this.update({
411
- cases,
412
- });
413
- }
414
- static getDefaultOptions() {
415
- return {
416
- label: '匹配',
417
- };
418
- }
419
- async isTypeMatching() {
420
- if (this.expression) {
421
- const typeAnnotation = await this.expression.getCurrentTypeAnnotation();
422
- const { typeKind, typeArguments } = typeAnnotation || {};
423
- if (typeKind === 'union' && Array.isArray(typeArguments)) {
424
- return true;
425
- }
426
- }
427
- return false;
428
- }
429
- onChange($event) {
430
- const { action, object, eventList } = $event || {};
431
- // expression修改时,通知tsserver,让tsserver重新生成ts文件,为了后续能获取expression的类型
432
- if (action === 'update' && object.hasOwnProperty('expression')) {
433
- this.app?.naslServer?.embeddedTSEmitter.emit('change', {
434
- value: eventList,
435
- });
436
- }
437
- this.emit('change', $event);
438
- }
439
- // 获取在页面中的名字
440
- get expressionNameInView() {
441
- const nameList = [];
442
- let node = this;
443
- while (node) {
444
- if (node === this) {
445
- nameList.unshift('viewMatchExpression');
446
- }
447
- else {
448
- nameList.unshift(node.name);
449
- }
450
- if (node.concept === 'ViewElement') {
451
- node = null;
452
- }
453
- else {
454
- nameList.unshift(node.parentKey);
455
- node = node.parentNode;
456
- }
457
- }
458
- return nameList.join('_').replace(/-/g, '_');
459
- }
460
- getViewMatchExpressionBuilder() {
461
- return `gen${this.expressionNameInView}`;
462
- }
463
- getInViewMethod(state) {
464
- const viewElement = this?.getAncestor('ViewElement');
465
- const argsList = [];
466
- let parent = viewElement?.parentNode;
467
- let index = 0;
468
- while (parent && parent.concept !== 'View') {
469
- if (parent.slotScope) {
470
- argsList.unshift(index === 0 ? 'current' : `current${index}`);
471
- index++;
472
- }
473
- parent = parent.parentNode;
474
- }
475
- let code = '';
476
- code += `${this.getViewMatchExpressionBuilder()} (${argsList.join(', ')}) {\n`;
477
- code += `return ${this.toJS()}`;
478
- code += `;\n`;
479
- code += '}';
480
- return code;
481
- }
482
- setIsExpressionCustom(isExpression) {
483
- if (isExpression === this.isExpression) {
484
- return;
485
- }
486
- this.update({
487
- isExpression,
488
- });
489
- this.cases.forEach((c) => {
490
- c.update({
491
- body: [],
492
- });
493
- });
494
- }
495
- toVue(state) {
496
- if (state?.finalCode === false) {
497
- return this.toUI();
498
- }
499
- const viewElement = this?.getAncestor('ViewElement');
500
- const argsList = [];
501
- let parent = viewElement?.parentNode;
502
- let index = 0;
503
- while (parent && parent.concept !== 'View') {
504
- if (parent.slotScope) {
505
- argsList.unshift(index === 0 ? 'current' : `current${index}`);
506
- index++;
507
- }
508
- parent = parent.parentNode;
509
- }
510
- return `${this.getViewMatchExpressionBuilder()}(${argsList.join(', ')})`;
511
- // let code = 'await (async () => {\n';
512
- // if (this.expression && Array.isArray(this.cases)) {
513
- // this.cases.forEach((item, index) => {
514
- // code += item?.toJS?.(this.expression, index, this.cases.length);
515
- // });
516
- // }
517
- // code += `})()`;
518
- // return code;
519
- }
520
- toUI(state) {
521
- let code = '匹配 ';
522
- if (this.expression) {
523
- code += this.expression.toUI?.();
524
- }
525
- if (Array.isArray(this.cases)) {
526
- code += ' { ';
527
- this.cases.forEach((item, index) => {
528
- code += item?.toUI?.();
529
- });
530
- code += '}';
531
- }
532
- return code;
533
- }
534
- toJS(state) {
535
- // let code = 'await (async () => {\n';
536
- // if (this.expression && Array.isArray(this.cases)) {
537
- // this.cases.forEach((item, index) => {
538
- // code += item?.toJS?.(this.expression, index, this.cases.length);
539
- // });
540
- // }
541
- // code += `})()`;
542
- // return code;
543
- let code = '';
544
- // 祖先逻辑
545
- const ancestorLogic = this.getAncestor('Logic');
546
- if (this.isExpression || !ancestorLogic) {
547
- if (ancestorLogic) {
548
- code += 'await (async () => {\n';
549
- }
550
- else {
551
- code += '(() => {\n';
552
- }
553
- }
554
- if (this.expression && Array.isArray(this.cases)) {
555
- this.cases.forEach((item, index) => {
556
- code += item?.toJS?.(this.expression, index, this.cases.length);
557
- });
558
- }
559
- if (this.isExpression || !ancestorLogic) {
560
- code += '})()';
561
- }
562
- return code;
563
- }
564
- toEmbeddedTS(state = (0, translator_1.createCompilerState)()) {
565
- let code = '';
566
- if (this.parentNode.concept === 'Logic') {
567
- code += '\n';
568
- }
569
- code += (0, translator_1.indent)(state?.tabSize || 0);
570
- code += '(() => { \n';
571
- let parentCode;
572
- if (this.expression) {
573
- code += (0, translator_1.indent)(state?.tabSize || 0);
574
- // Identifier会使用自己本身的类型,来推导,因为右侧放的内容关系关系到内部类型推断
575
- if (this.expression instanceof Identifier__1.default || this.expression instanceof MemberExpression__1.default) {
576
- code += parentCode = this.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code));
577
- }
578
- else {
579
- parentCode = '__matchExpression';
580
- code += `let ${parentCode} = `;
581
- code += this.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code));
582
- }
583
- code += ';\n';
584
- }
585
- else {
586
- code += '__IDENTIFIER__;\n';
587
- }
588
- code += (0, translator_1.indent)(state?.tabSize + 1 || 0);
589
- code += ' function __MatchExpressionFuntion() {\n';
590
- // 最后一项是else
591
- this.cases.forEach((item, index) => {
592
- // 如果是最后一项
593
- code += item.toEmbeddedTS((0, translator_1.shiftState)(state, code, { tabSize: state?.tabSize || 0 }), index, parentCode);
594
- });
595
- code += (0, translator_1.indent)(state?.tabSize || 0);
596
- code += '};\n';
597
- code += (0, translator_1.indent)(state?.tabSize || 0);
598
- code += 'return __MatchExpressionFuntion();\n';
599
- code += (0, translator_1.indent)(state?.tabSize || 0);
600
- code += '})()';
601
- if (this.parentNode.concept !== 'Argument' &&
602
- this.parentKey !== 'test' &&
603
- this.parentKey !== 'patterns' &&
604
- this.parentNode.concept !== 'Assignment' &&
605
- this.parentNode.concept !== 'ForEachStatement' &&
606
- this.parentNode.concept !== 'SelectMembers' &&
607
- this.parentNode.concept !== 'UnaryExpression' &&
608
- this.parentNode.concept !== 'BinaryExpression' &&
609
- this.parentNode.concept !== 'StringInterpolation' &&
610
- this.parentNode.concept !== 'MemberExpression' &&
611
- !['NewMap', 'NewList'].includes(this.parentNode.concept) &&
612
- this.parentKey !== 'returnExpression') {
613
- code += ';\n';
614
- }
615
- return code;
616
- }
617
- toNaturalTS(state = (0, translator_1.createCompilerState)()) {
618
- let code = '';
619
- if (this.parentNode?.concept === 'Logic') {
620
- code += '\n';
621
- }
622
- code += (0, translator_1.indent)(state.tabSize);
623
- code += '(function match(_value) { \n';
624
- let parentCode;
625
- if (this.expression) {
626
- code += (0, translator_1.indent)(state.tabSize + 1);
627
- // Identifier会使用自己本身的类型,来推导,因为右侧放的内容关系关系到内部类型推断
628
- if (this.expression instanceof Identifier__1.default || this.expression instanceof MemberExpression__1.default) {
629
- parentCode = this.expression.toNaturalTS((0, translator_1.shiftState)(state, code, { inline: true }));
630
- }
631
- else {
632
- parentCode = '_value';
633
- }
634
- }
635
- // 最后一项是else
636
- this.cases.forEach((item, index) => {
637
- // 如果是最后一项
638
- code += item.toNaturalTS((0, translator_1.shiftState)(state, code, { tabSize: state.tabSize + 1 }), index, parentCode);
639
- });
640
- code += (0, translator_1.indent)(state.tabSize);
641
- code += `})(${this.expression.toNaturalTS((0, translator_1.shiftState)(state, code, { inline: true }))})`;
642
- if (this.parentNode?.concept !== 'Argument' &&
643
- this.parentKey !== 'test' &&
644
- this.parentKey !== 'patterns' &&
645
- this.parentNode?.concept !== 'Assignment' &&
646
- this.parentNode?.concept !== 'ForEachStatement' &&
647
- this.parentNode?.concept !== 'SelectMembers' &&
648
- this.parentNode?.concept !== 'BinaryExpression' &&
649
- this.parentNode?.concept !== 'StringInterpolation' &&
650
- this.parentNode?.concept !== 'MemberExpression' &&
651
- !['NewMap', 'NewList'].includes(this.parentNode.concept) &&
652
- this.parentKey !== 'returnExpression') {
653
- code += ';\n';
654
- }
655
- return code;
656
- }
657
- };
658
- exports.Match = Match;
659
- __decorate([
660
- (0, decorators_1.property)('concept')
661
- // @ts-ignore
662
- ], Match.prototype, "concept", void 0);
663
- __decorate([
664
- (0, decorators_1.property)({
665
- objectRef: 'LogicItem',
666
- })
667
- // @ts-ignore
668
- ], Match.prototype, "expression", void 0);
669
- __decorate([
670
- (0, decorators_1.property)()
671
- ], Match.prototype, "isExpression", void 0);
672
- __decorate([
673
- (0, decorators_1.property)({
674
- objectRef: 'MatchCase',
675
- isArray: true,
676
- defaultValue: [],
677
- })
678
- ], Match.prototype, "cases", void 0);
679
- __decorate([
680
- (0, translator_1.withSourceMap)()
681
- ], Match.prototype, "toEmbeddedTS", null);
682
- __decorate([
683
- (0, translator_1.withSourceMap)()
684
- ], Match.prototype, "toNaturalTS", null);
685
- exports.Match = Match = Match_1 = __decorate([
686
- decorators_1.className,
687
- (0, decorators_1.concept)('匹配')
688
- // @ts-ignore
689
- ], Match);
690
- exports.default = Match;
691
- //================================================================================
692
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
693
- // 自动生成的代码已结束。下面可以手动编写。
694
- //================================================================================
695
- // @ts-check
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ var Match_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.Match = void 0;
14
+ const translator_1 = require("../translator");
15
+ const TypeAnnotation__1 = __importDefault(require("./TypeAnnotation__"));
16
+ const BooleanLiteral__1 = __importDefault(require("./BooleanLiteral__"));
17
+ const MemberExpression__1 = __importDefault(require("./MemberExpression__"));
18
+ const getMemberIdentifier_1 = require("../server/getMemberIdentifier");
19
+ const Identifier__1 = __importDefault(require("./Identifier__"));
20
+ const decorators_1 = require("../decorators");
21
+ const LogicItem__1 = __importDefault(require("./LogicItem__"));
22
+ const MatchCase__1 = __importDefault(require("./MatchCase__"));
23
+ /**
24
+ * 匹配
25
+ */
26
+ let Match = Match_1 =
27
+ // @ts-ignore
28
+ class Match extends LogicItem__1.default {
29
+ /** 类名 */
30
+ static ConceptName = 'Match';
31
+ /** 继承链 */
32
+ static inheritanceChain = ['LogicItem', 'BaseNode'];
33
+ /**
34
+ * 产品概念
35
+ */
36
+ concept;
37
+ /**
38
+ * 逻辑项
39
+ */
40
+ // @ts-ignore
41
+ expression;
42
+ /**
43
+ * 是否表达式形态
44
+ */
45
+ isExpression = false;
46
+ /**
47
+ * 匹配分支列表
48
+ */
49
+ cases = [];
50
+ /**
51
+ * @param source 需要合并的部分参数
52
+ */
53
+ constructor(source) {
54
+ source = Object.assign({}, Match_1.getDefaultOptions(), source);
55
+ super(source);
56
+ super.subConstructor(source);
57
+ }
58
+ static from(source, parentNode, parentKey) {
59
+ return super.from(source, parentNode, parentKey);
60
+ }
61
+ _insertMatchCaseAt(options, index) {
62
+ const matchCaseOptions = {};
63
+ const relationOptions = { parentNode: this, parentKey: 'cases' };
64
+ let matchCase;
65
+ if (options instanceof MatchCase__1.default) {
66
+ options.ensureDelete(); // 同一实例不支持多处存在
67
+ matchCase = options;
68
+ Object.assign(matchCase, relationOptions);
69
+ }
70
+ else {
71
+ matchCase = MatchCase__1.default.from({
72
+ ...matchCaseOptions,
73
+ ...options,
74
+ }, this, 'cases');
75
+ }
76
+ this.cases.splice(index, 0, matchCase);
77
+ return matchCase;
78
+ }
79
+ insertMatchCaseAt(options, index) {
80
+ const node = this._insertMatchCaseAt(options, index);
81
+ node.create({
82
+ index,
83
+ parentNode: this,
84
+ parentKey: 'cases',
85
+ });
86
+ return node;
87
+ }
88
+ _addMatchCase(options) {
89
+ const index = this.cases.length;
90
+ return this._insertMatchCaseAt(options, index);
91
+ }
92
+ addMatchCase(options) {
93
+ const node = this._addMatchCase(options);
94
+ const index = this.cases.indexOf(node);
95
+ node.create({
96
+ index,
97
+ parentNode: this,
98
+ parentKey: 'cases',
99
+ });
100
+ return node;
101
+ }
102
+ removeExpression(options) {
103
+ let expression;
104
+ if (typeof options === 'string') {
105
+ expression = this.expression;
106
+ if (!expression) {
107
+ throw new Error('找不到逻辑项 ' + options);
108
+ }
109
+ }
110
+ else {
111
+ expression = options;
112
+ }
113
+ return expression.delete();
114
+ }
115
+ removeMatchCaseInCases(options) {
116
+ let matchCase = options;
117
+ return matchCase.delete();
118
+ }
119
+ __removeLogicItem(logicItem) {
120
+ const parentKey = logicItem.parentKey;
121
+ const params = {
122
+ parentNode: this,
123
+ parentKey,
124
+ index: -1,
125
+ object: null,
126
+ oldObject: logicItem,
127
+ };
128
+ if (parentKey) {
129
+ params.parentKey = parentKey;
130
+ // @ts-ignore
131
+ const t = this.__v_raw || this;
132
+ // @ts-ignore
133
+ const n = logicItem.__v_raw || logicItem;
134
+ if (Array.isArray(t[parentKey])) {
135
+ // @ts-ignore
136
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
137
+ ~index && this[parentKey].splice(index, 1);
138
+ params.index = index;
139
+ }
140
+ else if (t[parentKey] === n) {
141
+ params.index = 0;
142
+ this[parentKey] = undefined;
143
+ }
144
+ }
145
+ return params;
146
+ }
147
+ //================================================================================
148
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
149
+ // 自动生成的代码已结束。下面可以手动编写。
150
+ //================================================================================
151
+ enumerableItems;
152
+ get isEnumerable() {
153
+ return !!this.enumerableItems?.length;
154
+ }
155
+ async cacheStatus() {
156
+ this.enumerableItems = await this.getEnumerableItems();
157
+ }
158
+ /**
159
+ * 是否允许新建case
160
+ */
161
+ get canAddCase() {
162
+ const cases = this?.cases;
163
+ if (Array.isArray(cases) && cases.length > 1) {
164
+ const { enumerableItems } = this;
165
+ if (Array.isArray(enumerableItems)) {
166
+ const map = {};
167
+ cases.forEach((caseItem) => {
168
+ const { patterns } = caseItem || {};
169
+ if (Array.isArray(patterns)) {
170
+ patterns.forEach((pattern) => {
171
+ if (pattern instanceof TypeAnnotation__1.default) {
172
+ const patternTypeKey = pattern.typeKey;
173
+ map[patternTypeKey] = true;
174
+ }
175
+ else if (pattern instanceof MemberExpression__1.default || pattern instanceof BooleanLiteral__1.default) {
176
+ const patternValue = pattern.getValue();
177
+ map[patternValue] = true;
178
+ }
179
+ });
180
+ }
181
+ });
182
+ const enumerableKeys = Object.keys(map);
183
+ if (enumerableKeys.length === enumerableItems.length) {
184
+ return false;
185
+ }
186
+ }
187
+ }
188
+ return true;
189
+ }
190
+ // 获取可枚举项
191
+ async getEnumerableItems(typeAnnotation) {
192
+ const { expression } = this;
193
+ let currTypeAnnotation = typeAnnotation;
194
+ if (!currTypeAnnotation) {
195
+ currTypeAnnotation = await expression?.getCurrentTypeAnnotation();
196
+ }
197
+ const { typeKind, typeNamespace, typeName, typeArguments } = currTypeAnnotation || {};
198
+ if (typeKind === 'union' && Array.isArray(typeArguments)) {
199
+ return typeArguments.map((typeArg) => {
200
+ let typeArgJson = typeArg;
201
+ if (typeArg instanceof TypeAnnotation__1.default) {
202
+ typeArgJson = typeArg.toJSON();
203
+ }
204
+ return new TypeAnnotation__1.default(typeArgJson);
205
+ });
206
+ }
207
+ if (typeKind === 'reference') {
208
+ const nameArr = [typeName];
209
+ if (typeNamespace) {
210
+ nameArr.unshift(typeNamespace);
211
+ }
212
+ const typeNode = this.app.findNodeByCompleteName(nameArr.join('.')) || {};
213
+ if (typeNode.concept === 'Enum') {
214
+ const enums = (0, getMemberIdentifier_1.formatEnums)([typeNode]);
215
+ const { children } = enums?.[0] || {};
216
+ if (Array.isArray(children)) {
217
+ return children.map((child) => child?.expression);
218
+ }
219
+ }
220
+ }
221
+ else if (typeKind === 'primitive' && typeNamespace === 'nasl.core' && typeName === 'Boolean') {
222
+ return [
223
+ new BooleanLiteral__1.default({
224
+ value: 'true',
225
+ }),
226
+ new BooleanLiteral__1.default({
227
+ value: 'false',
228
+ }),
229
+ ];
230
+ }
231
+ }
232
+ setIsExpression(isExpression) {
233
+ const object = {
234
+ isExpression,
235
+ };
236
+ this.update({
237
+ ...object,
238
+ });
239
+ }
240
+ /**
241
+ * 设置逻辑项
242
+ */
243
+ setExpression(expression) {
244
+ if (expression) {
245
+ expression._delete();
246
+ const relationOptions = { parentNode: this, parentKey: 'expression' };
247
+ Object.assign(expression, relationOptions);
248
+ }
249
+ const object = {
250
+ expression,
251
+ };
252
+ this.update({
253
+ ...object,
254
+ });
255
+ }
256
+ // 设置 expression ,如果 expression 是可枚举类型,加上默认匹配条件
257
+ async setExpressionWitchCase(expression) {
258
+ const oldExpression = this.expression;
259
+ this.app.emit('collect:start', {
260
+ actionMsg: `修改${this?.name || this?.label || this?.constructor?.nodeTitle}`,
261
+ });
262
+ this.setExpression(expression);
263
+ // expression切换并且自动生成分支
264
+ await this.autoGenCases(oldExpression);
265
+ this.app.emit('collect:end');
266
+ }
267
+ // 自动生成分支
268
+ async autoGenCases(oldExpression) {
269
+ const { expression } = this;
270
+ // 没有新的expression要保留分支不去更新
271
+ if (!expression) {
272
+ return;
273
+ }
274
+ // 如果没有旧的oldExpression, 但是已有就分支了,就不去更新了
275
+ if (!oldExpression && this.cases.length) {
276
+ // 而且case的 patterns 有长度,就说明里面是有值的,就不去更新了,其余就去更新
277
+ if (this.cases.some((item) => item.patterns.length)) {
278
+ return;
279
+ }
280
+ }
281
+ // 如果新旧nasl一样,就算类型变了也不重新计算
282
+ if (JSON.stringify(oldExpression?.toJSON()) === JSON.stringify(expression?.toJSON())) {
283
+ return;
284
+ }
285
+ const oldTypeAnnotation = oldExpression?.__TypeAnnotation;
286
+ const currTypeAnnotation = await expression?.getCurrentTypeAnnotation();
287
+ // 如果nasl变了,但是新旧类型都是union就return
288
+ if (currTypeAnnotation?.typeKind === 'union' && oldTypeAnnotation?.typeKind === 'union') {
289
+ return;
290
+ }
291
+ // 如果不可枚举 不可枚举,都会保留分支
292
+ // 原来不是 布尔类型 也不是枚举类型, 现在 也不是布尔类型 也不是枚举类型
293
+ // 就满足了
294
+ if (expression && oldExpression && currTypeAnnotation && oldTypeAnnotation) {
295
+ const { typeName: oldTypeName, typeNamespace: oldTypeNamespace, typeKind: oldTypeKind } = oldTypeAnnotation;
296
+ const { typeName, typeNamespace, typeKind } = currTypeAnnotation;
297
+ // 类型的 name 和 namespace都有值,而且都不是 可枚举
298
+ if (oldTypeName &&
299
+ oldTypeNamespace &&
300
+ typeName &&
301
+ typeNamespace &&
302
+ oldTypeName !== 'Boolean' &&
303
+ !oldTypeNamespace.endsWith('enums') &&
304
+ oldTypeKind !== 'union' &&
305
+ typeName !== 'Boolean' &&
306
+ !typeNamespace.endsWith('enums') &&
307
+ typeKind !== 'union') {
308
+ return;
309
+ }
310
+ if (oldTypeName &&
311
+ oldTypeNamespace &&
312
+ oldTypeName !== 'Boolean' &&
313
+ !oldTypeNamespace.endsWith('enums') &&
314
+ oldTypeKind !== 'union' &&
315
+ typeKind === 'anonymousStructure') {
316
+ /**
317
+ * 新旧都是匿名数据结构
318
+ * 匿名到 可枚举 动
319
+ * 可枚举到匿名
320
+ * 匿名到 不可枚举 不动
321
+ * 不可枚举到匿名 不动
322
+ * 匿名到匿名 不动
323
+ * 因为不能在match上不能直接 匿名数据结构替换匿名数据结构
324
+ * 而且 匿名数据结构不能 直接换别的分支,所以下面的直留 不可枚举到匿名数据结构的情况
325
+ * */
326
+ // 不可枚举到匿名 不动
327
+ return;
328
+ }
329
+ if (typeKind === 'anonymousStructure' && oldTypeKind === typeKind) {
330
+ // 匿名到匿名 不动
331
+ return;
332
+ }
333
+ // else if (currTypeName && typeNamespace && currTypeName !== 'Boolean' && !typeNamespace.endsWith('enums') && oldTypeKind === 'anonymousStructure') {
334
+ // // 匿名到 不可枚举 不动
335
+ // return;
336
+ // }
337
+ }
338
+ // 修改分支
339
+ await this.changeGenCases();
340
+ }
341
+ // jflow缓存模式下的传过来参数
342
+ async autoGenCasesAST({ oldAst, cacheType }) {
343
+ let obj;
344
+ try {
345
+ obj = JSON.parse(oldAst);
346
+ }
347
+ catch (err) { }
348
+ const oldExpression = LogicItem__1.default.from(obj);
349
+ oldExpression.__TypeAnnotation = cacheType;
350
+ await this.autoGenCases(oldExpression);
351
+ }
352
+ async changeGenCases() {
353
+ const { expression } = this;
354
+ const currTypeAnnotation = await expression?.getCurrentTypeAnnotation();
355
+ let cases = [];
356
+ let isMatchedTypeEnumable = false;
357
+ if (currTypeAnnotation) {
358
+ cases = [new MatchCase__1.default()];
359
+ const enumerableItems = await this.getEnumerableItems();
360
+ if (Array.isArray(enumerableItems) && enumerableItems.length) {
361
+ isMatchedTypeEnumable = true;
362
+ cases = enumerableItems.map((enumerableItem) => new MatchCase__1.default({
363
+ patterns: [enumerableItem],
364
+ isMatchedTypeEnumable,
365
+ }));
366
+ }
367
+ }
368
+ // body的暂存数组
369
+ const bodys = [];
370
+ // 最后一项的body
371
+ let lastCaseBody;
372
+ if (Array.isArray(this.cases) && this.cases.length) {
373
+ // 将原分支body中存在的内容拿出来
374
+ this.cases.forEach((caseItem, index) => {
375
+ const { body } = caseItem || {};
376
+ if (Array.isArray(body) && body.length) {
377
+ // “其他”分支单独处理
378
+ if (index < this.cases.length - 1) {
379
+ bodys.push({
380
+ body,
381
+ isMatchedTypeEnumable: currTypeAnnotation ? isMatchedTypeEnumable : true,
382
+ });
383
+ }
384
+ else {
385
+ lastCaseBody = body;
386
+ }
387
+ }
388
+ });
389
+ // 将原分支body中存在的内容拿出来赋到新的分支中去
390
+ bodys.forEach(({ body, isMatchedTypeEnumable }, index) => {
391
+ let caseItem = cases[index];
392
+ if (!caseItem) {
393
+ caseItem = new MatchCase__1.default({
394
+ isMatchedTypeEnumable,
395
+ });
396
+ cases.push(caseItem);
397
+ }
398
+ caseItem.update({
399
+ body,
400
+ });
401
+ });
402
+ }
403
+ // 如果分支项存在时,加上“其他”项
404
+ if (cases.length) {
405
+ const otherCase = new MatchCase__1.default();
406
+ // “其他”项body存在内容时,给新的分支上加上内容
407
+ if (lastCaseBody) {
408
+ otherCase.update({
409
+ body: lastCaseBody,
410
+ });
411
+ }
412
+ cases.push(otherCase);
413
+ }
414
+ this.update({
415
+ cases,
416
+ });
417
+ }
418
+ static getDefaultOptions() {
419
+ return {
420
+ label: '匹配',
421
+ };
422
+ }
423
+ async isTypeMatching() {
424
+ if (this.expression) {
425
+ const typeAnnotation = await this.expression.getCurrentTypeAnnotation();
426
+ const { typeKind, typeArguments } = typeAnnotation || {};
427
+ if (typeKind === 'union' && Array.isArray(typeArguments)) {
428
+ return true;
429
+ }
430
+ }
431
+ return false;
432
+ }
433
+ onChange($event) {
434
+ const { action, object, eventList } = $event || {};
435
+ // expression修改时,通知tsserver,让tsserver重新生成ts文件,为了后续能获取expression的类型
436
+ if (action === 'update' && object.hasOwnProperty('expression')) {
437
+ this.app?.naslServer?.embeddedTSEmitter.emit('change', {
438
+ value: eventList,
439
+ });
440
+ }
441
+ this.emit('change', $event);
442
+ }
443
+ // 获取在页面中的名字
444
+ get expressionNameInView() {
445
+ const nameList = [];
446
+ let node = this;
447
+ while (node) {
448
+ if (node === this) {
449
+ nameList.unshift('viewMatchExpression');
450
+ }
451
+ else {
452
+ nameList.unshift(node.name);
453
+ }
454
+ if (node.concept === 'ViewElement') {
455
+ node = null;
456
+ }
457
+ else {
458
+ nameList.unshift(node.parentKey);
459
+ node = node.parentNode;
460
+ }
461
+ }
462
+ return nameList.join('_').replace(/-/g, '_');
463
+ }
464
+ getViewMatchExpressionBuilder() {
465
+ return `gen${this.expressionNameInView}`;
466
+ }
467
+ getInViewMethod(state) {
468
+ const viewElement = this?.getAncestor('ViewElement');
469
+ const argsList = [];
470
+ let parent = viewElement?.parentNode;
471
+ let index = 0;
472
+ while (parent && parent.concept !== 'View') {
473
+ if (parent.slotScope) {
474
+ argsList.unshift(index === 0 ? 'current' : `current${index}`);
475
+ index++;
476
+ }
477
+ parent = parent.parentNode;
478
+ }
479
+ let code = '';
480
+ code += `${this.getViewMatchExpressionBuilder()} (${argsList.join(', ')}) {\n`;
481
+ code += `return ${this.toJS()}`;
482
+ code += `;\n`;
483
+ code += '}';
484
+ return code;
485
+ }
486
+ setIsExpressionCustom(isExpression) {
487
+ if (isExpression === this.isExpression) {
488
+ return;
489
+ }
490
+ this.update({
491
+ isExpression,
492
+ });
493
+ this.cases.forEach((c) => {
494
+ c.update({
495
+ body: [],
496
+ });
497
+ });
498
+ }
499
+ toVue(state) {
500
+ if (state?.finalCode === false) {
501
+ return this.toUI();
502
+ }
503
+ const viewElement = this?.getAncestor('ViewElement');
504
+ const argsList = [];
505
+ let parent = viewElement?.parentNode;
506
+ let index = 0;
507
+ while (parent && parent.concept !== 'View') {
508
+ if (parent.slotScope) {
509
+ argsList.unshift(index === 0 ? 'current' : `current${index}`);
510
+ index++;
511
+ }
512
+ parent = parent.parentNode;
513
+ }
514
+ return `${this.getViewMatchExpressionBuilder()}(${argsList.join(', ')})`;
515
+ // let code = 'await (async () => {\n';
516
+ // if (this.expression && Array.isArray(this.cases)) {
517
+ // this.cases.forEach((item, index) => {
518
+ // code += item?.toJS?.(this.expression, index, this.cases.length);
519
+ // });
520
+ // }
521
+ // code += `})()`;
522
+ // return code;
523
+ }
524
+ toUI(state, hideDetails) {
525
+ let code = '匹配 ';
526
+ if (this.expression) {
527
+ code += this.expression.toUI?.(state, hideDetails);
528
+ }
529
+ if (Array.isArray(this.cases)) {
530
+ code += ' { ';
531
+ this.cases.forEach((item, index) => {
532
+ code += item?.toUI?.(state, hideDetails);
533
+ });
534
+ code += '}';
535
+ }
536
+ return code;
537
+ }
538
+ toJS(state) {
539
+ // let code = 'await (async () => {\n';
540
+ // if (this.expression && Array.isArray(this.cases)) {
541
+ // this.cases.forEach((item, index) => {
542
+ // code += item?.toJS?.(this.expression, index, this.cases.length);
543
+ // });
544
+ // }
545
+ // code += `})()`;
546
+ // return code;
547
+ let code = '';
548
+ // 祖先逻辑
549
+ const ancestorLogic = this.getAncestor('Logic');
550
+ if (this.isExpression || !ancestorLogic) {
551
+ if (ancestorLogic) {
552
+ code += 'await (async () => {\n';
553
+ }
554
+ else {
555
+ code += '(() => {\n';
556
+ }
557
+ }
558
+ if (this.expression && Array.isArray(this.cases)) {
559
+ this.cases.forEach((item, index) => {
560
+ code += item?.toJS?.(this.expression, index, this.cases.length);
561
+ });
562
+ }
563
+ if (this.isExpression || !ancestorLogic) {
564
+ code += '})()';
565
+ }
566
+ return code;
567
+ }
568
+ toEmbeddedTS(state = (0, translator_1.createCompilerState)()) {
569
+ let code = '';
570
+ if (this.parentNode.concept === 'Logic') {
571
+ code += '\n';
572
+ }
573
+ code += (0, translator_1.indent)(state?.tabSize || 0);
574
+ code += '(() => { \n';
575
+ let parentCode;
576
+ if (this.expression) {
577
+ code += (0, translator_1.indent)(state?.tabSize || 0);
578
+ // Identifier会使用自己本身的类型,来推导,因为右侧放的内容关系关系到内部类型推断
579
+ if (this.expression instanceof Identifier__1.default || this.expression instanceof MemberExpression__1.default) {
580
+ code += parentCode = this.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code));
581
+ }
582
+ else {
583
+ parentCode = '__matchExpression';
584
+ code += `let ${parentCode} = `;
585
+ code += this.expression.toEmbeddedTS((0, translator_1.shiftState)(state, code));
586
+ }
587
+ code += ';\n';
588
+ }
589
+ else {
590
+ code += '__IDENTIFIER__;\n';
591
+ }
592
+ code += (0, translator_1.indent)(state?.tabSize + 1 || 0);
593
+ code += ' function __MatchExpressionFuntion() {\n';
594
+ // 最后一项是else
595
+ this.cases.forEach((item, index) => {
596
+ // 如果是最后一项
597
+ code += item.toEmbeddedTS((0, translator_1.shiftState)(state, code, { tabSize: state?.tabSize || 0 }), index, parentCode);
598
+ });
599
+ code += (0, translator_1.indent)(state?.tabSize || 0);
600
+ code += '};\n';
601
+ code += (0, translator_1.indent)(state?.tabSize || 0);
602
+ code += 'return __MatchExpressionFuntion();\n';
603
+ code += (0, translator_1.indent)(state?.tabSize || 0);
604
+ code += '})()';
605
+ if (this.parentNode.concept !== 'Argument' &&
606
+ this.parentKey !== 'test' &&
607
+ this.parentKey !== 'patterns' &&
608
+ this.parentNode.concept !== 'Assignment' &&
609
+ this.parentNode.concept !== 'ForEachStatement' &&
610
+ this.parentNode.concept !== 'SelectMembers' &&
611
+ this.parentNode.concept !== 'UnaryExpression' &&
612
+ this.parentNode.concept !== 'BinaryExpression' &&
613
+ this.parentNode.concept !== 'StringInterpolation' &&
614
+ this.parentNode.concept !== 'MemberExpression' &&
615
+ !['NewMap', 'NewList'].includes(this.parentNode.concept) &&
616
+ this.parentKey !== 'returnExpression') {
617
+ code += ';\n';
618
+ }
619
+ return code;
620
+ }
621
+ toNaturalTS(state = (0, translator_1.createCompilerState)()) {
622
+ let code = '';
623
+ if (this.parentNode?.concept === 'Logic') {
624
+ code += '\n';
625
+ }
626
+ code += (0, translator_1.indent)(state.tabSize);
627
+ code += '(function match(_value) { \n';
628
+ let parentCode;
629
+ if (this.expression) {
630
+ code += (0, translator_1.indent)(state.tabSize + 1);
631
+ // Identifier会使用自己本身的类型,来推导,因为右侧放的内容关系关系到内部类型推断
632
+ if (this.expression instanceof Identifier__1.default || this.expression instanceof MemberExpression__1.default) {
633
+ parentCode = this.expression.toNaturalTS((0, translator_1.shiftState)(state, code, { inline: true }));
634
+ }
635
+ else {
636
+ parentCode = '_value';
637
+ }
638
+ }
639
+ // 最后一项是else
640
+ this.cases.forEach((item, index) => {
641
+ // 如果是最后一项
642
+ code += item.toNaturalTS((0, translator_1.shiftState)(state, code, { tabSize: state.tabSize + 1 }), index, parentCode);
643
+ });
644
+ code += (0, translator_1.indent)(state.tabSize);
645
+ code += `})(${this.expression.toNaturalTS((0, translator_1.shiftState)(state, code, { inline: true }))})`;
646
+ if (this.parentNode?.concept !== 'Argument' &&
647
+ this.parentKey !== 'test' &&
648
+ this.parentKey !== 'patterns' &&
649
+ this.parentNode?.concept !== 'Assignment' &&
650
+ this.parentNode?.concept !== 'ForEachStatement' &&
651
+ this.parentNode?.concept !== 'SelectMembers' &&
652
+ this.parentNode?.concept !== 'BinaryExpression' &&
653
+ this.parentNode?.concept !== 'StringInterpolation' &&
654
+ this.parentNode?.concept !== 'MemberExpression' &&
655
+ !['NewMap', 'NewList'].includes(this.parentNode.concept) &&
656
+ this.parentKey !== 'returnExpression') {
657
+ code += ';\n';
658
+ }
659
+ return code;
660
+ }
661
+ };
662
+ __decorate([
663
+ (0, decorators_1.property)('concept')
664
+ ], Match.prototype, "concept", void 0);
665
+ __decorate([
666
+ (0, decorators_1.property)({
667
+ objectRef: 'LogicItem',
668
+ })
669
+ ], Match.prototype, "expression", void 0);
670
+ __decorate([
671
+ (0, decorators_1.property)()
672
+ ], Match.prototype, "isExpression", void 0);
673
+ __decorate([
674
+ (0, decorators_1.property)({
675
+ objectRef: 'MatchCase',
676
+ isArray: true,
677
+ defaultValue: [],
678
+ })
679
+ ], Match.prototype, "cases", void 0);
680
+ __decorate([
681
+ (0, translator_1.withSourceMap)()
682
+ ], Match.prototype, "toEmbeddedTS", null);
683
+ __decorate([
684
+ (0, translator_1.withSourceMap)()
685
+ ], Match.prototype, "toNaturalTS", null);
686
+ Match = Match_1 = __decorate([
687
+ decorators_1.className,
688
+ (0, decorators_1.concept)('匹配')
689
+ // @ts-ignore
690
+ ], Match);
691
+ exports.Match = Match;
692
+ exports.default = Match;
693
+ //================================================================================
694
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
695
+ // 自动生成的代码已结束。下面可以手动编写。
696
+ //================================================================================
697
+ // @ts-check
696
698
  //# sourceMappingURL=Match__.js.map