@lcap/nasl 3.4.0-alpha.1 → 3.4.0-beta.1

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 (822) hide show
  1. package/out/bak/translator.js +8 -5
  2. package/out/bak/translator.js.map +1 -1
  3. package/out/breakpoint/generator/AfterStartNode.js +2 -1
  4. package/out/breakpoint/generator/AfterStartNode.js.map +1 -1
  5. package/out/breakpoint/generator/BeforeEndNode.js +2 -1
  6. package/out/breakpoint/generator/BeforeEndNode.js.map +1 -1
  7. package/out/breakpoint/generator/BreakpointNode.js +30 -9
  8. package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
  9. package/out/breakpoint/shared/constants.d.ts +1 -0
  10. package/out/breakpoint/shared/constants.js +7 -1
  11. package/out/breakpoint/shared/constants.js.map +1 -1
  12. package/out/breakpoint/shared/utils.d.ts +3 -1
  13. package/out/breakpoint/shared/utils.js +25 -4
  14. package/out/breakpoint/shared/utils.js.map +1 -1
  15. package/out/common/BaseNode.d.ts +30 -14
  16. package/out/common/BaseNode.js +186 -119
  17. package/out/common/BaseNode.js.map +1 -1
  18. package/out/common/Command.js +6 -1
  19. package/out/common/Command.js.map +1 -1
  20. package/out/common/EventEmitter.d.ts +1 -1
  21. package/out/common/EventEmitter.js +1 -3
  22. package/out/common/EventEmitter.js.map +1 -1
  23. package/out/common/index.d.ts +0 -1
  24. package/out/common/index.js +0 -1
  25. package/out/common/index.js.map +1 -1
  26. package/out/concepts/Abort__.d.ts +3 -2
  27. package/out/concepts/Abort__.js +14 -16
  28. package/out/concepts/Abort__.js.map +1 -1
  29. package/out/concepts/Anchor__.d.ts +3 -2
  30. package/out/concepts/Anchor__.js +21 -20
  31. package/out/concepts/Anchor__.js.map +1 -1
  32. package/out/concepts/AnonymousFunction__.d.ts +3 -2
  33. package/out/concepts/AnonymousFunction__.js +39 -30
  34. package/out/concepts/AnonymousFunction__.js.map +1 -1
  35. package/out/concepts/App__.d.ts +160 -157
  36. package/out/concepts/App__.js +177 -99
  37. package/out/concepts/App__.js.map +1 -1
  38. package/out/concepts/Argument__.d.ts +3 -2
  39. package/out/concepts/Argument__.js +25 -22
  40. package/out/concepts/Argument__.js.map +1 -1
  41. package/out/concepts/Assignee__.d.ts +3 -2
  42. package/out/concepts/Assignee__.js +37 -26
  43. package/out/concepts/Assignee__.js.map +1 -1
  44. package/out/concepts/AssignmentLine__.d.ts +3 -2
  45. package/out/concepts/AssignmentLine__.js +20 -18
  46. package/out/concepts/AssignmentLine__.js.map +1 -1
  47. package/out/concepts/Assignment__.d.ts +3 -2
  48. package/out/concepts/Assignment__.js +39 -29
  49. package/out/concepts/Assignment__.js.map +1 -1
  50. package/out/concepts/Attribute__.d.ts +3 -2
  51. package/out/concepts/Attribute__.js +39 -29
  52. package/out/concepts/Attribute__.js.map +1 -1
  53. package/out/concepts/AuthInterface__.d.ts +4 -3
  54. package/out/concepts/AuthInterface__.js +16 -17
  55. package/out/concepts/AuthInterface__.js.map +1 -1
  56. package/out/concepts/AuthLogicForCallInterface__.d.ts +4 -3
  57. package/out/concepts/AuthLogicForCallInterface__.js +41 -28
  58. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  59. package/out/concepts/AuthLogic__.d.ts +4 -3
  60. package/out/concepts/AuthLogic__.js +18 -19
  61. package/out/concepts/AuthLogic__.js.map +1 -1
  62. package/out/concepts/BackendVariable__.d.ts +8 -7
  63. package/out/concepts/BackendVariable__.js +41 -34
  64. package/out/concepts/BackendVariable__.js.map +1 -1
  65. package/out/concepts/Backend__.d.ts +32 -31
  66. package/out/concepts/Backend__.js +26 -22
  67. package/out/concepts/Backend__.js.map +1 -1
  68. package/out/concepts/BatchAssignment__.d.ts +3 -2
  69. package/out/concepts/BatchAssignment__.js +56 -39
  70. package/out/concepts/BatchAssignment__.js.map +1 -1
  71. package/out/concepts/BinaryExpression__.d.ts +3 -2
  72. package/out/concepts/BinaryExpression__.js +50 -41
  73. package/out/concepts/BinaryExpression__.js.map +1 -1
  74. package/out/concepts/BindAttribute__.d.ts +12 -8
  75. package/out/concepts/BindAttribute__.js +116 -59
  76. package/out/concepts/BindAttribute__.js.map +1 -1
  77. package/out/concepts/BindDirective__.d.ts +5 -3
  78. package/out/concepts/BindDirective__.js +40 -29
  79. package/out/concepts/BindDirective__.js.map +1 -1
  80. package/out/concepts/BindEvent__.d.ts +3 -2
  81. package/out/concepts/BindEvent__.js +59 -19
  82. package/out/concepts/BindEvent__.js.map +1 -1
  83. package/out/concepts/BindStyle__.d.ts +5 -3
  84. package/out/concepts/BindStyle__.js +30 -24
  85. package/out/concepts/BindStyle__.js.map +1 -1
  86. package/out/concepts/BooleanLiteral__.d.ts +3 -2
  87. package/out/concepts/BooleanLiteral__.js +16 -17
  88. package/out/concepts/BooleanLiteral__.js.map +1 -1
  89. package/out/concepts/CallAuthInterface__.d.ts +3 -2
  90. package/out/concepts/CallAuthInterface__.js +20 -19
  91. package/out/concepts/CallAuthInterface__.js.map +1 -1
  92. package/out/concepts/CallConnector__.d.ts +5 -4
  93. package/out/concepts/CallConnector__.js +40 -33
  94. package/out/concepts/CallConnector__.js.map +1 -1
  95. package/out/concepts/CallFunction__.d.ts +3 -2
  96. package/out/concepts/CallFunction__.js +40 -28
  97. package/out/concepts/CallFunction__.js.map +1 -1
  98. package/out/concepts/CallInterface__.d.ts +5 -3
  99. package/out/concepts/CallInterface__.js +74 -31
  100. package/out/concepts/CallInterface__.js.map +1 -1
  101. package/out/concepts/CallLogic__.d.ts +6 -5
  102. package/out/concepts/CallLogic__.js +145 -82
  103. package/out/concepts/CallLogic__.js.map +1 -1
  104. package/out/concepts/CallQueryComponent__.d.ts +3 -2
  105. package/out/concepts/CallQueryComponent__.js +90 -50
  106. package/out/concepts/CallQueryComponent__.js.map +1 -1
  107. package/out/concepts/Comment__.d.ts +3 -2
  108. package/out/concepts/Comment__.js +16 -17
  109. package/out/concepts/Comment__.js.map +1 -1
  110. package/out/concepts/CompletionProperty__.d.ts +3 -2
  111. package/out/concepts/CompletionProperty__.js +33 -26
  112. package/out/concepts/CompletionProperty__.js.map +1 -1
  113. package/out/concepts/ConfigGroup__.d.ts +3 -2
  114. package/out/concepts/ConfigGroup__.js +25 -21
  115. package/out/concepts/ConfigGroup__.js.map +1 -1
  116. package/out/concepts/ConfigPropertyValue__.d.ts +3 -2
  117. package/out/concepts/ConfigPropertyValue__.js +16 -16
  118. package/out/concepts/ConfigPropertyValue__.js.map +1 -1
  119. package/out/concepts/ConfigProperty__.d.ts +3 -2
  120. package/out/concepts/ConfigProperty__.js +29 -23
  121. package/out/concepts/ConfigProperty__.js.map +1 -1
  122. package/out/concepts/Configuration__.d.ts +3 -2
  123. package/out/concepts/Configuration__.js +20 -19
  124. package/out/concepts/Configuration__.js.map +1 -1
  125. package/out/concepts/Connection__.d.ts +4 -4
  126. package/out/concepts/Connection__.js +26 -19
  127. package/out/concepts/Connection__.js.map +1 -1
  128. package/out/concepts/ConnectorTrigger__.d.ts +7 -6
  129. package/out/concepts/ConnectorTrigger__.js +22 -21
  130. package/out/concepts/ConnectorTrigger__.js.map +1 -1
  131. package/out/concepts/Connector__.d.ts +139 -33
  132. package/out/concepts/Connector__.js +216 -40
  133. package/out/concepts/Connector__.js.map +1 -1
  134. package/out/concepts/Constant__.d.ts +3 -2
  135. package/out/concepts/Constant__.js +27 -23
  136. package/out/concepts/Constant__.js.map +1 -1
  137. package/out/concepts/DataSource__.d.ts +7 -2
  138. package/out/concepts/DataSource__.js +35 -24
  139. package/out/concepts/DataSource__.js.map +1 -1
  140. package/out/concepts/DatabaseTypeAnnotation__.d.ts +5 -4
  141. package/out/concepts/DatabaseTypeAnnotation__.js +18 -18
  142. package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -1
  143. package/out/concepts/Destination__.d.ts +11 -10
  144. package/out/concepts/Destination__.js +44 -38
  145. package/out/concepts/Destination__.js.map +1 -1
  146. package/out/concepts/End__.d.ts +3 -2
  147. package/out/concepts/End__.js +14 -16
  148. package/out/concepts/End__.js.map +1 -1
  149. package/out/concepts/EntityIndex__.d.ts +4 -3
  150. package/out/concepts/EntityIndex__.js +25 -21
  151. package/out/concepts/EntityIndex__.js.map +1 -1
  152. package/out/concepts/EntityProperty__.d.ts +4 -3
  153. package/out/concepts/EntityProperty__.js +59 -53
  154. package/out/concepts/EntityProperty__.js.map +1 -1
  155. package/out/concepts/Entity__.d.ts +3 -2
  156. package/out/concepts/Entity__.js +39 -28
  157. package/out/concepts/Entity__.js.map +1 -1
  158. package/out/concepts/EnumItem__.d.ts +3 -2
  159. package/out/concepts/EnumItem__.js +18 -18
  160. package/out/concepts/EnumItem__.js.map +1 -1
  161. package/out/concepts/Enum__.d.ts +3 -2
  162. package/out/concepts/Enum__.js +26 -22
  163. package/out/concepts/Enum__.js.map +1 -1
  164. package/out/concepts/Event__.d.ts +3 -2
  165. package/out/concepts/Event__.js +28 -22
  166. package/out/concepts/Event__.js.map +1 -1
  167. package/out/concepts/ExternalDestination__.d.ts +6 -5
  168. package/out/concepts/ExternalDestination__.js +31 -27
  169. package/out/concepts/ExternalDestination__.js.map +1 -1
  170. package/out/concepts/ForEachStatement__.d.ts +3 -2
  171. package/out/concepts/ForEachStatement__.js +39 -22
  172. package/out/concepts/ForEachStatement__.js.map +1 -1
  173. package/out/concepts/FrontendLibrary__.d.ts +4 -3
  174. package/out/concepts/FrontendLibrary__.js +35 -27
  175. package/out/concepts/FrontendLibrary__.js.map +1 -1
  176. package/out/concepts/FrontendVariable__.d.ts +4 -3
  177. package/out/concepts/FrontendVariable__.js +12 -12
  178. package/out/concepts/FrontendVariable__.js.map +1 -1
  179. package/out/concepts/Frontend__.d.ts +8 -6
  180. package/out/concepts/Frontend__.js +65 -43
  181. package/out/concepts/Frontend__.js.map +1 -1
  182. package/out/concepts/Function__.d.ts +3 -2
  183. package/out/concepts/Function__.js +55 -36
  184. package/out/concepts/Function__.js.map +1 -1
  185. package/out/concepts/Identifier__.d.ts +4 -3
  186. package/out/concepts/Identifier__.js +29 -28
  187. package/out/concepts/Identifier__.js.map +1 -1
  188. package/out/concepts/IfStatement__.d.ts +3 -2
  189. package/out/concepts/IfStatement__.js +31 -24
  190. package/out/concepts/IfStatement__.js.map +1 -1
  191. package/out/concepts/Integration__.d.ts +93 -2
  192. package/out/concepts/Integration__.js +163 -20
  193. package/out/concepts/Integration__.js.map +1 -1
  194. package/out/concepts/InterfaceParam__.d.ts +30 -4
  195. package/out/concepts/InterfaceParam__.js +61 -25
  196. package/out/concepts/InterfaceParam__.js.map +1 -1
  197. package/out/concepts/Interface__.d.ts +34 -6
  198. package/out/concepts/Interface__.js +117 -38
  199. package/out/concepts/Interface__.js.map +1 -1
  200. package/out/concepts/JSBlock__.d.ts +3 -2
  201. package/out/concepts/JSBlock__.js +16 -17
  202. package/out/concepts/JSBlock__.js.map +1 -1
  203. package/out/concepts/JavaLogic__.d.ts +4 -3
  204. package/out/concepts/JavaLogic__.js +21 -20
  205. package/out/concepts/JavaLogic__.js.map +1 -1
  206. package/out/concepts/LogicItem__.d.ts +3 -2
  207. package/out/concepts/LogicItem__.js +22 -20
  208. package/out/concepts/LogicItem__.js.map +1 -1
  209. package/out/concepts/Logic__.d.ts +17 -17
  210. package/out/concepts/Logic__.js +123 -66
  211. package/out/concepts/Logic__.js.map +1 -1
  212. package/out/concepts/MatchCase__.d.ts +3 -2
  213. package/out/concepts/MatchCase__.js +31 -24
  214. package/out/concepts/MatchCase__.js.map +1 -1
  215. package/out/concepts/Match__.d.ts +3 -2
  216. package/out/concepts/Match__.js +26 -22
  217. package/out/concepts/Match__.js.map +1 -1
  218. package/out/concepts/MemberExpression__.d.ts +3 -2
  219. package/out/concepts/MemberExpression__.js +70 -42
  220. package/out/concepts/MemberExpression__.js.map +1 -1
  221. package/out/concepts/MicroApp__.d.ts +3 -2
  222. package/out/concepts/MicroApp__.js +26 -21
  223. package/out/concepts/MicroApp__.js.map +1 -1
  224. package/out/concepts/Module__.d.ts +219 -47
  225. package/out/concepts/Module__.js +285 -44
  226. package/out/concepts/Module__.js.map +1 -1
  227. package/out/concepts/MsgTriggerEvent__.d.ts +4 -3
  228. package/out/concepts/MsgTriggerEvent__.js +20 -19
  229. package/out/concepts/MsgTriggerEvent__.js.map +1 -1
  230. package/out/concepts/MsgTriggerLauncher__.d.ts +4 -3
  231. package/out/concepts/MsgTriggerLauncher__.js +22 -20
  232. package/out/concepts/MsgTriggerLauncher__.js.map +1 -1
  233. package/out/concepts/Namespace__.d.ts +4 -2
  234. package/out/concepts/Namespace__.js +112 -58
  235. package/out/concepts/Namespace__.js.map +1 -1
  236. package/out/concepts/NewComposite__.d.ts +4 -2
  237. package/out/concepts/NewComposite__.js +85 -46
  238. package/out/concepts/NewComposite__.js.map +1 -1
  239. package/out/concepts/NewList__.d.ts +5 -3
  240. package/out/concepts/NewList__.js +41 -26
  241. package/out/concepts/NewList__.js.map +1 -1
  242. package/out/concepts/NewMap__.d.ts +5 -3
  243. package/out/concepts/NewMap__.js +49 -30
  244. package/out/concepts/NewMap__.js.map +1 -1
  245. package/out/concepts/New__.d.ts +3 -2
  246. package/out/concepts/New__.js +14 -16
  247. package/out/concepts/New__.js.map +1 -1
  248. package/out/concepts/NullLiteral__.d.ts +3 -2
  249. package/out/concepts/NullLiteral__.js +14 -16
  250. package/out/concepts/NullLiteral__.js.map +1 -1
  251. package/out/concepts/NumericLiteral__.d.ts +3 -2
  252. package/out/concepts/NumericLiteral__.js +23 -21
  253. package/out/concepts/NumericLiteral__.js.map +1 -1
  254. package/out/concepts/OqlQueryComponent__.d.ts +3 -2
  255. package/out/concepts/OqlQueryComponent__.js +28 -23
  256. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  257. package/out/concepts/OverriddenLogic__.d.ts +14 -22
  258. package/out/concepts/OverriddenLogic__.js +101 -70
  259. package/out/concepts/OverriddenLogic__.js.map +1 -1
  260. package/out/concepts/Param__.d.ts +3 -2
  261. package/out/concepts/Param__.js +37 -29
  262. package/out/concepts/Param__.js.map +1 -1
  263. package/out/concepts/Point__.d.ts +3 -2
  264. package/out/concepts/Point__.js +16 -16
  265. package/out/concepts/Point__.js.map +1 -1
  266. package/out/concepts/ProcessComponent__.d.ts +3 -2
  267. package/out/concepts/ProcessComponent__.js +32 -24
  268. package/out/concepts/ProcessComponent__.js.map +1 -1
  269. package/out/concepts/ProcessElement__.d.ts +3 -2
  270. package/out/concepts/ProcessElement__.js +90 -53
  271. package/out/concepts/ProcessElement__.js.map +1 -1
  272. package/out/concepts/ProcessOutcome__.d.ts +3 -2
  273. package/out/concepts/ProcessOutcome__.js +16 -17
  274. package/out/concepts/ProcessOutcome__.js.map +1 -1
  275. package/out/concepts/ProcessOutcomes__.d.ts +3 -2
  276. package/out/concepts/ProcessOutcomes__.js +17 -17
  277. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  278. package/out/concepts/Process__.d.ts +5 -7
  279. package/out/concepts/Process__.js +66 -40
  280. package/out/concepts/Process__.js.map +1 -1
  281. package/out/concepts/QueryAggregateExpression__.d.ts +3 -2
  282. package/out/concepts/QueryAggregateExpression__.js +25 -22
  283. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  284. package/out/concepts/QueryFieldExpression__.d.ts +4 -3
  285. package/out/concepts/QueryFieldExpression__.js +20 -19
  286. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  287. package/out/concepts/QueryFromExpression__.d.ts +4 -3
  288. package/out/concepts/QueryFromExpression__.js +26 -22
  289. package/out/concepts/QueryFromExpression__.js.map +1 -1
  290. package/out/concepts/QueryGroupByExpression__.d.ts +3 -2
  291. package/out/concepts/QueryGroupByExpression__.js +21 -20
  292. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  293. package/out/concepts/QueryJoinExpression__.d.ts +4 -3
  294. package/out/concepts/QueryJoinExpression__.js +36 -26
  295. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  296. package/out/concepts/QueryLimitExpression__.d.ts +3 -2
  297. package/out/concepts/QueryLimitExpression__.js +27 -23
  298. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  299. package/out/concepts/QueryOrderByExpression__.d.ts +3 -2
  300. package/out/concepts/QueryOrderByExpression__.js +27 -23
  301. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  302. package/out/concepts/QuerySelectExpression__.d.ts +3 -2
  303. package/out/concepts/QuerySelectExpression__.js +27 -22
  304. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  305. package/out/concepts/Rect__.d.ts +3 -2
  306. package/out/concepts/Rect__.js +20 -18
  307. package/out/concepts/Rect__.js.map +1 -1
  308. package/out/concepts/Return__.d.ts +3 -2
  309. package/out/concepts/Return__.js +31 -26
  310. package/out/concepts/Return__.js.map +1 -1
  311. package/out/concepts/Role__.d.ts +3 -2
  312. package/out/concepts/Role__.js +21 -20
  313. package/out/concepts/Role__.js.map +1 -1
  314. package/out/concepts/SelectMembers__.d.ts +3 -2
  315. package/out/concepts/SelectMembers__.js +26 -22
  316. package/out/concepts/SelectMembers__.js.map +1 -1
  317. package/out/concepts/Slot__.d.ts +3 -2
  318. package/out/concepts/Slot__.js +29 -23
  319. package/out/concepts/Slot__.js.map +1 -1
  320. package/out/concepts/SqlQueryComponent__.d.ts +3 -2
  321. package/out/concepts/SqlQueryComponent__.js +30 -24
  322. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  323. package/out/concepts/Start__.d.ts +3 -2
  324. package/out/concepts/Start__.js +14 -16
  325. package/out/concepts/Start__.js.map +1 -1
  326. package/out/concepts/StringInterpolation__.d.ts +3 -2
  327. package/out/concepts/StringInterpolation__.js +20 -19
  328. package/out/concepts/StringInterpolation__.js.map +1 -1
  329. package/out/concepts/StringLiteral__.d.ts +3 -2
  330. package/out/concepts/StringLiteral__.js +14 -16
  331. package/out/concepts/StringLiteral__.js.map +1 -1
  332. package/out/concepts/StructureProperty__.d.ts +9 -4
  333. package/out/concepts/StructureProperty__.js +42 -30
  334. package/out/concepts/StructureProperty__.js.map +1 -1
  335. package/out/concepts/Structure__.d.ts +7 -11
  336. package/out/concepts/Structure__.js +59 -34
  337. package/out/concepts/Structure__.js.map +1 -1
  338. package/out/concepts/SwitchCase__.d.ts +3 -2
  339. package/out/concepts/SwitchCase__.js +26 -22
  340. package/out/concepts/SwitchCase__.js.map +1 -1
  341. package/out/concepts/SwitchStatement__.d.ts +3 -2
  342. package/out/concepts/SwitchStatement__.js +26 -21
  343. package/out/concepts/SwitchStatement__.js.map +1 -1
  344. package/out/concepts/Theme__.d.ts +3 -2
  345. package/out/concepts/Theme__.js +12 -14
  346. package/out/concepts/Theme__.js.map +1 -1
  347. package/out/concepts/Transactional__.d.ts +3 -2
  348. package/out/concepts/Transactional__.js +18 -17
  349. package/out/concepts/Transactional__.js.map +1 -1
  350. package/out/concepts/TriggerEvent__.d.ts +3 -2
  351. package/out/concepts/TriggerEvent__.js +23 -19
  352. package/out/concepts/TriggerEvent__.js.map +1 -1
  353. package/out/concepts/TriggerLauncher__.d.ts +6 -17
  354. package/out/concepts/TriggerLauncher__.js +25 -62
  355. package/out/concepts/TriggerLauncher__.js.map +1 -1
  356. package/out/concepts/TypeAnnotation__.d.ts +8 -5
  357. package/out/concepts/TypeAnnotation__.js +67 -35
  358. package/out/concepts/TypeAnnotation__.js.map +1 -1
  359. package/out/concepts/TypeParam__.d.ts +3 -2
  360. package/out/concepts/TypeParam__.js +16 -17
  361. package/out/concepts/TypeParam__.js.map +1 -1
  362. package/out/concepts/UnaryExpression__.d.ts +3 -2
  363. package/out/concepts/UnaryExpression__.js +23 -21
  364. package/out/concepts/UnaryExpression__.js.map +1 -1
  365. package/out/concepts/Unparsed__.d.ts +3 -2
  366. package/out/concepts/Unparsed__.js +16 -17
  367. package/out/concepts/Unparsed__.js.map +1 -1
  368. package/out/concepts/UseComponent__.d.ts +3 -2
  369. package/out/concepts/UseComponent__.js +16 -16
  370. package/out/concepts/UseComponent__.js.map +1 -1
  371. package/out/concepts/ValidationRule__.d.ts +17 -16
  372. package/out/concepts/ValidationRule__.js +28 -18
  373. package/out/concepts/ValidationRule__.js.map +1 -1
  374. package/out/concepts/Variable__.d.ts +3 -2
  375. package/out/concepts/Variable__.js +31 -26
  376. package/out/concepts/Variable__.js.map +1 -1
  377. package/out/concepts/ViewBlock__.d.ts +4 -3
  378. package/out/concepts/ViewBlock__.js +20 -19
  379. package/out/concepts/ViewBlock__.js.map +1 -1
  380. package/out/concepts/ViewComponent__.d.ts +32 -31
  381. package/out/concepts/ViewComponent__.js +59 -38
  382. package/out/concepts/ViewComponent__.js.map +1 -1
  383. package/out/concepts/ViewElement__.d.ts +84 -81
  384. package/out/concepts/ViewElement__.js +347 -159
  385. package/out/concepts/ViewElement__.js.map +1 -1
  386. package/out/concepts/View__.d.ts +5 -3
  387. package/out/concepts/View__.js +166 -120
  388. package/out/concepts/View__.js.map +1 -1
  389. package/out/concepts/WhileStatement__.d.ts +3 -2
  390. package/out/concepts/WhileStatement__.js +26 -22
  391. package/out/concepts/WhileStatement__.js.map +1 -1
  392. package/out/concepts/index__.d.ts +0 -1
  393. package/out/concepts/index__.js +0 -1
  394. package/out/concepts/index__.js.map +1 -1
  395. package/out/concepts/types__.d.ts +2 -3
  396. package/out/decorators/index.d.ts +5 -3
  397. package/out/decorators/index.js +15 -9
  398. package/out/decorators/index.js.map +1 -1
  399. package/out/generator/genBundleFiles.d.ts +2 -2
  400. package/out/generator/genBundleFiles.js +11 -4
  401. package/out/generator/genBundleFiles.js.map +1 -1
  402. package/out/generator/genReleaseBody.d.ts +4 -2
  403. package/out/generator/genReleaseBody.js +192 -136
  404. package/out/generator/genReleaseBody.js.map +1 -1
  405. package/out/natural/genNaturalTS.js +15 -14
  406. package/out/natural/genNaturalTS.js.map +1 -1
  407. package/out/natural/index.d.ts +0 -2
  408. package/out/natural/index.js +0 -2
  409. package/out/natural/index.js.map +1 -1
  410. package/out/sentry/index.js +2 -2
  411. package/out/sentry/index.js.map +1 -1
  412. package/out/server/createUiTs.js +34 -1
  413. package/out/server/createUiTs.js.map +1 -1
  414. package/out/server/extendBaseNode.js +17 -17
  415. package/out/server/extendBaseNode.js.map +1 -1
  416. package/out/server/formatTsUtils.d.ts +3 -3
  417. package/out/server/formatTsUtils.js +0 -10
  418. package/out/server/formatTsUtils.js.map +1 -1
  419. package/out/server/getConnector.d.ts +3 -0
  420. package/out/server/getConnector.js +38 -1
  421. package/out/server/getConnector.js.map +1 -1
  422. package/out/server/getMemberIdentifier.d.ts +4 -4
  423. package/out/server/getMemberIdentifier.js +1 -2
  424. package/out/server/getMemberIdentifier.js.map +1 -1
  425. package/out/server/index.js +2 -0
  426. package/out/server/index.js.map +1 -1
  427. package/out/server/naslServer.d.ts +13 -2
  428. package/out/server/naslServer.js +213 -118
  429. package/out/server/naslServer.js.map +1 -1
  430. package/out/server/translator.js +2 -4
  431. package/out/server/translator.js.map +1 -1
  432. package/out/service/creator/add.configs.js +26 -0
  433. package/out/service/creator/add.configs.js.map +1 -1
  434. package/out/service/creator/errHandles.js +5 -3
  435. package/out/service/creator/errHandles.js.map +1 -1
  436. package/out/service/creator/index.js +13 -0
  437. package/out/service/creator/index.js.map +1 -1
  438. package/out/service/storage/jsoner.js +1 -1
  439. package/out/service/storage/jsoner.js.map +1 -1
  440. package/out/templator/genCurdEditMultipleKeyBlock.js +3 -3
  441. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  442. package/out/templator/genCurdMultipleKeyBlock.js +3 -3
  443. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  444. package/out/templator/genTableBlock.js +1 -1
  445. package/out/templator/genTableBlock.js.map +1 -1
  446. package/out/translator/constant.d.ts +6 -0
  447. package/out/translator/constant.js +10 -0
  448. package/out/translator/constant.js.map +1 -0
  449. package/out/translator/index.d.ts +3 -48
  450. package/out/translator/index.js +17 -110
  451. package/out/translator/index.js.map +1 -1
  452. package/out/translator/types.d.ts +32 -0
  453. package/out/translator/{tsp.js → types.js} +1 -1
  454. package/out/translator/types.js.map +1 -0
  455. package/out/translator/utils.d.ts +17 -0
  456. package/out/translator/utils.js +98 -0
  457. package/out/translator/utils.js.map +1 -0
  458. package/out/utils/cookie.d.ts +9 -0
  459. package/out/utils/cookie.js +62 -0
  460. package/out/utils/cookie.js.map +1 -0
  461. package/out/utils/env.d.ts +2 -0
  462. package/out/utils/env.js +6 -0
  463. package/out/utils/env.js.map +1 -0
  464. package/out/utils/index.d.ts +3 -0
  465. package/out/utils/index.js +3 -0
  466. package/out/utils/index.js.map +1 -1
  467. package/out/utils/logger.d.ts +4 -0
  468. package/out/utils/logger.js +13 -1
  469. package/out/utils/logger.js.map +1 -1
  470. package/out/utils/time-slicing.js +2 -1
  471. package/out/utils/time-slicing.js.map +1 -1
  472. package/out/utils/types.d.ts +1 -0
  473. package/out/utils/types.js +3 -0
  474. package/out/utils/types.js.map +1 -0
  475. package/out/utils/window.d.ts +7 -0
  476. package/out/utils/window.js +14 -0
  477. package/out/utils/window.js.map +1 -0
  478. package/package.json +1 -1
  479. package/sandbox/stdlib/nasl.oql.ts +2 -0
  480. package/sandbox/stdlib/nasl.ui.definition.ts +2218 -1415
  481. package/src/bak/translator.js +8 -5
  482. package/src/breakpoint/generator/AfterStartNode.ts +2 -1
  483. package/src/breakpoint/generator/BeforeEndNode.ts +2 -1
  484. package/src/breakpoint/generator/BreakpointNode.ts +36 -9
  485. package/src/breakpoint/shared/constants.ts +7 -0
  486. package/src/breakpoint/shared/utils.ts +36 -3
  487. package/src/common/BaseNode.ts +221 -136
  488. package/src/common/Command.ts +6 -1
  489. package/src/common/EventEmitter.ts +2 -4
  490. package/src/common/index.ts +0 -1
  491. package/src/concepts/Abort__.ts +18 -20
  492. package/src/concepts/Anchor__.ts +24 -23
  493. package/src/concepts/AnonymousFunction__.ts +48 -40
  494. package/src/concepts/App__.ts +435 -333
  495. package/src/concepts/Argument__.ts +29 -26
  496. package/src/concepts/Assignee__.ts +58 -43
  497. package/src/concepts/AssignmentLine__.ts +24 -23
  498. package/src/concepts/Assignment__.ts +49 -34
  499. package/src/concepts/Attribute__.ts +43 -35
  500. package/src/concepts/AuthInterface__.ts +22 -24
  501. package/src/concepts/AuthLogicForCallInterface__.ts +75 -42
  502. package/src/concepts/AuthLogic__.ts +22 -28
  503. package/src/concepts/BackendVariable__.ts +56 -53
  504. package/src/concepts/Backend__.ts +61 -59
  505. package/src/concepts/BatchAssignment__.ts +96 -61
  506. package/src/concepts/BinaryExpression__.ts +91 -45
  507. package/src/concepts/BindAttribute__.ts +165 -113
  508. package/src/concepts/BindDirective__.ts +50 -41
  509. package/src/concepts/BindEvent__.ts +88 -33
  510. package/src/concepts/BindStyle__.ts +42 -36
  511. package/src/concepts/BooleanLiteral__.ts +20 -21
  512. package/src/concepts/CallAuthInterface__.ts +31 -31
  513. package/src/concepts/CallConnector__.ts +48 -39
  514. package/src/concepts/CallFunction__.ts +51 -37
  515. package/src/concepts/CallInterface__.ts +82 -41
  516. package/src/concepts/CallLogic__.ts +174 -93
  517. package/src/concepts/CallQueryComponent__.ts +188 -96
  518. package/src/concepts/Comment__.ts +19 -20
  519. package/src/concepts/CompletionProperty__.ts +37 -31
  520. package/src/concepts/ConfigGroup__.ts +32 -30
  521. package/src/concepts/ConfigPropertyValue__.ts +22 -23
  522. package/src/concepts/ConfigProperty__.ts +45 -36
  523. package/src/concepts/Configuration__.ts +27 -27
  524. package/src/concepts/Connection__.ts +30 -22
  525. package/src/concepts/ConnectorTrigger__.ts +30 -34
  526. package/src/concepts/Connector__.ts +367 -93
  527. package/src/concepts/Constant__.ts +31 -35
  528. package/src/concepts/DataSource__.ts +41 -34
  529. package/src/concepts/DatabaseTypeAnnotation__.ts +24 -24
  530. package/src/concepts/Destination__.ts +55 -47
  531. package/src/concepts/End__.ts +21 -23
  532. package/src/concepts/EntityIndex__.ts +37 -32
  533. package/src/concepts/EntityProperty__.ts +71 -69
  534. package/src/concepts/Entity__.ts +48 -42
  535. package/src/concepts/EnumItem__.ts +22 -25
  536. package/src/concepts/Enum__.ts +31 -29
  537. package/src/concepts/Event__.ts +37 -34
  538. package/src/concepts/ExternalDestination__.ts +35 -31
  539. package/src/concepts/ForEachStatement__.ts +49 -31
  540. package/src/concepts/FrontendLibrary__.ts +45 -40
  541. package/src/concepts/FrontendVariable__.ts +18 -20
  542. package/src/concepts/Frontend__.ts +84 -66
  543. package/src/concepts/Function__.ts +71 -55
  544. package/src/concepts/Identifier__.ts +35 -32
  545. package/src/concepts/IfStatement__.ts +48 -41
  546. package/src/concepts/Integration__.ts +250 -25
  547. package/src/concepts/InterfaceParam__.ts +72 -34
  548. package/src/concepts/Interface__.ts +133 -50
  549. package/src/concepts/JSBlock__.ts +20 -21
  550. package/src/concepts/JavaLogic__.ts +25 -24
  551. package/src/concepts/LogicItem__.ts +27 -36
  552. package/src/concepts/Logic__.ts +186 -103
  553. package/src/concepts/MatchCase__.ts +46 -42
  554. package/src/concepts/Match__.ts +32 -28
  555. package/src/concepts/MemberExpression__.ts +178 -122
  556. package/src/concepts/MicroApp__.ts +32 -27
  557. package/src/concepts/Module__.ts +580 -119
  558. package/src/concepts/MsgTriggerEvent__.ts +29 -34
  559. package/src/concepts/MsgTriggerLauncher__.ts +31 -31
  560. package/src/concepts/Namespace__.ts +157 -111
  561. package/src/concepts/NewComposite__.ts +143 -80
  562. package/src/concepts/NewList__.ts +50 -36
  563. package/src/concepts/NewMap__.ts +60 -40
  564. package/src/concepts/New__.ts +18 -20
  565. package/src/concepts/NullLiteral__.ts +18 -20
  566. package/src/concepts/NumericLiteral__.ts +27 -25
  567. package/src/concepts/OqlQueryComponent__.ts +34 -27
  568. package/src/concepts/OverriddenLogic__.ts +156 -102
  569. package/src/concepts/Param__.ts +53 -51
  570. package/src/concepts/Point__.ts +22 -22
  571. package/src/concepts/ProcessComponent__.ts +44 -39
  572. package/src/concepts/ProcessElement__.ts +142 -92
  573. package/src/concepts/ProcessOutcome__.ts +20 -21
  574. package/src/concepts/ProcessOutcomes__.ts +21 -21
  575. package/src/concepts/Process__.ts +89 -68
  576. package/src/concepts/QueryAggregateExpression__.ts +29 -26
  577. package/src/concepts/QueryFieldExpression__.ts +24 -23
  578. package/src/concepts/QueryFromExpression__.ts +31 -27
  579. package/src/concepts/QueryGroupByExpression__.ts +25 -24
  580. package/src/concepts/QueryJoinExpression__.ts +68 -41
  581. package/src/concepts/QueryLimitExpression__.ts +31 -27
  582. package/src/concepts/QueryOrderByExpression__.ts +31 -27
  583. package/src/concepts/QuerySelectExpression__.ts +109 -55
  584. package/src/concepts/Rect__.ts +26 -24
  585. package/src/concepts/Return__.ts +43 -48
  586. package/src/concepts/Role__.ts +24 -24
  587. package/src/concepts/SelectMembers__.ts +35 -32
  588. package/src/concepts/Slot__.ts +35 -31
  589. package/src/concepts/SqlQueryComponent__.ts +42 -30
  590. package/src/concepts/Start__.ts +18 -20
  591. package/src/concepts/StringInterpolation__.ts +26 -26
  592. package/src/concepts/StringLiteral__.ts +18 -20
  593. package/src/concepts/StructureProperty__.ts +47 -37
  594. package/src/concepts/Structure__.ts +70 -47
  595. package/src/concepts/SwitchCase__.ts +45 -41
  596. package/src/concepts/SwitchStatement__.ts +30 -25
  597. package/src/concepts/Theme__.ts +18 -21
  598. package/src/concepts/Transactional__.ts +24 -31
  599. package/src/concepts/TriggerEvent__.ts +32 -30
  600. package/src/concepts/TriggerLauncher__.ts +31 -81
  601. package/src/concepts/TypeAnnotation__.ts +102 -54
  602. package/src/concepts/TypeParam__.ts +19 -20
  603. package/src/concepts/UnaryExpression__.ts +26 -24
  604. package/src/concepts/Unparsed__.ts +19 -20
  605. package/src/concepts/UseComponent__.ts +22 -22
  606. package/src/concepts/ValidationRule__.ts +544 -553
  607. package/src/concepts/Variable__.ts +44 -48
  608. package/src/concepts/ViewBlock__.ts +26 -25
  609. package/src/concepts/ViewComponent__.ts +111 -97
  610. package/src/concepts/ViewElement__.ts +2778 -2431
  611. package/src/concepts/View__.ts +364 -308
  612. package/src/concepts/WhileStatement__.ts +40 -36
  613. package/src/concepts/index__.ts +0 -1
  614. package/src/concepts/types__.ts +123 -125
  615. package/src/decorators/index.ts +18 -12
  616. package/src/generator/genBundleFiles.ts +14 -4
  617. package/src/generator/genReleaseBody.ts +198 -182
  618. package/src/natural/genNaturalTS.ts +18 -17
  619. package/src/natural/index.ts +0 -2
  620. package/src/sentry/index.ts +2 -2
  621. package/src/server/createUiTs.ts +30 -1
  622. package/src/server/extendBaseNode.ts +18 -18
  623. package/src/server/formatTsUtils.ts +8 -19
  624. package/src/server/getConnector.ts +63 -27
  625. package/src/server/getMemberIdentifier.ts +6 -7
  626. package/src/server/index.ts +4 -1
  627. package/src/server/naslServer.ts +215 -122
  628. package/src/server/translator.ts +1 -3
  629. package/src/service/creator/add.configs.js +26 -1
  630. package/src/service/creator/errHandles.js +5 -4
  631. package/src/service/creator/index.js +12 -0
  632. package/src/service/storage/init.ts +2 -2
  633. package/src/service/storage/jsoner.ts +1 -1
  634. package/src/templator/genCurdEditMultipleKeyBlock.ts +3 -3
  635. package/src/templator/genCurdMultipleKeyBlock.ts +3 -3
  636. package/src/templator/genTableBlock.ts +1 -1
  637. package/src/translator/constant.ts +7 -0
  638. package/src/translator/index.ts +3 -137
  639. package/src/translator/types.ts +40 -0
  640. package/src/translator/utils.ts +102 -0
  641. package/src/utils/cookie.ts +60 -0
  642. package/src/utils/env.ts +2 -0
  643. package/src/utils/index.ts +3 -0
  644. package/src/utils/logger.ts +13 -0
  645. package/src/utils/time-slicing.ts +3 -1
  646. package/src/utils/types.ts +1 -0
  647. package/src/utils/window.ts +9 -0
  648. package/test/concepts/anonymous-function/__snapshots__/toEmbeddedTS.spec.ts.snap +8 -0
  649. package/test/concepts/anonymous-function/__snapshots__/toJS.spec.ts.snap +3 -0
  650. package/test/concepts/anonymous-function/__snapshots__/toVue.spec.ts.snap +6 -0
  651. package/test/concepts/anonymous-function/constant.ts +5 -0
  652. package/test/concepts/anonymous-function/fixtures/simple.json +85 -0
  653. package/test/concepts/anonymous-function/toEmbeddedTS.spec.ts +14 -0
  654. package/test/concepts/anonymous-function/toJS.spec.ts +14 -0
  655. package/test/concepts/anonymous-function/toVue.spec.ts +14 -0
  656. package/test/concepts/assignment/__snapshots__/toEmbeddedTS.spec.ts.snap +21 -0
  657. package/test/concepts/assignment/__snapshots__/toJS.spec.ts.snap +9 -0
  658. package/test/concepts/assignment/__snapshots__/toVue.spec.ts.snap +21 -0
  659. package/test/concepts/assignment/constant.ts +5 -0
  660. package/test/concepts/assignment/fixtures/both-space.json +4 -0
  661. package/test/concepts/assignment/fixtures/left-space.json +14 -0
  662. package/test/concepts/assignment/fixtures/right-space.json +8 -0
  663. package/test/concepts/assignment/fixtures/simple.json +12 -0
  664. package/test/concepts/assignment/toEmbeddedTS.spec.ts +14 -0
  665. package/test/concepts/assignment/toJS.spec.ts +14 -0
  666. package/test/concepts/assignment/toVue.spec.ts +14 -0
  667. package/test/concepts/batch-assignment/__snapshots__/toEmbeddedTS.spec.ts.snap +28 -0
  668. package/test/concepts/batch-assignment/__snapshots__/toJS.spec.ts.snap +13 -0
  669. package/test/concepts/batch-assignment/__snapshots__/toVue.spec.ts.snap +14 -0
  670. package/test/concepts/batch-assignment/constant.ts +5 -0
  671. package/test/concepts/batch-assignment/fixtures/muli-var-muli-value.json +144 -0
  672. package/test/concepts/batch-assignment/fixtures/simple-var-simple-value.json +36 -0
  673. package/test/concepts/batch-assignment/toEmbeddedTS.spec.ts +14 -0
  674. package/test/concepts/batch-assignment/toJS.spec.ts +14 -0
  675. package/test/concepts/batch-assignment/toVue.spec.ts +14 -0
  676. package/test/concepts/binary-expression/__snapshots__/toEmbeddedTS.spec.ts.snap +25 -0
  677. package/test/concepts/binary-expression/__snapshots__/toJS.spec.ts.snap +16 -0
  678. package/test/concepts/binary-expression/__snapshots__/toVue.spec.ts.snap +19 -0
  679. package/test/concepts/binary-expression/constant.ts +5 -0
  680. package/test/concepts/binary-expression/fixtures/constant-nested.json +36 -0
  681. package/test/concepts/binary-expression/fixtures/constant-simple.json +12 -0
  682. package/test/concepts/binary-expression/fixtures/variable-nested.json +69 -0
  683. package/test/concepts/binary-expression/toEmbeddedTS.spec.ts +14 -0
  684. package/test/concepts/binary-expression/toJS.spec.ts +14 -0
  685. package/test/concepts/binary-expression/toVue.spec.ts +14 -0
  686. package/test/concepts/boolean-literal/__snapshots__/toEmbeddedTS.spec.ts.snap +11 -0
  687. package/test/concepts/boolean-literal/__snapshots__/toJS.spec.ts.snap +11 -0
  688. package/test/concepts/boolean-literal/__snapshots__/toVue.spec.ts.snap +11 -0
  689. package/test/concepts/boolean-literal/constant.ts +5 -0
  690. package/test/concepts/boolean-literal/fixtures/false.json +4 -0
  691. package/test/concepts/boolean-literal/fixtures/true.json +4 -0
  692. package/test/concepts/boolean-literal/toEmbeddedTS.spec.ts +14 -0
  693. package/test/concepts/boolean-literal/toJS.spec.ts +14 -0
  694. package/test/concepts/boolean-literal/toVue.spec.ts +14 -0
  695. package/test/concepts/call-interface/toEmbeddedTS.spec.ts +6 -6
  696. package/test/concepts/call-interface/toJS.spec.ts +6 -6
  697. package/test/concepts/call-logic/__snapshots__/getQuickInfoOffset.spec.ts.snap +106 -0
  698. package/test/concepts/call-logic/__snapshots__/toEmbeddedTS.spec.ts.snap +45 -0
  699. package/test/concepts/call-logic/__snapshots__/toJS.spec.ts.snap +102 -0
  700. package/test/concepts/call-logic/fixtures/nested-call-logic.json +860 -0
  701. package/test/concepts/call-logic/getQuickInfoOffset.spec.ts +23 -0
  702. package/test/concepts/call-logic/toEmbeddedTS.spec.ts +6 -6
  703. package/test/concepts/call-logic/toJS.spec.ts +6 -6
  704. package/test/concepts/data-source/__snapshots__/toEmbeddedTS.spec.ts.snap +8 -0
  705. package/test/concepts/data-source/__snapshots__/toEmbeddedTSFile.spec.ts.snap +12 -0
  706. package/test/concepts/data-source/constant.ts +5 -0
  707. package/test/concepts/data-source/fixtures/normal.json +289 -0
  708. package/test/concepts/data-source/toEmbeddedTS.spec.ts +14 -0
  709. package/test/concepts/data-source/toEmbeddedTSFile.spec.ts +15 -0
  710. package/test/concepts/entity/__snapshots__/toEmbeddedTS.spec.ts.snap +74 -0
  711. package/test/concepts/entity/__snapshots__/toEmbeddedTSFile.spec.ts.snap +3 -0
  712. package/test/concepts/entity/constant.ts +5 -0
  713. package/test/concepts/entity/fixtures/normal.json +469 -0
  714. package/test/concepts/entity/toEmbeddedTS.spec.ts +14 -0
  715. package/test/concepts/entity/toEmbeddedTSFile.spec.ts +14 -0
  716. package/test/concepts/identifier/__snapshots__/toEmbeddedTS.spec.ts.snap +16 -0
  717. package/test/concepts/identifier/__snapshots__/toJS.spec.ts.snap +16 -0
  718. package/test/concepts/identifier/__snapshots__/toVue.spec.ts.snap +16 -0
  719. package/test/concepts/identifier/constant.ts +5 -0
  720. package/test/concepts/identifier/fixtures/data-source.json +5 -0
  721. package/test/concepts/identifier/fixtures/no-namespace.json +4 -0
  722. package/test/concepts/identifier/fixtures/view-variable.json +201 -0
  723. package/test/concepts/identifier/toEmbeddedTS.spec.ts +14 -0
  724. package/test/concepts/identifier/toJS.spec.ts +14 -0
  725. package/test/concepts/identifier/toVue.spec.ts +14 -0
  726. package/test/concepts/match/toEmbeddedTS.spec.ts +6 -6
  727. package/test/concepts/match/toJS.spec.ts +6 -6
  728. package/test/concepts/member-expression/__snapshots__/toEmbeddedTS.spec.ts.snap +21 -0
  729. package/test/concepts/member-expression/__snapshots__/toJS.spec.ts.snap +21 -0
  730. package/test/concepts/member-expression/__snapshots__/toVue.spec.ts.snap +21 -0
  731. package/test/concepts/member-expression/constant.ts +5 -0
  732. package/test/concepts/member-expression/fixtures/app.enums.UserStatusEnum.json +13 -0
  733. package/test/concepts/member-expression/fixtures/elements.table-view.data.json +13 -0
  734. package/test/concepts/member-expression/fixtures/entry.created-by.json +18 -0
  735. package/test/concepts/member-expression/fixtures/nasl.auth.userInfo.json +19 -0
  736. package/test/concepts/member-expression/toEmbeddedTS.spec.ts +14 -0
  737. package/test/concepts/member-expression/toJS.spec.ts +14 -0
  738. package/test/concepts/member-expression/toVue.spec.ts +14 -0
  739. package/test/concepts/null-literal/__snapshots__/toEmbeddedTS.spec.ts.snap +6 -0
  740. package/test/concepts/null-literal/__snapshots__/toJS.spec.ts.snap +6 -0
  741. package/test/concepts/null-literal/__snapshots__/toVue.spec.ts.snap +6 -0
  742. package/test/concepts/null-literal/constant.ts +5 -0
  743. package/test/concepts/null-literal/fixtures/null.json +3 -0
  744. package/test/concepts/null-literal/toEmbeddedTS.spec.ts +14 -0
  745. package/test/concepts/null-literal/toJS.spec.ts +14 -0
  746. package/test/concepts/null-literal/toVue.spec.ts +14 -0
  747. package/test/concepts/numeric-literal/__snapshots__/toEmbeddedTS.spec.ts.snap +6 -0
  748. package/test/concepts/numeric-literal/__snapshots__/toJS.spec.ts.snap +6 -0
  749. package/test/concepts/numeric-literal/__snapshots__/toVue.spec.ts.snap +6 -0
  750. package/test/concepts/numeric-literal/constant.ts +5 -0
  751. package/test/concepts/numeric-literal/fixtures/number.json +10 -0
  752. package/test/concepts/numeric-literal/toEmbeddedTS.spec.ts +14 -0
  753. package/test/concepts/numeric-literal/toJS.spec.ts +14 -0
  754. package/test/concepts/numeric-literal/toVue.spec.ts +14 -0
  755. package/test/concepts/string-literal/__snapshots__/toEmbeddedTS.spec.ts.snap +16 -0
  756. package/test/concepts/string-literal/__snapshots__/toJS.spec.ts.snap +16 -0
  757. package/test/concepts/string-literal/__snapshots__/toVue.spec.ts.snap +16 -0
  758. package/test/concepts/string-literal/constant.ts +5 -0
  759. package/test/concepts/string-literal/fixtures/escape.json +4 -0
  760. package/test/concepts/string-literal/fixtures/space.json +4 -0
  761. package/test/concepts/string-literal/fixtures/string.json +4 -0
  762. package/test/concepts/string-literal/toEmbeddedTS.spec.ts +14 -0
  763. package/test/concepts/string-literal/toJS.spec.ts +14 -0
  764. package/test/concepts/string-literal/toVue.spec.ts +14 -0
  765. package/test/concepts/utils.ts +46 -43
  766. package/test/concepts/validation-rule/toEmbeddedTS.spec.ts +6 -6
  767. package/test/concepts/validation-rule/toJS.spec.ts +6 -6
  768. package/test/concepts/validation-rule/validation-rule.spec.ts +8 -8
  769. package/test/concepts/view-element/__snapshots__/toEmbeddedTS.spec.ts.snap +592 -0
  770. package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +324 -12
  771. package/test/concepts/view-element/fixtures/default-login.json +333 -0
  772. package/test/concepts/view-element/fixtures/default-not-found.json +313 -313
  773. package/test/concepts/view-element/fixtures/with-role-auth.json +148 -0
  774. package/test/concepts/view-element/fixtures/with-table.json +3473 -0
  775. package/test/concepts/view-element/toEmbeddedTS.spec.ts +6 -6
  776. package/test/concepts/view-element/toVue.spec.ts +6 -6
  777. package/ts-worker/package-lock.json +6663 -101
  778. package/ts-worker/webpack.config.js +1 -1
  779. package/out/common/classMap.d.ts +0 -4
  780. package/out/common/classMap.js +0 -5
  781. package/out/common/classMap.js.map +0 -1
  782. package/out/concepts/DataElement__.d.ts +0 -46
  783. package/out/concepts/DataElement__.js +0 -118
  784. package/out/concepts/DataElement__.js.map +0 -1
  785. package/out/natural/RequirementAnalyzer.d.ts +0 -22
  786. package/out/natural/RequirementAnalyzer.js +0 -196
  787. package/out/natural/RequirementAnalyzer.js.map +0 -1
  788. package/out/natural/RequirementExecutor.d.ts +0 -51
  789. package/out/natural/RequirementExecutor.js +0 -692
  790. package/out/natural/RequirementExecutor.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/translator/lsp.d.ts +0 -45
  795. package/out/translator/lsp.js +0 -6
  796. package/out/translator/lsp.js.map +0 -1
  797. package/out/translator/tsp.d.ts +0 -12
  798. package/out/translator/tsp.js.map +0 -1
  799. package/src/common/classMap.ts +0 -3
  800. package/src/concepts/DataElement__.ts +0 -131
  801. package/src/natural/RequirementAnalyzer.ts +0 -208
  802. package/src/natural/RequirementExecutor.ts +0 -685
  803. package/src/natural/knowledgeMap.ts +0 -39
  804. package/src/test/examples/app1.json +0 -1406
  805. package/src/test/fixtures/env.ts +0 -19
  806. package/src/test/integration/connect-create-file.ts +0 -14
  807. package/src/test/integration/connect-file.ts +0 -24
  808. package/src/test/integration/node-nasl-server.ts +0 -14
  809. package/src/test/units/baseTypes/Assignment.spec.ts +0 -20
  810. package/src/test/units/baseTypes/CallLogic.spec.ts +0 -22
  811. package/src/test/units/baseTypes/StringLiteral.spec.ts +0 -60
  812. package/src/test/units/baseTypes/new.spec.ts +0 -13
  813. package/src/test/units/common/Vertex.spec.ts +0 -23
  814. package/src/test/units/data/Entity.spec.ts +0 -10
  815. package/src/test/units/login.spec.ts +0 -10
  816. package/src/test/units/page/Block.spec.ts +0 -15
  817. package/src/test/units/page/Element.spec.ts +0 -45
  818. package/src/test/units/page/example.dashboard.html +0 -46
  819. package/src/test/units/page/example.view1.html +0 -63
  820. package/src/test/units/temp/temp.spec.ts +0 -66
  821. package/src/translator/lsp.ts +0 -50
  822. package/src/translator/tsp.ts +0 -14
