@lcap/nasl 3.3.0-alpha.2 → 3.3.0-beta.0

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 (838) hide show
  1. package/out/automate/upgrader/2.20.js.map +1 -1
  2. package/out/bak/translator.js +55 -1
  3. package/out/bak/translator.js.map +1 -1
  4. package/out/breakpoint/generator/AfterStartNode.js +2 -1
  5. package/out/breakpoint/generator/AfterStartNode.js.map +1 -1
  6. package/out/breakpoint/generator/BeforeEndNode.js +2 -1
  7. package/out/breakpoint/generator/BeforeEndNode.js.map +1 -1
  8. package/out/breakpoint/generator/BreakpointNode.js +30 -9
  9. package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
  10. package/out/breakpoint/shared/constants.d.ts +1 -0
  11. package/out/breakpoint/shared/constants.js +7 -1
  12. package/out/breakpoint/shared/constants.js.map +1 -1
  13. package/out/breakpoint/shared/utils.d.ts +3 -1
  14. package/out/breakpoint/shared/utils.js +24 -5
  15. package/out/breakpoint/shared/utils.js.map +1 -1
  16. package/out/common/BaseNode.d.ts +21 -8
  17. package/out/common/BaseNode.js +115 -69
  18. package/out/common/BaseNode.js.map +1 -1
  19. package/out/common/Command.d.ts +1 -0
  20. package/out/common/Command.js +15 -2
  21. package/out/common/Command.js.map +1 -1
  22. package/out/common/EventEmitter.d.ts +1 -1
  23. package/out/common/EventEmitter.js +1 -3
  24. package/out/common/EventEmitter.js.map +1 -1
  25. package/out/common/index.d.ts +0 -1
  26. package/out/common/index.js +0 -1
  27. package/out/common/index.js.map +1 -1
  28. package/out/concepts/Abort__.d.ts +3 -2
  29. package/out/concepts/Abort__.js +15 -18
  30. package/out/concepts/Abort__.js.map +1 -1
  31. package/out/concepts/Anchor__.d.ts +3 -3
  32. package/out/concepts/Anchor__.js +18 -35
  33. package/out/concepts/Anchor__.js.map +1 -1
  34. package/out/concepts/AnonymousFunction__.d.ts +3 -3
  35. package/out/concepts/AnonymousFunction__.js +29 -53
  36. package/out/concepts/AnonymousFunction__.js.map +1 -1
  37. package/out/concepts/App__.d.ts +160 -157
  38. package/out/concepts/App__.js +106 -80
  39. package/out/concepts/App__.js.map +1 -1
  40. package/out/concepts/Argument__.d.ts +3 -3
  41. package/out/concepts/Argument__.js +22 -42
  42. package/out/concepts/Argument__.js.map +1 -1
  43. package/out/concepts/Assignee__.d.ts +3 -2
  44. package/out/concepts/Assignee__.js +19 -21
  45. package/out/concepts/Assignee__.js.map +1 -1
  46. package/out/concepts/AssignmentLine__.d.ts +3 -2
  47. package/out/concepts/AssignmentLine__.js +15 -17
  48. package/out/concepts/AssignmentLine__.js.map +1 -1
  49. package/out/concepts/Assignment__.d.ts +3 -3
  50. package/out/concepts/Assignment__.js +34 -42
  51. package/out/concepts/Assignment__.js.map +1 -1
  52. package/out/concepts/Attribute__.d.ts +3 -2
  53. package/out/concepts/Attribute__.js +36 -28
  54. package/out/concepts/Attribute__.js.map +1 -1
  55. package/out/concepts/AuthInterface__.d.ts +4 -3
  56. package/out/concepts/AuthInterface__.js +16 -17
  57. package/out/concepts/AuthInterface__.js.map +1 -1
  58. package/out/concepts/AuthLogicForCallInterface__.d.ts +4 -3
  59. package/out/concepts/AuthLogicForCallInterface__.js +37 -27
  60. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  61. package/out/concepts/AuthLogic__.d.ts +4 -3
  62. package/out/concepts/AuthLogic__.js +18 -19
  63. package/out/concepts/AuthLogic__.js.map +1 -1
  64. package/out/concepts/BackendVariable__.d.ts +8 -7
  65. package/out/concepts/BackendVariable__.js +39 -34
  66. package/out/concepts/BackendVariable__.js.map +1 -1
  67. package/out/concepts/Backend__.d.ts +32 -31
  68. package/out/concepts/Backend__.js +23 -22
  69. package/out/concepts/Backend__.js.map +1 -1
  70. package/out/concepts/BatchAssignment__.d.ts +3 -3
  71. package/out/concepts/BatchAssignment__.js +46 -54
  72. package/out/concepts/BatchAssignment__.js.map +1 -1
  73. package/out/concepts/BinaryExpression__.d.ts +3 -3
  74. package/out/concepts/BinaryExpression__.js +30 -62
  75. package/out/concepts/BinaryExpression__.js.map +1 -1
  76. package/out/concepts/BindAttribute__.d.ts +13 -8
  77. package/out/concepts/BindAttribute__.js +137 -83
  78. package/out/concepts/BindAttribute__.js.map +1 -1
  79. package/out/concepts/BindDirective__.d.ts +5 -3
  80. package/out/concepts/BindDirective__.js +34 -28
  81. package/out/concepts/BindDirective__.js.map +1 -1
  82. package/out/concepts/BindEvent__.d.ts +5 -4
  83. package/out/concepts/BindEvent__.js +92 -108
  84. package/out/concepts/BindEvent__.js.map +1 -1
  85. package/out/concepts/BindStyle__.d.ts +5 -3
  86. package/out/concepts/BindStyle__.js +24 -23
  87. package/out/concepts/BindStyle__.js.map +1 -1
  88. package/out/concepts/BooleanLiteral__.d.ts +3 -3
  89. package/out/concepts/BooleanLiteral__.js +17 -24
  90. package/out/concepts/BooleanLiteral__.js.map +1 -1
  91. package/out/concepts/CallAuthInterface__.d.ts +3 -2
  92. package/out/concepts/CallAuthInterface__.js +17 -19
  93. package/out/concepts/CallAuthInterface__.js.map +1 -1
  94. package/out/concepts/CallConnector__.d.ts +5 -4
  95. package/out/concepts/CallConnector__.js +41 -34
  96. package/out/concepts/CallConnector__.js.map +1 -1
  97. package/out/concepts/CallFunction__.d.ts +3 -3
  98. package/out/concepts/CallFunction__.js +33 -71
  99. package/out/concepts/CallFunction__.js.map +1 -1
  100. package/out/concepts/CallInterface__.d.ts +3 -3
  101. package/out/concepts/CallInterface__.js +26 -57
  102. package/out/concepts/CallInterface__.js.map +1 -1
  103. package/out/concepts/CallLogic__.d.ts +6 -6
  104. package/out/concepts/CallLogic__.js +167 -155
  105. package/out/concepts/CallLogic__.js.map +1 -1
  106. package/out/concepts/CallQueryComponent__.d.ts +4 -3
  107. package/out/concepts/CallQueryComponent__.js +57 -41
  108. package/out/concepts/CallQueryComponent__.js.map +1 -1
  109. package/out/concepts/Comment__.d.ts +3 -3
  110. package/out/concepts/Comment__.js +17 -24
  111. package/out/concepts/Comment__.js.map +1 -1
  112. package/out/concepts/CompletionProperty__.d.ts +3 -2
  113. package/out/concepts/CompletionProperty__.js +30 -25
  114. package/out/concepts/CompletionProperty__.js.map +1 -1
  115. package/out/concepts/ConfigGroup__.d.ts +3 -2
  116. package/out/concepts/ConfigGroup__.js +21 -20
  117. package/out/concepts/ConfigGroup__.js.map +1 -1
  118. package/out/concepts/ConfigPropertyValue__.d.ts +3 -2
  119. package/out/concepts/ConfigPropertyValue__.js +16 -16
  120. package/out/concepts/ConfigPropertyValue__.js.map +1 -1
  121. package/out/concepts/ConfigProperty__.d.ts +3 -2
  122. package/out/concepts/ConfigProperty__.js +26 -23
  123. package/out/concepts/ConfigProperty__.js.map +1 -1
  124. package/out/concepts/Configuration__.d.ts +3 -2
  125. package/out/concepts/Configuration__.js +16 -18
  126. package/out/concepts/Configuration__.js.map +1 -1
  127. package/out/concepts/Connection__.d.ts +4 -4
  128. package/out/concepts/Connection__.js +31 -28
  129. package/out/concepts/Connection__.js.map +1 -1
  130. package/out/concepts/ConnectorTrigger__.d.ts +7 -6
  131. package/out/concepts/ConnectorTrigger__.js +22 -21
  132. package/out/concepts/ConnectorTrigger__.js.map +1 -1
  133. package/out/concepts/Connector__.d.ts +139 -33
  134. package/out/concepts/Connector__.js +191 -34
  135. package/out/concepts/Connector__.js.map +1 -1
  136. package/out/concepts/Constant__.d.ts +3 -2
  137. package/out/concepts/Constant__.js +25 -23
  138. package/out/concepts/Constant__.js.map +1 -1
  139. package/out/concepts/DataSource__.d.ts +7 -2
  140. package/out/concepts/DataSource__.js +31 -23
  141. package/out/concepts/DataSource__.js.map +1 -1
  142. package/out/concepts/DatabaseTypeAnnotation__.d.ts +5 -4
  143. package/out/concepts/DatabaseTypeAnnotation__.js +18 -18
  144. package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -1
  145. package/out/concepts/Destination__.d.ts +11 -11
  146. package/out/concepts/Destination__.js +39 -89
  147. package/out/concepts/Destination__.js.map +1 -1
  148. package/out/concepts/End__.d.ts +3 -2
  149. package/out/concepts/End__.js +15 -17
  150. package/out/concepts/End__.js.map +1 -1
  151. package/out/concepts/EntityIndex__.d.ts +4 -3
  152. package/out/concepts/EntityIndex__.js +23 -21
  153. package/out/concepts/EntityIndex__.js.map +1 -1
  154. package/out/concepts/EntityProperty__.d.ts +4 -4
  155. package/out/concepts/EntityProperty__.js +51 -67
  156. package/out/concepts/EntityProperty__.js.map +1 -1
  157. package/out/concepts/Entity__.d.ts +3 -3
  158. package/out/concepts/Entity__.js +32 -51
  159. package/out/concepts/Entity__.js.map +1 -1
  160. package/out/concepts/EnumItem__.d.ts +3 -3
  161. package/out/concepts/EnumItem__.js +19 -25
  162. package/out/concepts/EnumItem__.js.map +1 -1
  163. package/out/concepts/Enum__.d.ts +3 -3
  164. package/out/concepts/Enum__.js +23 -35
  165. package/out/concepts/Enum__.js.map +1 -1
  166. package/out/concepts/Event__.d.ts +3 -2
  167. package/out/concepts/Event__.js +24 -21
  168. package/out/concepts/Event__.js.map +1 -1
  169. package/out/concepts/ExternalDestination__.d.ts +6 -5
  170. package/out/concepts/ExternalDestination__.js +25 -25
  171. package/out/concepts/ExternalDestination__.js.map +1 -1
  172. package/out/concepts/ForEachStatement__.d.ts +3 -3
  173. package/out/concepts/ForEachStatement__.js +46 -95
  174. package/out/concepts/ForEachStatement__.js.map +1 -1
  175. package/out/concepts/FrontendLibrary__.d.ts +4 -3
  176. package/out/concepts/FrontendLibrary__.js +27 -25
  177. package/out/concepts/FrontendLibrary__.js.map +1 -1
  178. package/out/concepts/FrontendVariable__.d.ts +4 -3
  179. package/out/concepts/FrontendVariable__.js +12 -12
  180. package/out/concepts/FrontendVariable__.js.map +1 -1
  181. package/out/concepts/Frontend__.d.ts +8 -6
  182. package/out/concepts/Frontend__.js +47 -39
  183. package/out/concepts/Frontend__.js.map +1 -1
  184. package/out/concepts/Function__.d.ts +3 -3
  185. package/out/concepts/Function__.js +37 -60
  186. package/out/concepts/Function__.js.map +1 -1
  187. package/out/concepts/Identifier__.d.ts +4 -3
  188. package/out/concepts/Identifier__.js +30 -29
  189. package/out/concepts/Identifier__.js.map +1 -1
  190. package/out/concepts/IfStatement__.d.ts +3 -3
  191. package/out/concepts/IfStatement__.js +21 -51
  192. package/out/concepts/IfStatement__.js.map +1 -1
  193. package/out/concepts/Integration__.d.ts +93 -2
  194. package/out/concepts/Integration__.js +157 -19
  195. package/out/concepts/Integration__.js.map +1 -1
  196. package/out/concepts/InterfaceParam__.d.ts +30 -4
  197. package/out/concepts/InterfaceParam__.js +58 -24
  198. package/out/concepts/InterfaceParam__.js.map +1 -1
  199. package/out/concepts/Interface__.d.ts +31 -5
  200. package/out/concepts/Interface__.js +89 -34
  201. package/out/concepts/Interface__.js.map +1 -1
  202. package/out/concepts/JSBlock__.d.ts +3 -3
  203. package/out/concepts/JSBlock__.js +17 -24
  204. package/out/concepts/JSBlock__.js.map +1 -1
  205. package/out/concepts/JavaLogic__.d.ts +4 -3
  206. package/out/concepts/JavaLogic__.js +22 -21
  207. package/out/concepts/JavaLogic__.js.map +1 -1
  208. package/out/concepts/LogicItem__.d.ts +3 -8
  209. package/out/concepts/LogicItem__.js +23 -30
  210. package/out/concepts/LogicItem__.js.map +1 -1
  211. package/out/concepts/Logic__.d.ts +17 -18
  212. package/out/concepts/Logic__.js +113 -178
  213. package/out/concepts/Logic__.js.map +1 -1
  214. package/out/concepts/MatchCase__.d.ts +3 -3
  215. package/out/concepts/MatchCase__.js +23 -110
  216. package/out/concepts/MatchCase__.js.map +1 -1
  217. package/out/concepts/Match__.d.ts +3 -3
  218. package/out/concepts/Match__.js +20 -64
  219. package/out/concepts/Match__.js.map +1 -1
  220. package/out/concepts/MemberExpression__.d.ts +4 -3
  221. package/out/concepts/MemberExpression__.js +167 -46
  222. package/out/concepts/MemberExpression__.js.map +1 -1
  223. package/out/concepts/MicroApp__.d.ts +3 -2
  224. package/out/concepts/MicroApp__.js +26 -21
  225. package/out/concepts/MicroApp__.js.map +1 -1
  226. package/out/concepts/Module__.d.ts +220 -48
  227. package/out/concepts/Module__.js +265 -66
  228. package/out/concepts/Module__.js.map +1 -1
  229. package/out/concepts/MsgTriggerEvent__.d.ts +4 -3
  230. package/out/concepts/MsgTriggerEvent__.js +16 -18
  231. package/out/concepts/MsgTriggerEvent__.js.map +1 -1
  232. package/out/concepts/MsgTriggerLauncher__.d.ts +4 -3
  233. package/out/concepts/MsgTriggerLauncher__.js +18 -19
  234. package/out/concepts/MsgTriggerLauncher__.js.map +1 -1
  235. package/out/concepts/Namespace__.d.ts +4 -2
  236. package/out/concepts/Namespace__.js +64 -46
  237. package/out/concepts/Namespace__.js.map +1 -1
  238. package/out/concepts/NewComposite__.d.ts +4 -3
  239. package/out/concepts/NewComposite__.js +71 -133
  240. package/out/concepts/NewComposite__.js.map +1 -1
  241. package/out/concepts/NewList__.d.ts +5 -4
  242. package/out/concepts/NewList__.js +35 -41
  243. package/out/concepts/NewList__.js.map +1 -1
  244. package/out/concepts/NewMap__.d.ts +5 -4
  245. package/out/concepts/NewMap__.js +39 -38
  246. package/out/concepts/NewMap__.js.map +1 -1
  247. package/out/concepts/New__.d.ts +3 -2
  248. package/out/concepts/New__.js +15 -17
  249. package/out/concepts/New__.js.map +1 -1
  250. package/out/concepts/NullLiteral__.d.ts +3 -2
  251. package/out/concepts/NullLiteral__.js +15 -17
  252. package/out/concepts/NullLiteral__.js.map +1 -1
  253. package/out/concepts/NumericLiteral__.d.ts +3 -3
  254. package/out/concepts/NumericLiteral__.js +21 -27
  255. package/out/concepts/NumericLiteral__.js.map +1 -1
  256. package/out/concepts/OqlQueryComponent__.d.ts +3 -3
  257. package/out/concepts/OqlQueryComponent__.js +26 -30
  258. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  259. package/out/concepts/OverriddenLogic__.d.ts +14 -22
  260. package/out/concepts/OverriddenLogic__.js +73 -62
  261. package/out/concepts/OverriddenLogic__.js.map +1 -1
  262. package/out/concepts/Param__.d.ts +3 -3
  263. package/out/concepts/Param__.js +34 -69
  264. package/out/concepts/Param__.js.map +1 -1
  265. package/out/concepts/Point__.d.ts +3 -2
  266. package/out/concepts/Point__.js +16 -16
  267. package/out/concepts/Point__.js.map +1 -1
  268. package/out/concepts/ProcessComponent__.d.ts +3 -2
  269. package/out/concepts/ProcessComponent__.js +24 -22
  270. package/out/concepts/ProcessComponent__.js.map +1 -1
  271. package/out/concepts/ProcessElement__.d.ts +3 -2
  272. package/out/concepts/ProcessElement__.js +61 -46
  273. package/out/concepts/ProcessElement__.js.map +1 -1
  274. package/out/concepts/ProcessOutcome__.d.ts +3 -2
  275. package/out/concepts/ProcessOutcome__.js +17 -18
  276. package/out/concepts/ProcessOutcome__.js.map +1 -1
  277. package/out/concepts/ProcessOutcomes__.d.ts +3 -2
  278. package/out/concepts/ProcessOutcomes__.js +15 -17
  279. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  280. package/out/concepts/Process__.d.ts +5 -7
  281. package/out/concepts/Process__.js +46 -35
  282. package/out/concepts/Process__.js.map +1 -1
  283. package/out/concepts/QueryAggregateExpression__.d.ts +3 -2
  284. package/out/concepts/QueryAggregateExpression__.js +23 -22
  285. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  286. package/out/concepts/QueryFieldExpression__.d.ts +4 -3
  287. package/out/concepts/QueryFieldExpression__.js +21 -20
  288. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  289. package/out/concepts/QueryFromExpression__.d.ts +4 -3
  290. package/out/concepts/QueryFromExpression__.js +23 -22
  291. package/out/concepts/QueryFromExpression__.js.map +1 -1
  292. package/out/concepts/QueryGroupByExpression__.d.ts +3 -2
  293. package/out/concepts/QueryGroupByExpression__.js +18 -19
  294. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  295. package/out/concepts/QueryJoinExpression__.d.ts +4 -3
  296. package/out/concepts/QueryJoinExpression__.js +29 -25
  297. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  298. package/out/concepts/QueryLimitExpression__.d.ts +3 -2
  299. package/out/concepts/QueryLimitExpression__.js +22 -22
  300. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  301. package/out/concepts/QueryOrderByExpression__.d.ts +3 -2
  302. package/out/concepts/QueryOrderByExpression__.js +22 -22
  303. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  304. package/out/concepts/QuerySelectExpression__.d.ts +3 -2
  305. package/out/concepts/QuerySelectExpression__.js +23 -21
  306. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  307. package/out/concepts/Rect__.d.ts +3 -2
  308. package/out/concepts/Rect__.js +20 -18
  309. package/out/concepts/Rect__.js.map +1 -1
  310. package/out/concepts/Return__.d.ts +3 -3
  311. package/out/concepts/Return__.js +29 -45
  312. package/out/concepts/Return__.js.map +1 -1
  313. package/out/concepts/Role__.d.ts +3 -2
  314. package/out/concepts/Role__.js +22 -21
  315. package/out/concepts/Role__.js.map +1 -1
  316. package/out/concepts/SelectMembers__.d.ts +3 -2
  317. package/out/concepts/SelectMembers__.js +20 -21
  318. package/out/concepts/SelectMembers__.js.map +1 -1
  319. package/out/concepts/Slot__.d.ts +3 -2
  320. package/out/concepts/Slot__.js +26 -22
  321. package/out/concepts/Slot__.js.map +1 -1
  322. package/out/concepts/SqlQueryComponent__.d.ts +3 -3
  323. package/out/concepts/SqlQueryComponent__.js +28 -31
  324. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  325. package/out/concepts/Start__.d.ts +3 -2
  326. package/out/concepts/Start__.js +15 -17
  327. package/out/concepts/Start__.js.map +1 -1
  328. package/out/concepts/StringInterpolation__.d.ts +3 -3
  329. package/out/concepts/StringInterpolation__.js +17 -37
  330. package/out/concepts/StringInterpolation__.js.map +1 -1
  331. package/out/concepts/StringLiteral__.d.ts +3 -3
  332. package/out/concepts/StringLiteral__.js +14 -22
  333. package/out/concepts/StringLiteral__.js.map +1 -1
  334. package/out/concepts/StructureProperty__.d.ts +5 -5
  335. package/out/concepts/StructureProperty__.js +33 -40
  336. package/out/concepts/StructureProperty__.js.map +1 -1
  337. package/out/concepts/Structure__.d.ts +3 -12
  338. package/out/concepts/Structure__.js +45 -46
  339. package/out/concepts/Structure__.js.map +1 -1
  340. package/out/concepts/SwitchCase__.d.ts +3 -3
  341. package/out/concepts/SwitchCase__.js +19 -54
  342. package/out/concepts/SwitchCase__.js.map +1 -1
  343. package/out/concepts/SwitchStatement__.d.ts +3 -3
  344. package/out/concepts/SwitchStatement__.js +23 -39
  345. package/out/concepts/SwitchStatement__.js.map +1 -1
  346. package/out/concepts/Theme__.d.ts +3 -2
  347. package/out/concepts/Theme__.js +12 -14
  348. package/out/concepts/Theme__.js.map +1 -1
  349. package/out/concepts/Transactional__.d.ts +3 -2
  350. package/out/concepts/Transactional__.js +18 -17
  351. package/out/concepts/Transactional__.js.map +1 -1
  352. package/out/concepts/TriggerEvent__.d.ts +3 -2
  353. package/out/concepts/TriggerEvent__.js +19 -18
  354. package/out/concepts/TriggerEvent__.js.map +1 -1
  355. package/out/concepts/TriggerLauncher__.d.ts +6 -17
  356. package/out/concepts/TriggerLauncher__.js +26 -63
  357. package/out/concepts/TriggerLauncher__.js.map +1 -1
  358. package/out/concepts/TypeAnnotation__.d.ts +12 -9
  359. package/out/concepts/TypeAnnotation__.js +164 -146
  360. package/out/concepts/TypeAnnotation__.js.map +1 -1
  361. package/out/concepts/TypeParam__.d.ts +3 -3
  362. package/out/concepts/TypeParam__.js +16 -23
  363. package/out/concepts/TypeParam__.js.map +1 -1
  364. package/out/concepts/UnaryExpression__.d.ts +3 -3
  365. package/out/concepts/UnaryExpression__.js +21 -39
  366. package/out/concepts/UnaryExpression__.js.map +1 -1
  367. package/out/concepts/Unparsed__.d.ts +3 -3
  368. package/out/concepts/Unparsed__.js +16 -23
  369. package/out/concepts/Unparsed__.js.map +1 -1
  370. package/out/concepts/UseComponent__.d.ts +3 -2
  371. package/out/concepts/UseComponent__.js +16 -16
  372. package/out/concepts/UseComponent__.js.map +1 -1
  373. package/out/concepts/ValidationRule__.d.ts +3 -2
  374. package/out/concepts/ValidationRule__.js +45 -38
  375. package/out/concepts/ValidationRule__.js.map +1 -1
  376. package/out/concepts/Variable__.d.ts +3 -3
  377. package/out/concepts/Variable__.js +29 -45
  378. package/out/concepts/Variable__.js.map +1 -1
  379. package/out/concepts/ViewBlock__.d.ts +4 -3
  380. package/out/concepts/ViewBlock__.js +20 -19
  381. package/out/concepts/ViewBlock__.js.map +1 -1
  382. package/out/concepts/ViewComponent__.d.ts +32 -31
  383. package/out/concepts/ViewComponent__.js +35 -32
  384. package/out/concepts/ViewComponent__.js.map +1 -1
  385. package/out/concepts/ViewElement__.d.ts +17 -15
  386. package/out/concepts/ViewElement__.js +342 -174
  387. package/out/concepts/ViewElement__.js.map +1 -1
  388. package/out/concepts/View__.d.ts +11 -4
  389. package/out/concepts/View__.js +332 -125
  390. package/out/concepts/View__.js.map +1 -1
  391. package/out/concepts/WhileStatement__.d.ts +3 -3
  392. package/out/concepts/WhileStatement__.js +20 -41
  393. package/out/concepts/WhileStatement__.js.map +1 -1
  394. package/out/concepts/basics/stdlib/nasl.browser.js +1 -0
  395. package/out/concepts/basics/stdlib/nasl.browser.js.map +1 -1
  396. package/out/concepts/basics/stdlib/nasl.event.js +2 -0
  397. package/out/concepts/basics/stdlib/nasl.event.js.map +1 -1
  398. package/out/concepts/index__.d.ts +0 -1
  399. package/out/concepts/index__.js +0 -1
  400. package/out/concepts/index__.js.map +1 -1
  401. package/out/concepts/types__.d.ts +2 -2
  402. package/out/decorators/index.d.ts +2 -0
  403. package/out/decorators/index.js +12 -8
  404. package/out/decorators/index.js.map +1 -1
  405. package/out/generator/genBundleFiles.d.ts +2 -2
  406. package/out/generator/genBundleFiles.js +100 -4
  407. package/out/generator/genBundleFiles.js.map +1 -1
  408. package/out/generator/genReleaseBody.d.ts +4 -2
  409. package/out/generator/genReleaseBody.js +191 -135
  410. package/out/generator/genReleaseBody.js.map +1 -1
  411. package/out/generator/permission.js +3 -3
  412. package/out/generator/permission.js.map +1 -1
  413. package/out/index.d.ts +0 -1
  414. package/out/index.js +0 -1
  415. package/out/index.js.map +1 -1
  416. package/out/sentry/index.js +2 -2
  417. package/out/sentry/index.js.map +1 -1
  418. package/out/server/createUiTs.js +34 -1
  419. package/out/server/createUiTs.js.map +1 -1
  420. package/out/server/extendBaseNode.js +78 -53
  421. package/out/server/extendBaseNode.js.map +1 -1
  422. package/out/server/formatTsUtils.js +72 -73
  423. package/out/server/formatTsUtils.js.map +1 -1
  424. package/out/server/getConnector.d.ts +3 -0
  425. package/out/server/getConnector.js +38 -1
  426. package/out/server/getConnector.js.map +1 -1
  427. package/out/server/getLogics.js +20 -23
  428. package/out/server/getLogics.js.map +1 -1
  429. package/out/server/getMemberIdentifier.d.ts +1 -0
  430. package/out/server/getMemberIdentifier.js +148 -1
  431. package/out/server/getMemberIdentifier.js.map +1 -1
  432. package/out/server/index.js +2 -0
  433. package/out/server/index.js.map +1 -1
  434. package/out/server/naslServer.d.ts +17 -6
  435. package/out/server/naslServer.js +372 -232
  436. package/out/server/naslServer.js.map +1 -1
  437. package/out/server/translator.js +45 -37
  438. package/out/server/translator.js.map +1 -1
  439. package/out/service/creator/add.configs.js +26 -0
  440. package/out/service/creator/add.configs.js.map +1 -1
  441. package/out/service/creator/errHandles.js +5 -3
  442. package/out/service/creator/errHandles.js.map +1 -1
  443. package/out/service/creator/index.js +13 -0
  444. package/out/service/creator/index.js.map +1 -1
  445. package/out/service/defaultErrorMessage.json +6 -6
  446. package/out/service/storage/jsoner.js +1 -1
  447. package/out/service/storage/jsoner.js.map +1 -1
  448. package/out/templator/genCreateBlock.js +5 -3
  449. package/out/templator/genCreateBlock.js.map +1 -1
  450. package/out/templator/genCurdEditMultipleKeyBlock.js +15 -11
  451. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  452. package/out/templator/genCurdMultipleKeyBlock.js +10 -9
  453. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  454. package/out/templator/genEditTableBlock.d.ts +1 -1
  455. package/out/templator/genEditTableBlock.js +12 -6
  456. package/out/templator/genEditTableBlock.js.map +1 -1
  457. package/out/templator/genEnumSelectBlock.js +2 -2
  458. package/out/templator/genEnumSelectBlock.js.map +1 -1
  459. package/out/templator/genGetBlock.js +1 -1
  460. package/out/templator/genGetBlock.js.map +1 -1
  461. package/out/templator/genGridViewBlock.d.ts +2 -2
  462. package/out/templator/genGridViewBlock.js +20 -7
  463. package/out/templator/genGridViewBlock.js.map +1 -1
  464. package/out/templator/genListViewBlock.d.ts +2 -2
  465. package/out/templator/genListViewBlock.js +13 -5
  466. package/out/templator/genListViewBlock.js.map +1 -1
  467. package/out/templator/genSelectBlock.d.ts +2 -2
  468. package/out/templator/genSelectBlock.js +8 -6
  469. package/out/templator/genSelectBlock.js.map +1 -1
  470. package/out/templator/genTableBlock.d.ts +1 -1
  471. package/out/templator/genTableBlock.js +11 -6
  472. package/out/templator/genTableBlock.js.map +1 -1
  473. package/out/templator/genUpdateBlock.js +5 -3
  474. package/out/templator/genUpdateBlock.js.map +1 -1
  475. package/out/translator/constant.d.ts +6 -0
  476. package/out/translator/constant.js +10 -0
  477. package/out/translator/constant.js.map +1 -0
  478. package/out/translator/index.d.ts +3 -48
  479. package/out/translator/index.js +17 -110
  480. package/out/translator/index.js.map +1 -1
  481. package/out/translator/types.d.ts +32 -0
  482. package/out/translator/{tsp.js → types.js} +1 -1
  483. package/out/translator/types.js.map +1 -0
  484. package/out/translator/utils.d.ts +17 -0
  485. package/out/translator/utils.js +102 -0
  486. package/out/translator/utils.js.map +1 -0
  487. package/out/utils/cookie.d.ts +9 -0
  488. package/out/utils/cookie.js +62 -0
  489. package/out/utils/cookie.js.map +1 -0
  490. package/out/utils/index.d.ts +2 -0
  491. package/out/utils/index.js +2 -0
  492. package/out/utils/index.js.map +1 -1
  493. package/out/utils/logger.d.ts +4 -0
  494. package/out/utils/logger.js +13 -1
  495. package/out/utils/logger.js.map +1 -1
  496. package/out/utils/types.d.ts +1 -0
  497. package/out/utils/types.js +3 -0
  498. package/out/utils/types.js.map +1 -0
  499. package/out/utils/window.d.ts +7 -0
  500. package/out/utils/window.js +14 -0
  501. package/out/utils/window.js.map +1 -0
  502. package/package.json +5 -10
  503. package/sandbox/stdlib/nasl.auth.ts +40 -44
  504. package/sandbox/stdlib/nasl.core.ts +8 -1
  505. package/sandbox/stdlib/nasl.http.ts +22 -22
  506. package/sandbox/stdlib/nasl.oql.ts +2 -0
  507. package/sandbox/stdlib/nasl.ui.definition.ts +2218 -1415
  508. package/src/automate/upgrader/2.20.js +17 -13
  509. package/src/bak/translator.js +53 -1
  510. package/src/breakpoint/generator/AfterStartNode.ts +2 -1
  511. package/src/breakpoint/generator/BeforeEndNode.ts +2 -1
  512. package/src/breakpoint/generator/BreakpointNode.ts +36 -9
  513. package/src/breakpoint/shared/constants.ts +7 -0
  514. package/src/breakpoint/shared/utils.ts +35 -4
  515. package/src/common/BaseNode.ts +140 -81
  516. package/src/common/Command.ts +14 -1
  517. package/src/common/EventEmitter.ts +2 -4
  518. package/src/common/index.ts +0 -1
  519. package/src/concepts/Abort__.ts +20 -22
  520. package/src/concepts/Anchor__.ts +23 -38
  521. package/src/concepts/AnonymousFunction__.ts +39 -63
  522. package/src/concepts/App__.ts +364 -314
  523. package/src/concepts/Argument__.ts +27 -44
  524. package/src/concepts/Assignee__.ts +41 -39
  525. package/src/concepts/AssignmentLine__.ts +20 -23
  526. package/src/concepts/Assignment__.ts +54 -58
  527. package/src/concepts/Attribute__.ts +40 -34
  528. package/src/concepts/AuthInterface__.ts +22 -24
  529. package/src/concepts/AuthLogicForCallInterface__.ts +71 -41
  530. package/src/concepts/AuthLogic__.ts +21 -30
  531. package/src/concepts/BackendVariable__.ts +55 -54
  532. package/src/concepts/Backend__.ts +58 -59
  533. package/src/concepts/BatchAssignment__.ts +88 -78
  534. package/src/concepts/BinaryExpression__.ts +72 -66
  535. package/src/concepts/BindAttribute__.ts +148 -103
  536. package/src/concepts/BindDirective__.ts +45 -41
  537. package/src/concepts/BindEvent__.ts +120 -149
  538. package/src/concepts/BindStyle__.ts +37 -36
  539. package/src/concepts/BooleanLiteral__.ts +22 -28
  540. package/src/concepts/CallAuthInterface__.ts +29 -32
  541. package/src/concepts/CallConnector__.ts +50 -41
  542. package/src/concepts/CallFunction__.ts +45 -77
  543. package/src/concepts/CallInterface__.ts +36 -68
  544. package/src/concepts/CallLogic__.ts +204 -195
  545. package/src/concepts/CallQueryComponent__.ts +156 -88
  546. package/src/concepts/Comment__.ts +22 -29
  547. package/src/concepts/CompletionProperty__.ts +34 -30
  548. package/src/concepts/ConfigGroup__.ts +28 -29
  549. package/src/concepts/ConfigPropertyValue__.ts +22 -23
  550. package/src/concepts/ConfigProperty__.ts +42 -36
  551. package/src/concepts/Configuration__.ts +23 -26
  552. package/src/concepts/Connection__.ts +40 -41
  553. package/src/concepts/ConnectorTrigger__.ts +30 -34
  554. package/src/concepts/Connector__.ts +342 -87
  555. package/src/concepts/Constant__.ts +30 -36
  556. package/src/concepts/DataSource__.ts +37 -33
  557. package/src/concepts/DatabaseTypeAnnotation__.ts +24 -24
  558. package/src/concepts/Destination__.ts +51 -104
  559. package/src/concepts/End__.ts +23 -25
  560. package/src/concepts/EntityIndex__.ts +36 -33
  561. package/src/concepts/EntityProperty__.ts +64 -84
  562. package/src/concepts/Entity__.ts +41 -67
  563. package/src/concepts/EnumItem__.ts +24 -32
  564. package/src/concepts/Enum__.ts +28 -42
  565. package/src/concepts/Event__.ts +33 -33
  566. package/src/concepts/ExternalDestination__.ts +29 -29
  567. package/src/concepts/ForEachStatement__.ts +64 -114
  568. package/src/concepts/FrontendLibrary__.ts +37 -38
  569. package/src/concepts/FrontendVariable__.ts +18 -20
  570. package/src/concepts/Frontend__.ts +66 -62
  571. package/src/concepts/Function__.ts +54 -80
  572. package/src/concepts/Identifier__.ts +37 -34
  573. package/src/concepts/IfStatement__.ts +40 -77
  574. package/src/concepts/Integration__.ts +244 -24
  575. package/src/concepts/InterfaceParam__.ts +69 -33
  576. package/src/concepts/Interface__.ts +104 -46
  577. package/src/concepts/JSBlock__.ts +22 -28
  578. package/src/concepts/JavaLogic__.ts +27 -26
  579. package/src/concepts/LogicItem__.ts +29 -47
  580. package/src/concepts/Logic__.ts +168 -213
  581. package/src/concepts/MatchCase__.ts +38 -128
  582. package/src/concepts/Match__.ts +28 -73
  583. package/src/concepts/MemberExpression__.ts +197 -54
  584. package/src/concepts/MicroApp__.ts +32 -27
  585. package/src/concepts/Module__.ts +567 -164
  586. package/src/concepts/MsgTriggerEvent__.ts +25 -33
  587. package/src/concepts/MsgTriggerLauncher__.ts +27 -30
  588. package/src/concepts/Namespace__.ts +109 -99
  589. package/src/concepts/NewComposite__.ts +130 -161
  590. package/src/concepts/NewList__.ts +45 -51
  591. package/src/concepts/NewMap__.ts +51 -48
  592. package/src/concepts/New__.ts +20 -22
  593. package/src/concepts/NullLiteral__.ts +20 -22
  594. package/src/concepts/NumericLiteral__.ts +26 -31
  595. package/src/concepts/OqlQueryComponent__.ts +33 -34
  596. package/src/concepts/OverriddenLogic__.ts +128 -94
  597. package/src/concepts/Param__.ts +51 -90
  598. package/src/concepts/Point__.ts +22 -22
  599. package/src/concepts/ProcessComponent__.ts +36 -37
  600. package/src/concepts/ProcessElement__.ts +114 -86
  601. package/src/concepts/ProcessOutcome__.ts +22 -23
  602. package/src/concepts/ProcessOutcomes__.ts +20 -22
  603. package/src/concepts/Process__.ts +69 -63
  604. package/src/concepts/QueryAggregateExpression__.ts +28 -27
  605. package/src/concepts/QueryFieldExpression__.ts +26 -25
  606. package/src/concepts/QueryFromExpression__.ts +29 -28
  607. package/src/concepts/QueryGroupByExpression__.ts +22 -23
  608. package/src/concepts/QueryJoinExpression__.ts +62 -41
  609. package/src/concepts/QueryLimitExpression__.ts +27 -27
  610. package/src/concepts/QueryOrderByExpression__.ts +27 -27
  611. package/src/concepts/QuerySelectExpression__.ts +105 -54
  612. package/src/concepts/Rect__.ts +26 -24
  613. package/src/concepts/Return__.ts +42 -67
  614. package/src/concepts/Role__.ts +25 -25
  615. package/src/concepts/SelectMembers__.ts +30 -32
  616. package/src/concepts/Slot__.ts +32 -30
  617. package/src/concepts/SqlQueryComponent__.ts +41 -37
  618. package/src/concepts/Start__.ts +20 -22
  619. package/src/concepts/StringInterpolation__.ts +25 -45
  620. package/src/concepts/StringLiteral__.ts +19 -26
  621. package/src/concepts/StructureProperty__.ts +38 -47
  622. package/src/concepts/Structure__.ts +55 -58
  623. package/src/concepts/SwitchCase__.ts +40 -74
  624. package/src/concepts/SwitchStatement__.ts +29 -44
  625. package/src/concepts/Theme__.ts +18 -21
  626. package/src/concepts/Transactional__.ts +24 -31
  627. package/src/concepts/TriggerEvent__.ts +28 -29
  628. package/src/concepts/TriggerLauncher__.ts +32 -82
  629. package/src/concepts/TypeAnnotation__.ts +214 -200
  630. package/src/concepts/TypeParam__.ts +21 -28
  631. package/src/concepts/UnaryExpression__.ts +26 -45
  632. package/src/concepts/Unparsed__.ts +20 -25
  633. package/src/concepts/UseComponent__.ts +22 -22
  634. package/src/concepts/ValidationRule__.ts +62 -48
  635. package/src/concepts/Variable__.ts +43 -67
  636. package/src/concepts/ViewBlock__.ts +26 -25
  637. package/src/concepts/ViewComponent__.ts +87 -91
  638. package/src/concepts/ViewElement__.ts +483 -277
  639. package/src/concepts/View__.ts +401 -180
  640. package/src/concepts/WhileStatement__.ts +36 -59
  641. package/src/concepts/basics/stdlib/nasl.browser.ts +1 -0
  642. package/src/concepts/basics/stdlib/nasl.event.ts +2 -0
  643. package/src/concepts/index__.ts +0 -1
  644. package/src/concepts/types__.ts +124 -124
  645. package/src/decorators/index.ts +11 -7
  646. package/src/generator/genBundleFiles.ts +104 -4
  647. package/src/generator/genReleaseBody.ts +197 -181
  648. package/src/generator/permission.ts +3 -3
  649. package/src/index.ts +0 -1
  650. package/src/sentry/index.ts +2 -2
  651. package/src/server/createUiTs.ts +30 -1
  652. package/src/server/extendBaseNode.ts +81 -55
  653. package/src/server/formatTsUtils.ts +64 -75
  654. package/src/server/getConnector.ts +63 -27
  655. package/src/server/getLogics.ts +23 -30
  656. package/src/server/getMemberIdentifier.ts +142 -0
  657. package/src/server/index.ts +4 -1
  658. package/src/server/naslServer.ts +367 -250
  659. package/src/server/translator.ts +41 -42
  660. package/src/service/creator/add.configs.js +26 -1
  661. package/src/service/creator/errHandles.js +5 -4
  662. package/src/service/creator/index.js +12 -0
  663. package/src/service/defaultErrorMessage.json +6 -6
  664. package/src/service/storage/jsoner.ts +1 -1
  665. package/src/templator/genCreateBlock.ts +5 -3
  666. package/src/templator/genCurdEditMultipleKeyBlock.ts +15 -11
  667. package/src/templator/genCurdMultipleKeyBlock.ts +10 -9
  668. package/src/templator/genEditTableBlock.ts +12 -7
  669. package/src/templator/genEnumSelectBlock.ts +2 -2
  670. package/src/templator/genGetBlock.ts +6 -6
  671. package/src/templator/genGridViewBlock.ts +22 -9
  672. package/src/templator/genListViewBlock.ts +14 -5
  673. package/src/templator/genSelectBlock.ts +8 -6
  674. package/src/templator/genTableBlock.ts +11 -10
  675. package/src/templator/genUpdateBlock.ts +5 -3
  676. package/src/translator/constant.ts +7 -0
  677. package/src/translator/index.ts +3 -137
  678. package/src/translator/types.ts +40 -0
  679. package/src/translator/utils.ts +104 -0
  680. package/src/utils/cookie.ts +60 -0
  681. package/src/utils/index.ts +2 -0
  682. package/src/utils/logger.ts +13 -0
  683. package/src/utils/types.ts +1 -0
  684. package/src/utils/window.ts +9 -0
  685. package/test/concepts/boolean-literal/__snapshots__/toEmbeddedTS.spec.ts.snap +11 -0
  686. package/test/concepts/boolean-literal/__snapshots__/toJS.spec.ts.snap +11 -0
  687. package/test/concepts/boolean-literal/__snapshots__/toVue.spec.ts.snap +11 -0
  688. package/test/concepts/boolean-literal/constant.ts +5 -0
  689. package/test/concepts/boolean-literal/fixtures/false.json +4 -0
  690. package/test/concepts/boolean-literal/fixtures/true.json +4 -0
  691. package/test/concepts/boolean-literal/toEmbeddedTS.spec.ts +14 -0
  692. package/test/concepts/boolean-literal/toJS.spec.ts +14 -0
  693. package/test/concepts/boolean-literal/toVue.spec.ts +14 -0
  694. package/test/concepts/call-interface/toEmbeddedTS.spec.ts +6 -6
  695. package/test/concepts/call-interface/toJS.spec.ts +6 -6
  696. package/test/concepts/call-logic/__snapshots__/getQuickInfoOffset.spec.ts.snap +106 -0
  697. package/test/concepts/call-logic/__snapshots__/toEmbeddedTS.spec.ts.snap +45 -0
  698. package/test/concepts/call-logic/__snapshots__/toJS.spec.ts.snap +102 -0
  699. package/test/concepts/call-logic/fixtures/nested-call-logic.json +860 -0
  700. package/test/concepts/call-logic/getQuickInfoOffset.spec.ts +23 -0
  701. package/test/concepts/call-logic/toEmbeddedTS.spec.ts +6 -6
  702. package/test/concepts/call-logic/toJS.spec.ts +6 -6
  703. package/test/concepts/identifier/__snapshots__/toEmbeddedTS.spec.ts.snap +16 -0
  704. package/test/concepts/identifier/__snapshots__/toJS.spec.ts.snap +16 -0
  705. package/test/concepts/identifier/__snapshots__/toVue.spec.ts.snap +16 -0
  706. package/test/concepts/identifier/constant.ts +5 -0
  707. package/test/concepts/identifier/fixtures/data-source.json +5 -0
  708. package/test/concepts/identifier/fixtures/no-namespace.json +4 -0
  709. package/test/concepts/identifier/fixtures/view-variable.json +201 -0
  710. package/test/concepts/identifier/toEmbeddedTS.spec.ts +14 -0
  711. package/test/concepts/identifier/toJS.spec.ts +14 -0
  712. package/test/concepts/identifier/toVue.spec.ts +14 -0
  713. package/test/concepts/match/toEmbeddedTS.spec.ts +6 -6
  714. package/test/concepts/match/toJS.spec.ts +6 -6
  715. package/test/concepts/member-expression/__snapshots__/toEmbeddedTS.spec.ts.snap +21 -0
  716. package/test/concepts/member-expression/__snapshots__/toJS.spec.ts.snap +21 -0
  717. package/test/concepts/member-expression/__snapshots__/toVue.spec.ts.snap +21 -0
  718. package/test/concepts/member-expression/constant.ts +5 -0
  719. package/test/concepts/member-expression/fixtures/app.enums.UserStatusEnum.json +13 -0
  720. package/test/concepts/member-expression/fixtures/elements.table-view.data.json +13 -0
  721. package/test/concepts/member-expression/fixtures/entry.created-by.json +18 -0
  722. package/test/concepts/member-expression/fixtures/nasl.auth.userInfo.json +19 -0
  723. package/test/concepts/member-expression/toEmbeddedTS.spec.ts +14 -0
  724. package/test/concepts/member-expression/toJS.spec.ts +14 -0
  725. package/test/concepts/member-expression/toVue.spec.ts +14 -0
  726. package/test/concepts/null-literal/__snapshots__/toEmbeddedTS.spec.ts.snap +6 -0
  727. package/test/concepts/null-literal/__snapshots__/toJS.spec.ts.snap +6 -0
  728. package/test/concepts/null-literal/__snapshots__/toVue.spec.ts.snap +6 -0
  729. package/test/concepts/null-literal/constant.ts +5 -0
  730. package/test/concepts/null-literal/fixtures/null.json +3 -0
  731. package/test/concepts/null-literal/toEmbeddedTS.spec.ts +14 -0
  732. package/test/concepts/null-literal/toJS.spec.ts +14 -0
  733. package/test/concepts/null-literal/toVue.spec.ts +14 -0
  734. package/test/concepts/numeric-literal/__snapshots__/toEmbeddedTS.spec.ts.snap +6 -0
  735. package/test/concepts/numeric-literal/__snapshots__/toJS.spec.ts.snap +6 -0
  736. package/test/concepts/numeric-literal/__snapshots__/toVue.spec.ts.snap +6 -0
  737. package/test/concepts/numeric-literal/constant.ts +5 -0
  738. package/test/concepts/numeric-literal/fixtures/number.json +10 -0
  739. package/test/concepts/numeric-literal/toEmbeddedTS.spec.ts +14 -0
  740. package/test/concepts/numeric-literal/toJS.spec.ts +14 -0
  741. package/test/concepts/numeric-literal/toVue.spec.ts +14 -0
  742. package/test/concepts/string-literal/__snapshots__/toEmbeddedTS.spec.ts.snap +16 -0
  743. package/test/concepts/string-literal/__snapshots__/toJS.spec.ts.snap +16 -0
  744. package/test/concepts/string-literal/__snapshots__/toVue.spec.ts.snap +16 -0
  745. package/test/concepts/string-literal/constant.ts +5 -0
  746. package/test/concepts/string-literal/fixtures/escape.json +4 -0
  747. package/test/concepts/string-literal/fixtures/space.json +4 -0
  748. package/test/concepts/string-literal/fixtures/string.json +4 -0
  749. package/test/concepts/string-literal/toEmbeddedTS.spec.ts +14 -0
  750. package/test/concepts/string-literal/toJS.spec.ts +14 -0
  751. package/test/concepts/string-literal/toVue.spec.ts +14 -0
  752. package/test/concepts/utils.ts +46 -43
  753. package/test/concepts/validation-rule/__snapshots__/toEmbeddedTS.spec.ts.snap +11 -0
  754. package/test/concepts/validation-rule/__snapshots__/toJS.spec.ts.snap +10 -0
  755. package/test/concepts/validation-rule/fixtures/argument-without-keyword.json +34 -0
  756. package/test/concepts/validation-rule/fixtures/empty-rule.json +9 -0
  757. package/test/concepts/validation-rule/toEmbeddedTS.spec.ts +6 -6
  758. package/test/concepts/validation-rule/toJS.spec.ts +6 -6
  759. package/test/concepts/validation-rule/validation-rule.spec.ts +15 -0
  760. package/test/concepts/view-element/__snapshots__/toEmbeddedTS.spec.ts.snap +592 -0
  761. package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +308 -0
  762. package/test/concepts/view-element/fixtures/default-login.json +333 -0
  763. package/test/concepts/view-element/fixtures/default-not-found.json +313 -313
  764. package/test/concepts/view-element/fixtures/with-role-auth.json +148 -0
  765. package/test/concepts/view-element/fixtures/with-table.json +3473 -0
  766. package/test/concepts/view-element/toEmbeddedTS.spec.ts +6 -6
  767. package/test/concepts/view-element/toVue.spec.ts +6 -6
  768. package/ts-worker/package-lock.json +6663 -101
  769. package/ts-worker/webpack.config.js +1 -1
  770. package/out/common/classMap.d.ts +0 -4
  771. package/out/common/classMap.js +0 -5
  772. package/out/common/classMap.js.map +0 -1
  773. package/out/concepts/DataElement__.d.ts +0 -46
  774. package/out/concepts/DataElement__.js +0 -118
  775. package/out/concepts/DataElement__.js.map +0 -1
  776. package/out/natural/RequirementAnalyzer.d.ts +0 -22
  777. package/out/natural/RequirementAnalyzer.js +0 -196
  778. package/out/natural/RequirementAnalyzer.js.map +0 -1
  779. package/out/natural/RequirementExecutor.d.ts +0 -51
  780. package/out/natural/RequirementExecutor.js +0 -692
  781. package/out/natural/RequirementExecutor.js.map +0 -1
  782. package/out/natural/componentData.d.ts +0 -31
  783. package/out/natural/componentData.js +0 -85
  784. package/out/natural/componentData.js.map +0 -1
  785. package/out/natural/genNaturalTS.d.ts +0 -3
  786. package/out/natural/genNaturalTS.js +0 -76
  787. package/out/natural/genNaturalTS.js.map +0 -1
  788. package/out/natural/index.d.ts +0 -4
  789. package/out/natural/index.js +0 -21
  790. package/out/natural/index.js.map +0 -1
  791. package/out/natural/knowledgeMap.d.ts +0 -4
  792. package/out/natural/knowledgeMap.js +0 -40
  793. package/out/natural/knowledgeMap.js.map +0 -1
  794. package/out/natural/naslStdlibMap.d.ts +0 -2
  795. package/out/natural/naslStdlibMap.js +0 -26
  796. package/out/natural/naslStdlibMap.js.map +0 -1
  797. package/out/natural/transformTSCode.d.ts +0 -7
  798. package/out/natural/transformTSCode.js +0 -760
  799. package/out/natural/transformTSCode.js.map +0 -1
  800. package/out/translator/lsp.d.ts +0 -45
  801. package/out/translator/lsp.js +0 -6
  802. package/out/translator/lsp.js.map +0 -1
  803. package/out/translator/tsp.d.ts +0 -12
  804. package/out/translator/tsp.js.map +0 -1
  805. package/sandbox-natural/stdlib/nasl.core.ts +0 -36
  806. package/sandbox-natural/stdlib/nasl.oql.ts +0 -8
  807. package/sandbox-natural/stdlib/nasl.ui.ts +0 -56
  808. package/sandbox-natural/stdlib/nasl.util.ts +0 -26
  809. package/sandbox-natural/tsconfig.json +0 -12
  810. package/src/common/classMap.ts +0 -3
  811. package/src/concepts/DataElement__.ts +0 -131
  812. package/src/natural/RequirementAnalyzer.ts +0 -208
  813. package/src/natural/RequirementExecutor.ts +0 -685
  814. package/src/natural/componentData.ts +0 -81
  815. package/src/natural/genNaturalTS.ts +0 -77
  816. package/src/natural/index.ts +0 -4
  817. package/src/natural/knowledgeMap.ts +0 -39
  818. package/src/natural/naslStdlibMap.ts +0 -24
  819. package/src/natural/transformTSCode.ts +0 -692
  820. package/src/test/examples/app1.json +0 -1406
  821. package/src/test/fixtures/env.ts +0 -19
  822. package/src/test/integration/connect-create-file.ts +0 -14
  823. package/src/test/integration/connect-file.ts +0 -24
  824. package/src/test/integration/node-nasl-server.ts +0 -14
  825. package/src/test/units/baseTypes/Assignment.spec.ts +0 -20
  826. package/src/test/units/baseTypes/CallLogic.spec.ts +0 -22
  827. package/src/test/units/baseTypes/StringLiteral.spec.ts +0 -60
  828. package/src/test/units/baseTypes/new.spec.ts +0 -13
  829. package/src/test/units/common/Vertex.spec.ts +0 -23
  830. package/src/test/units/data/Entity.spec.ts +0 -10
  831. package/src/test/units/login.spec.ts +0 -10
  832. package/src/test/units/page/Block.spec.ts +0 -15
  833. package/src/test/units/page/Element.spec.ts +0 -45
  834. package/src/test/units/page/example.dashboard.html +0 -46
  835. package/src/test/units/page/example.view1.html +0 -63
  836. package/src/test/units/temp/temp.spec.ts +0 -66
  837. package/src/translator/lsp.ts +0 -50
  838. package/src/translator/tsp.ts +0 -14
