@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,1026 +1,1055 @@
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 TypeAnnotation_1;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.TypeAnnotation = exports.isUnion = exports.GENERIC_DESC = exports.PRIMITIVE_DESC = exports.OLD_PRIMITIVE_TITLE = exports.PRIMITIVE_TITLE = exports.PRIMITIVE_TYPE = void 0;
14
- const translator_1 = require("../translator");
15
- const generator_1 = require("../generator");
16
- var PRIMITIVE_TYPE;
17
- (function (PRIMITIVE_TYPE) {
18
- PRIMITIVE_TYPE["Boolean"] = "Boolean";
19
- PRIMITIVE_TYPE["Integer"] = "Integer";
20
- PRIMITIVE_TYPE["Long"] = "Long";
21
- PRIMITIVE_TYPE["Double"] = "Double";
22
- PRIMITIVE_TYPE["Decimal"] = "Decimal";
23
- PRIMITIVE_TYPE["String"] = "String";
24
- PRIMITIVE_TYPE["Text"] = "Text";
25
- PRIMITIVE_TYPE["Binary"] = "Binary";
26
- PRIMITIVE_TYPE["Date"] = "Date";
27
- PRIMITIVE_TYPE["Time"] = "Time";
28
- PRIMITIVE_TYPE["DateTime"] = "DateTime";
29
- PRIMITIVE_TYPE["Email"] = "Email";
30
- PRIMITIVE_TYPE["Union"] = "Union";
31
- PRIMITIVE_TYPE["Null"] = "Null";
32
- })(PRIMITIVE_TYPE || (exports.PRIMITIVE_TYPE = PRIMITIVE_TYPE = {}));
33
- exports.PRIMITIVE_TITLE = {
34
- Boolean: '布尔值',
35
- Integer: '整数',
36
- Long: '整数',
37
- Double: '小数',
38
- Decimal: '小数',
39
- String: '文本',
40
- Text: '长文本',
41
- Binary: '二进制流',
42
- Date: '日期',
43
- Time: '时间',
44
- DateTime: '日期时间',
45
- Email: '电子邮箱',
46
- Union: '联合类型',
47
- };
48
- exports.OLD_PRIMITIVE_TITLE = {
49
- Boolean: '布尔值',
50
- Integer: '整数',
51
- Long: '长整数',
52
- Double: '小数',
53
- Decimal: '精准小数',
54
- String: '字符串',
55
- Text: '长文本',
56
- Binary: '二进制流',
57
- Date: '日期',
58
- Time: '时间',
59
- DateTime: '日期时间',
60
- Email: '电子邮箱',
61
- Union: '联合类型',
62
- };
63
- exports.PRIMITIVE_DESC = {
64
- Integer: '可表示最大长度约 10 个数字的正负整数(将被删除)',
65
- Double: '小数,有效数字约 16 个左右(将被删除)',
66
- Text: '底层与String相同,可存储更长的内容(将被删除)',
67
- Binary: '用于二进制流的存储',
68
- Email: '表示一个邮箱,底层与String相同(将被删除)',
69
- Boolean: '包含真(true)、假(false)两个值',
70
- Long: '可表示最大长度约 19 个数字的正负整数',
71
- Decimal: '可表示 31 个有效数字以内的小数',
72
- String: '表示汉语、英语、数字等文本内容',
73
- Date: '通常用于仅日期处理和数据存储',
74
- Time: '通常用于仅时间处理和数据存储',
75
- DateTime: '通常用于日期和时间的处理和数据存储',
76
- };
77
- exports.GENERIC_DESC = {
78
- List: 'T类型的数据构成的列表',
79
- Map: '从K类型到V类型的映射',
80
- };
81
- /**
82
- * 判断是否是联合类型
83
- * @param typeAnnotation
84
- * @returns
85
- */
86
- function isUnion(typeAnnotation) {
87
- return (typeAnnotation &&
88
- typeAnnotation.typeKind === 'union' &&
89
- typeAnnotation.typeNamespace === 'nasl.core' &&
90
- typeAnnotation.typeName === 'Union');
91
- }
92
- exports.isUnion = isUnion;
93
- const decorators_1 = require("../decorators");
94
- const BaseNode_1 = __importDefault(require("../common/BaseNode"));
95
- const StructureProperty__1 = __importDefault(require("./StructureProperty__"));
96
- /**
97
- * 类型标注
98
- */
99
- let TypeAnnotation = class TypeAnnotation extends BaseNode_1.default {
100
- static { TypeAnnotation_1 = this; }
101
- /** 类名 */
102
- static ConceptName = 'TypeAnnotation';
103
- /**
104
- * 产品概念
105
- */
106
- concept;
107
- /**
108
- * 类型种类
109
- */
110
- // @ts-ignore
111
- typeKind;
112
- /**
113
- * 类型命名空间
114
- */
115
- // @ts-ignore
116
- typeNamespace;
117
- /**
118
- * 类型名称
119
- */
120
- // @ts-ignore
121
- typeName;
122
- /**
123
- * 类型参数
124
- */
125
- typeArguments = null;
126
- /**
127
- * 返回类型
128
- */
129
- returnType = null;
130
- /**
131
- * 是否是推断出来的
132
- */
133
- // @ts-ignore
134
- inferred;
135
- /**
136
- * 匿名数据结构属性
137
- */
138
- properties = null;
139
- /**
140
- * 规则对象
141
- */
142
- // @ts-ignore
143
- ruleMap;
144
- /**
145
- * @param source 需要合并的部分参数
146
- */
147
- constructor(source) {
148
- source = Object.assign({}, TypeAnnotation_1.getDefaultOptions(), source);
149
- super(source);
150
- super.subConstructor(source);
151
- }
152
- static from(source, parentNode, parentKey) {
153
- return super.from(source, parentNode, parentKey);
154
- }
155
- /**
156
- * 从父级删除该节点
157
- * @internal
158
- */
159
- _delete() {
160
- let params = null;
161
- if (this.parentNode) {
162
- params = this.parentNode?.__removeTypeAnnotation?.(this);
163
- }
164
- return params;
165
- }
166
- /**
167
- * 设置规则对象
168
- */
169
- setRuleMap(ruleMap) {
170
- const object = {
171
- ruleMap,
172
- };
173
- this.update({
174
- ...object,
175
- });
176
- }
177
- _insertTypeAnnotationInTypeArgumentsAt(options, index) {
178
- const typeAnnotationOptions = {};
179
- const relationOptions = { parentNode: this, parentKey: 'typeArguments' };
180
- let typeAnnotation;
181
- if (options instanceof TypeAnnotation_1) {
182
- options.ensureDelete(); // 同一实例不支持多处存在
183
- typeAnnotation = options;
184
- Object.assign(typeAnnotation, relationOptions);
185
- }
186
- else {
187
- typeAnnotation = TypeAnnotation_1.from({
188
- ...typeAnnotationOptions,
189
- ...options,
190
- }, this, 'typeArguments');
191
- }
192
- this.typeArguments.splice(index, 0, typeAnnotation);
193
- return typeAnnotation;
194
- }
195
- insertTypeAnnotationInTypeArgumentsAt(options, index) {
196
- const node = this._insertTypeAnnotationInTypeArgumentsAt(options, index);
197
- node.create({
198
- index,
199
- parentNode: this,
200
- parentKey: 'typeArguments',
201
- });
202
- return node;
203
- }
204
- _addTypeAnnotationInTypeArguments(options) {
205
- const index = this.typeArguments.length;
206
- return this._insertTypeAnnotationInTypeArgumentsAt(options, index);
207
- }
208
- addTypeAnnotationInTypeArguments(options) {
209
- const node = this._addTypeAnnotationInTypeArguments(options);
210
- const index = this.typeArguments.indexOf(node);
211
- node.create({
212
- index,
213
- parentNode: this,
214
- parentKey: 'typeArguments',
215
- });
216
- return node;
217
- }
218
- _insertTypeAnnotationInReturnTypeAt(options, index) {
219
- const typeAnnotationOptions = {};
220
- const relationOptions = { parentNode: this, parentKey: 'returnType' };
221
- let typeAnnotation;
222
- if (options instanceof TypeAnnotation_1) {
223
- options.ensureDelete(); // 同一实例不支持多处存在
224
- typeAnnotation = options;
225
- Object.assign(typeAnnotation, relationOptions);
226
- }
227
- else {
228
- typeAnnotation = TypeAnnotation_1.from({
229
- ...typeAnnotationOptions,
230
- ...options,
231
- }, this, 'returnType');
232
- }
233
- this.returnType.splice(index, 0, typeAnnotation);
234
- return typeAnnotation;
235
- }
236
- insertTypeAnnotationInReturnTypeAt(options, index) {
237
- const node = this._insertTypeAnnotationInReturnTypeAt(options, index);
238
- node.create({
239
- index,
240
- parentNode: this,
241
- parentKey: 'returnType',
242
- });
243
- return node;
244
- }
245
- _addTypeAnnotationInReturnType(options) {
246
- const index = this.returnType.length;
247
- return this._insertTypeAnnotationInReturnTypeAt(options, index);
248
- }
249
- addTypeAnnotationInReturnType(options) {
250
- const node = this._addTypeAnnotationInReturnType(options);
251
- const index = this.returnType.indexOf(node);
252
- node.create({
253
- index,
254
- parentNode: this,
255
- parentKey: 'returnType',
256
- });
257
- return node;
258
- }
259
- _insertStructurePropertyAt(options, index) {
260
- const structurePropertyOptions = {};
261
- const relationOptions = { parentNode: this, parentKey: 'properties' };
262
- let structureProperty;
263
- if (options instanceof StructureProperty__1.default) {
264
- options.ensureDelete(); // 同一实例不支持多处存在
265
- structureProperty = options;
266
- Object.assign(structureProperty, relationOptions);
267
- }
268
- else {
269
- structureProperty = StructureProperty__1.default.from({
270
- ...structurePropertyOptions,
271
- ...options,
272
- }, this, 'properties');
273
- }
274
- this.properties.splice(index, 0, structureProperty);
275
- return structureProperty;
276
- }
277
- insertStructurePropertyAt(options, index) {
278
- const node = this._insertStructurePropertyAt(options, index);
279
- node.create({
280
- index,
281
- parentNode: this,
282
- parentKey: 'properties',
283
- });
284
- return node;
285
- }
286
- _addStructureProperty(options) {
287
- const index = this.properties.length;
288
- return this._insertStructurePropertyAt(options, index);
289
- }
290
- addStructureProperty(options) {
291
- const node = this._addStructureProperty(options);
292
- const index = this.properties.indexOf(node);
293
- node.create({
294
- index,
295
- parentNode: this,
296
- parentKey: 'properties',
297
- });
298
- return node;
299
- }
300
- removeTypeAnnotationInTypeArguments(options) {
301
- let typeAnnotation = options;
302
- return typeAnnotation.delete();
303
- }
304
- removeTypeAnnotationInReturnType(options) {
305
- let typeAnnotation = options;
306
- return typeAnnotation.delete();
307
- }
308
- __removeTypeAnnotation(typeAnnotation) {
309
- const parentKey = typeAnnotation.parentKey;
310
- const params = {
311
- parentNode: this,
312
- parentKey,
313
- index: -1,
314
- object: null,
315
- oldObject: typeAnnotation,
316
- };
317
- if (parentKey) {
318
- params.parentKey = parentKey;
319
- // @ts-ignore
320
- const t = this.__v_raw || this;
321
- // @ts-ignore
322
- const n = typeAnnotation.__v_raw || typeAnnotation;
323
- if (Array.isArray(t[parentKey])) {
324
- const index = t[parentKey].indexOf(n);
325
- ~index && this[parentKey].splice(index, 1);
326
- params.index = index;
327
- }
328
- else if (t[parentKey] === n) {
329
- params.index = 0;
330
- this[parentKey] = undefined;
331
- }
332
- }
333
- return params;
334
- }
335
- removeStructureProperty(options) {
336
- let structureProperty = options;
337
- return structureProperty.delete();
338
- }
339
- __removeStructureProperty(structureProperty) {
340
- const parentKey = structureProperty.parentKey;
341
- const params = {
342
- parentNode: this,
343
- parentKey,
344
- index: -1,
345
- object: null,
346
- oldObject: structureProperty,
347
- };
348
- if (parentKey) {
349
- params.parentKey = parentKey;
350
- // @ts-ignore
351
- const t = this.__v_raw || this;
352
- // @ts-ignore
353
- const n = structureProperty.__v_raw || structureProperty;
354
- if (Array.isArray(t[parentKey])) {
355
- const index = t[parentKey].indexOf(n);
356
- ~index && this[parentKey].splice(index, 1);
357
- params.index = index;
358
- }
359
- else if (t[parentKey] === n) {
360
- params.index = 0;
361
- this[parentKey] = undefined;
362
- }
363
- }
364
- return params;
365
- }
366
- //================================================================================
367
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
368
- // 自动生成的代码已结束。下面可以手动编写。
369
- //================================================================================
370
- // 兼容 long 需要显示为 long 的情况,默认 undefined
371
- longNotInteger = undefined;
372
- toUI(state) {
373
- return this.headTitle;
374
- }
375
- traverse(callback, enter, leave, onJoin) {
376
- enter(this);
377
- callback(this);
378
- if (this.typeArguments && ['generic', 'union'].includes(this.typeKind)) {
379
- const l = this.typeArguments.length;
380
- this.typeArguments.forEach((arg, idx) => {
381
- arg.traverse(callback, enter, leave, onJoin);
382
- if (idx < l - 1) {
383
- onJoin(this, arg);
384
- }
385
- });
386
- }
387
- leave(this);
388
- }
389
- get typeKey() {
390
- if (this.typeKind === 'primitive' || this.typeKind === 'reference') {
391
- return `${this.typeNamespace}.${this.typeName}`;
392
- }
393
- else if (this.typeKind === 'generic') {
394
- return `${this.typeNamespace}.${this.typeName}<${(this.typeArguments || []).map((arg) => arg.typeKey)}>`;
395
- }
396
- else if (this.typeKind === 'anonymousStructure') {
397
- return `{ ${this.properties
398
- .map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation.typeKey : '未知'}`)
399
- .join(', ')} }`;
400
- }
401
- else if (this.typeKind === 'union') {
402
- return `${this.typeArguments.map((arg) => arg.typeKey).join(' | ')}`;
403
- }
404
- else {
405
- return this.typeName;
406
- }
407
- }
408
- // 排过序的类型标识
409
- get sortedTypeKey() {
410
- if (this.typeKind === 'anonymousStructure') {
411
- // 按匿名数据结构的key排序
412
- return `{${[...this.properties]
413
- .sort(({ name: name1 }, { name: name2 }) => (name1 > name2 ? 1 : -1))
414
- .map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation.sortedTypeKey : '未知'}`)
415
- .join(', ')}}`;
416
- }
417
- else if (this.typeKind === 'union') {
418
- // 按返回的每个具体项排序
419
- return `${this.typeArguments
420
- .map((arg) => arg.sortedTypeKey)
421
- .sort((name1, name2) => (name1 > name2 ? 1 : -1))
422
- .join(' | ')}`;
423
- }
424
- const typeArr = [];
425
- if (this.typeNamespace) {
426
- typeArr.push(this.typeNamespace);
427
- }
428
- if (this.typeName) {
429
- typeArr.push(this.typeName);
430
- }
431
- const typeKey = typeArr.join('.');
432
- if (this.typeKind === 'generic') {
433
- let code = typeKey;
434
- code += '<';
435
- if (Array.isArray(this.typeArguments) && this.typeArguments.length) {
436
- // 必须按typeArguments定义的顺序,否则实参位置不对
437
- code += `${(this.typeArguments || []).map((arg) => arg.sortedTypeKey).join(', ')}`;
438
- }
439
- code += '>';
440
- return code;
441
- }
442
- return typeKey;
443
- }
444
- /**
445
- * 用于展示的 type 标题
446
- */
447
- get headTitle() {
448
- if (this.typeKind === 'primitive') {
449
- // longNotInteger: 兼容 long 需要显示为 long 的情况,默认 undefined
450
- if (this.typeName === 'Long' && !this.longNotInteger) {
451
- return `Integer ${exports.PRIMITIVE_TITLE[this.typeName] || ''}`;
452
- }
453
- return `${this.typeName} ${exports.PRIMITIVE_TITLE[this.typeName] || ''}`;
454
- }
455
- else if (this.typeKind === 'reference') {
456
- const typeNamespace = this?.typeNamespace;
457
- let typeTitle = this.typeName;
458
- if (typeNamespace && this.rootNode) {
459
- const entity = this.rootNode.findNodeByCompleteName?.([typeNamespace, this?.typeName].join('.'));
460
- if (entity?.concept === 'Entity') {
461
- const dataSourceName = entity.dataSource?.name;
462
- if (dataSourceName) {
463
- typeTitle += `(${dataSourceName})`;
464
- }
465
- }
466
- }
467
- return typeTitle;
468
- }
469
- else if (this.typeKind === 'generic') {
470
- if (this.typeArguments && this.typeArguments.length)
471
- return `${this.typeName}<${(this.typeArguments || [])
472
- .map((arg) => arg.headTitle || arg.name || 'T')
473
- .join(', ')}>`;
474
- else
475
- return this.typeName;
476
- }
477
- else if (this.typeKind === 'anonymousStructure') {
478
- return `{ ${this.properties
479
- ?.map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation.headTitle}`)
480
- .join(', ')} }`;
481
- }
482
- else if (this.typeKind === 'union') {
483
- return `${this.typeArguments.map((arg) => arg.typeTitle || arg.name).join('')}`;
484
- }
485
- else {
486
- return this.typeName;
487
- }
488
- }
489
- /**
490
- * 用于展示的 type 标题
491
- */
492
- get typeTitle() {
493
- if (this.typeKind === 'primitive') {
494
- if (this.typeName === 'Long') {
495
- return `Integer ${exports.PRIMITIVE_TITLE[this.typeName] || ''}`;
496
- }
497
- return `${this.typeName} ${exports.PRIMITIVE_TITLE[this.typeName] || ''}`;
498
- }
499
- else if (this.typeKind === 'reference') {
500
- return this.typeName;
501
- }
502
- else if (this.typeKind === 'generic') {
503
- return `${this.typeName}<${!this.typeArguments.length ? 'T' : this.typeArguments.map((arg) => arg.typeTitle || arg.name || 'T').join(', ')}>`;
504
- }
505
- else if (this.typeKind === 'anonymousStructure') {
506
- return `{ ${this.properties
507
- ?.map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation.typeTitle : '未知'}`)
508
- .join(', ')} }`;
509
- }
510
- else if (this.typeKind === 'union') {
511
- return `${this.typeArguments.map((arg) => arg.typeTitle || arg.name).join(' ')}`;
512
- }
513
- else {
514
- return this.typeName;
515
- }
516
- }
517
- /**
518
- * 用于展示的 无中文的精简type标题
519
- */
520
- get typeInlineTitle() {
521
- if (this.typeKind === 'primitive') {
522
- if (this.typeName === 'Long') {
523
- return 'Integer';
524
- }
525
- return this.typeName;
526
- }
527
- else if (this.typeKind === 'reference') {
528
- return this.typeName;
529
- }
530
- else if (this.typeKind === 'generic') {
531
- return `${this.typeName}<${!this.typeArguments.length
532
- ? 'T'
533
- : this.typeArguments.map((arg) => arg?.typeInlineTitle || arg?.name || 'T').join(', ')}>`;
534
- }
535
- else if (this.typeKind === 'anonymousStructure') {
536
- return `{ ${this.properties
537
- ?.map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation?.typeInlineTitle : '未知'}`)
538
- .join(', ')} }`;
539
- }
540
- else if (this.typeKind === 'union') {
541
- return `${this.typeArguments.map((arg) => arg?.typeInlineTitle || arg?.name).join(' ')}`;
542
- }
543
- else {
544
- return this.typeName;
545
- }
546
- }
547
- /**
548
- * 用于展示的 纯中文的type 标题
549
- */
550
- get typeChineseTitle() {
551
- if (this.typeKind === 'primitive') {
552
- return `${exports.PRIMITIVE_TITLE[this.typeName] || ''}`;
553
- }
554
- else if (this.typeKind === 'reference') {
555
- return this.typeName;
556
- }
557
- else if (this.typeKind === 'generic') {
558
- return `${this.typeName}<${this.typeArguments.map((arg) => arg.typeChineseTitle || arg.name || 'T').join(', ')}>`;
559
- }
560
- else if (this.typeKind === 'anonymousStructure') {
561
- return `{ ${this.properties
562
- ?.map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation.typeChineseTitle : '未知'}`)
563
- .join(', ')} }`;
564
- }
565
- else if (this.typeKind === 'union') {
566
- return `${this.typeArguments.map((arg) => arg.typeChineseTitle || arg.name).join(' 或 ')}`;
567
- }
568
- else {
569
- return this.typeName;
570
- }
571
- }
572
- get typeTitleList() {
573
- const typeTitleList = [];
574
- if (this.typeKind === 'anonymousStructure') {
575
- typeTitleList.push({ key: '{' });
576
- const length = this.properties?.length;
577
- this.properties?.forEach(({ name, typeAnnotation }, index) => {
578
- if (index === length - 1) {
579
- typeTitleList.push({ key: name, value: `${typeAnnotation ? typeAnnotation.typeTitle : '未知'}` });
580
- }
581
- else {
582
- typeTitleList.push({ key: name, value: `${typeAnnotation ? typeAnnotation.typeTitle : '未知'}`, dot: ',' });
583
- }
584
- });
585
- typeTitleList.push({ key: '}' });
586
- }
587
- else if (this.typeName === 'List' && this.typeArguments?.length) {
588
- if (this.typeArguments.every((item) => item.typeKind !== 'anonymousStructure')) {
589
- typeTitleList.push({ key: this.typeTitle });
590
- }
591
- else {
592
- const propsTypeList = [].concat(...this.typeArguments.map((arg) => arg.typeTitleList));
593
- if (propsTypeList[0]?.key === '{') {
594
- propsTypeList[0].key = 'List<{';
595
- }
596
- else {
597
- typeTitleList.push({ key: 'List<' });
598
- }
599
- typeTitleList.push(...propsTypeList);
600
- if (propsTypeList[propsTypeList.length - 1]?.key === '}') {
601
- propsTypeList[propsTypeList.length - 1].key = '}>';
602
- }
603
- else {
604
- typeTitleList.push({ key: '>' });
605
- }
606
- }
607
- }
608
- else {
609
- typeTitleList.push({ key: this.typeTitle });
610
- }
611
- return typeTitleList;
612
- }
613
- static createPrimitive(typeName, source) {
614
- if (PRIMITIVE_TYPE[typeName]) {
615
- return this.from(Object.assign({
616
- typeKind: typeName === 'Union' ? 'union' : 'primitive',
617
- typeName,
618
- typeNamespace: 'nasl.core',
619
- }, source));
620
- }
621
- }
622
- static createReference(typeName, source) {
623
- return this.from(Object.assign({
624
- typeKind: 'reference',
625
- typeName,
626
- typeNamespace: 'nasl.core',
627
- }, source));
628
- }
629
- static createGeneric(typeName, source) {
630
- return this.from(Object.assign({
631
- typeKind: 'generic',
632
- typeName,
633
- typeNamespace: 'nasl.collection',
634
- }, source));
635
- }
636
- static createTypeParam(typeName, source) {
637
- return this.from(Object.assign({
638
- typeKind: 'typeParam',
639
- typeName,
640
- }, source));
641
- }
642
- static createTypeAnonymousStructure(properties, source) {
643
- return this.from(Object.assign({
644
- typeKind: 'anonymousStructure',
645
- properties,
646
- }, source));
647
- }
648
- /**
649
- * 设置类型属性名称
650
- */
651
- setTypeName(typeName) {
652
- const object = {
653
- typeName,
654
- };
655
- this.update({
656
- ...object,
657
- });
658
- }
659
- /**
660
- * 设置类型属性名称
661
- */
662
- setTypeNamespace(typeNamespace) {
663
- const object = {
664
- typeNamespace,
665
- };
666
- this.update({
667
- ...object,
668
- });
669
- }
670
- get tsCalleeNamespace() {
671
- if (this.typeNamespace) {
672
- let tsCalleeNamespace = this.typeNamespace;
673
- tsCalleeNamespace = tsCalleeNamespace.replace(/\.[0-9]/g, (m) => m.replace('.', '.$'));
674
- tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
675
- return tsCalleeNamespace;
676
- }
677
- return '';
678
- }
679
- toVue(state) {
680
- return JSON.stringify(this);
681
- }
682
- toJS(state) {
683
- return JSON.stringify(this);
684
- }
685
- toEmbeddedTS(state = (0, translator_1.createCompilerState)()) {
686
- if (this.typeKind === 'primitive' || this.typeKind === 'reference') {
687
- if (this.typeKind === 'reference' && this.typeNamespace && this.typeNamespace.endsWith('enums')) {
688
- return `${this.tsCalleeNamespace}.${this.typeName}`;
689
- }
690
- return `${this.tsCalleeNamespace}.${this.typeName}`;
691
- }
692
- else if (this.typeKind === 'generic') {
693
- let code = `${this.tsCalleeNamespace}.${this.typeName}<`;
694
- (this.typeArguments || []).forEach((arg, index) => {
695
- code += arg.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
696
- if (index !== this.typeArguments.length - 1)
697
- code += ', ';
698
- });
699
- code += '>';
700
- return code;
701
- }
702
- else if (this.typeKind === 'union') {
703
- let code = '';
704
- (this.typeArguments || []).forEach((arg, index) => {
705
- code += arg.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
706
- if (index !== this.typeArguments.length - 1)
707
- code += ' | ';
708
- });
709
- return code;
710
- }
711
- else if (this.typeKind === 'anonymousStructure') {
712
- let code = `{ `;
713
- (this.properties || []).forEach((property, i) => {
714
- code += `${property.name}: `;
715
- code += `${property.typeAnnotation
716
- ? property.typeAnnotation.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true, tabSize: (state?.tabSize || 0) + 1 }))
717
- : '`未知`'}`;
718
- code += ', ';
719
- });
720
- code += `__name: "AStructure_${this.hash}" `;
721
- code += ' }';
722
- return code;
723
- }
724
- else {
725
- if (this.tsCalleeNamespace && this.typeName) {
726
- return `${this.tsCalleeNamespace}.${this.typeName}`;
727
- }
728
- else if (this.typeName) {
729
- return this.typeName;
730
- }
731
- else {
732
- return '__IDENTIFIER__';
733
- }
734
- }
735
- }
736
- toNaturalTS(state = (0, translator_1.createCompilerState)()) {
737
- if (this.typeKind === 'primitive' || this.typeKind === 'reference') {
738
- if (this.typeKind === 'reference' && this.typeNamespace && this.typeNamespace.endsWith('enums')) {
739
- return this.tsCalleeNamespace.startsWith('nasl.ui')
740
- ? `${this.tsCalleeNamespace}.${this.typeName}`
741
- : `${this.typeName}`;
742
- }
743
- return this.tsCalleeNamespace.startsWith('nasl.ui')
744
- ? `${this.tsCalleeNamespace}.${this.typeName}`
745
- : `${this.typeName}`;
746
- }
747
- if (this.typeKind === 'generic') {
748
- let code = `${this.typeName}<`;
749
- (this.typeArguments || []).forEach((arg, index) => {
750
- code += arg.toNaturalTS((0, translator_1.shiftState)(state, code, { inline: true }));
751
- if (index !== this.typeArguments.length - 1)
752
- code += ', ';
753
- });
754
- code += '>';
755
- return code;
756
- }
757
- if (this.typeKind === 'union') {
758
- let code = '';
759
- (this.typeArguments || []).forEach((arg, index) => {
760
- code += arg.toNaturalTS((0, translator_1.shiftState)(state, code, { inline: true }));
761
- if (index !== this.typeArguments.length - 1)
762
- code += ' | ';
763
- });
764
- return code;
765
- }
766
- if (this.typeKind === 'anonymousStructure') {
767
- let code = `{ `;
768
- (this.properties || []).forEach((property, i) => {
769
- code += `${property.name}: `;
770
- code += `${property.typeAnnotation.toNaturalTS((0, translator_1.shiftState)(state, code, { inline: true, tabSize: state.tabSize + 1 }))}`;
771
- code += i < this.properties?.length - 1 ? ', ' : ' }';
772
- });
773
- return code;
774
- }
775
- if (this.tsCalleeNamespace && this.typeName) {
776
- return `${this.typeName}`;
777
- }
778
- if (this.typeName) {
779
- return this.typeName;
780
- }
781
- return '__IDENTIFIER__';
782
- }
783
- /**
784
- * 用于标准化数据结构,便于计算 anonymousStructure __name
785
- */
786
- get anonymousStructureTypeDesc() {
787
- if (this.typeKind === 'generic') {
788
- return `${this.typeName}<${this.typeArguments
789
- .map((arg) => arg.anonymousStructureTypeDesc || arg.name || 'T')
790
- .join(', ')}>`;
791
- }
792
- else if (this.typeKind === 'anonymousStructure') {
793
- return `{ ${[...this.properties]
794
- .sort(({ name: aName }, { name: bName }) => {
795
- if (aName > bName)
796
- return 1;
797
- return aName < bName ? -1 : 0;
798
- })
799
- .map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation.anonymousStructureTypeDesc : '未知'}`)
800
- .join(', ')} }`;
801
- }
802
- else {
803
- return this.typeName;
804
- }
805
- }
806
- /**
807
- * hash 用于比较 anonymousStructure 是否相同
808
- */
809
- get hash() {
810
- return (0, generator_1.genHash)(this.anonymousStructureTypeDesc);
811
- }
812
- getDefaultValue(value) {
813
- let code = '';
814
- if (this.typeKind === 'primitive') {
815
- if (this.typeName === 'String') {
816
- code = ` new nasl.core.String("${value}") `;
817
- }
818
- else {
819
- if (['Text'].includes(this.typeName)) {
820
- code = ` new ${this.typeNamespace}.${this.typeName}("${value}")`;
821
- }
822
- else if (['Boolean'].includes(this.typeName)) {
823
- code = value;
824
- }
825
- else {
826
- code = ` new ${this.typeNamespace}.${this.typeName}(${value})`;
827
- }
828
- }
829
- }
830
- else {
831
- code = ` ${this.typeNamespace}.${this.typeName}['${value}']`;
832
- }
833
- return code;
834
- }
835
- /**
836
- *
837
- * @param code 233
838
- *
839
- */
840
- static recognize(code) {
841
- if (typeof code === 'string') {
842
- const EmailReg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
843
- const TimeReg = /^(\d{1,2})(:\d{1,2})?:(\d{1,2})$/;
844
- const DateReg = /^\d{1,4}(\/|-)\d{1,2}(\/|-)\d{1,2}$/;
845
- const DateTimeReg = /^\d{1,4}(\/|-)\d{1,2}(\/|-)\d{1,2}\s(\d{1,2})(:\d{1,2})?:(\d{1,2})$/;
846
- const BooleanReg = /(false|true|\u662f|\u5426)/i;
847
- if (EmailReg.test(code)) {
848
- return this.createPrimitive('String');
849
- }
850
- else if (TimeReg.test(code)) {
851
- return this.createPrimitive('Time');
852
- }
853
- else if (BooleanReg.test(code)) {
854
- return this.createPrimitive('Boolean');
855
- }
856
- else if (DateReg.test(code)) {
857
- return this.createPrimitive('Date');
858
- }
859
- else if (DateTimeReg.test(code)) {
860
- return this.createPrimitive('DateTime');
861
- }
862
- else if (!isNaN(Number(code))) {
863
- if (code.indexOf('.') !== -1) {
864
- return this.createPrimitive('Decimal');
865
- // return this.createPrimitive('Decimal');
866
- }
867
- if (code.length > 8) {
868
- return this.createPrimitive('Long');
869
- }
870
- return this.createPrimitive('Long');
871
- }
872
- else if (code.length > 255) {
873
- return this.createPrimitive('String');
874
- }
875
- return this.createPrimitive('String');
876
- }
877
- else {
878
- return this.createPrimitive('Long');
879
- }
880
- }
881
- // 增加插入泛型子类型
882
- typeArgumentsPush(typeItem) {
883
- if (typeItem instanceof TypeAnnotation_1) {
884
- this.typeArguments.push(TypeAnnotation_1.from(typeItem, {
885
- parentNode: this,
886
- parentKey: 'typeArguments',
887
- }));
888
- }
889
- }
890
- // 是否是复合类型 List|Map|entities|structures
891
- isComplexType() {
892
- const namespaceType = this.typeNamespace?.split('.').pop();
893
- return (['Map', 'List'].includes(this.typeName) ||
894
- (this.typeKind === 'reference' && ['entities', 'structures'].includes(namespaceType)));
895
- }
896
- /* 类型签名 */
897
- get sign() {
898
- let str = '';
899
- if (['Map', 'List'].includes(this.typeName)) {
900
- str += this.typeName + '<';
901
- (this.typeArguments || []).forEach((item, index) => {
902
- str += item.sign;
903
- if (index + 1 !== this.typeArguments.length) {
904
- str += ',';
905
- }
906
- });
907
- str += '>';
908
- }
909
- else {
910
- str += this.typeName;
911
- }
912
- return str;
913
- }
914
- /* 判断2个类型是否一致 */
915
- isSame(typeAnnotation) {
916
- typeAnnotation.typeArguments;
917
- const typeAnnotation1 = this.toJSON();
918
- const typeAnnotation2 = typeAnnotation.toJSON();
919
- if (typeAnnotation1.typeArguments) {
920
- typeAnnotation1.typeArguments = this.sortedTypeKey;
921
- }
922
- if (typeAnnotation2.typeArguments) {
923
- typeAnnotation2.typeArguments = typeAnnotation.sortedTypeKey;
924
- }
925
- return JSON.stringify(typeAnnotation1) === JSON.stringify(typeAnnotation2);
926
- }
927
- // 是否是系统类型
928
- isSystemType() {
929
- return ['nasl.ui', 'nasl.auth', 'nasl.http', 'nasl.process'].includes(this.typeNamespace);
930
- }
931
- // 是否包含系统类型
932
- hasSystemType(app) {
933
- const traverseChild = (item, cb) => {
934
- const res = cb(item);
935
- if (res === false)
936
- return true;
937
- if (item && item.concept === 'TypeAnnotation') {
938
- if (item.typeKind === 'anonymousStructure') {
939
- return item.properties.some((prop) => traverseChild(prop.typeAnnotation, cb));
940
- }
941
- if (item.typeArguments && ['generic', 'union'].includes(item.typeKind)) {
942
- return item.typeArguments.some((arg) => traverseChild(arg, cb));
943
- }
944
- }
945
- };
946
- let result = false;
947
- traverseChild(this, (node) => {
948
- if (node.typeNamespace?.endsWith('.structures')) {
949
- const structure = app.findNodeByCompleteName(`${node.typeNamespace}.${node.typeName}`);
950
- const res = !structure?.properties.some((prop) => prop.typeAnnotation.hasSystemType(app));
951
- if (res === false) {
952
- result = true;
953
- }
954
- return res;
955
- }
956
- if (node.isSystemType()) {
957
- result = true;
958
- return false;
959
- }
960
- });
961
- return result;
962
- }
963
- };
964
- exports.TypeAnnotation = TypeAnnotation;
965
- __decorate([
966
- (0, decorators_1.property)('concept')
967
- // @ts-ignore
968
- ], TypeAnnotation.prototype, "concept", void 0);
969
- __decorate([
970
- (0, decorators_1.property)()
971
- // @ts-ignore
972
- ], TypeAnnotation.prototype, "typeKind", void 0);
973
- __decorate([
974
- (0, decorators_1.property)()
975
- // @ts-ignore
976
- ], TypeAnnotation.prototype, "typeNamespace", void 0);
977
- __decorate([
978
- (0, decorators_1.property)()
979
- // @ts-ignore
980
- ], TypeAnnotation.prototype, "typeName", void 0);
981
- __decorate([
982
- (0, decorators_1.property)({
983
- objectRef: 'TypeAnnotation',
984
- isArray: true,
985
- defaultValue: null,
986
- })
987
- ], TypeAnnotation.prototype, "typeArguments", void 0);
988
- __decorate([
989
- (0, decorators_1.property)({
990
- objectRef: 'TypeAnnotation',
991
- isArray: true,
992
- defaultValue: null,
993
- })
994
- ], TypeAnnotation.prototype, "returnType", void 0);
995
- __decorate([
996
- (0, decorators_1.property)()
997
- // @ts-ignore
998
- ], TypeAnnotation.prototype, "inferred", void 0);
999
- __decorate([
1000
- (0, decorators_1.property)({
1001
- objectRef: 'StructureProperty',
1002
- isArray: true,
1003
- defaultValue: null,
1004
- })
1005
- ], TypeAnnotation.prototype, "properties", void 0);
1006
- __decorate([
1007
- (0, decorators_1.property)()
1008
- // @ts-ignore
1009
- ], TypeAnnotation.prototype, "ruleMap", void 0);
1010
- __decorate([
1011
- (0, translator_1.withSourceMap)()
1012
- ], TypeAnnotation.prototype, "toEmbeddedTS", null);
1013
- __decorate([
1014
- (0, translator_1.withSourceMap)()
1015
- ], TypeAnnotation.prototype, "toNaturalTS", null);
1016
- exports.TypeAnnotation = TypeAnnotation = TypeAnnotation_1 = __decorate([
1017
- decorators_1.className,
1018
- (0, decorators_1.concept)('类型标注')
1019
- // @ts-ignore
1020
- ], TypeAnnotation);
1021
- exports.default = TypeAnnotation;
1022
- //================================================================================
1023
- // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1024
- // 自动生成的代码已结束。下面可以手动编写。
1025
- //================================================================================
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 TypeAnnotation_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.TypeAnnotation = exports.isUnion = exports.GENERIC_DESC = exports.PRIMITIVE_DESC = exports.OLD_PRIMITIVE_TITLE = exports.PRIMITIVE_TITLE = exports.PRIMITIVE_TYPE = void 0;
14
+ const translator_1 = require("../translator");
15
+ const generator_1 = require("../generator");
16
+ const constants_1 = require("./basics/constants");
17
+ var PRIMITIVE_TYPE;
18
+ (function (PRIMITIVE_TYPE) {
19
+ PRIMITIVE_TYPE["Boolean"] = "Boolean";
20
+ PRIMITIVE_TYPE["Integer"] = "Integer";
21
+ PRIMITIVE_TYPE["Long"] = "Long";
22
+ PRIMITIVE_TYPE["Double"] = "Double";
23
+ PRIMITIVE_TYPE["Decimal"] = "Decimal";
24
+ PRIMITIVE_TYPE["String"] = "String";
25
+ PRIMITIVE_TYPE["Text"] = "Text";
26
+ PRIMITIVE_TYPE["Binary"] = "Binary";
27
+ PRIMITIVE_TYPE["Date"] = "Date";
28
+ PRIMITIVE_TYPE["Time"] = "Time";
29
+ PRIMITIVE_TYPE["DateTime"] = "DateTime";
30
+ PRIMITIVE_TYPE["Email"] = "Email";
31
+ PRIMITIVE_TYPE["Union"] = "Union";
32
+ PRIMITIVE_TYPE["Null"] = "Null";
33
+ })(PRIMITIVE_TYPE = exports.PRIMITIVE_TYPE || (exports.PRIMITIVE_TYPE = {}));
34
+ exports.PRIMITIVE_TITLE = {
35
+ Boolean: '布尔值',
36
+ Integer: '整数',
37
+ Long: '整数',
38
+ Double: '小数',
39
+ Decimal: '小数',
40
+ String: '文本',
41
+ Text: '长文本',
42
+ Binary: '二进制流',
43
+ Date: '日期',
44
+ Time: '时间',
45
+ DateTime: '日期时间',
46
+ Email: '电子邮箱',
47
+ Union: '联合类型',
48
+ };
49
+ exports.OLD_PRIMITIVE_TITLE = {
50
+ Boolean: '布尔值',
51
+ Integer: '整数',
52
+ Long: '长整数',
53
+ Double: '小数',
54
+ Decimal: '精准小数',
55
+ String: '字符串',
56
+ Text: '长文本',
57
+ Binary: '二进制流',
58
+ Date: '日期',
59
+ Time: '时间',
60
+ DateTime: '日期时间',
61
+ Email: '电子邮箱',
62
+ Union: '联合类型',
63
+ };
64
+ exports.PRIMITIVE_DESC = {
65
+ Integer: '可表示最大长度约 10 个数字的正负整数(将被删除)',
66
+ Double: '小数,有效数字约 16 个左右(将被删除)',
67
+ Text: '底层与String相同,可存储更长的内容(将被删除)',
68
+ Binary: '用于二进制流的存储',
69
+ Email: '表示一个邮箱,底层与String相同(将被删除)',
70
+ Boolean: '包含真(true)、假(false)两个值',
71
+ Long: '可表示最大长度约 19 个数字的正负整数',
72
+ Decimal: '可表示 31 个有效数字以内的小数',
73
+ String: '表示汉语、英语、数字等文本内容',
74
+ Date: '通常用于仅日期处理和数据存储',
75
+ Time: '通常用于仅时间处理和数据存储',
76
+ DateTime: '通常用于日期和时间的处理和数据存储',
77
+ };
78
+ exports.GENERIC_DESC = {
79
+ List: 'T类型的数据构成的列表',
80
+ Map: '从K类型到V类型的映射',
81
+ };
82
+ /**
83
+ * 判断是否是联合类型
84
+ * @param typeAnnotation
85
+ * @returns
86
+ */
87
+ function isUnion(typeAnnotation) {
88
+ return (typeAnnotation &&
89
+ typeAnnotation.typeKind === 'union' &&
90
+ typeAnnotation.typeNamespace === 'nasl.core' &&
91
+ typeAnnotation.typeName === 'Union');
92
+ }
93
+ exports.isUnion = isUnion;
94
+ const decorators_1 = require("../decorators");
95
+ const BaseNode_1 = __importDefault(require("../common/BaseNode"));
96
+ const StructureProperty__1 = __importDefault(require("./StructureProperty__"));
97
+ /**
98
+ * 类型标注
99
+ */
100
+ let TypeAnnotation = TypeAnnotation_1 =
101
+ // @ts-ignore
102
+ class TypeAnnotation extends BaseNode_1.default {
103
+ /** 类名 */
104
+ static ConceptName = 'TypeAnnotation';
105
+ /** 继承链 */
106
+ static inheritanceChain = ['BaseNode'];
107
+ /**
108
+ * 产品概念
109
+ */
110
+ concept;
111
+ /**
112
+ * 类型种类
113
+ */
114
+ // @ts-ignore
115
+ typeKind;
116
+ /**
117
+ * 类型命名空间
118
+ */
119
+ // @ts-ignore
120
+ typeNamespace;
121
+ /**
122
+ * 类型名称
123
+ */
124
+ // @ts-ignore
125
+ typeName;
126
+ /**
127
+ * 类型参数
128
+ */
129
+ typeArguments = null;
130
+ /**
131
+ * 返回类型
132
+ */
133
+ returnType = null;
134
+ /**
135
+ * 是否是推断出来的
136
+ */
137
+ // @ts-ignore
138
+ inferred;
139
+ /**
140
+ * 匿名数据结构属性
141
+ */
142
+ properties = null;
143
+ /**
144
+ * 规则对象
145
+ */
146
+ // @ts-ignore
147
+ ruleMap;
148
+ /**
149
+ * @param source 需要合并的部分参数
150
+ */
151
+ constructor(source) {
152
+ source = Object.assign({}, TypeAnnotation_1.getDefaultOptions(), source);
153
+ super(source);
154
+ super.subConstructor(source);
155
+ }
156
+ static from(source, parentNode, parentKey) {
157
+ return super.from(source, parentNode, parentKey);
158
+ }
159
+ /**
160
+ * 从父级删除该节点
161
+ * @internal
162
+ */
163
+ _delete() {
164
+ let params = null;
165
+ if (this.parentNode) {
166
+ params = this.parentNode?.__removeTypeAnnotation?.(this);
167
+ }
168
+ return params;
169
+ }
170
+ /**
171
+ * 设置规则对象
172
+ */
173
+ setRuleMap(ruleMap) {
174
+ const object = {
175
+ ruleMap,
176
+ };
177
+ this.update({
178
+ ...object,
179
+ });
180
+ }
181
+ _insertTypeAnnotationInTypeArgumentsAt(options, index) {
182
+ const typeAnnotationOptions = {};
183
+ const relationOptions = { parentNode: this, parentKey: 'typeArguments' };
184
+ let typeAnnotation;
185
+ if (options instanceof TypeAnnotation_1) {
186
+ options.ensureDelete(); // 同一实例不支持多处存在
187
+ typeAnnotation = options;
188
+ Object.assign(typeAnnotation, relationOptions);
189
+ }
190
+ else {
191
+ typeAnnotation = TypeAnnotation_1.from({
192
+ ...typeAnnotationOptions,
193
+ ...options,
194
+ }, this, 'typeArguments');
195
+ }
196
+ this.typeArguments.splice(index, 0, typeAnnotation);
197
+ return typeAnnotation;
198
+ }
199
+ insertTypeAnnotationInTypeArgumentsAt(options, index) {
200
+ const node = this._insertTypeAnnotationInTypeArgumentsAt(options, index);
201
+ node.create({
202
+ index,
203
+ parentNode: this,
204
+ parentKey: 'typeArguments',
205
+ });
206
+ return node;
207
+ }
208
+ _addTypeAnnotationInTypeArguments(options) {
209
+ const index = this.typeArguments.length;
210
+ return this._insertTypeAnnotationInTypeArgumentsAt(options, index);
211
+ }
212
+ addTypeAnnotationInTypeArguments(options) {
213
+ const node = this._addTypeAnnotationInTypeArguments(options);
214
+ const index = this.typeArguments.indexOf(node);
215
+ node.create({
216
+ index,
217
+ parentNode: this,
218
+ parentKey: 'typeArguments',
219
+ });
220
+ return node;
221
+ }
222
+ _insertTypeAnnotationInReturnTypeAt(options, index) {
223
+ const typeAnnotationOptions = {};
224
+ const relationOptions = { parentNode: this, parentKey: 'returnType' };
225
+ let typeAnnotation;
226
+ if (options instanceof TypeAnnotation_1) {
227
+ options.ensureDelete(); // 同一实例不支持多处存在
228
+ typeAnnotation = options;
229
+ Object.assign(typeAnnotation, relationOptions);
230
+ }
231
+ else {
232
+ typeAnnotation = TypeAnnotation_1.from({
233
+ ...typeAnnotationOptions,
234
+ ...options,
235
+ }, this, 'returnType');
236
+ }
237
+ this.returnType.splice(index, 0, typeAnnotation);
238
+ return typeAnnotation;
239
+ }
240
+ insertTypeAnnotationInReturnTypeAt(options, index) {
241
+ const node = this._insertTypeAnnotationInReturnTypeAt(options, index);
242
+ node.create({
243
+ index,
244
+ parentNode: this,
245
+ parentKey: 'returnType',
246
+ });
247
+ return node;
248
+ }
249
+ _addTypeAnnotationInReturnType(options) {
250
+ const index = this.returnType.length;
251
+ return this._insertTypeAnnotationInReturnTypeAt(options, index);
252
+ }
253
+ addTypeAnnotationInReturnType(options) {
254
+ const node = this._addTypeAnnotationInReturnType(options);
255
+ const index = this.returnType.indexOf(node);
256
+ node.create({
257
+ index,
258
+ parentNode: this,
259
+ parentKey: 'returnType',
260
+ });
261
+ return node;
262
+ }
263
+ _insertStructurePropertyAt(options, index) {
264
+ const structurePropertyOptions = {};
265
+ const relationOptions = { parentNode: this, parentKey: 'properties' };
266
+ let structureProperty;
267
+ if (options instanceof StructureProperty__1.default) {
268
+ options.ensureDelete(); // 同一实例不支持多处存在
269
+ structureProperty = options;
270
+ Object.assign(structureProperty, relationOptions);
271
+ }
272
+ else {
273
+ structureProperty = StructureProperty__1.default.from({
274
+ ...structurePropertyOptions,
275
+ ...options,
276
+ }, this, 'properties');
277
+ }
278
+ this.properties.splice(index, 0, structureProperty);
279
+ return structureProperty;
280
+ }
281
+ insertStructurePropertyAt(options, index) {
282
+ const node = this._insertStructurePropertyAt(options, index);
283
+ node.create({
284
+ index,
285
+ parentNode: this,
286
+ parentKey: 'properties',
287
+ });
288
+ return node;
289
+ }
290
+ _addStructureProperty(options) {
291
+ const index = this.properties.length;
292
+ return this._insertStructurePropertyAt(options, index);
293
+ }
294
+ addStructureProperty(options) {
295
+ const node = this._addStructureProperty(options);
296
+ const index = this.properties.indexOf(node);
297
+ node.create({
298
+ index,
299
+ parentNode: this,
300
+ parentKey: 'properties',
301
+ });
302
+ return node;
303
+ }
304
+ removeTypeAnnotationInTypeArguments(options) {
305
+ let typeAnnotation = options;
306
+ return typeAnnotation.delete();
307
+ }
308
+ removeTypeAnnotationInReturnType(options) {
309
+ let typeAnnotation = options;
310
+ return typeAnnotation.delete();
311
+ }
312
+ __removeTypeAnnotation(typeAnnotation) {
313
+ const parentKey = typeAnnotation.parentKey;
314
+ const params = {
315
+ parentNode: this,
316
+ parentKey,
317
+ index: -1,
318
+ object: null,
319
+ oldObject: typeAnnotation,
320
+ };
321
+ if (parentKey) {
322
+ params.parentKey = parentKey;
323
+ // @ts-ignore
324
+ const t = this.__v_raw || this;
325
+ // @ts-ignore
326
+ const n = typeAnnotation.__v_raw || typeAnnotation;
327
+ if (Array.isArray(t[parentKey])) {
328
+ // @ts-ignore
329
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
330
+ ~index && this[parentKey].splice(index, 1);
331
+ params.index = index;
332
+ }
333
+ else if (t[parentKey] === n) {
334
+ params.index = 0;
335
+ this[parentKey] = undefined;
336
+ }
337
+ }
338
+ return params;
339
+ }
340
+ removeStructureProperty(options) {
341
+ let structureProperty = options;
342
+ return structureProperty.delete();
343
+ }
344
+ __removeStructureProperty(structureProperty) {
345
+ const parentKey = structureProperty.parentKey;
346
+ const params = {
347
+ parentNode: this,
348
+ parentKey,
349
+ index: -1,
350
+ object: null,
351
+ oldObject: structureProperty,
352
+ };
353
+ if (parentKey) {
354
+ params.parentKey = parentKey;
355
+ // @ts-ignore
356
+ const t = this.__v_raw || this;
357
+ // @ts-ignore
358
+ const n = structureProperty.__v_raw || structureProperty;
359
+ if (Array.isArray(t[parentKey])) {
360
+ // @ts-ignore
361
+ const index = t[parentKey].findIndex((el) => (el.__v_raw || el) === n);
362
+ ~index && this[parentKey].splice(index, 1);
363
+ params.index = index;
364
+ }
365
+ else if (t[parentKey] === n) {
366
+ params.index = 0;
367
+ this[parentKey] = undefined;
368
+ }
369
+ }
370
+ return params;
371
+ }
372
+ //================================================================================
373
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
374
+ // 自动生成的代码已结束。下面可以手动编写。
375
+ //================================================================================
376
+ // 兼容 long 需要显示为 long 的情况,默认 undefined
377
+ longNotInteger = undefined;
378
+ toUI(state, hideDetails) {
379
+ return this.headTitle;
380
+ }
381
+ traverse(callback, enter, leave, onJoin) {
382
+ enter(this);
383
+ callback(this);
384
+ if (this.typeArguments && ['generic', 'union'].includes(this.typeKind)) {
385
+ const l = this.typeArguments.length;
386
+ this.typeArguments.forEach((arg, idx) => {
387
+ arg.traverse(callback, enter, leave, onJoin);
388
+ if (idx < l - 1) {
389
+ onJoin(this, arg);
390
+ }
391
+ });
392
+ }
393
+ leave(this);
394
+ }
395
+ get typeKey() {
396
+ if (this.typeKind === 'primitive' || this.typeKind === 'reference') {
397
+ return `${this.typeNamespace}.${this.typeName}`;
398
+ }
399
+ else if (this.typeKind === 'generic') {
400
+ return `${this.typeNamespace}.${this.typeName}<${(this.typeArguments || []).map((arg) => arg?.typeKey)}>`;
401
+ }
402
+ else if (this.typeKind === 'anonymousStructure') {
403
+ return `{ ${this.properties
404
+ .map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation?.typeKey : '未知'}`)
405
+ .join(', ')} }`;
406
+ }
407
+ else if (this.typeKind === 'union') {
408
+ return `${this.typeArguments.map((arg) => arg?.typeKey).join(' | ')}`;
409
+ }
410
+ else {
411
+ return this.typeName;
412
+ }
413
+ }
414
+ // 排过序的类型标识
415
+ get sortedTypeKey() {
416
+ if (this.typeKind === 'anonymousStructure') {
417
+ // 按匿名数据结构的key排序
418
+ return `{${[...this.properties]
419
+ .sort(({ name: name1 }, { name: name2 }) => (name1 > name2 ? 1 : -1))
420
+ .map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation?.sortedTypeKey : '未知'}`)
421
+ .join(', ')}}`;
422
+ }
423
+ else if (this.typeKind === 'union') {
424
+ // 按返回的每个具体项排序
425
+ return `${this.typeArguments
426
+ .map((arg) => arg?.sortedTypeKey)
427
+ .sort((name1, name2) => (name1 > name2 ? 1 : -1))
428
+ .join(' | ')}`;
429
+ }
430
+ const typeArr = [];
431
+ if (this.typeNamespace) {
432
+ typeArr.push(this.typeNamespace);
433
+ }
434
+ if (this.typeName) {
435
+ typeArr.push(this.typeName);
436
+ }
437
+ const typeKey = typeArr.join('.');
438
+ if (this.typeKind === 'generic') {
439
+ let code = typeKey;
440
+ code += '<';
441
+ if (Array.isArray(this.typeArguments) && this.typeArguments.length) {
442
+ // 必须按typeArguments定义的顺序,否则实参位置不对
443
+ code += `${(this.typeArguments || []).map((arg) => arg?.sortedTypeKey).join(', ')}`;
444
+ }
445
+ code += '>';
446
+ return code;
447
+ }
448
+ return typeKey;
449
+ }
450
+ /**
451
+ * 用于展示的 type 标题
452
+ */
453
+ get headTitle() {
454
+ if (this.typeKind === 'primitive') {
455
+ // longNotInteger: 兼容 long 需要显示为 long 的情况,默认 undefined
456
+ if (this.typeName === 'Long' && !this.longNotInteger) {
457
+ return `Integer ${exports.PRIMITIVE_TITLE[this.typeName] || ''}`;
458
+ }
459
+ return `${this.typeName} ${exports.PRIMITIVE_TITLE[this.typeName] || ''}`;
460
+ }
461
+ else if (this.typeKind === 'reference') {
462
+ const typeNamespace = this?.typeNamespace;
463
+ let typeTitle = this.typeName;
464
+ if (typeNamespace && this.rootNode) {
465
+ const entity = this.rootNode.findNodeByCompleteName?.([typeNamespace, this?.typeName].join('.'));
466
+ if (entity?.concept === 'Entity') {
467
+ const dataSourceName = entity.dataSource?.name;
468
+ if (dataSourceName) {
469
+ typeTitle += `(${dataSourceName})`;
470
+ }
471
+ }
472
+ }
473
+ return typeTitle;
474
+ }
475
+ else if (this.typeKind === 'generic') {
476
+ if (this.typeArguments && this.typeArguments.length)
477
+ return `${this.typeName}<${(this.typeArguments || [])
478
+ .map((arg) => arg.headTitle || arg.name || 'T')
479
+ .join(', ')}>`;
480
+ else
481
+ return this.typeName;
482
+ }
483
+ else if (this.typeKind === 'anonymousStructure') {
484
+ return `{ ${this.properties
485
+ ?.map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation.headTitle}`)
486
+ .join(', ')} }`;
487
+ }
488
+ else if (this.typeKind === 'union') {
489
+ return `${this.typeArguments.map((arg) => arg.typeTitle || arg.name).join(' 或 ')}`;
490
+ }
491
+ else {
492
+ return this.typeName;
493
+ }
494
+ }
495
+ /**
496
+ * 用于展示的 type 标题
497
+ */
498
+ get typeTitle() {
499
+ if (this.typeKind === 'primitive') {
500
+ if (this.typeName === 'Long') {
501
+ return `Integer ${exports.PRIMITIVE_TITLE[this.typeName] || ''}`;
502
+ }
503
+ return `${this.typeName} ${exports.PRIMITIVE_TITLE[this.typeName] || ''}`;
504
+ }
505
+ else if (this.typeKind === 'reference') {
506
+ return this.typeName;
507
+ }
508
+ else if (this.typeKind === 'generic') {
509
+ return `${this.typeName}<${!this.typeArguments.length
510
+ ? 'T'
511
+ : this.typeArguments.map((arg) => arg?.typeTitle || arg?.name || 'T').join(', ')}>`;
512
+ }
513
+ else if (this.typeKind === 'anonymousStructure') {
514
+ return `{ ${this.properties
515
+ ?.map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation?.typeTitle : '未知'}`)
516
+ .join(', ')} }`;
517
+ }
518
+ else if (this.typeKind === 'union') {
519
+ return `${this.typeArguments.map((arg) => arg?.typeTitle || arg?.name).join(' 或 ')}`;
520
+ }
521
+ else {
522
+ return this.typeName;
523
+ }
524
+ }
525
+ /**
526
+ * 用于展示的 无中文的精简type标题
527
+ */
528
+ get typeInlineTitle() {
529
+ if (this.typeKind === 'primitive') {
530
+ if (this.typeName === 'Long') {
531
+ return 'Integer';
532
+ }
533
+ return this.typeName;
534
+ }
535
+ else if (this.typeKind === 'reference') {
536
+ return this.typeName;
537
+ }
538
+ else if (this.typeKind === 'generic') {
539
+ return `${this.typeName}<${!this.typeArguments.length
540
+ ? 'T'
541
+ : this.typeArguments.map((arg) => arg?.typeInlineTitle || arg?.name || 'T').join(', ')}>`;
542
+ }
543
+ else if (this.typeKind === 'anonymousStructure') {
544
+ return `{ ${this.properties
545
+ ?.map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation?.typeInlineTitle : '未知'}`)
546
+ .join(', ')} }`;
547
+ }
548
+ else if (this.typeKind === 'union') {
549
+ return `${this.typeArguments.map((arg) => arg?.typeInlineTitle || arg?.name).join(' 或 ')}`;
550
+ }
551
+ else {
552
+ return this.typeName;
553
+ }
554
+ }
555
+ /**
556
+ * 用于展示的 纯中文的type 标题
557
+ */
558
+ get typeChineseTitle() {
559
+ if (this.typeKind === 'primitive') {
560
+ return `${exports.PRIMITIVE_TITLE[this.typeName] || ''}`;
561
+ }
562
+ else if (this.typeKind === 'reference') {
563
+ return this.typeName;
564
+ }
565
+ else if (this.typeKind === 'generic') {
566
+ return `${this.typeName}<${this.typeArguments
567
+ .map((arg) => arg?.typeChineseTitle || arg?.name || 'T')
568
+ .join(', ')}>`;
569
+ }
570
+ else if (this.typeKind === 'anonymousStructure') {
571
+ return `{ ${this.properties
572
+ ?.map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation.typeChineseTitle : '未知'}`)
573
+ .join(', ')} }`;
574
+ }
575
+ else if (this.typeKind === 'union') {
576
+ return `${this.typeArguments.map((arg) => arg?.typeChineseTitle || arg?.name).join(' 或 ')}`;
577
+ }
578
+ else {
579
+ return this.typeName;
580
+ }
581
+ }
582
+ get typeTitleList() {
583
+ const typeTitleList = [];
584
+ if (this.typeKind === 'anonymousStructure') {
585
+ typeTitleList.push({ key: '{' });
586
+ const length = this.properties?.length;
587
+ this.properties?.forEach(({ name, typeAnnotation }, index) => {
588
+ if (index === length - 1) {
589
+ typeTitleList.push({ key: name, value: `${typeAnnotation ? typeAnnotation.typeTitle : '未知'}` });
590
+ }
591
+ else {
592
+ typeTitleList.push({ key: name, value: `${typeAnnotation ? typeAnnotation.typeTitle : '未知'}`, dot: ',' });
593
+ }
594
+ });
595
+ typeTitleList.push({ key: '}' });
596
+ }
597
+ else if (this.typeName === 'List' && this.typeArguments?.length) {
598
+ if (this.typeArguments.every((item) => item.typeKind !== 'anonymousStructure')) {
599
+ typeTitleList.push({ key: this.typeTitle });
600
+ }
601
+ else {
602
+ const propsTypeList = [].concat(...this.typeArguments.map((arg) => arg.typeTitleList));
603
+ if (propsTypeList[0]?.key === '{') {
604
+ propsTypeList[0].key = 'List<{';
605
+ }
606
+ else {
607
+ typeTitleList.push({ key: 'List<' });
608
+ }
609
+ typeTitleList.push(...propsTypeList);
610
+ if (propsTypeList[propsTypeList.length - 1]?.key === '}') {
611
+ propsTypeList[propsTypeList.length - 1].key = '}>';
612
+ }
613
+ else {
614
+ typeTitleList.push({ key: '>' });
615
+ }
616
+ }
617
+ }
618
+ else {
619
+ typeTitleList.push({ key: this.typeTitle });
620
+ }
621
+ return typeTitleList;
622
+ }
623
+ static createPrimitive(typeName, source) {
624
+ if (PRIMITIVE_TYPE[typeName]) {
625
+ return this.from(Object.assign({
626
+ typeKind: typeName === 'Union' ? 'union' : 'primitive',
627
+ typeName,
628
+ typeNamespace: 'nasl.core',
629
+ }, source));
630
+ }
631
+ }
632
+ static createReference(typeName, source) {
633
+ return this.from(Object.assign({
634
+ typeKind: 'reference',
635
+ typeName,
636
+ typeNamespace: 'nasl.core',
637
+ }, source));
638
+ }
639
+ static createGeneric(typeName, source) {
640
+ return this.from(Object.assign({
641
+ typeKind: 'generic',
642
+ typeName,
643
+ typeNamespace: 'nasl.collection',
644
+ }, source));
645
+ }
646
+ static createTypeParam(typeName, source) {
647
+ return this.from(Object.assign({
648
+ typeKind: 'typeParam',
649
+ typeName,
650
+ }, source));
651
+ }
652
+ static createTypeAnonymousStructure(properties, source) {
653
+ return this.from(Object.assign({
654
+ typeKind: 'anonymousStructure',
655
+ properties,
656
+ }, source));
657
+ }
658
+ /**
659
+ * 设置类型属性名称
660
+ */
661
+ setTypeName(typeName) {
662
+ const object = {
663
+ typeName,
664
+ };
665
+ this.update({
666
+ ...object,
667
+ });
668
+ }
669
+ /**
670
+ * 设置类型属性名称
671
+ */
672
+ setTypeNamespace(typeNamespace) {
673
+ const object = {
674
+ typeNamespace,
675
+ };
676
+ this.update({
677
+ ...object,
678
+ });
679
+ }
680
+ get tsCalleeNamespace() {
681
+ if (this.typeNamespace) {
682
+ let tsCalleeNamespace = this.typeNamespace;
683
+ tsCalleeNamespace = tsCalleeNamespace.replace(/\.[0-9]/g, (m) => m.replace('.', '.$'));
684
+ tsCalleeNamespace = tsCalleeNamespace.replace(/-/g, '_');
685
+ return tsCalleeNamespace;
686
+ }
687
+ return '';
688
+ }
689
+ // 获取 集成中心 为祖先节点
690
+ get integration() {
691
+ return this.getAncestor('Integration');
692
+ }
693
+ // 获取 连接器 为祖先节点
694
+ get connector() {
695
+ return this.getAncestor('Connector');
696
+ }
697
+ toVue(state) {
698
+ return JSON.stringify(this);
699
+ }
700
+ toJS(state) {
701
+ return JSON.stringify(this);
702
+ }
703
+ toEmbeddedTS(state = (0, translator_1.createCompilerState)()) {
704
+ if (this.typeKind === 'primitive' || this.typeKind === 'reference') {
705
+ if (this.typeKind === 'reference' && this.typeNamespace && this.typeNamespace.endsWith('enums')) {
706
+ return `${this.tsCalleeNamespace}.${this.typeName}`;
707
+ }
708
+ // 针对 集成中心中的编辑态的连接器相关需要特殊处理
709
+ if (this.connector && this.integration && this.typeKind === 'reference') {
710
+ return `${this.tsCalleeNamespace}.${this.typeName}${constants_1.CUSTOM_CONNECTOR_EDITABLE_SUFFIX}`;
711
+ }
712
+ return `${this.tsCalleeNamespace}.${this.typeName}`;
713
+ }
714
+ else if (this.typeKind === 'generic') {
715
+ let code = `${this.tsCalleeNamespace}.${this.typeName}<`;
716
+ (this.typeArguments || []).forEach((arg, index) => {
717
+ code += arg?.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
718
+ if (index !== this.typeArguments.length - 1)
719
+ code += ', ';
720
+ });
721
+ code += '>';
722
+ return code;
723
+ }
724
+ else if (this.typeKind === 'union') {
725
+ let code = '';
726
+ (this.typeArguments || []).forEach((arg, index) => {
727
+ code += arg?.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true }));
728
+ if (index !== this.typeArguments.length - 1)
729
+ code += ' | ';
730
+ });
731
+ return code;
732
+ }
733
+ else if (this.typeKind === 'anonymousStructure') {
734
+ let code = `{ `;
735
+ (this.properties || []).forEach((property, i) => {
736
+ code += `${property.name}: `;
737
+ code += `${property.typeAnnotation
738
+ ? property.typeAnnotation?.toEmbeddedTS((0, translator_1.shiftState)(state, code, { inline: true, tabSize: (state?.tabSize || 0) + 1 }))
739
+ : '`未知`'}`;
740
+ code += ', ';
741
+ });
742
+ code += `__name: "AStructure_${this.hash}" `;
743
+ code += ' }';
744
+ return code;
745
+ }
746
+ else {
747
+ if (this.tsCalleeNamespace && this.typeName) {
748
+ return `${this.tsCalleeNamespace}.${this.typeName}`;
749
+ }
750
+ else if (this.typeName) {
751
+ return this.typeName;
752
+ }
753
+ else {
754
+ return '__IDENTIFIER__';
755
+ }
756
+ }
757
+ }
758
+ toNaturalTS(state = (0, translator_1.createCompilerState)()) {
759
+ if (this.typeKind === 'primitive' || this.typeKind === 'reference') {
760
+ if (this.typeKind === 'reference' && this.typeNamespace && this.typeNamespace.endsWith('enums')) {
761
+ return this.tsCalleeNamespace.startsWith('nasl.ui')
762
+ ? `${this.tsCalleeNamespace}.${this.typeName}`
763
+ : `${this.typeName}`;
764
+ }
765
+ return this.tsCalleeNamespace.startsWith('nasl.ui')
766
+ ? `${this.tsCalleeNamespace}.${this.typeName}`
767
+ : `${this.typeName}`;
768
+ }
769
+ if (this.typeKind === 'generic') {
770
+ let code = `${this.typeName}<`;
771
+ (this.typeArguments || []).forEach((arg, index) => {
772
+ code += arg.toNaturalTS((0, translator_1.shiftState)(state, code, { inline: true }));
773
+ if (index !== this.typeArguments.length - 1)
774
+ code += ', ';
775
+ });
776
+ code += '>';
777
+ return code;
778
+ }
779
+ if (this.typeKind === 'union') {
780
+ let code = '';
781
+ (this.typeArguments || []).forEach((arg, index) => {
782
+ code += arg.toNaturalTS((0, translator_1.shiftState)(state, code, { inline: true }));
783
+ if (index !== this.typeArguments.length - 1)
784
+ code += ' | ';
785
+ });
786
+ return code;
787
+ }
788
+ if (this.typeKind === 'anonymousStructure') {
789
+ let code = `{ `;
790
+ (this.properties || []).forEach((property, i) => {
791
+ code += `${property.name}: `;
792
+ code += `${property.typeAnnotation.toNaturalTS((0, translator_1.shiftState)(state, code, { inline: true, tabSize: state.tabSize + 1 }))}`;
793
+ code += i < this.properties?.length - 1 ? ', ' : ' }';
794
+ });
795
+ return code;
796
+ }
797
+ if (this.tsCalleeNamespace && this.typeName) {
798
+ return `${this.typeName}`;
799
+ }
800
+ if (this.typeName) {
801
+ return this.typeName;
802
+ }
803
+ return '__IDENTIFIER__';
804
+ }
805
+ /**
806
+ * 用于标准化数据结构,便于计算 anonymousStructure 的 __name
807
+ */
808
+ get anonymousStructureTypeDesc() {
809
+ if (this.typeKind === 'generic') {
810
+ return `${this.typeName}<${this.typeArguments
811
+ .map((arg) => arg.anonymousStructureTypeDesc || arg.name || 'T')
812
+ .join(', ')}>`;
813
+ }
814
+ else if (this.typeKind === 'anonymousStructure') {
815
+ return `{ ${[...this.properties]
816
+ .sort(({ name: aName }, { name: bName }) => {
817
+ if (aName > bName)
818
+ return 1;
819
+ return aName < bName ? -1 : 0;
820
+ })
821
+ .map(({ name, typeAnnotation }) => `${name}: ${typeAnnotation ? typeAnnotation.anonymousStructureTypeDesc : '未知'}`)
822
+ .join(', ')} }`;
823
+ }
824
+ else {
825
+ return this.typeName;
826
+ }
827
+ }
828
+ /**
829
+ * hash 用于比较 anonymousStructure 是否相同
830
+ */
831
+ get hash() {
832
+ return (0, generator_1.genHash)(this.anonymousStructureTypeDesc);
833
+ }
834
+ getDefaultValue(value) {
835
+ let code = '';
836
+ if (this.typeKind === 'primitive') {
837
+ if (this.typeName === 'String') {
838
+ code = ` new nasl.core.String("${value}") `;
839
+ }
840
+ else {
841
+ if (['Text'].includes(this.typeName)) {
842
+ code = ` new ${this.typeNamespace}.${this.typeName}("${value}")`;
843
+ }
844
+ else if (['Boolean'].includes(this.typeName)) {
845
+ code = value;
846
+ }
847
+ else {
848
+ code = ` new ${this.typeNamespace}.${this.typeName}(${value})`;
849
+ }
850
+ }
851
+ }
852
+ else {
853
+ code = ` ${this.typeNamespace}.${this.typeName}['${value}']`;
854
+ }
855
+ return code;
856
+ }
857
+ /**
858
+ *
859
+ * @param code 233
860
+ *
861
+ */
862
+ static recognize(code) {
863
+ if (typeof code === 'string') {
864
+ const EmailReg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
865
+ const TimeReg = /^(\d{1,2})(:\d{1,2})?:(\d{1,2})$/;
866
+ const DateReg = /^\d{1,4}(\/|-)\d{1,2}(\/|-)\d{1,2}$/;
867
+ const DateTimeReg = /^\d{1,4}(\/|-)\d{1,2}(\/|-)\d{1,2}\s(\d{1,2})(:\d{1,2})?:(\d{1,2})$/;
868
+ const BooleanReg = /(false|true|\u662f|\u5426)/i;
869
+ if (EmailReg.test(code)) {
870
+ return this.createPrimitive('String');
871
+ }
872
+ else if (TimeReg.test(code)) {
873
+ return this.createPrimitive('Time');
874
+ }
875
+ else if (BooleanReg.test(code)) {
876
+ return this.createPrimitive('Boolean');
877
+ }
878
+ else if (DateReg.test(code)) {
879
+ return this.createPrimitive('Date');
880
+ }
881
+ else if (DateTimeReg.test(code)) {
882
+ return this.createPrimitive('DateTime');
883
+ }
884
+ else if (!isNaN(Number(code))) {
885
+ if (code.indexOf('.') !== -1) {
886
+ return this.createPrimitive('Decimal');
887
+ // return this.createPrimitive('Decimal');
888
+ }
889
+ if (code.length > 8) {
890
+ return this.createPrimitive('Long');
891
+ }
892
+ return this.createPrimitive('Long');
893
+ }
894
+ else if (code.length > 255) {
895
+ return this.createPrimitive('String');
896
+ }
897
+ return this.createPrimitive('String');
898
+ }
899
+ else {
900
+ return this.createPrimitive('Long');
901
+ }
902
+ }
903
+ // 增加插入泛型子类型
904
+ typeArgumentsPush(typeItem) {
905
+ if (typeItem instanceof TypeAnnotation_1) {
906
+ this.typeArguments.push(TypeAnnotation_1.from(typeItem, {
907
+ parentNode: this,
908
+ parentKey: 'typeArguments',
909
+ }));
910
+ }
911
+ }
912
+ // 是否是复合类型 List|Map|entities|structures
913
+ isComplexType() {
914
+ const namespaceType = this.typeNamespace?.split('.').pop();
915
+ return (['Map', 'List'].includes(this.typeName) ||
916
+ (this.typeKind === 'reference' && ['entities', 'structures'].includes(namespaceType)));
917
+ }
918
+ /* 类型签名 */
919
+ get sign() {
920
+ let str = '';
921
+ if (['Map', 'List'].includes(this.typeName)) {
922
+ str += this.typeName + '<';
923
+ (this.typeArguments || []).forEach((item, index) => {
924
+ str += item.sign;
925
+ if (index + 1 !== this.typeArguments.length) {
926
+ str += ',';
927
+ }
928
+ });
929
+ str += '>';
930
+ }
931
+ else {
932
+ str += this.typeName;
933
+ }
934
+ return str;
935
+ }
936
+ /* 判断2个类型是否一致 */
937
+ isSame(typeAnnotation) {
938
+ typeAnnotation.typeArguments;
939
+ const typeAnnotation1 = this.toJSON();
940
+ const typeAnnotation2 = typeAnnotation.toJSON();
941
+ if (typeAnnotation1.typeArguments) {
942
+ typeAnnotation1.typeArguments = this.sortedTypeKey;
943
+ }
944
+ if (typeAnnotation2.typeArguments) {
945
+ typeAnnotation2.typeArguments = typeAnnotation?.sortedTypeKey;
946
+ }
947
+ return JSON.stringify(typeAnnotation1) === JSON.stringify(typeAnnotation2);
948
+ }
949
+ // 是否是系统类型
950
+ isSystemType() {
951
+ return ['nasl.ui', 'nasl.auth', 'nasl.http', 'nasl.process'].includes(this.typeNamespace);
952
+ }
953
+ // 是否包含系统类型
954
+ hasSystemType(app, structureCache = new Set()) {
955
+ // 遍历子节点
956
+ const traverseChild = (item, cb) => {
957
+ // cb 返回 false 则终止遍历
958
+ const res = cb(item);
959
+ if (res === false)
960
+ return true;
961
+ if (item && item.concept === 'TypeAnnotation') {
962
+ if (item.typeKind === 'anonymousStructure') {
963
+ return item.properties.some((prop) => traverseChild(prop.typeAnnotation, cb));
964
+ }
965
+ if (item.typeArguments && ['generic', 'union'].includes(item.typeKind)) {
966
+ return item.typeArguments.some((arg) => traverseChild(arg, cb));
967
+ }
968
+ }
969
+ };
970
+ // hasSystemType 的最终结果
971
+ let result = false;
972
+ // 遍历所有的类型标注
973
+ traverseChild(this, (node) => {
974
+ // 回调函数 返回 false 则终止遍历,返回 true 则继续遍历
975
+ if (node.typeNamespace?.endsWith('.structures')) {
976
+ const structure = app.findNodeByCompleteName(`${node.typeNamespace}.${node.typeName}`);
977
+ // 处理循环引用
978
+ if (structureCache.has(structure)) {
979
+ return true;
980
+ }
981
+ structureCache.add(structure);
982
+ const res = structure?.properties.some((prop) => prop.typeAnnotation.hasSystemType(app, structureCache));
983
+ // 如果有系统类型,则终止遍历
984
+ if (res === true) {
985
+ result = true;
986
+ return false;
987
+ }
988
+ return true;
989
+ }
990
+ // 如果是系统类型,则终止遍历
991
+ if (node.isSystemType()) {
992
+ result = true;
993
+ return false;
994
+ }
995
+ });
996
+ return result;
997
+ }
998
+ };
999
+ __decorate([
1000
+ (0, decorators_1.property)('concept')
1001
+ ], TypeAnnotation.prototype, "concept", void 0);
1002
+ __decorate([
1003
+ (0, decorators_1.property)()
1004
+ ], TypeAnnotation.prototype, "typeKind", void 0);
1005
+ __decorate([
1006
+ (0, decorators_1.property)()
1007
+ ], TypeAnnotation.prototype, "typeNamespace", void 0);
1008
+ __decorate([
1009
+ (0, decorators_1.property)()
1010
+ ], TypeAnnotation.prototype, "typeName", void 0);
1011
+ __decorate([
1012
+ (0, decorators_1.property)({
1013
+ objectRef: 'TypeAnnotation',
1014
+ isArray: true,
1015
+ defaultValue: null,
1016
+ })
1017
+ ], TypeAnnotation.prototype, "typeArguments", void 0);
1018
+ __decorate([
1019
+ (0, decorators_1.property)({
1020
+ objectRef: 'TypeAnnotation',
1021
+ isArray: true,
1022
+ defaultValue: null,
1023
+ })
1024
+ ], TypeAnnotation.prototype, "returnType", void 0);
1025
+ __decorate([
1026
+ (0, decorators_1.property)()
1027
+ ], TypeAnnotation.prototype, "inferred", void 0);
1028
+ __decorate([
1029
+ (0, decorators_1.property)({
1030
+ objectRef: 'StructureProperty',
1031
+ isArray: true,
1032
+ defaultValue: null,
1033
+ })
1034
+ ], TypeAnnotation.prototype, "properties", void 0);
1035
+ __decorate([
1036
+ (0, decorators_1.property)()
1037
+ ], TypeAnnotation.prototype, "ruleMap", void 0);
1038
+ __decorate([
1039
+ (0, translator_1.withSourceMap)()
1040
+ ], TypeAnnotation.prototype, "toEmbeddedTS", null);
1041
+ __decorate([
1042
+ (0, translator_1.withSourceMap)()
1043
+ ], TypeAnnotation.prototype, "toNaturalTS", null);
1044
+ TypeAnnotation = TypeAnnotation_1 = __decorate([
1045
+ decorators_1.className,
1046
+ (0, decorators_1.concept)('类型标注')
1047
+ // @ts-ignore
1048
+ ], TypeAnnotation);
1049
+ exports.TypeAnnotation = TypeAnnotation;
1050
+ exports.default = TypeAnnotation;
1051
+ //================================================================================
1052
+ // ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
1053
+ // 自动生成的代码已结束。下面可以手动编写。
1054
+ //================================================================================
1026
1055
  //# sourceMappingURL=TypeAnnotation__.js.map