@@ -1,22 +1,17 @@
1
1
  import { at } from 'lodash';
2
2
  import { v4 as uuidv4 } from 'uuid';
3
3
 
4
- import { config } from '../config';
5
4
  import { SourceMap } from '../translator';
6
- import storageService from '../service/storage/service';
7
5
  import { getSourceFromMap } from '../service/storage/map';
8
- import { loadThen } from '../service/storage/storagePoint';
9
6
 
10
- import { EventEmitter, EventPayload, Params } from './EventEmitter';
11
7
  import * as utils from '../utils';
12
- import classMap from './classMap';
13
- import { action, circular, excludedInJSON, property, getConceptConstructor, getConceptPropertyMap } from '../decorators';
8
+ import { EventEmitter, EventPayload, Params } from './EventEmitter';
9
+ import { action, circular, excludedInJSON, property, getConceptConstructor, getConceptPropertyMap, classMap } from '../decorators';
14
10
  import { Diagnostic } from '../manager/diagnostic';
15
- import type { ViewElement, TypeAnnotation, App } from '..';
16
11
 
17
12
  import { sentryMonitorNaslNode } from '../sentry';
18
13
  import operations from '../breakpoint/shared/operations';
19
- import type { SynatxNode, SynatxNodeConcept } from '../concepts';
14
+ import type { SyntaxNode, SyntaxNodeConcept, ViewElement, TypeAnnotation, App, Namespace } from '../concepts';
20
15
 