@@ -37,11 +37,11 @@ exports.NaslServer = exports.getDisplayString2Type = void 0;
37
37
  const fs = __importStar(require("fs-extra"));
38
38
  const path = __importStar(require("path"));
39
39
  const worker_threads_1 = require("worker_threads");
40
- const decimal_js_1 = require("decimal.js");
40
+ /// #endif
41
41
  const config_1 = require("../config");
42
42
  const sentry_1 = require("../sentry");
43
43
  const Messager_1 = __importDefault(require("../common/Messager"));
44
- const getMemberIdentifier_1 = require("./getMemberIdentifier");
44
+ const getMemberIdentifier_1 = require("../server/getMemberIdentifier");
45
45
  const concepts_1 = require("../concepts");
46
46
  const translator_1 = require("../translator");
47
47
  const storage_1 = __importDefault(require("../service/storage"));
@@ -57,6 +57,7 @@ const jsoner = __importStar(require("../service/storage/jsoner"));
57
57
  const EventEmitter_1 = require("../common/EventEmitter");
58
58
  const utils_1 = require("../utils");
59
59
  const decorators_1 = require("../decorators");
60
+ const decimal_js_1 = require("decimal.js");
60
61
  const utils_2 = require("../automate/engine/utils");
61
62
  const EmbeddedTSFileLineMap = {
62
63
  Entity: 3,
@@ -69,15 +70,14 @@ const EmbeddedTSFileOffsetMap = {
69
70
  ConfigProperty: 12,
70
71
  };
71
72
  const SentryMessager = (0, sentry_1.sentryMonitorTSWorkerMessager)(Messager_1.default);
72
- let isChangeInterface = false; // 判断是否导入接口
73
- let actionArr = []; // 用于导入接口收集更改的节点
74
- let timer = null; // 超时器用于收集导入接口相关
75
- const __naslStdlibFileCacheMap = new Map(); // naslStdlib文件缓存
73
+ let isChangeInterface = false; //判断是否导入接口
74
+ let actionArr = []; //用于导入接口收集更改的节点
75
+ let timer = null; //超时器用于收集导入接口相关
76
76
  // 联合类型切割取出类型
77
77
  function getDisplayString2Type(displayString) {
78
- const targetString = displayString.match(/value:\s(\S+)\)/)?.[1] ?? '';
78
+ const targetString = displayString.match(/value:\s(\S+)\)/)?.[1];
79
79
  let targetType = null;