21
16
  // 确保属性都是定义过的
22
17
  function ensureDefined(object: any, concept: string) {
@@ -45,6 +40,8 @@ function ensureDefined(object: any, concept: string) {
45
40
  }
46
41
  }
47
42
  }
43
+
44
+ newObject.concept = actualConcept;
48
45
  }
49
46
  return newObject;
50
47
  }
@@ -55,6 +52,8 @@ function ensureDefined(object: any, concept: string) {
55
52
  */
56
53
  @sentryMonitorNaslNode
57
54
  export class BaseNode extends EventEmitter {
55
+ static readonly ConceptName: string = 'BaseNode';
56
+
58
57
  /**
59
58
  * 可修改标志,内部属性
60
59
  * 标记在构造函数结束后是否可修改
@@ -62,11 +61,28 @@ export class BaseNode extends EventEmitter {
62
61
  @excludedInJSON()
63
62
  _mutable = true;
64
63
 
64
+ /** 节点类别缓存 */
65
+ @excludedInJSON()
66
+ private _concept!: string;
67
+
65
68
  /**
66
69
  * 概念
67
70
  */
68
71
  @property()
69
- concept: string = undefined;
72
+ get concept() {
73
+ return this._concept ?? (this.constructor as any).ConceptName as string;
74
+ }
75
+ set concept(val: string) {
76
+ console.warn(`[警告] 尽快移除变更 concept 值的操作,下个版本 concept 将会改为只读。\n当前变更:${this.concept} -> ${val},原始节点类别:${(this.constructor as any).ConceptName}`);
77
+ if (val !== this.concept) {
78
+ if (val === (this.constructor as any).ConceptName as string) {
79
+ delete this._concept;
80
+ } else {
81
+ this._concept = val;
82
+ }
83
+ }
84
+ }
85
+
70
86
 
71
87
  /**
72
88
  * toJSON 时需要去除的键,为了避免出现 CircularJSON
@@ -82,22 +98,22 @@ export class BaseNode extends EventEmitter {
82
98
  * 变动时间
83
99
  */
84
100
  @property()
85
- changedTime: number = undefined;
101
+ changedTime!: number;
86
102
 
87
103
  /**
88
104
  * 分支名称
89
105
  */
90
106
  @property()
91
- branchName: string = undefined;
107
+ branchName!: string;
92
108
 
93
109
  /**
94
110
  * 合并代码相关
95
111
  */
96
112
  @property()
97
- workingCopy: object = undefined;
113
+ workingCopy!: object;
98
114
 
99
115
  @property()
100
- branch: object = undefined;
116
+ branch!: object;
101
117
 
102
118
  /**
103
119
  * 断点状态
@@ -107,13 +123,13 @@ export class BaseNode extends EventEmitter {
107
123
  * 'DISABLED' ==> 禁用断点
108
124
  */
109
125
  @property()
110
- breakpoint: 'ENABLED' | 'DISABLED' | null | undefined = undefined;
126
+ breakpoint!: 'ENABLED' | 'DISABLED' | null | undefined;
111
127
 
112
128
  /**
113
129
  * 父节点
114
130
  */
115
131
  @circular()
116
- parentNode: SynatxNode = null;
132
+ parentNode: SyntaxNode = null;
117
133
 
118
134
  parentKey: string = '';
119
135
 
@@ -122,91 +138,98 @@ export class BaseNode extends EventEmitter {
122
138
  * 前端 UI 状态
123
139
  */
124
140
  @excludedInJSON()
125
- editable: boolean = undefined;
141
+ editable!: boolean;
126
142
 
127
143
  /**
128
144
  * 是否可以删除
129
145
  * 前端 UI 状态
130
146
  */
131
147
  @excludedInJSON()
132
- removable: boolean = undefined;
148
+ removable!: boolean;
133
149
 
134
150
  /**
135
151
  * 是否正在编辑
136
152
  * 前端 UI 状态
137
153
  */
138
154
  @excludedInJSON()
139
- editing: boolean = false;
155
+ editing!: boolean;
140
156
 
141
157
  /**
142
158
  * 是否正在请求
143
159
  * 前端 UI 状态
144
160
  */
145
161
  @excludedInJSON()
146
- loading: boolean = false;
162
+ loading!: boolean;
147
163
 
148
164
  /**
149
165
  * 节点是否为展开状态
150
166
  * 前端 UI 状态
151
167
  */
152
168
  @excludedInJSON()
153
- expanded: boolean = false;
169
+ expanded!: boolean;
154
170
 
155
171
  /**
156
172
  * 节点是否显示
157
173
  * 前端 UI 状态
158
174
  */
159
175
  @excludedInJSON()
160
- hidden: boolean = false;
176
+ hidden!: boolean;
161
177
 
162
178
  /**
163
179
  * 页面树节点是否显示
164
180
  * 前端 UI 状态
165
181
  */
166
182
  @excludedInJSON()
167
- pageTreeNodeHidden: boolean = false;
183
+ pageTreeNodeHidden!: boolean;
168
184
 
169
185
  /**
170
186
  * 逻辑树节点是否显示
171
187
  * 前端 UI 状态
172
188
  */
173
189
  @excludedInJSON()
174
- logicTreeNodeHidden: boolean = false;
190
+ logicTreeNodeHidden!: boolean;
175
191
 
176
192
  /**
177
193
  * 数据树节点是否显示
178
194
  * 前端 UI 状态
179
195
  */
180
196
  @excludedInJSON()
181
- dataTreeNodeHidden: boolean = false;
197
+ dataTreeNodeHidden!: boolean;
198
+
199
+ /**
200
+ * 数据树节点是否显示
201
+ * 前端 UI 状态
202
+ */
203
+ @excludedInJSON()
204
+ processTreeNodeHidden!: boolean;
182
205
 
183
206
  /**
184
207
  * 数据树节点是否展开
185
208
  * 前端 UI 状态
186
209
  */
187
210
  @excludedInJSON()
188
- logicTreeNodeExpanded: boolean = false;
211
+ logicTreeNodeExpanded!: boolean;
189
212
 
190
213
  /**
191
214
  * 用于挂 embeddedTS 的 sourceMap
192
215
  */
193
216
  @excludedInJSON()
194
- sourceMap: SourceMap = undefined;
217
+ sourceMap!: SourceMap;
195
218
 
196
219
  /**
197
220
  * 是否为叶子节点
198
221
  * 前端 UI 状态
199
222
  */
200
223
  @excludedInJSON()
201
- isLeaf: boolean = false;
224
+ isLeaf!: boolean;
202
225
 
203
226
  @excludedInJSON()
204
- storageJSON: any;
227
+ storageJSON!: any;
205
228
 
206
229
  /**
207
230
  * 当前节点上报错详细信息
208
231
  */
209
- tsErrorDetail: Diagnostic | undefined = undefined;
232
+ tsErrorDetail!: Diagnostic | undefined;
210
233
 
211
234
  @property()
212
235
  name: string = '';
@@ -215,13 +238,13 @@ export class BaseNode extends EventEmitter {
215
238
  * 当前节点的类型标注
216
239
  */
217
240
  @excludedInJSON()
218
- __TypeAnnotation: TypeAnnotation = undefined;
241
+ __TypeAnnotation!: TypeAnnotation;
219
242
 
220
243
  /**
221
244
  * 当前节点的类型标注是不是正确的
222
245
  */
223
246
  @excludedInJSON()
224
- __isCorrectTypeAnnotation: boolean = false;
247
+ __isCorrectTypeAnnotation!: boolean;
225
248
 
226
249
  /**
227
250
  * @param source 需要合并的部分参数
@@ -242,26 +265,33 @@ export class BaseNode extends EventEmitter {
242
265
  this.on('create', () => operations.create(this));
243
266
  this.on('delete', () => operations.delete(this));
244
267
  this.on('update', () => operations.update(this));
245
- }
246
268
 
247
- // static constructorName = 'BaseNode'
248
- getClassName() {
249
- return 'BaseNode';
250
269
  }
251
270
 
252
271
  subConstructor(source?: Partial<BaseNode>) {
253
- const propertyMap = getConceptPropertyMap(this.getClassName() || this.constructor.name);
272
+ const propertyMap = getConceptPropertyMap(this.concept || this.constructor.name);
254
273
  const properties = Array.from(new Set([...Object.keys(this), ...Object.keys(source)])).filter((key) => propertyMap.has(key));
255
274
 
256
275
  // 测试时用的标记属性
257
276
  if (process.env.NODE_ENV === 'testing') {
258
- properties.push('__$Selected');
277
+ properties.push('__$Selected', '__TypeAnnotation');
259
278
  }
260
279
 
261
280
  properties.forEach((key) => {
262
- const property = propertyMap.get(key);
281
+ if (key === 'concept') {
282
+ return;
283
+ }
284
+
263
285
  const sourceItem = (source as any)[key] !== undefined ? (source as any)[key] : (this as any)[key];
286
+
287
+ let property = propertyMap.get(key);
264
288
  let objectRefCtor: any;
289
+
290
+ // 测试环境下,类型节点由外部注入,所以需要在初始化的时候必须带上类型节点
291
+ if (process.env.NODE_ENV === 'testing' && key === '__TypeAnnotation' && sourceItem) {
292
+ property = { objectRef: 'TypeAnnotation' };
293
+ }
294
+
265
295
  try {
266
296
  if (property?.objectRef) {
267
297
  const arr = property.objectRef.split(' | ');
@@ -274,47 +304,31 @@ export class BaseNode extends EventEmitter {
274
304
  }
275
305
  }
276
306
  }
307
+
277
308
  // 数组的情况也在这里做掉了
278
- (this as any)[key] =
279
- objectRefCtor && sourceItem && !(sourceItem instanceof objectRefCtor) ? this.instantiateSub(sourceItem, key) : sourceItem;
309
+ const val = objectRefCtor && sourceItem && !(sourceItem instanceof objectRefCtor) ? this.instantiateSub(sourceItem, key) : sourceItem;
310
+
311
+ if (val !== undefined) {
312
+ (this as any)[key] = val;
313
+ }
280
314
  } catch (e) {
281
315
  // Function has non-object prototype 'undefined' in instanceof check
282
316
  if (!e.message.includes('Function has non-object prototype')) throw e;
283
317
  }
284
318
  });
319
+
285
320
  operations.create(this);
286
- // if (config.storage.protocol === 'http' && loadThen[source.concept as 'App' | 'View']) {
287
- // const { childNodes } = loadThen[source.concept as 'App' | 'View'] || {};
288
- // const queryList = childNodes.map(({ field, concept }) => {
289
- // const path = [this.nodePath, field].join('.');
290
- // return {
291
- // path,
292
- // excludes: loadThen[concept as 'App' | 'View'].childNodes.map(({ field }) => field),
293
- // };
294
- // });
295
- // storageService
296
- // .batchQuery({
297
- // body: queryList,
298
- // headers: {
299
- // appId: this.rootNode?.id || this.id,
300
- // },
301
- // })
302
- // .then((data: any) =>
303
- // data.forEach((sourceItem: any, index: number) => {
304
- // const { field, concept } = childNodes[index];
305
- // if (!sourceItem || (Array.isArray((this as any)[field]) && !Array.isArray(sourceItem))) {
306
- // return;
307
- // }
308
- // const objectRefCtor = getConceptConstructor(concept);
309
- // (this as any)[field] = objectRefCtor ? this.instantiateSub(sourceItem, field) : sourceItem;
310
- // }));
311
- // }
321
+
322
+ // node 环境下需要删除当前节点的 concept 属性
323
+ if (utils.isNode && ('concept' in this) && !this.concept) {
324
+ Reflect.deleteProperty(this, 'concept');
325
+ }
312
326
  }
313
327
 
314
328
  fixInstantiate() {
315
- const propertyMap = getConceptPropertyMap(this.getClassName() || this.constructor.name);
316
-
329
+ const propertyMap = getConceptPropertyMap(this.concept ?? this.constructor.name);
317
330
  const properties = Object.keys(this).filter((key) => propertyMap.has(key));
331
+
318
332
  properties.forEach((key) => {
319
333
  const property = propertyMap.get(key);
320
334
  const sourceItem = (this as any)[key];
@@ -386,9 +400,9 @@ export class BaseNode extends EventEmitter {
386
400
  }
387
401
  }
388
402
 
389
- createNode({ parentNode, parentKey, index }: { parentNode: SynatxNode; parentKey: string; index: number }) {
403
+ createNode({ parentNode, parentKey, index }: { parentNode: SyntaxNode; parentKey: string; index: number }) {
390
404
  if (parentNode) {
391
- const property = parentNode[parentKey as keyof SynatxNode];
405
+ const property = parentNode[parentKey as keyof SyntaxNode];
392
406
  if (Array.isArray(property) && index !== -1) {
393
407
  property.splice(index, 0, this);
394
408
  } else {
@@ -480,11 +494,19 @@ export class BaseNode extends EventEmitter {
480
494
  node.changeLinesLocation(this);
481
495
  }
482
496
 
497
+ // 自定义连接器下的namespace删除的时候需要同时删除对应的logic
498
+ if (this.concept === 'Namespace' && this.parentNode.concept === 'Connector') {
499
+ (this as unknown as Namespace).logics.forEach(logic => logic?.delete())
500
+ }
501
+
483
502
  const useIndex = ['BindEvent', 'Identifier'].includes(this.concept);
484
503
  const path = this.getNodePath(useIndex);
485
504
  const parentParams = this._delete();
486
505
  if (parentParams && parentParams.index !== -1) {
487
506
  if (Array.isArray((this.parentNode as any)[this.parentKey])) {
507
+ if (process.env.NODE_ENV === 'development') {
508
+ console.log('删除节点', this);
509
+ }
488
510
  this.emit('delete', {
489
511
  action: 'delete',
490
512
  path,
@@ -512,66 +534,97 @@ export class BaseNode extends EventEmitter {
512
534
  */
513
535
  update({ field, ...object }: any) {
514
536
  const path = this.getNodePath(false);
537
+ // 更新前的旧的对象
515
538
  const oldObject: any = {};
539
+ // 更新后的新对象
540
+ const newObject: any = {};
516
541
  for (const key in object) {
542
+ if (key === 'concept') {
543
+ continue;
544
+ }
517
545
  if (Object.prototype.hasOwnProperty.call(object, key)) {
518
- const oldProperty = (this as any)[key] ?? null;
519
- oldObject[key] = oldProperty;
520
- if (Array.isArray(oldProperty)) {
521
- oldObject[key] = oldProperty.map((item) => {
546
+ // 旧对象收集
547
+ this.collectOldObject(oldObject, key);
548
+ // 新对象收集
549
+ this.collectNewObject(newObject, object, key);
550
+ }
551
+ }
552
+
553
+ // 更新实例上的属性
554
+ this.updateInstance(object);
555
+
556
+ if (process.env.NODE_ENV === 'development') {
557
+ console.log('更新节点', 'path', path, 'oldObject', oldObject, 'newObject', newObject);
558
+ }
559
+ this.emit('update', {
560
+ action: 'update',
561
+ path,
562
+ object: newObject,
563
+ oldObject,
564
+ field,
565
+ });
566
+ }
567
+
568
+ // 旧对象收集
569
+ collectOldObject(oldObject: any, key: string) {
570
+ const oldProperty = (this as any)[key] ?? null;
571
+ oldObject[key] = oldProperty;
572
+ if (Array.isArray(oldProperty)) {
573
+ oldObject[key] = oldProperty.map((item) => {
522
574
  let propertyItem = item ?? null;
523
575
  if (item instanceof BaseNode) {
524
- propertyItem = item.toJSON();
576
+ propertyItem = item.toJSON();
525
577
  }
526
578
  return propertyItem;
527
- });
528
- } else if (oldProperty instanceof BaseNode) {
529
- oldObject[key] = oldProperty.toJSON();
530
- }
531
- const property = object[key] ?? null;
532
- (this as any)[key] = property;
533
- const objectRefCtor = getConceptConstructor(property?.concept);
534
- if (Array.isArray(property)) {
535
- (this as any)[key] = property.map((item) => {
536
- let propertyItem = item ?? null;
537
- const propertyObjectRefCtor = getConceptConstructor(item?.concept);
538
- if (propertyObjectRefCtor?.from) {
539
- propertyItem = (propertyObjectRefCtor as any).from(item, this, key);
540
- }
541
- return propertyItem;
542
- });
543
- } else if (objectRefCtor?.from) {
544
- (this as any)[key] = (objectRefCtor as any).from(property, this, key);
545
- }
546
- }
579
+ });
580
+ } else if (oldProperty instanceof BaseNode) {
581
+ oldObject[key] = oldProperty.toJSON();
547
582
  }
548
- const newObject: any = {};
549
- const propertyMap = getConceptPropertyMap(this.getClassName() || this.constructor.name);
550
- for (const key in object) {
551
- const property = propertyMap.get(key);
552
- if (property) {
583
+ }
584
+
585
+ // 新对象收集
586
+ collectNewObject(newObject: any, object: any, key: string) {
587
+ const propertyMap = getConceptPropertyMap(this.concept ?? this.constructor.name);
588
+ const property = propertyMap.get(key);
589
+ if (property) {
553
590
  const objProperty = object[key] ?? null;
554
591
  const propertyConcept = property?.objectRef;
555
592
  if (propertyConcept) {
556
- if (Array.isArray(objProperty)) {
593
+ if (Array.isArray(objProperty)) {
557
594
  newObject[key] = objProperty.map((objItem: any) => {
558
- return ensureDefined(objItem, propertyConcept);
595
+ return ensureDefined(objItem, propertyConcept);
559
596
  });
560
- } else {
597
+ } else {
561
598
  newObject[key] = ensureDefined(objProperty, propertyConcept);
562
- }
599
+ }
563
600
  } else {
564
- newObject[key] = objProperty;
601
+ newObject[key] = objProperty;
565
602
  }
603
+ }
604
+ }
605
+
606
+ // 更新实例上的属性
607
+ updateInstance(object: any) {
608
+ for (const key in object) {
609
+ if (key === 'concept') {
610
+ continue;
611
+ }
612
+ const property = object[key] ?? null;
613
+ (this as any)[key] = property;
614
+ const objectRefCtor = getConceptConstructor(property?.concept);
615
+ if (Array.isArray(property)) {
616
+ (this as any)[key] = property.map((item) => {
617
+ let propertyItem = item ?? null;
618
+ const propertyObjectRefCtor = getConceptConstructor(item?.concept);
619
+ if (propertyObjectRefCtor?.from) {
620
+ propertyItem = (propertyObjectRefCtor as any).from(item, this, key);
621
+ }
622
+ return propertyItem;
623
+ });
624
+ } else if (objectRefCtor?.from) {
625
+ (this as any)[key] = (objectRefCtor as any).from(property, this, key);
566
626
  }
567
627
  }
568
- this.emit('update', {
569
- action: 'update',
570
- path,
571
- object: newObject,
572
- oldObject,
573
- field,
574
- });
575
628
  }
576
629
 
577
630
  _delete(): Params {
@@ -586,7 +639,7 @@ export class BaseNode extends EventEmitter {
586
639
 
587
640
  static from(source: any, parentNode?: BaseNode, parentKey?: string): BaseNode {
588
641
  // 有一些继承的情况
589
- const Ctor = classMap?.[source?.concept] || this;
642
+ const Ctor = classMap.get(source?.concept) || this;
590
643
  if (Ctor && source instanceof Ctor) {
591
644
  if (parentNode) {
592
645
  source.parentNode = parentNode;
@@ -607,7 +660,7 @@ export class BaseNode extends EventEmitter {
607
660
  }
608
661
  instance.subConstructor({
609
662
  ...source,
610
- concept: source.concept || this?.prototype?.getClassName() || Ctor.name,
663
+ concept: source?.concept ?? this?.prototype?.concept ?? (Ctor as any).ConceptName as string ?? Ctor.name,
611
664
  parentNode,
612
665
  });
613
666
  return instance;
@@ -646,7 +699,13 @@ export class BaseNode extends EventEmitter {
646
699
  })
647
700
  : null;
648
701
  if (siblingNode || !name || (useIndex && isNodeSelf) || useIndexKeys.includes(node.concept)) {
649
- const index = parentProperty.indexOf(node);
702
+ const index = parentProperty.findIndex((item) => {
703
+ if (item === node) {
704
+ return true;
705
+ }
706
+
707
+ return item?.id && item?.id === node?.id;
708
+ });
650
709
  path += `[${index}]`;
651
710
  } else {
652
711
  path += `[name=${name}]`;
@@ -664,13 +723,13 @@ export class BaseNode extends EventEmitter {
664
723
  /**
665
724
  * 上层节点
666
725
  */
667
- get upperNode(): SynatxNode {
726
+ get upperNode(): SyntaxNode {
668
727
  // eslint-disable-next-line consistent-this
669
728
  let _upperNode: BaseNode = this;
670
729
  while (!!_upperNode && _upperNode.concept === this.concept) {
671
730
  _upperNode = _upperNode.parentNode;
672
731
  }
673
- return _upperNode as SynatxNode;
732
+ return _upperNode as SyntaxNode;
674
733
  }
675
734
 
676
735
  /**
@@ -683,9 +742,9 @@ export class BaseNode extends EventEmitter {
683
742
  /**
684
743
  * 获取祖先节点
685
744
  */
686
- getAncestor(concept: SynatxNode['concept']): SynatxNode;
687
- getAncestor<Node extends SynatxNode>(concept: Node['concept']): Node;
688
- getAncestor<Node extends SynatxNode = SynatxNode>(concept: SynatxNode['concept']): Node {
745
+ getAncestor(concept: SyntaxNode['concept']): SyntaxNode;
746
+ getAncestor<Node extends SyntaxNode>(concept: Node['concept']): Node;
747
+ getAncestor<Node extends SyntaxNode = SyntaxNode>(concept: SyntaxNode['concept']): Node {
689
748
  let { upperNode } = this;
690
749
  while (upperNode && upperNode.concept && upperNode.concept !== concept) {
691
750
  upperNode = upperNode.upperNode;
@@ -747,13 +806,13 @@ export class BaseNode extends EventEmitter {
747
806
  instantiate(source: any, parentNode: BaseNode, parentKey: string) {
748
807
  if (source instanceof BaseNode) {
749
808
  if (!source.parentNode || !source.parentKey) {
750
- source.parentNode = parentNode as SynatxNode;
809
+ source.parentNode = parentNode as SyntaxNode;
751
810
  source.parentKey = parentKey;
752
811
  }
753
812
  return source;
754
813
  }
755
- if (source && source.concept && classMap[source.concept]) {
756
- const Ctor = classMap[source.concept] as any;
814
+ if (source && source.concept && classMap.get(source.concept)) {
815
+ const Ctor = classMap.get(source.concept) as any;
757
816
  const instance = Ctor.from(source, parentNode, parentKey);
758
817
  if (instance && instance.toStorageJSON) instance.storageJSON = instance.toStorageJSON();
759
818
  return instance;
@@ -770,7 +829,7 @@ export class BaseNode extends EventEmitter {
770
829
  return;
771
830
  }
772
831
  const completeList: any[] = [];
773
- let isArray = false;
832
+ let isArray;
774
833
  // 暂时通过是否有name判断数据是否全
775
834
  if (Array.isArray(source)) {
776
835
  isArray = true;
@@ -848,7 +907,7 @@ export class BaseNode extends EventEmitter {
848
907
  }
849
908
 
850
909
  _toJSON(filerFn?: (source: Partial<BaseNode>) => {}): any {
851
- const propertyMap = getConceptPropertyMap(this.getClassName() || this.constructor.name);
910
+ const propertyMap = getConceptPropertyMap(this.concept || this.constructor.name);
852
911
  const source: Partial<BaseNode> = {};
853
912
  propertyMap.forEach((property, key: string) => {
854
913
  if (property) {
@@ -861,6 +920,10 @@ export class BaseNode extends EventEmitter {
861
920
  }
862
921
  }
863
922
  });
923
+
924
+ // @ts-ignore
925
+ source.concept = this.concept;
926
+
864
927
  return filerFn ? filerFn(source) : source;
865
928
  }
866
929
 
@@ -1070,8 +1133,8 @@ export class BaseNode extends EventEmitter {
1070
1133
  return {};
1071
1134
  }
1072
1135
 
1073
- public traverseChildren(cb: (ele: SynatxNode) => void): void {
1074
- function traverse(node: SynatxNode) {
1136
+ public traverseChildren(cb: (ele: SyntaxNode) => void): void {
1137
+ function traverse(node: SyntaxNode) {
1075
1138
  cb(node);
1076
1139
 
1077
1140
  const propertyMap = getConceptPropertyMap(node?.concept);
@@ -1080,12 +1143,12 @@ export class BaseNode extends EventEmitter {
1080
1143
  for (const property of propertyMap.keys()) {
1081
1144
  const child = node[property as keyof BaseNode];
1082
1145
  if (!child) continue;
1083
- else if (Array.isArray(child)) child.forEach((node: SynatxNode) => traverse(node));
1146
+ else if (Array.isArray(child)) child.forEach((node: SyntaxNode) => traverse(node));
1084
1147
  else traverse(child);
1085
1148
  }
1086
1149
  }
1087
1150
 
1088
- traverse(this as unknown as SynatxNode);
1151
+ traverse(this as unknown as SyntaxNode);
1089
1152
  }
1090
1153
 
1091
1154
  /**
@@ -1176,14 +1239,36 @@ export class BaseNode extends EventEmitter {
1176
1239
  return null;
1177
1240
  }
1178
1241
 
1242
+ /**
1243
+ * 使用新的 concept 在当前节点生成新的数据
1244
+ */
1245
+ changeConceptNode(concept: SyntaxNodeConcept) {
1246
+ return new Proxy(this, {
1247
+ get(target, p: keyof BaseNode, receiver) {
1248
+ if (p === 'concept') {
1249
+ return concept;
1250
+ }
1251
+
1252
+ return target[p];
1253
+ },
1254
+ })
1255
+ }
1256
+
1257
+ /** 收集所有节点 */
1258
+ collectNodes(): SyntaxNode[];
1179
1259
  /** 收集特定类型的子节点 */
1180
- collectNodes(concept: SynatxNodeConcept): void;
1181
- /** 收集判定为真的子节点 */
1182
- collectNodes(pre: (node: SynatxNode) => boolean): void;
1183
- collectNodes(input: SynatxNodeConcept | ((node: SynatxNode) => boolean)) {
1184
- const pre = typeof input === 'string' ? (node: SynatxNode) => node.concept === input : input;
1185
- const nodes: SynatxNode[] = [];
1186
- const self = this as unknown as SynatxNode;
1260
+ collectNodes(concept: SyntaxNodeConcept): SyntaxNode[];
1261
+ /** 收集断言返回`true`的子节点 */
1262
+ collectNodes(pre: (node: SyntaxNode) => boolean): SyntaxNode[];
1263
+ collectNodes(input?: SyntaxNodeConcept | ((node: SyntaxNode) => boolean)) {
1264
+ const pre =
1265
+ typeof input === 'undefined'
1266
+ ? (node: SyntaxNode) => typeof node.concept === 'string'
1267
+ : typeof input === 'string'
1268
+ ? (node: SyntaxNode) => node.concept === input
1269
+ : input;
1270
+ const nodes: SyntaxNode[] = [];
1271
+ const self = this as unknown as SyntaxNode;
1187
1272
 
1188
1273
  if (pre(self)) {
1189
1274
  nodes.push(self);