80
- if (targetString.startsWith('nasl.core.')) {
80
+ if (targetString?.startsWith('nasl.core.')) {
81
81
  targetType = targetString.slice(10);
82
82
  }
83
83
  // 取出匹配的内容
@@ -86,21 +86,23 @@ function getDisplayString2Type(displayString) {
86
86
  displayString = displayString?.replace('T extends ', '') || '';
87
87
  const types = reg.exec(displayString);
88
88
  // 取出提示的类型,组成是数组
89
- const typeList = types[1].split(' | ').map((item) => {
89
+ const typeList = (types?.[1].split(' | ') ?? []).map((item) => {
90
90
  if (/<([^()]+)>/g.exec(item)) {
91
91
  return item;
92
92
  }
93
- if (item.includes(' ')) {
93
+ else if (item.includes(' ')) {
94
94
  const strs = item.split(' ');
95
95
  const type = strs[strs.length - 1];
96
96
  return type;
97
97
  }
98
- if (item.includes('.')) {
98
+ else if (item.includes('.')) {
99
99
  const strs = item.split('.');
100
100
  const type = strs[strs.length - 1];
101
101
  return type;
102
102
  }
103
- return item;
103
+ else {
104
+ return item;
105
+ }
104
106
  });
105
107
  if (targetType) {
106
108
  return typeList.filter((item) => item !== targetType);
@@ -109,19 +111,28 @@ function getDisplayString2Type(displayString) {
109
111
  }
110
112
  exports.getDisplayString2Type = getDisplayString2Type;
111
113
  let NaslServer = class NaslServer {
112
- naslStdlibFileCacheMap = __naslStdlibFileCacheMap;
113
- messager = undefined;
114
- worker = undefined;
114
+ /** naslStdlib文件缓存 */
115
+ naslStdlibFileCacheMap = new Map();
116
+ messager;
117
+ worker;
115
118
  /**
116
119
  * 按道理 fileSourceMap: new Map<string, SourceMap>() 比较合理,
117
120
  * 但是要多维护一层 vertex 增删 -> file 增删的关系问题,
118
121
  * 先用挂在点上面,简单的方法实现,后期再考虑解耦
119
122
  */
120
123
  file2NodeMap = new Map();
124
+ /** TS 翻译的源码 */
125
+ tsFiles = new Map();
126
+ /// #if process.env.NODE_ENV === 'development'
127
+ /**
128
+ * 调试时是否储存 ts 文件
129
+ */
130
+ openDebugEmbedded = true;
131
+ /// #endif
121
132
  elementsLogic = {};
122
133
  // 错误日志收集
123
- diagnosticManager = undefined;
124
- embeddedTSEmitter = undefined;
134
+ diagnosticManager;
135
+ embeddedTSEmitter;
125
136
  // 需要执行修改的文件
126
137
  changeStackList = [];
127
138
  filesToCheck;
@@ -187,7 +198,7 @@ let NaslServer = class NaslServer {
187
198
  // 这个方法是 5.0 加入标准库的,但是这里 ts 版本是 4.x,ci 会挂,所以需要忽略
188
199
  // @ts-ignore
189
200
  const findLastIndex = this.changeStackList.findLastIndex((changeStackItem) => {
190
- const { target } = changeStackItem;
201
+ const target = changeStackItem.target;
191
202
  const { fileNode: targetFileNode } = this.getCurrentSource(target);
192
203
  return targetFileNode === fileNode;
193
204
  });
@@ -198,8 +209,10 @@ let NaslServer = class NaslServer {
198
209
  // 如果当前列表里有,这个文件节点,最后一个是field的话,直接return掉,不用塞这个update了
199
210
  return;
200
211
  }
201
- // 如果最后一项是普通的update的话,就可以去掉,后面那个会在塞过来
202
- this.changeStackList.pop();
212
+ else {
213
+ // 如果最后一项是普通的update的话,就可以去掉,后面那个会在塞过来
214
+ this.changeStackList.pop();
215
+ }
203
216
  }
204
217
  this.changeStackList.push(item.originEvent);
205
218
  }
@@ -229,7 +242,7 @@ let NaslServer = class NaslServer {
229
242
  }, { cache: true });
230
243
  Object.keys(naslStdlibMap_1.default).forEach(async (libFileName) => {
231
244
  await this.addFile({
232
- file: `/${libFileName}`,
245
+ file: '/' + libFileName,
233
246
  fileContent: naslStdlibMap_1.default[libFileName],
234
247
  }, { cache: true });
235
248
  });
@@ -431,6 +444,26 @@ let NaslServer = class NaslServer {
431
444
  launcher.sourceMap = result.sourceMap;
432
445
  this.file2NodeMap.set(result.filePath, launcher);
433
446
  });
447
+ module.namespaces?.forEach?.((namespace) => {
448
+ namespace.logics.forEach((logic) => {
449
+ const result = logic.toEmbeddedTSFile();
450
+ results.push(result);
451
+ // sourceMap都存在目录级别内容下,在页面层级下去找
452
+ logic.sourceMap = result.sourceMap;
453
+ this.file2NodeMap.set(result.filePath, logic);
454
+ });
455
+ });
456
+ module?.authLogicsForCallInterface?.forEach?.((logic) => {
457
+ try {
458
+ if (!(logic instanceof concepts_1.Logic))
459
+ return;
460
+ const result = logic.toEmbeddedTSFile();
461
+ results.push(result);
462
+ logic.sourceMap = result.sourceMap;
463
+ this.file2NodeMap.set(result.filePath, logic);
464
+ }
465
+ catch (err) { }
466
+ });
434
467
  }
435
468
  catch (error) {
436
469
  console.error(error);
@@ -449,7 +482,7 @@ let NaslServer = class NaslServer {
449
482
  });
450
483
  }
451
484
  if (module instanceof concepts_1.App) {
452
- module.connections.forEach((connection) => {
485
+ module.connections?.forEach?.((connection) => {
453
486
  try {
454
487
  const result = connection.toEmbeddedTSFile();
455
488
  results.push(result);
@@ -459,7 +492,7 @@ let NaslServer = class NaslServer {
459
492
  }
460
493
  catch (err) { }
461
494
  });
462
- module.triggerLaunchers.forEach((triggerLauncher) => {
495
+ module.triggerLaunchers?.forEach?.((triggerLauncher) => {
463
496
  try {
464
497
  const result = triggerLauncher.toEmbeddedTSFile();
465
498
  results.push(result);
@@ -511,6 +544,7 @@ let NaslServer = class NaslServer {
511
544
  // 其他模块的创建内容
512
545
  app.dependencies.forEach((item) => this.contentToFile(item, results));
513
546
  app.interfaceDependencies.forEach((item) => this.contentToFile(item, results));
547
+ app.integration?.connectors?.forEach((item) => this.contentToFile(item, results));
514
548
  }
515
549
  catch (err) {
516
550
  console.log(err);
@@ -554,13 +588,14 @@ let NaslServer = class NaslServer {
554
588
  }
555
589
  // 缓存添加过的文件
556
590
  cacheFile(options) {
557
- __naslStdlibFileCacheMap.set(options.file, options);
591
+ this.naslStdlibFileCacheMap.set(options.file, options);
558
592
  }
559
- /** u
593
+ /**u
560
594
  * 只新增文件
561
595
  * @param {*} files
562
596
  */
563
597
  writeFiles(files) {
598
+ files.forEach(({ file, fileContent }) => this.tsFiles.set(file, fileContent));
564
599
  return this.messager.requestCommand('writeFiles', files);
565
600
  }
566
601
  /**
@@ -569,38 +604,40 @@ let NaslServer = class NaslServer {
569
604
  * @param {*} args
570
605
  */
571
606
  updateFiles(args) {
607
+ args.outputFiles.forEach(({ file, fileContent }) => this.tsFiles.set(file, fileContent));
572
608
  return this.messager.requestCommand('updateFiles', args);
573
609
  }
574
610
  /**
575
611
  * 清除一个目录下的所有文件
576
612
  */
577
613
  deleteDirectoryFiles(args) {
614
+ Array.from(this.tsFiles.keys())
615
+ .filter((key) => key.startsWith(args.directoryName))
616
+ .forEach((key) => this.tsFiles.delete(key));
578
617
  return this.messager.requestCommand('deleteDirectoryFiles', args);
579
618
  }
580
619
  async _debugInFileStorage(node, openFiles) {
581
620
  let app = node;
582
- let openDebugEmbedded = true;
583
621
  if (node.concept !== 'App') {
584
622
  app = node.rootNode || node.app;
585
623
  }
586
624
  /// #if process.env.NODE_ENV === 'development'
587
625
  // 首次尝试请求
588
- await storage_1.default.post(`/api/App/debugEmbedded?id=${app.id}`, openFiles[0]).catch(() => (openDebugEmbedded = false));
589
- if (openDebugEmbedded && globalThis.window) {
626
+ await storage_1.default.post('/api/App/debugEmbedded?id=' + app.id, openFiles[0]).catch(() => (this.openDebugEmbedded = false));
627
+ if (this.openDebugEmbedded && globalThis.window) {
590
628
  // For TS build
591
629
  try {
592
630
  let canDebug = true;
593
- await storage_1.default.post(`/api/App/debugEmbedded?id=${app.id}`, openFiles[0]).catch(() => (canDebug = false));
631
+ await storage_1.default.post('/api/App/debugEmbedded?id=' + app.id, openFiles[0]).catch(() => (canDebug = false));
594
632
  if (canDebug) {
595
633
  await Promise.all(openFiles.map(async (file) => {
596
- const res = await storage_1.default.post(`/api/App/debugEmbedded?id=${app.id}`, file);
634
+ const res = await storage_1.default.post('/api/App/debugEmbedded?id=' + app.id, file);
597
635
  return res.data;
598
636
  }));
599
637
  }
600
638
  }
601
639
  catch (e) {
602
- // 出现错误之后不再调用
603
- openDebugEmbedded = false;
640
+ // ..
604
641
  }
605
642
  }
606
643
  /// #endif
@@ -635,14 +672,16 @@ let NaslServer = class NaslServer {
635
672
  return this._getValueSelectCompletion({
636
673
  file: fileNode.getEmbeddedFilePath(),
637
674
  range: {
638
- line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
639
- offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character),
675
+ line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
676
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character),
640
677
  },
641
678
  value,
642
679
  noFilterList,
643
680
  });
644
681
  }
645
- console.log('没找到节点', node, currentSource, fileNode);
682
+ else {
683
+ console.log('没找到节点', node, currentSource, fileNode);
684
+ }
646
685
  }
647
686
  _getValueSelectCompletion(args) {
648
687
  return this.messager.requestCommand('getValueSelectCompletion', args);
@@ -667,8 +706,8 @@ let NaslServer = class NaslServer {
667
706
  try {
668
707
  const quickInfo = await this._getTypeQuickinfo({
669
708
  file: fileNode.getEmbeddedFilePath(),
670
- line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
671
- offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character) + `nasl.util.C`.length,
709
+ line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
710
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character) + `nasl.util.C`.length,
672
711
  });
673
712
  if (quickInfo.responseRequired) {
674
713
  const displayString = quickInfo?.response?.displayString || '';
@@ -686,7 +725,9 @@ let NaslServer = class NaslServer {
686
725
  if (!res.length) {
687
726
  return [];
688
727
  }
689
- return [{ title: '基础类型', children: res }];
728
+ else {
729
+ return [{ title: '基础类型', children: res }];
730
+ }
690
731
  }
691
732
  }
692
733
  catch (err) {
@@ -715,8 +756,8 @@ let NaslServer = class NaslServer {
715
756
  }
716
757
  const quickInfo = await this._getTypeQuickinfo({
717
758
  file: fileNode.getEmbeddedFilePath(),
718
- line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
719
- offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character) + `new nasl.ui.`.length,
759
+ line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
760
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character) + `new nasl.ui.`.length,
720
761
  });
721
762
  if (quickInfo.responseRequired) {
722
763
  const displayString = quickInfo?.response?.displayString || '';
@@ -732,7 +773,7 @@ let NaslServer = class NaslServer {
732
773
  .replace(/__name:"AStructure_\w{8}";/g, '')
733
774
  .replace(/dataSources.([^.]+).entities.([^;]+)/g, ($1, $2, $3) => `${$3}(${$2})`);
734
775
  }
735
- if (typeStr.startsWith('{') && typeStr.endsWith('}')) {
776
+ else if (typeStr.startsWith('{') && typeStr.endsWith('}')) {
736
777
  /**
737
778
  * {
738
779
  text: nasl.core.String;
@@ -775,8 +816,8 @@ let NaslServer = class NaslServer {
775
816
  }
776
817
  const quickInfo = await this._getTypeQuickinfo({
777
818
  file: fileNode.getEmbeddedFilePath(),
778
- line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
779
- offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character) + `new nasl.ui.`.length,
819
+ line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
820
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character) + `new nasl.ui.`.length,
780
821
  });
781
822
  if (quickInfo.responseRequired) {
782
823
  const displayString = quickInfo?.response?.displayString || '';
@@ -785,7 +826,7 @@ let NaslServer = class NaslServer {
785
826
  return;
786
827
  const types = /<([^()]+)>/g.exec(displayString);
787
828
  const typeStr = types && types[1];
788
- const { app } = node;
829
+ const app = node.app;
789
830
  if (typeStr.includes('__name: "AStructure_')) {
790
831
  const properties = [];
791
832
  typeStr.replace(/([^:\s]+):\s+([^;]+);/g, ($1, name, typeKey) => {
@@ -807,7 +848,7 @@ let NaslServer = class NaslServer {
807
848
  });
808
849
  return concepts_1.TypeAnnotation.createTypeAnonymousStructure(properties);
809
850
  }
810
- if (typeStr.startsWith('structures'))
851
+ else if (typeStr.startsWith('structures'))
811
852
  return app.findNodeByCompleteName(`app.${typeStr}`);
812
853
  }
813
854
  }
@@ -859,13 +900,15 @@ let NaslServer = class NaslServer {
859
900
  return this._getSelectNextCompletion({
860
901
  file: fileNode.getEmbeddedFilePath(),
861
902
  range: {
862
- line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
863
- offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character),
903
+ line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
904
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character),
864
905
  },
865
906
  noFilterList,
866
907
  });
867
908
  }
868
- console.log('没找到节点', currentSource, fileNode);
909
+ else {
910
+ console.log('没找到节点', currentSource, fileNode);
911
+ }
869
912
  }
870
913
  _getSelectNextCompletion(args) {
871
914
  return this.messager.requestCommand('getSelectNextCompletion', args);
@@ -893,14 +936,14 @@ let NaslServer = class NaslServer {
893
936
  await this.IncrementalAnnotationJSON(records);
894
937
  }
895
938
  await Promise.all(records.map(async (record) => {
896
- const { node } = record;
939
+ const node = record.node;
897
940
  if (!node)
898
941
  return;
899
942
  // 先获取原来的节点先清除一下之前有异常的节点,下面重新赋值
900
943
  const oldRecord = this.diagnosticManager.getRecord?.(record.id);
901
944
  oldRecord?.semanticDiagnostics.forEach((item) => {
902
945
  if (item.node) {
903
- item.node.tsErrorDetail = undefined;
946
+ delete item.node.tsErrorDetail;
904
947
  // 如果logic中有报错就把标识置为true
905
948
  if (item.node?.logic?.haveError) {
906
949
  item.node.logic.haveError = false;
@@ -910,7 +953,7 @@ let NaslServer = class NaslServer {
910
953
  // 清空一些状态
911
954
  oldRecord?.suggestionDiagnostics.forEach((item) => {
912
955
  if (item.node) {
913
- item.node.tsErrorDetail = undefined;
956
+ delete item.node.tsErrorDetail;
914
957
  if (item.node && item.node instanceof concepts_1.Logic) {
915
958
  item.node.isSmpty = false;
916
959
  }
@@ -924,7 +967,7 @@ let NaslServer = class NaslServer {
924
967
  if (record.node instanceof concepts_1.Logic) {
925
968
  record?.syntaxDiagnostics.forEach((item) => {
926
969
  const minRange = this._findMinRange(item, record.node);
927
- if (minRange.node instanceof concepts_1.OqlQueryComponent) {
970
+ if (minRange?.node instanceof concepts_1.OqlQueryComponent) {
928
971
  if (item.text === 'Invalid character.') {
929
972
  record.semanticDiagnostics.push(item);
930
973
  }
@@ -947,7 +990,7 @@ let NaslServer = class NaslServer {
947
990
  record.suggestionDiagnostics.push(diagnostic);
948
991
  return null;
949
992
  }
950
- if (currentNode.concept === 'OqlQueryComponent') {
993
+ else if (currentNode.concept === 'OqlQueryComponent') {
951
994
  // OQL别名错误降级为警告
952
995
  if (diagnostic.originalDiagnostic && diagnostic.originalDiagnostic?.text.includes('__OQL_ALIAS_WARNING__')) {
953
996
  // 重置 图标和错误等级
@@ -991,7 +1034,7 @@ let NaslServer = class NaslServer {
991
1034
  return diag;
992
1035
  // 一些已知警告的单独处理
993
1036
  }
994
- if ([
1037
+ else if ([
995
1038
  `'__LogicEmpty' is declared but its value is never read.`,
996
1039
  `'__destinationEmpty__' is declared but its value is never read.`,
997
1040
  `'__devConfigValueEmpty' is declared but its value is never read.`,
@@ -1000,7 +1043,7 @@ let NaslServer = class NaslServer {
1000
1043
  ].includes(diag.text)) {
1001
1044
  return this._resolveDiagnostic(diag, record.node, record);
1002
1045
  }
1003
- if (diag.text.includes(` is declared but its value is never read.`)) {
1046
+ else if (diag.text.includes(` is declared but its value is never read.`)) {
1004
1047
  // 局部变量和输入变量未使用的警告
1005
1048
  const fromModule = record.node.parentNode.concept === 'Module';
1006
1049
  const fromConnector = record.node.parentNode.concept === 'Connector';
@@ -1028,7 +1071,7 @@ let NaslServer = class NaslServer {
1028
1071
  };
1029
1072
  return diagnostic;
1030
1073
  }
1031
- if (minRange.node instanceof concepts_1.Variable) {
1074
+ else if (minRange.node instanceof concepts_1.Variable) {
1032
1075
  const diagnostic = {
1033
1076
  node: minRange.node,
1034
1077
  severity: 'warning',
@@ -1209,7 +1252,7 @@ let NaslServer = class NaslServer {
1209
1252
  const typeAnnotation = item.__TypeAnnotation;
1210
1253
  // 仅处理有类型的情况,返回类型为void的情况由其他地方处理成报错
1211
1254
  if (typeAnnotation) {
1212
- const { sortedTypeKey } = typeAnnotation;
1255
+ const sortedTypeKey = typeAnnotation.sortedTypeKey;
1213
1256
  if (!typeAnnotationMap[sortedTypeKey]) {
1214
1257
  typeAnnotationMap[sortedTypeKey] = {
1215
1258
  typeAnnotation,
@@ -1263,7 +1306,7 @@ let NaslServer = class NaslServer {
1263
1306
  const typeAnnotation = value.__TypeAnnotation;
1264
1307
  // 仅处理有类型的情况,返回类型为void的情况由其他地方处理成报错
1265
1308
  if (typeAnnotation) {
1266
- const { sortedTypeKey } = typeAnnotation;
1309
+ const sortedTypeKey = typeAnnotation.sortedTypeKey;
1267
1310
  if (!typeAnnotationMap[sortedTypeKey]) {
1268
1311
  typeAnnotationMap[sortedTypeKey] = {
1269
1312
  typeAnnotation,
@@ -1361,6 +1404,15 @@ let NaslServer = class NaslServer {
1361
1404
  this.baseNodeAssignmentTsError(variable, diagnostic);
1362
1405
  diagnostics.push(diagnostic);
1363
1406
  }
1407
+ else if (variable.__TypeAnnotation?.hasSystemType(node.app)) {
1408
+ const diagnostic = {
1409
+ node,
1410
+ severity: 'warning',
1411
+ message: `数据查询中不可以使用或包含系统类型!当前类型:${variable.__TypeAnnotation?.typeChineseTitle}。`,
1412
+ };
1413
+ this.baseNodeAssignmentTsError(variable, diagnostic);
1414
+ diagnostics.push(diagnostic);
1415
+ }
1364
1416
  });
1365
1417
  }
1366
1418
  });
@@ -1535,17 +1587,17 @@ let NaslServer = class NaslServer {
1535
1587
  catch (err) {
1536
1588
  console.log(err);
1537
1589
  }
1538
- if (!jsCode.includes(`${node.name} = `))
1590
+ if (!jsCode.startsWith(`${node.name} = `))
1539
1591
  return;
1540
1592
  // 页面局部变量
1541
1593
  if (node instanceof concepts_1.Variable && node.parentNode instanceof concepts_1.View) {
1542
1594
  // 跟页面局部变量无关的赋值过滤
1543
- if (!jsCode.includes(`this.${node.name} = `))
1595
+ if (!jsCode.startsWith(`this.${node.name} = `))
1544
1596
  return;
1545
1597
  // 直接赋值 logic 内局部变量、输入参数直接提示系统无法推断类型
1546
- if (nodeIn.logic?.params.find((param) => jsCode.includes(param.name)) ||
1547
- nodeIn.logic?.virtualParams.find((vParam) => jsCode.includes(vParam.name)) ||
1548
- nodeIn.logic?.variables.find((variable) => jsCode.includes(variable.name))) {
1598
+ if (nodeIn.logic?.params.find((param) => jsCode.startsWith(param.name)) ||
1599
+ nodeIn.logic?.virtualParams.find((vParam) => jsCode.startsWith(vParam.name)) ||
1600
+ nodeIn.logic?.variables.find((variable) => jsCode.startsWith(variable.name))) {
1549
1601
  if (!nodeIn.tsErrorDetail) {
1550
1602
  const diagnostic = {
1551
1603
  node: nodeIn,
@@ -1585,17 +1637,17 @@ let NaslServer = class NaslServer {
1585
1637
  if (Array.isArray(node.bindExpressions)) {
1586
1638
  const exp = node.bindExpressions.find((bindExpression) => this.hasComponentLogics(bindExpression));
1587
1639
  if (exp) {
1588
- // const element: any = node.getAncestor('ViewElement');
1589
- // const api = config.allNodesAPI[element?.tag];
1590
- // const attr = api?.attrs?.find?.((attr) => {
1640
+ //const element: any = node.getAncestor('ViewElement');
1641
+ //const api = config.allNodesAPI[element?.tag];
1642
+ //const attr = api?.attrs?.find?.((attr) => {
1591
1643
  // return attr.name === node.name;
1592
- // });
1644
+ //});
1593
1645
  const map = {
1594
1646
  BindAttribute: '属性',
1595
1647
  BindDirective: '指令',
1596
1648
  BindStyle: '样式属性',
1597
1649
  };
1598
- // “${attr?.title || node.title || node.name}”
1650
+ //“${attr?.title || node.title || node.name}”
1599
1651
  const diagnostic = {
1600
1652
  node,
1601
1653
  severity: 'error',
@@ -1620,6 +1672,20 @@ let NaslServer = class NaslServer {
1620
1672
  node.tsErrorDetail = diagnostic;
1621
1673
  }
1622
1674
  }
1675
+ else if (node instanceof concepts_1.Identifier) {
1676
+ // 变量如果选到了页面,因为ts会找到兄弟的同名变量,所以需要新增报错,通过类型来判断加不加
1677
+ // https://projectmanage.netease-official.lcap.163yun.com/dashboard/BugDetail?id=2696136968961024
1678
+ if (node.name && node.__TypeAnnotation?.typeKind === 'reference' && node.__TypeAnnotation?.typeNamespace?.endsWith('views')) {
1679
+ const errorMsg = `找不到 ${node.name}。`;
1680
+ const diagnostic = {
1681
+ node,
1682
+ severity: 'error',
1683
+ message: errorMsg,
1684
+ };
1685
+ diagnostics.push(diagnostic);
1686
+ node.tsErrorDetail = diagnostic;
1687
+ }
1688
+ }
1623
1689
  else {
1624
1690
  this.checkNodeError(node, diagnostics);
1625
1691
  }
@@ -1767,7 +1833,7 @@ let NaslServer = class NaslServer {
1767
1833
  const { default: defaultVal } = precisionOption || {};
1768
1834
  const precision = databaseTypeAnnotation ? databaseTypeAnnotation.arguments?.precision : defaultVal;
1769
1835
  const ruleScale = typeAnnotation?.ruleMap?.scale;
1770
- const scale = ruleScale !== undefined ? `${ruleScale}` : '';
1836
+ const scale = ruleScale !== undefined ? ruleScale + '' : '';
1771
1837
  let ensureScale = true;
1772
1838
  switch (typeName) {
1773
1839
  case 'String': {
@@ -1797,6 +1863,17 @@ let NaslServer = class NaslServer {
1797
1863
  }
1798
1864
  });
1799
1865
  }
1866
+ else if (rulesMap?.maxLength && +dataBaseTyp?.max && +rulesMap.maxLength > +dataBaseTyp.max) {
1867
+ // 判断当前 最大长度 是不是比 数据库类型的最大长度 长,超过就报错
1868
+ const errorMsg = `最大长度超出存储长度`;
1869
+ const diag = {
1870
+ node: property,
1871
+ severity: 'warning',
1872
+ message: errorMsg,
1873
+ };
1874
+ diagnostics.push(diag);
1875
+ typeAnnotationErrorDetail.errorPos.maxLength = errorMsg;
1876
+ }
1800
1877
  }
1801
1878
  case 'Long': {
1802
1879
  const { min: ruleMin, max: ruleMax } = dataBaseTyp;
@@ -1866,7 +1943,7 @@ let NaslServer = class NaslServer {
1866
1943
  // 储存小数部分
1867
1944
  const memoryScaleStr = memoryStr.slice(0, +(scale || '0'));
1868
1945
  // 储存绝对值
1869
- const memoryAbsVal = memoryIntAbsStr + (memoryScaleStr ? `.${memoryScaleStr}` : '');
1946
+ const memoryAbsVal = memoryIntAbsStr + (memoryScaleStr ? '.' + memoryScaleStr : '');
1870
1947
  const decimalMemoryAbsVal = new decimal_js_1.Decimal(memoryAbsVal);
1871
1948
  [
1872
1949
  {
@@ -1934,7 +2011,7 @@ let NaslServer = class NaslServer {
1934
2011
  diagnostics.push(diagnostic);
1935
2012
  }
1936
2013
  fileNode?.sourceMap.forEach((value, node) => {
1937
- // OQL支持返回复合类型数据了
2014
+ //OQL支持返回复合类型数据了
1938
2015
  // SqlQueryComponent内部返回值类型,如果是嵌套的就需要报错
1939
2016
  // if ((node instanceof OqlQueryComponent || node instanceof SqlQueryComponent) && (node as SqlQueryComponent).getTypeBanError()) {
1940
2017
  // const diagnostic = {
@@ -1950,7 +2027,7 @@ let NaslServer = class NaslServer {
1950
2027
  const typeAnnotation = (0, formatTsUtils_1.type2TypeAnnotation)(node.__nodeType);
1951
2028
  if (!node.typeAnnotation && typeAnnotation) {
1952
2029
  if (typeAnnotation.typeName === 'List' && typeAnnotation.typeKind === 'generic') {
1953
- const { typeArguments } = typeAnnotation;
2030
+ const typeArguments = typeAnnotation.typeArguments;
1954
2031
  if (typeArguments.length && typeArguments[0].isComplexType()) {
1955
2032
  const diagnostic = {
1956
2033
  node,
@@ -1976,7 +2053,7 @@ let NaslServer = class NaslServer {
1976
2053
  catch (err) {
1977
2054
  console.log(err);
1978
2055
  }
1979
- if (jsCode.includes(`${node.name} = `)) {
2056
+ if (jsCode.startsWith(`${node.name} = `)) {
1980
2057
  used = true;
1981
2058
  if (!nodeIn.tsErrorDetail) {
1982
2059
  const diagnostic = {
@@ -2000,7 +2077,7 @@ let NaslServer = class NaslServer {
2000
2077
  diagnostics.push(diagnostic);
2001
2078
  }
2002
2079
  else {
2003
- node.tsErrorDetail = undefined;
2080
+ delete node.tsErrorDetail;
2004
2081
  }
2005
2082
  }
2006
2083
  this.checkNodeError(node, diagnostics);
@@ -2011,7 +2088,6 @@ let NaslServer = class NaslServer {
2011
2088
  this.checkNodeError(node, diagnostics);
2012
2089
  });
2013
2090
  }
2014
- console.timeEnd('_attachDiagnostics');
2015
2091
  return diagnostics;
2016
2092
  }
2017
2093
  checkNodeError(node, diagnostics) {
@@ -2157,6 +2233,17 @@ let NaslServer = class NaslServer {
2157
2233
  node.tsErrorDetail = diagnostic;
2158
2234
  diagnostics.push(diagnostic);
2159
2235
  }
2236
+ if (node instanceof concepts_1.ForEachStatement && !node.end && node.each) {
2237
+ if (!['List'].includes(node.each.__TypeAnnotation?.typeName)) {
2238
+ const diagnostic = {
2239
+ node,
2240
+ severity: 'error',
2241
+ message: `ForEac1:循环列表:参数类型不匹配!结束值自动推导失败。`,
2242
+ };
2243
+ node.tsErrorDetail = diagnostic;
2244
+ diagnostics.push(diagnostic);
2245
+ }
2246
+ }
2160
2247
  /**
2161
2248
  * 如果节点是内置函数
2162
2249
  * 穷举在线上的情况,不在线上就void报错, callinterface 因为原来有报错,所以就忽略掉
@@ -2235,7 +2322,7 @@ let NaslServer = class NaslServer {
2235
2322
  if (excludeList.includes(leftType.sortedTypeKey) && excludeList.includes(rightType.sortedTypeKey)) {
2236
2323
  return null;
2237
2324
  }
2238
- if (excludeList2.includes(leftType.sortedTypeKey) || excludeList2.includes(rightType.sortedTypeKey)) {
2325
+ else if (excludeList2.includes(leftType.sortedTypeKey) || excludeList2.includes(rightType.sortedTypeKey)) {
2239
2326
  return null;
2240
2327
  }
2241
2328
  const diagnostic = {
@@ -2272,7 +2359,7 @@ let NaslServer = class NaslServer {
2272
2359
  if (typeKeyArr[0] === 'apis') {
2273
2360
  const structureName = typeKeyArr[3];
2274
2361
  const moduleName = typeKeyArr[1];
2275
- const { app } = typeAnnotation.upperNode;
2362
+ const app = typeAnnotation.upperNode.app;
2276
2363
  if (!app) {
2277
2364
  return null;
2278
2365
  }
@@ -2289,13 +2376,15 @@ let NaslServer = class NaslServer {
2289
2376
  }
2290
2377
  return null;
2291
2378
  }
2292
- return diag;
2379
+ else {
2380
+ return diag;
2381
+ }
2293
2382
  });
2294
2383
  if (actionArr.length) {
2295
2384
  if (timer)
2296
2385
  return;
2297
2386
  timer = window.setTimeout(() => {
2298
- const { app } = actionArr[0].target;
2387
+ const app = actionArr[0].target.app;
2299
2388
  app.emit('collect:start', {
2300
2389
  actionMsg: '设置导入接口数据类型错误',
2301
2390
  });
@@ -2357,24 +2446,27 @@ let NaslServer = class NaslServer {
2357
2446
  */
2358
2447
  _findMinRange(diagnostic, fileNode) {
2359
2448
  let minRange;
2360
- const { sourceMap } = fileNode;
2449
+ const sourceMap = fileNode.sourceMap;
2450
+ // 是否找到了行内准确的,是的话,就不走多行的
2451
+ let haveLineNode = false;
2361
2452
  for (const [node, item] of sourceMap.entries()) {
2362
2453
  /**
2363
2454
  * 当前内容的开始行 <= 诊断开始的行 &&
2364
2455
  * 当前内容的结束行 >= 诊断结束的行
2365
2456
  */
2366
- if ((0, translator_1.lsp2tspNumber)(item.range.start.line) <= diagnostic.start.line && (0, translator_1.lsp2tspNumber)(item.range.end.line) >= diagnostic.end.line) {
2457
+ if ((0, translator_1.lsp2tspNumber)(item.start.line) <= diagnostic.start.line && (0, translator_1.lsp2tspNumber)(item.end.line) >= diagnostic.end.line) {
2367
2458
  // 如果找到某一行
2368
- if ((0, translator_1.lsp2tspNumber)(item.range.start.line) === diagnostic.start.line && (0, translator_1.lsp2tspNumber)(item.range.end.line) === diagnostic.end.line) {
2459
+ if ((0, translator_1.lsp2tspNumber)(item.start.line) === diagnostic.start.line && (0, translator_1.lsp2tspNumber)(item.end.line) === diagnostic.end.line) {
2369
2460
  // 在行的范围但是又不在列的范围,不用给默认值,给了反而不对,
2370
2461
  // 需要在列的范围内
2371
- if ((0, translator_1.lsp2tspNumber)(item.range.start.character) <= diagnostic.start.offset &&
2372
- (0, translator_1.lsp2tspNumber)(item.range.end.character) >= diagnostic.end.offset) {
2462
+ if ((0, translator_1.lsp2tspNumber)(item.start.character) <= diagnostic.start.offset &&
2463
+ (0, translator_1.lsp2tspNumber)(item.end.character) >= diagnostic.end.offset) {
2373
2464
  // 比列更靠近 ,满足条件且长度更短
2374
2465
  // 如果先走到下面有一个默认值了就像在if for里面有个表达式
2375
2466
  // if for的内容也是包括当前的所以会重新赋值
2376
- if (!minRange || item.code.length < minRange.item.code.length) {
2467
+ if (!minRange || (item.end.offset - item.start.offset) < (minRange.item.end.offset - minRange.item.start.offset)) {
2377
2468
  minRange = { item, node };
2469
+ haveLineNode = true;
2378
2470
  }
2379
2471
  }
2380
2472
  }
@@ -2384,28 +2476,32 @@ let NaslServer = class NaslServer {
2384
2476
  if (!minRange) {
2385
2477
  minRange = { node, item };
2386
2478
  }
2387
- else if ((0, translator_1.lsp2tspNumber)(item.range.start.line) === diagnostic.start.line &&
2388
- diagnostic.start.offset >= (0, translator_1.lsp2tspNumber)(item.range.start.character)) {
2389
- // 如果当前遍历的内容的行和列都 小于之前的, 而且是有效的
2390
- // 如果两个内容位置行数是一样的,就比较下找到内容的位置信息
2391
- // 找到的内容的开始位置, 要大于申明内容开始的位置,要不就不包含在内了
2392
- if (diagnostic.start.offset - item.range.start.character <= diagnostic.start.offset - minRange.item.range.start.character) {
2393
- minRange = { node, item };
2394
- }
2395
- else if (diagnostic.start.offset < (0, translator_1.lsp2tspNumber)(minRange.item.range.start.character)) {
2396
- minRange = { node, item };
2397
- }
2398
- }
2399
- else if (item.range.end.line - item.range.start.line <= minRange.item.range.end.line - minRange.item.range.start.line) {
2400
- // 行都一致 ,比较列
2401
- if (minRange.item.range.start.line === item.range.start.line && minRange.item.range.end.line === item.range.end.line) {
2402
- // 如果两个起始和结束的行都一样,那么就比较开始列, 要比原来大,说明更精准
2403
- if (item.range.start.character > minRange.item.range.start.character) {
2479
+ else if (!haveLineNode) {
2480
+ if ((0, translator_1.lsp2tspNumber)(item.start.line) === diagnostic.start.line &&
2481
+ diagnostic.start.offset >= (0, translator_1.lsp2tspNumber)(item.start.character)) {
2482
+ // 如果当前遍历的内容的行和列都 小于之前的, 而且是有效的
2483
+ // 如果两个内容位置行数是一样的,就比较下找到内容的位置信息
2484
+ // 找到的内容的开始位置, 要大于申明内容开始的位置,要不就不包含在内了
2485
+ if (diagnostic.start.offset - item.start.character <= diagnostic.start.offset - minRange.item.start.character) {
2404
2486
  minRange = { node, item };
2405
2487
  }
2488
+ else {
2489
+ if (diagnostic.start.offset < (0, translator_1.lsp2tspNumber)(minRange.item.start.character)) {
2490
+ minRange = { node, item };
2491
+ }
2492
+ }
2406
2493
  }
2407
- else {
2408
- minRange = { node, item };
2494
+ else if (item.end.line - item.start.line <= minRange.item.end.line - minRange.item.start.line) {
2495
+ // 行都一致 ,比较列
2496
+ if (minRange.item.start.line === item.start.line && minRange.item.end.line === item.end.line) {
2497
+ // 如果两个起始和结束的行都一样,那么就比较开始列, 要比原来大,说明更精准
2498
+ if (item.start.character > minRange.item.start.character) {
2499
+ minRange = { node, item };
2500
+ }
2501
+ }
2502
+ else {
2503
+ minRange = { node, item };
2504
+ }
2409
2505
  }
2410
2506
  }
2411
2507
  }
@@ -2433,26 +2529,28 @@ let NaslServer = class NaslServer {
2433
2529
  if (currentSource) {
2434
2530
  const newRefs = await this.references({
2435
2531
  file: fileNode.getEmbeddedFilePath(),
2436
- line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
2437
- offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character),
2532
+ line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
2533
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character),
2438
2534
  });
2439
2535
  refsList = [...newRefs.refs];
2440
2536
  }
2441
- else if (node instanceof concepts_1.Module) {
2442
- const lists = node.logics || node.structures || node.enums;
2443
- const moduleName = fileNode.getEmbeddedFilePath();
2444
- if (lists.length) {
2445
- const item = lists[0];
2446
- const { fileNode } = this.getCurrentSource(item);
2447
- if (fileNode) {
2448
- const newRefs = await this.references({
2449
- file: fileNode.getEmbeddedFilePath(),
2450
- line: 1,
2451
- offset: 22, // 固定的位置,module的位置信息
2452
- });
2453
- refsList = newRefs.refs.filter((item) => !item.file.startsWith(moduleName));
2454
- // 多塞一个 ,删除的时候就有值了, 上面过滤了之后可能是空的
2455
- refsList.unshift(newRefs.refs[0]);
2537
+ else {
2538
+ if (node instanceof concepts_1.Module) {
2539
+ const lists = node.logics || node.structures || node.enums;
2540
+ const moduleName = fileNode.getEmbeddedFilePath();
2541
+ if (lists.length) {
2542
+ const item = lists[0];
2543
+ const { fileNode } = this.getCurrentSource(item);
2544
+ if (fileNode) {
2545
+ const newRefs = await this.references({
2546
+ file: fileNode.getEmbeddedFilePath(),
2547
+ line: 1,
2548
+ offset: 22, //固定的位置,module的位置信息
2549
+ });
2550
+ refsList = newRefs.refs.filter((item) => !item.file.startsWith(moduleName));
2551
+ // 多塞一个 ,删除的时候就有值了, 上面过滤了之后可能是空的
2552
+ refsList.unshift(newRefs.refs[0]);
2553
+ }
2456
2554
  }
2457
2555
  }
2458
2556
  }
@@ -2475,7 +2573,7 @@ let NaslServer = class NaslServer {
2475
2573
  const entity = this.file2NodeMap.get(item.file);
2476
2574
  const { currentSource } = this.getCurrentSource(entity);
2477
2575
  // 42 11个函数的总行数
2478
- if (item.end.line < currentSource.range.end.line - 42 && item.start.line > 1) {
2576
+ if (item.end.line < currentSource.end.line - 42 && item.start.line > 1) {
2479
2577
  flag = true;
2480
2578
  }
2481
2579
  }
@@ -2505,28 +2603,31 @@ let NaslServer = class NaslServer {
2505
2603
  callQueryComponentTypeAnnotation = key;
2506
2604
  }
2507
2605
  });
2508
- const { currentSource: qcTypeAnnotationCurrentSource, fileNode } = callQueryComponentTypeAnnotation.getCurrentSource();
2509
- const { currentSource: logicCurrentSource } = fileNode.getCurrentSource();
2606
+ const { currentSource: qcTypeAnnotationCurrentSource, fileNode: qcTypeCurrentFileNode } = callQueryComponentTypeAnnotation.getCurrentSource();
2607
+ const { currentSource: logicCurrentSource, fileNode: logicCurrentFileNode } = fileNode.getCurrentSource();
2510
2608
  const aggregateLength = callQueryComponent.select.selectAggregateElements.filter((item) => item.aggregateName && item.asName).length;
2511
2609
  const groupByLength = callQueryComponent.groupBy.filter((item) => item.groupElement?.propertyName && item.groupElement.asName).length;
2512
2610
  if (!groupByLength && !aggregateLength && callQueryComponentTypeAnnotation.typeKind === 'anonymousStructure') {
2513
2611
  // 拿到 List 的泛型(匿名数据结构)的所有属性
2514
- const { properties } = callQueryComponentTypeAnnotation.properties[0].typeAnnotation.typeArguments[0];
2612
+ const properties = callQueryComponentTypeAnnotation.properties[0].typeAnnotation.typeArguments[0].properties;
2515
2613
  const targetProperty = properties.find((p) => p.name === utils.firstLowerCase(node.name));
2516
2614
  if (!targetProperty) {
2517
2615
  continue;
2518
2616
  }
2519
2617
  const { currentSource: propertyTypeCurrentSource } = targetProperty.typeAnnotation.getCurrentSource();
2520
2618
  // 减去 ": " 2个字符、减去属性名长度
2521
- const propertyCharacter = propertyTypeCurrentSource.range.start.character - 2 - targetProperty.name.length;
2522
- const propertyOffset = propertyCharacter - qcTypeAnnotationCurrentSource.range.start.character;
2523
- const qcTypeAnnotationOffset = logicCurrentSource.code.indexOf(qcTypeAnnotationCurrentSource.code);
2524
- const declarationCodeArr = logicCurrentSource.code.slice(0, qcTypeAnnotationOffset).split('\n');
2619
+ const propertyCharacter = propertyTypeCurrentSource.start.character - 2 - targetProperty.name.length;
2620
+ const propertyOffset = propertyCharacter - qcTypeAnnotationCurrentSource.start.character;
2621
+ const qcTypeCurrentFilePath = qcTypeCurrentFileNode.getEmbeddedFilePath();
2622
+ const qcTypeAnnotationCurrentCode = this.getNodeCode(qcTypeCurrentFileNode, qcTypeAnnotationCurrentSource);
2623
+ const logicCurrentCode = this.getNodeCode(qcTypeCurrentFileNode, logicCurrentSource);
2624
+ const qcTypeAnnotationOffset = logicCurrentCode.indexOf(qcTypeAnnotationCurrentCode);
2625
+ const declarationCodeArr = logicCurrentCode.slice(0, qcTypeAnnotationOffset).split('\n');
2525
2626
  const line = declarationCodeArr.length - 1;
2526
2627
  const character = declarationCodeArr[declarationCodeArr.length - 1].length;
2527
2628
  // eslint-disable-next-line no-await-in-loop
2528
2629
  const newRefs = await this.references({
2529
- file: fileNode.getEmbeddedFilePath(),
2630
+ file: qcTypeCurrentFilePath,
2530
2631
  line: line + 2,
2531
2632
  offset: character + 1 + propertyOffset,
2532
2633
  });
@@ -2552,21 +2653,21 @@ let NaslServer = class NaslServer {
2552
2653
  const { currentSource } = this.getCurrentSource(logicNode);
2553
2654
  const parentRefs = await this.references({
2554
2655
  file: fileNode.getEmbeddedFilePath(),
2555
- line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
2556
- offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character),
2656
+ line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
2657
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character),
2557
2658
  });
2558
2659
  refsList = [...refsList, ...parentRefs.refs];
2559
2660
  }
2560
2661
  // 如果是参数修改, 就需要把logic的引用 都查找出来就需要把他的父级的引用全部查找出来
2561
2662
  if (node instanceof concepts_1.Param && (node.parentNode instanceof concepts_1.View || node.parentNode instanceof concepts_1.Process)) {
2562
2663
  const viewNode = node.parentNode;
2563
- const { currentSource } = this.getCurrentSource(viewNode);
2564
- const { code } = currentSource;
2664
+ const { currentSource, fileNode } = this.getCurrentSource(viewNode);
2665
+ const code = this.getNodeCode(fileNode, currentSource);
2565
2666
  const viewIndex = code.indexOf(' {');
2566
2667
  const viewRefs = await this.references({
2567
2668
  file: fileNode.getEmbeddedFilePath(),
2568
- line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
2569
- offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character + viewIndex),
2669
+ line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
2670
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character + viewIndex),
2570
2671
  });
2571
2672
  let filterViewRefs = [];
2572
2673
  if (node.parentNode instanceof concepts_1.View) {
@@ -2590,8 +2691,8 @@ let NaslServer = class NaslServer {
2590
2691
  // const viewIndex = code.indexOf(' {');
2591
2692
  // const viewRefs = await naslServer.references({
2592
2693
  // file: (fileNode as FileNode).getEmbeddedFilePath(),
2593
- // line: lsp2tspNumber(currentSource.range.start.line),
2594
- // offset: lsp2tspNumber(currentSource.range.start.character + viewIndex),
2694
+ // line: lsp2tspNumber(currentSource.start.line),
2695
+ // offset: lsp2tspNumber(currentSource.start.character + viewIndex),
2595
2696
  // });
2596
2697
  // refsList = [...viewRefs.refs];
2597
2698
  // }
@@ -2600,14 +2701,14 @@ let NaslServer = class NaslServer {
2600
2701
  */
2601
2702
  if (node instanceof concepts_1.ViewElement) {
2602
2703
  if (currentSource) {
2603
- const { code } = currentSource;
2704
+ const code = this.getNodeCode(fileNode, currentSource);
2604
2705
  const prefix = '__elements.';
2605
2706
  const prefixIndex = code.indexOf(prefix) !== -1 ? code.indexOf(prefix) : 0;
2606
2707
  const methodsNameIndex = prefixIndex + prefix.length;
2607
2708
  const methods = await this.references({
2608
2709
  file: fileNode.getEmbeddedFilePath(),
2609
- line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
2610
- offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character + methodsNameIndex),
2710
+ line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
2711
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character + methodsNameIndex),
2611
2712
  });
2612
2713
  const methodRefs = [];
2613
2714
  methods.refs.forEach((item) => {
@@ -2625,7 +2726,7 @@ let NaslServer = class NaslServer {
2625
2726
  }
2626
2727
  if (node instanceof concepts_1.Process) {
2627
2728
  if (currentSource) {
2628
- const { code } = currentSource;
2729
+ const code = this.getNodeCode(fileNode, currentSource);
2629
2730
  const prefix = '__ProcessIdentification__';
2630
2731
  let positions = [];
2631
2732
  let pos = code.indexOf(prefix);
@@ -2638,8 +2739,8 @@ let NaslServer = class NaslServer {
2638
2739
  positions = positions.map((position) => code.indexOf('const', position + prefix.length));
2639
2740
  const promises = positions.map((item) => this.references({
2640
2741
  file: fileNode.getEmbeddedFilePath(),
2641
- line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
2642
- offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character + item),
2742
+ line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
2743
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character + item),
2643
2744
  }));
2644
2745
  const results = await Promise.all(promises);
2645
2746
  results.forEach((constRefs) => {
@@ -2648,9 +2749,9 @@ let NaslServer = class NaslServer {
2648
2749
  }
2649
2750
  }
2650
2751
  if ((node instanceof concepts_1.Param || node instanceof concepts_1.Return) && node.parentNode instanceof concepts_1.Process) {
2651
- const { currentSource } = this.getCurrentSource(node.parentNode);
2752
+ const { currentSource, fileNode } = this.getCurrentSource(node.parentNode);
2652
2753
  if (currentSource) {
2653
- const { code } = currentSource;
2754
+ const code = this.getNodeCode(fileNode, currentSource);
2654
2755
  const prefix = '__ProcessIdentification__';
2655
2756
  const positions = [];
2656
2757
  let pos = code.indexOf(prefix);
@@ -2667,8 +2768,8 @@ let NaslServer = class NaslServer {
2667
2768
  // 拿到标识下定义的参数名字
2668
2769
  const promises = positions.map((item) => this.references({
2669
2770
  file: fileNode.getEmbeddedFilePath(),
2670
- line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
2671
- offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character + item),
2771
+ line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
2772
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character + item),
2672
2773
  }));
2673
2774
  const results = await Promise.all(promises);
2674
2775
  results.forEach((constRefs) => {
@@ -2678,7 +2779,7 @@ let NaslServer = class NaslServer {
2678
2779
  }
2679
2780
  if (node instanceof concepts_1.ProcessElement) {
2680
2781
  if (currentSource) {
2681
- const { code } = currentSource;
2782
+ const code = this.getNodeCode(fileNode, currentSource);
2682
2783
  const prefix = '__ProcessIdentification__';
2683
2784
  let positions = [];
2684
2785
  let pos = code.indexOf(prefix);
@@ -2690,8 +2791,8 @@ let NaslServer = class NaslServer {
2690
2791
  positions = positions.map((position) => code.indexOf(`${node.name}:`, position + prefix.length));
2691
2792
  const promises = positions.map((item) => this.references({
2692
2793
  file: fileNode.getEmbeddedFilePath(),
2693
- line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
2694
- offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character + item),
2794
+ line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
2795
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character + item),
2695
2796
  }));
2696
2797
  const results = await Promise.all(promises);
2697
2798
  results.forEach((constRefs) => {
@@ -2700,9 +2801,9 @@ let NaslServer = class NaslServer {
2700
2801
  }
2701
2802
  }
2702
2803
  if (node instanceof concepts_1.Return && node.parentNode instanceof concepts_1.ProcessElement) {
2703
- const { currentSource } = this.getCurrentSource(node.parentNode);
2804
+ const { currentSource, fileNode } = this.getCurrentSource(node.parentNode);
2704
2805
  if (currentSource) {
2705
- const { code } = currentSource;
2806
+ const code = this.getNodeCode(fileNode, currentSource);
2706
2807
  const prefix = '__ProcessIdentification__';
2707
2808
  const positions = [];
2708
2809
  let pos = code.indexOf(prefix);
@@ -2722,8 +2823,8 @@ let NaslServer = class NaslServer {
2722
2823
  // 拿到标识下定义的参数名字
2723
2824
  const promises = positions.map((item) => this.references({
2724
2825
  file: fileNode.getEmbeddedFilePath(),
2725
- line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
2726
- offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character + item),
2826
+ line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
2827
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character + item),
2727
2828
  }));
2728
2829
  const results = await Promise.all(promises);
2729
2830
  results.forEach((constRefs) => {
@@ -2766,13 +2867,16 @@ let NaslServer = class NaslServer {
2766
2867
  // }
2767
2868
  minRange.setTypeMethods = 'setTypeName';
2768
2869
  }
2870
+ if (minRange.node instanceof concepts_1.CallConnector) {
2871
+ minRange.setTypeMethods = 'setCalleeConnectionName';
2872
+ }
2769
2873
  // 如果节点是logic修改引发calllogic修改
2770
2874
  if (minRange.node instanceof concepts_1.CallLogic && node instanceof concepts_1.Logic) {
2771
2875
  minRange.setTypeMethods = 'setCalleeName';
2772
2876
  }
2773
2877
  if (minRange.node instanceof concepts_1.CallLogic && node instanceof concepts_1.ViewElement) {
2774
2878
  minRange.setTypeMethods = 'setCalleeNamespace';
2775
- minRange.newValue = `elements.${newValue}.logics`;
2879
+ minRange.newValue = 'elements.' + newValue + '.logics';
2776
2880
  }
2777
2881
  // 如果节点是实体修改引发calllogic修改
2778
2882
  if (minRange.node instanceof concepts_1.CallLogic &&
@@ -2789,9 +2893,9 @@ let NaslServer = class NaslServer {
2789
2893
  * 3.然后把namespace中的 $替换成 ''
2790
2894
  *
2791
2895
  */
2792
- const { tsCalleeNamespace } = minRange.node;
2896
+ const tsCalleeNamespace = minRange.node.tsCalleeNamespace;
2793
2897
  // 先看下标位置
2794
- const { lineText } = record;
2898
+ const lineText = record.lineText;
2795
2899
  const index = lineText.indexOf(tsCalleeNamespace);
2796
2900
  // 在把开始结束位置的-开始位置,来知道是哪里要替换
2797
2901
  const start = record.start.offset - index - 1;
@@ -2826,12 +2930,12 @@ let NaslServer = class NaslServer {
2826
2930
  if (minRange.node instanceof concepts_1.Identifier) {
2827
2931
  // 匹配到的内容,当前这一行的内容;
2828
2932
  // 因为要用下面的点位信息
2829
- const { name } = minRange.node;
2933
+ const name = minRange.node.name;
2830
2934
  // 如果name不改,那就是要改命名空间
2831
2935
  if (node instanceof concepts_1.Frontend || newValue === name) {
2832
- const { namespace } = minRange.node;
2936
+ const namespace = minRange.node.namespace;
2833
2937
  // 先看下标位置
2834
- const { lineText } = record;
2938
+ const lineText = record.lineText;
2835
2939
  const index = lineText.indexOf(namespace);
2836
2940
  // 在把开始结束位置的-开始位置,来知道是哪里要替换
2837
2941
  const start = record.start.offset - index - 1;
@@ -2863,7 +2967,7 @@ let NaslServer = class NaslServer {
2863
2967
  // 枚举key的特殊性,因为它不是原来的key+value形式的
2864
2968
  // 是加了中括号啥的,所以直接赋值新值
2865
2969
  if (node instanceof concepts_1.EnumItem) {
2866
- const newTextValue = `${node.parentNode.name}.${newValue}`;
2970
+ const newTextValue = node.parentNode.name + '.' + newValue;
2867
2971
  minRange.newValue = newTextValue;
2868
2972
  }
2869
2973
  else {
@@ -2903,7 +3007,7 @@ let NaslServer = class NaslServer {
2903
3007
  }
2904
3008
  else if (minRange.node instanceof concepts_1.BindAttribute && minRange.node.name === 'url') {
2905
3009
  // 如果是查找到 上传地址的链接引用
2906
- let newName = newValue.replace(/[A-Z]/g, (item) => `-${item.toLowerCase()}`);
3010
+ let newName = newValue.replace(/[A-Z]/g, (item) => '-' + item.toLowerCase());
2907
3011
  newName = newName[0] === '-' ? newName.slice(1) : newName;
2908
3012
  const newTextValue = node.parentNode.name === 'defaultDS' ? `/api/${newName}/import` : `/api/${node.parentNode.name}/${newName}/import`;
2909
3013
  minRange.setTypeMethods = 'setUrlValue';
@@ -2943,11 +3047,11 @@ let NaslServer = class NaslServer {
2943
3047
  * 3.然后把namespace中的 $替换成 ''
2944
3048
  *
2945
3049
  */
2946
- const { tsCalleeNamespace } = minRange.node;
2947
- const { tsName } = minRange.node;
2948
- const oldValue = `${tsCalleeNamespace}.${tsName}`;
3050
+ const tsCalleeNamespace = minRange.node.tsCalleeNamespace;
3051
+ const tsName = minRange.node.tsName;
3052
+ const oldValue = tsCalleeNamespace + '.' + tsName;
2949
3053
  // 先看下标位置
2950
- const { lineText } = record;
3054
+ const lineText = record.lineText;
2951
3055
  const index = lineText.indexOf(oldValue);
2952
3056
  // 在把开始结束位置的-开始位置,来知道是哪里要替换
2953
3057
  const start = record.start.offset - index - 1;
@@ -2965,11 +3069,11 @@ let NaslServer = class NaslServer {
2965
3069
  }
2966
3070
  }
2967
3071
  if (node instanceof concepts_1.Frontend && minRange.node instanceof concepts_1.Destination) {
2968
- const { tsCalleeNamespace } = minRange.node;
2969
- const { tsName } = minRange.node;
2970
- const oldValue = `${tsCalleeNamespace}.${tsName}`;
3072
+ const tsCalleeNamespace = minRange.node.tsCalleeNamespace;
3073
+ const tsName = minRange.node.tsName;
3074
+ const oldValue = tsCalleeNamespace + '.' + tsName;
2971
3075
  // 先看下标位置
2972
- const { lineText } = record;
3076
+ const lineText = record.lineText;
2973
3077
  const index = lineText.indexOf(oldValue);
2974
3078
  // 在把开始结束位置的-开始位置,来知道是哪里要替换
2975
3079
  const start = record.start.offset - index - 1;
@@ -2989,7 +3093,7 @@ let NaslServer = class NaslServer {
2989
3093
  // 页面逻辑直接赋值就可以, 因为是相对路径
2990
3094
  if (node instanceof concepts_1.ViewElement) {
2991
3095
  minRange.setTypeMethods = 'setCalleeNamespace';
2992
- minRange.newValue = `elements.${newValue}.logics`;
3096
+ minRange.newValue = 'elements.' + newValue + '.logics';
2993
3097
  }
2994
3098
  else {
2995
3099
  /**
@@ -3001,10 +3105,10 @@ let NaslServer = class NaslServer {
3001
3105
  * 2.在匹配到的内容中取转后的namespace的位置
3002
3106
  * 3.然后把namespace中的 $替换成 ''
3003
3107
  */
3004
- const { tsCalleeNamespace } = minRange.node;
3108
+ const tsCalleeNamespace = minRange.node.tsCalleeNamespace;
3005
3109
  const oldValue = tsCalleeNamespace;
3006
3110
  // 先看下标位置
3007
- const { lineText } = record;
3111
+ const lineText = record.lineText;
3008
3112
  const index = lineText.indexOf(oldValue);
3009
3113
  // 在把开始结束位置的-开始位置,来知道是哪里要替换
3010
3114
  const start = record.start.offset - index - 1;
@@ -3067,7 +3171,7 @@ let NaslServer = class NaslServer {
3067
3171
  if (node instanceof concepts_1.DataSource) {
3068
3172
  const setTypeNamespace = (typeNamespace, record) => {
3069
3173
  // 先看下标位置
3070
- const { lineText } = record;
3174
+ const lineText = record.lineText;
3071
3175
  const index = lineText.indexOf(typeNamespace);
3072
3176
  // 在把开始结束位置的-开始位置,来知道是哪里要替换
3073
3177
  const start = record.start.offset - index - 1;
@@ -3193,7 +3297,7 @@ let NaslServer = class NaslServer {
3193
3297
  if (a.node.concept === 'QueryFieldExpression') {
3194
3298
  return 1;
3195
3299
  }
3196
- if (b.node.concept === 'QueryFieldExpression') {
3300
+ else if (b.node.concept === 'QueryFieldExpression') {
3197
3301
  return -1;
3198
3302
  }
3199
3303
  return 0;
@@ -3321,7 +3425,7 @@ let NaslServer = class NaslServer {
3321
3425
  const queue = [];
3322
3426
  // 先插入自己,如果没有在往上找,
3323
3427
  // 一直到file节点的父级
3324
- while (!(parantNode instanceof concepts_1.App)) {
3428
+ while (parantNode && !(parantNode instanceof concepts_1.App)) {
3325
3429
  // 找到上一级 在map对象中构造出他的子集
3326
3430
  currentNode = parantNode;
3327
3431
  parantNode = parantNode.parentNode;
@@ -3441,7 +3545,7 @@ let NaslServer = class NaslServer {
3441
3545
  getCurrentSource(node) {
3442
3546
  if (node instanceof concepts_1.App || node instanceof concepts_1.Theme)
3443
3547
  return { fileNode: null };
3444
- let { sourceMap } = node;
3548
+ let sourceMap = node.sourceMap;
3445
3549
  let fileNode = node;
3446
3550
  // 如果没有sourceMap,就继续向上找 ,或者到module结束
3447
3551
  // 如果 节点找到 app 或者module 停止 或者entity找到DataSource为止
@@ -3470,8 +3574,8 @@ let NaslServer = class NaslServer {
3470
3574
  handlingCurrentSourceException(currentSource, node) {
3471
3575
  // 如果有前面的一些注解,元素在最后一行输出的值就给最后一行
3472
3576
  if (node instanceof concepts_1.EntityProperty) {
3473
- if (currentSource.range.start.line !== currentSource.range.end.line) {
3474
- currentSource.range.start = { ...currentSource.range.start, line: currentSource.range.end.line };
3577
+ if (currentSource.start.line !== currentSource.end.line) {
3578
+ currentSource.start = { ...currentSource.start, line: currentSource.end.line };
3475
3579
  }
3476
3580
  }
3477
3581
  }
@@ -3479,16 +3583,30 @@ let NaslServer = class NaslServer {
3479
3583
  getFieldKeySelectCompletion(node, fieldKey) {
3480
3584
  const { currentSource, fileNode } = this.getCurrentSource(node);
3481
3585
  if (currentSource && fileNode) {
3586
+ const range = {
3587
+ line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
3588
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character),
3589
+ };
3590
+ // foreach 在最后一行自动补全
3591
+ if (node.concept === 'ForEachStatement') {
3592
+ range.line = currentSource.end.line;
3593
+ range.offset = 0;
3594
+ }
3595
+ else if (node.concept === 'BindAttribute') {
3596
+ range.offset = range.offset + 7;
3597
+ }
3598
+ else if (node.concept === 'BindDirective') {
3599
+ range.offset = range.offset + 5;
3600
+ }
3482
3601
  return this._getFieldKeySelectCompletion({
3483
3602
  file: fileNode.getEmbeddedFilePath(),
3484
- range: {
3485
- line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
3486
- offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character),
3487
- },
3603
+ range,
3488
3604
  getFieldKey: fieldKey,
3489
3605
  });
3490
3606
  }
3491
- console.log('没找到节点', currentSource, fileNode);
3607
+ else {
3608
+ console.log('没找到节点', currentSource, fileNode);
3609
+ }
3492
3610
  }
3493
3611
  _getFieldKeySelectCompletion(args) {
3494
3612
  return this.messager.requestCommand('getFieldKeySelectCompletion', args);
@@ -3536,7 +3654,7 @@ let NaslServer = class NaslServer {
3536
3654
  });
3537
3655
  return [...fileNodes];
3538
3656
  }
3539
- /** 获取当前节点的已知类型
3657
+ /**获取当前节点的已知类型
3540
3658
  * @param node 当前要获取类型的节点
3541
3659
  * @returns 不需要去查就可以返回类型的节点
3542
3660
  */
@@ -3625,7 +3743,7 @@ let NaslServer = class NaslServer {
3625
3743
  }
3626
3744
  // 如果 入参不是虚拟节点的,就不去请求类型
3627
3745
  // 只有虚拟节点的入参,才没有类型
3628
- if (node.concept === 'Param' && node.parentKey !== 'virtualParams' && node.parentKey !== 'item') {
3746
+ if (node.concept === 'Param' && (node.parentKey !== 'virtualParams' && node.parentKey !== 'item' && node.parentNode.concept !== 'AnonymousFunction')) {
3629
3747
  return;
3630
3748
  }
3631
3749
  if (![
@@ -3657,69 +3775,75 @@ let NaslServer = class NaslServer {
3657
3775
  newQuickInfoNodes.push(itemDetail);
3658
3776
  const fileDetail = {
3659
3777
  file: filePath,
3660
- line: (0, translator_1.lsp2tspNumber)(item.range.start.line),
3661
- offset: (0, translator_1.lsp2tspNumber)(item.range.start.character),
3778
+ line: (0, translator_1.lsp2tspNumber)(item.start.line),
3779
+ offset: (0, translator_1.lsp2tspNumber)(item.start.character),
3780
+ };
3781
+ const getCode = (range) => {
3782
+ return this.tsFiles.get(filePath)?.slice(range.start.offset, range.end.offset) ?? '';
3662
3783
  };
3663
3784
  // 位置计算偏移
3664
3785
  if ('getQuickInfoOffset' in node) {
3665
- Object.assign(fileDetail, node.getQuickInfoOffset(fileDetail, item.code));
3786
+ Object.assign(fileDetail, node.getQuickInfoOffset(fileDetail, getCode(item)));
3666
3787
  }
3667
3788
  // 位置计算偏移2
3668
3789
  // TODO: 之后考虑把这些偏移量计算全都挪到节点内部去
3669
3790
  if (node.concept === 'BinaryExpression' ||
3670
- node.concept === 'CallLogic' ||
3671
3791
  node.concept === 'CallFunction' ||
3672
3792
  node.concept === 'CallInterface') {
3793
+ const code = getCode(item);
3673
3794
  // 如果没有括号 ,括号就在外面,就 -1
3674
3795
  // 有括号就找到括号的位置 然后 -1
3675
3796
  let indexOf = 0;
3676
- if (!item.code.includes('(')) {
3797
+ if (!code.includes('(')) {
3677
3798
  indexOf = -1;
3678
3799
  }
3679
3800
  else {
3680
3801
  // 如果有泛型先往前找一找
3681
- if (item.code.includes('<')) {
3682
- indexOf = Math.min(item.code.indexOf('<'), item.code.indexOf('('));
3802
+ if (code.includes('<')) {
3803
+ indexOf = Math.min(code.indexOf('<'), code.indexOf('('));
3683
3804
  }
3684
3805
  else {
3685
- indexOf = item.code.indexOf('(');
3806
+ indexOf = code.indexOf('(');
3686
3807
  }
3687
- const subStr = item.code.substring(0, indexOf);
3808
+ const subStr = code.substring(0, indexOf);
3688
3809
  const codeArr = subStr?.split('.');
3689
3810
  const lastLen = codeArr?.[codeArr.length - 1]?.length;
3690
3811
  indexOf = subStr.length - lastLen;
3691
3812
  }
3692
- fileDetail.offset += indexOf;
3813
+ fileDetail.offset = fileDetail.offset + indexOf;
3693
3814
  }
3694
3815
  else if (node.concept === 'MemberExpression' ||
3695
3816
  node.concept === 'Identifier' ||
3696
3817
  node.concept === 'QueryFieldExpression' ||
3697
3818
  node.concept === 'QueryGroupByExpression') {
3698
- if (item.code.includes('.')) {
3699
- const codeArr = item.code?.split('.');
3819
+ const code = getCode(item);
3820
+ if (code.includes('.')) {
3821
+ const codeArr = code?.split('.');
3700
3822
  const lastLen = codeArr?.[codeArr.length - 1]?.length;
3701
3823
  // MemberExpression取最后一位当做类型
3702
- const indexOf = item.code.length - lastLen;
3703
- fileDetail.offset += indexOf;
3824
+ const indexOf = code.length - lastLen;
3825
+ fileDetail.offset = fileDetail.offset + indexOf;
3704
3826
  }
3705
3827
  }
3706
3828
  else if (node.concept === 'Match') {
3829
+ const code = getCode(item);
3707
3830
  // 去查return 后面的返回值,变成函数调用
3708
- if (item.code?.endsWith(';\n')) {
3709
- fileDetail.line = item.range.end.line - 1;
3831
+ if (code?.endsWith(';\n')) {
3832
+ fileDetail.line = item.end.line - 1;
3710
3833
  }
3711
3834
  else {
3712
- fileDetail.line = item.range.end.line;
3835
+ fileDetail.line = item.end.line;
3713
3836
  }
3714
- const indexOf = item.code.indexOf('return __MatchExpressionFuntion');
3715
- let newCode = item.code.substring(0, indexOf);
3837
+ const indexOf = code.indexOf('return __MatchExpressionFuntion');
3838
+ let newCode = code.substring(0, indexOf);
3716
3839
  newCode = newCode.substring(newCode.lastIndexOf('\n'), indexOf);
3717
3840
  fileDetail.offset = newCode.length + 'return '.length;
3718
3841
  }
3719
3842
  else if (['NewComposite', 'NewList', 'NewMap'].includes(node.concept)) {
3720
- fileDetail.line = item.range.end.line;
3721
- const indexOf = item.code.indexOf('return __newComposite');
3722
- let newCode = item.code.substring(0, indexOf);
3843
+ const code = getCode(item);
3844
+ fileDetail.line = item.end.line;
3845
+ const indexOf = code.indexOf('return __newComposite');
3846
+ let newCode = code.substring(0, indexOf);
3723
3847
  newCode = newCode.substring(newCode.lastIndexOf('\n'), indexOf);
3724
3848
  fileDetail.offset = newCode.length + 'return '.length;
3725
3849
  }
@@ -3733,9 +3857,15 @@ let NaslServer = class NaslServer {
3733
3857
  const item = resultMap?.[file]?.[line]?.[offset];
3734
3858
  const itemType = item?.[0]?.nodeType;
3735
3859
  const nodeTypeAnnotation = (0, formatTsUtils_1.type2TypeAnnotation)(itemType);
3736
- const { node } = newQuickInfoNodes[index];
3860
+ const node = newQuickInfoNodes[index].node;
3737
3861
  types.set(node, Object.freeze(nodeTypeAnnotation));
3738
- node.__nodeType = itemType ? (Object.isFrozen(itemType) ? itemType : Object.freeze(itemType)) : null;
3862
+ const type = itemType ? (Object.isFrozen(itemType) ? itemType : Object.freeze(itemType)) : null;
3863
+ if (type) {
3864
+ node.__nodeType = type;
3865
+ }
3866
+ else {
3867
+ delete node.__nodeType;
3868
+ }
3739
3869
  });
3740
3870
  await utils.timeSlicing(Array.from(getFromOthers.entries()), ([node]) => {
3741
3871
  if (node instanceof concepts_1.Assignment) {
@@ -3769,9 +3899,9 @@ let NaslServer = class NaslServer {
3769
3899
  const typeAnnotation = value;
3770
3900
  if (!node.typeAnnotation && typeAnnotation) {
3771
3901
  if (typeAnnotation.typeName === 'List' && typeAnnotation.typeKind === 'generic') {
3772
- const { typeArguments } = typeAnnotation;
3902
+ const typeArguments = typeAnnotation.typeArguments;
3773
3903
  if (typeArguments.length && typeArguments[0].isComplexType()) {
3774
- node.__TypeAnnotation = null;
3904
+ delete node.__TypeAnnotation;
3775
3905
  return;
3776
3906
  }
3777
3907
  }
@@ -3786,13 +3916,13 @@ let NaslServer = class NaslServer {
3786
3916
  }
3787
3917
  else {
3788
3918
  // 清空原来已经赋值上去的类型,可能原来有现在没有了
3789
- node.__TypeAnnotation = null;
3919
+ delete node.__TypeAnnotation;
3790
3920
  }
3791
3921
  }
3792
3922
  catch (err) {
3793
- if (globalThis.window) {
3794
- // console.log(err);
3795
- }
3923
+ // if (globalThis.window) {
3924
+ // console.log(err);
3925
+ // }
3796
3926
  }
3797
3927
  });
3798
3928
  return types;
@@ -3800,7 +3930,7 @@ let NaslServer = class NaslServer {
3800
3930
  // 全量标注并且返回json
3801
3931
  async getNaslAnnotatedJSON(app, releaseFlag) {
3802
3932
  if (this.changeStackList?.length) {
3803
- throw new Error(`当前还有${this.changeStackList.length}个文件还在执行更新操作,请稍后再试!或刷新后重试!`);
3933
+ throw new Error(`当前还有${this.changeStackList.length}个文件还在执行更新操作`);
3804
3934
  }
3805
3935
  const nodes = [];
3806
3936
  this.file2NodeMap.forEach((fileNode, filePath) => {
@@ -3927,7 +4057,7 @@ let NaslServer = class NaslServer {
3927
4057
  (matchExpression instanceof concepts_1.Identifier || matchExpression instanceof concepts_1.MemberExpression)) {
3928
4058
  const { currentSource, fileNode } = matchExpression?.getCurrentSource();
3929
4059
  fileNode.sourceMap.forEach((item, itemNode) => {
3930
- if (itemNode.concept === matchExpression.concept && item.code === currentSource.code) {
4060
+ if (itemNode.concept === matchExpression.concept && (0, translator_1.isSameRange)(item, currentSource)) {
3931
4061
  const jsonNode = jsoner.queryNodeByPath(json, itemNode.getNodePath(false));
3932
4062
  jsonNode.typeAnnotation = matchExpression.__TypeAnnotation;
3933
4063
  }
@@ -3985,7 +4115,7 @@ let NaslServer = class NaslServer {
3985
4115
  }
3986
4116
  }
3987
4117
  // 用户自己声明的用用户的
3988
- const callObj = App.findNodeByCompleteName(`${parent.calleeNamespace}.${parent.calleeName}`);
4118
+ const callObj = App.findNodeByCompleteName(parent.calleeNamespace + '.' + parent.calleeName);
3989
4119
  const index = parent.arguments.indexOf(node);
3990
4120
  const param = callObj?.params?.[index] || {};
3991
4121
  // 取出参数的类型
@@ -4219,16 +4349,16 @@ let NaslServer = class NaslServer {
4219
4349
  */
4220
4350
  const oldRefs = await this.references({
4221
4351
  file: fileNode.getEmbeddedFilePath(),
4222
- line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
4223
- offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character),
4352
+ line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
4353
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character),
4224
4354
  });
4225
4355
  oldRefs.refs.forEach((ref) => this.filesToCheck.add(ref.file));
4226
4356
  // 更新文件之后
4227
4357
  await this.updateFiles({ outputFiles });
4228
4358
  const newRefs2 = await this.references({
4229
4359
  file: fileNode.getEmbeddedFilePath(),
4230
- line: (0, translator_1.lsp2tspNumber)(currentSource.range.start.line),
4231
- offset: (0, translator_1.lsp2tspNumber)(currentSource.range.start.character),
4360
+ line: (0, translator_1.lsp2tspNumber)(currentSource.start.line),
4361
+ offset: (0, translator_1.lsp2tspNumber)(currentSource.start.character),
4232
4362
  });
4233
4363
  newRefs2.refs.forEach((ref) => this.filesToCheck.add(ref.file));
4234
4364
  }
@@ -4245,7 +4375,7 @@ let NaslServer = class NaslServer {
4245
4375
  */
4246
4376
  async incidentalAction(action, fileNode, targetNode, oldpath) {
4247
4377
  if ((action === 'create' || action === 'delete' || (action === 'update' && oldpath)) && fileNode === targetNode) {
4248
- // 删除、更改、新增端
4378
+ //删除、更改、新增端
4249
4379
  if (fileNode instanceof concepts_1.Frontend && (fileNode.views?.length || fileNode.variables?.length)) {
4250
4380
  const fileNodeChildren = [...fileNode.views, ...fileNode.variables];
4251
4381
  for (let i = 0; i < fileNodeChildren.length; i++) {
@@ -4263,7 +4393,7 @@ let NaslServer = class NaslServer {
4263
4393
  else if (action === 'update' && oldpath) {
4264
4394
  const parentPath = oldpath.replace('.ts', '/');
4265
4395
  const foldName = fileNodeItem.concept === 'View' ? 'views' : 'variables';
4266
- const currentOldPath = `${parentPath + foldName}/${fileNodeItem.name}.ts`;
4396
+ const currentOldPath = parentPath + foldName + '/' + fileNodeItem.name + '.ts';
4267
4397
  // 因为重命名这里只有当前修改父级的 旧名称, 所以他的子集也要根据旧名称去查依赖 更新内容
4268
4398
  await this.handleRename(fileNodeItem, fileNodeItem, result, currentOldPath);
4269
4399
  await this.incidentalAction(action, fileNodeItem, fileNodeItem, currentOldPath);
@@ -4287,7 +4417,7 @@ let NaslServer = class NaslServer {
4287
4417
  }
4288
4418
  else if (action === 'update' && oldpath) {
4289
4419
  const parentPath = oldpath.replace('.ts', '/');
4290
- const currentOldPath = `${parentPath + fileNodeItem.name}.ts`;
4420
+ const currentOldPath = parentPath + fileNodeItem.name + '.ts';
4291
4421
  // 因为重命名这里只有当前修改父级的 旧名称, 所以他的子集也要根据旧名称去查依赖 更新内容
4292
4422
  await this.handleRename(fileNodeItem, fileNodeItem, result, currentOldPath);
4293
4423
  await this.incidentalAction(action, fileNodeItem, fileNodeItem, currentOldPath);
@@ -4332,7 +4462,7 @@ let NaslServer = class NaslServer {
4332
4462
  try {
4333
4463
  const result = entity.toEmbeddedTSFile();
4334
4464
  const parentPath = oldpath.replace('.ts', '/');
4335
- const currentOldPath = `${parentPath}/entities/${entity.name}.ts`;
4465
+ const currentOldPath = parentPath + '/entities/' + entity.name + '.ts';
4336
4466
  // 因为重命名这里只有当前修改父级的 旧名称, 所以他的子集也要根据旧名称去查依赖 更新内容
4337
4467
  await this.handleRename(entity, entity, result, currentOldPath);
4338
4468
  }
@@ -4346,7 +4476,7 @@ let NaslServer = class NaslServer {
4346
4476
  async receiveHandleChange($event) {
4347
4477
  this.singleFileChangeIng = true;
4348
4478
  // 行为
4349
- const { action } = $event;
4479
+ const action = $event.action;
4350
4480
  const targetNode = $event.target;
4351
4481
  // Connection 相关配置的更新不需要写入文件
4352
4482
  if (targetNode?.parentNode instanceof concepts_1.Connection) {
@@ -4366,9 +4496,14 @@ let NaslServer = class NaslServer {
4366
4496
  }
4367
4497
  return;
4368
4498
  }
4369
- console.time('重新生成 TS 文件');
4499
+ if (process.env.NODE_ENV === 'development') {
4500
+ console.time('重新生成 TS 文件');
4501
+ }
4370
4502
  const result = fileNode.toEmbeddedTSFile();
4371
- console.timeEnd('重新生成 TS 文件');
4503
+ if (process.env.NODE_ENV === 'development') {
4504
+ console.timeEnd('重新生成 TS 文件');
4505
+ console.log('重新生成 TS 文件', fileNode.getEmbeddedFilePath());
4506
+ }
4372
4507
  // 当前操作的节点
4373
4508
  // 如果当前没有生成tsFile
4374
4509
  if (!result) {
@@ -4414,13 +4549,18 @@ let NaslServer = class NaslServer {
4414
4549
  this.changeFileNext();
4415
4550
  }
4416
4551
  else {
4417
- console.info(Array.from(this.filesToCheck));
4552
+ if (process.env.NODE_ENV === 'development') {
4553
+ console.info('校验以下文件', Array.from(this.filesToCheck));
4554
+ }
4418
4555
  await this.getDiagnosticRecordsAndPushAll(Array.from(this.filesToCheck));
4419
4556
  this.filesToCheck.clear();
4420
4557
  }
4421
4558
  });
4422
4559
  }
4423
4560
  }
4561
+ getNodeCode(fileNode, range) {
4562
+ return (this.tsFiles.get(fileNode.getEmbeddedFilePath()) ?? '').slice(range.start.offset, range.end.offset);
4563
+ }
4424
4564
  };
4425
4565
  __decorate([
4426
4566
  (0, decorators_1.withQueueExecute)('diagnostic')