@lcap/nasl 3.3.0-beta.0 → 3.4.0-alpha.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 (790) hide show
  1. package/out/bak/translator.js +5 -8
  2. package/out/bak/translator.js.map +1 -1
  3. package/out/breakpoint/generator/AfterStartNode.js +1 -2
  4. package/out/breakpoint/generator/AfterStartNode.js.map +1 -1
  5. package/out/breakpoint/generator/BeforeEndNode.js +1 -2
  6. package/out/breakpoint/generator/BeforeEndNode.js.map +1 -1
  7. package/out/breakpoint/generator/BreakpointNode.js +9 -30
  8. package/out/breakpoint/generator/BreakpointNode.js.map +1 -1
  9. package/out/breakpoint/shared/constants.d.ts +0 -1
  10. package/out/breakpoint/shared/constants.js +1 -7
  11. package/out/breakpoint/shared/constants.js.map +1 -1
  12. package/out/breakpoint/shared/utils.d.ts +1 -3
  13. package/out/breakpoint/shared/utils.js +4 -25
  14. package/out/breakpoint/shared/utils.js.map +1 -1
  15. package/out/common/BaseNode.d.ts +8 -21
  16. package/out/common/BaseNode.js +69 -115
  17. package/out/common/BaseNode.js.map +1 -1
  18. package/out/common/Command.js +1 -6
  19. package/out/common/Command.js.map +1 -1
  20. package/out/common/EventEmitter.d.ts +1 -1
  21. package/out/common/EventEmitter.js +3 -1
  22. package/out/common/EventEmitter.js.map +1 -1
  23. package/out/common/classMap.d.ts +4 -0
  24. package/out/common/classMap.js +5 -0
  25. package/out/common/classMap.js.map +1 -0
  26. package/out/common/index.d.ts +1 -0
  27. package/out/common/index.js +1 -0
  28. package/out/common/index.js.map +1 -1
  29. package/out/concepts/Abort__.d.ts +2 -3
  30. package/out/concepts/Abort__.js +18 -15
  31. package/out/concepts/Abort__.js.map +1 -1
  32. package/out/concepts/Anchor__.d.ts +3 -3
  33. package/out/concepts/Anchor__.js +35 -18
  34. package/out/concepts/Anchor__.js.map +1 -1
  35. package/out/concepts/AnonymousFunction__.d.ts +3 -3
  36. package/out/concepts/AnonymousFunction__.js +53 -29
  37. package/out/concepts/AnonymousFunction__.js.map +1 -1
  38. package/out/concepts/App__.d.ts +157 -160
  39. package/out/concepts/App__.js +80 -106
  40. package/out/concepts/App__.js.map +1 -1
  41. package/out/concepts/Argument__.d.ts +3 -3
  42. package/out/concepts/Argument__.js +42 -22
  43. package/out/concepts/Argument__.js.map +1 -1
  44. package/out/concepts/Assignee__.d.ts +2 -3
  45. package/out/concepts/Assignee__.js +21 -19
  46. package/out/concepts/Assignee__.js.map +1 -1
  47. package/out/concepts/AssignmentLine__.d.ts +2 -3
  48. package/out/concepts/AssignmentLine__.js +17 -15
  49. package/out/concepts/AssignmentLine__.js.map +1 -1
  50. package/out/concepts/Assignment__.d.ts +3 -3
  51. package/out/concepts/Assignment__.js +42 -34
  52. package/out/concepts/Assignment__.js.map +1 -1
  53. package/out/concepts/Attribute__.d.ts +2 -3
  54. package/out/concepts/Attribute__.js +28 -36
  55. package/out/concepts/Attribute__.js.map +1 -1
  56. package/out/concepts/AuthInterface__.d.ts +3 -4
  57. package/out/concepts/AuthInterface__.js +17 -16
  58. package/out/concepts/AuthInterface__.js.map +1 -1
  59. package/out/concepts/AuthLogicForCallInterface__.d.ts +3 -4
  60. package/out/concepts/AuthLogicForCallInterface__.js +27 -37
  61. package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
  62. package/out/concepts/AuthLogic__.d.ts +3 -4
  63. package/out/concepts/AuthLogic__.js +19 -18
  64. package/out/concepts/AuthLogic__.js.map +1 -1
  65. package/out/concepts/BackendVariable__.d.ts +7 -8
  66. package/out/concepts/BackendVariable__.js +34 -39
  67. package/out/concepts/BackendVariable__.js.map +1 -1
  68. package/out/concepts/Backend__.d.ts +31 -32
  69. package/out/concepts/Backend__.js +22 -23
  70. package/out/concepts/Backend__.js.map +1 -1
  71. package/out/concepts/BatchAssignment__.d.ts +3 -3
  72. package/out/concepts/BatchAssignment__.js +54 -46
  73. package/out/concepts/BatchAssignment__.js.map +1 -1
  74. package/out/concepts/BinaryExpression__.d.ts +3 -3
  75. package/out/concepts/BinaryExpression__.js +62 -30
  76. package/out/concepts/BinaryExpression__.js.map +1 -1
  77. package/out/concepts/BindAttribute__.d.ts +9 -12
  78. package/out/concepts/BindAttribute__.js +102 -81
  79. package/out/concepts/BindAttribute__.js.map +1 -1
  80. package/out/concepts/BindDirective__.d.ts +3 -5
  81. package/out/concepts/BindDirective__.js +28 -34
  82. package/out/concepts/BindDirective__.js.map +1 -1
  83. package/out/concepts/BindEvent__.d.ts +3 -3
  84. package/out/concepts/BindEvent__.js +74 -51
  85. package/out/concepts/BindEvent__.js.map +1 -1
  86. package/out/concepts/BindStyle__.d.ts +3 -5
  87. package/out/concepts/BindStyle__.js +23 -24
  88. package/out/concepts/BindStyle__.js.map +1 -1
  89. package/out/concepts/BooleanLiteral__.d.ts +3 -3
  90. package/out/concepts/BooleanLiteral__.js +24 -17
  91. package/out/concepts/BooleanLiteral__.js.map +1 -1
  92. package/out/concepts/CallAuthInterface__.d.ts +2 -3
  93. package/out/concepts/CallAuthInterface__.js +19 -17
  94. package/out/concepts/CallAuthInterface__.js.map +1 -1
  95. package/out/concepts/CallConnector__.d.ts +4 -5
  96. package/out/concepts/CallConnector__.js +34 -41
  97. package/out/concepts/CallConnector__.js.map +1 -1
  98. package/out/concepts/CallFunction__.d.ts +3 -3
  99. package/out/concepts/CallFunction__.js +71 -33
  100. package/out/concepts/CallFunction__.js.map +1 -1
  101. package/out/concepts/CallInterface__.d.ts +3 -3
  102. package/out/concepts/CallInterface__.js +57 -26
  103. package/out/concepts/CallInterface__.js.map +1 -1
  104. package/out/concepts/CallLogic__.d.ts +6 -6
  105. package/out/concepts/CallLogic__.js +180 -135
  106. package/out/concepts/CallLogic__.js.map +1 -1
  107. package/out/concepts/CallQueryComponent__.d.ts +2 -3
  108. package/out/concepts/CallQueryComponent__.js +41 -57
  109. package/out/concepts/CallQueryComponent__.js.map +1 -1
  110. package/out/concepts/Comment__.d.ts +3 -3
  111. package/out/concepts/Comment__.js +24 -17
  112. package/out/concepts/Comment__.js.map +1 -1
  113. package/out/concepts/CompletionProperty__.d.ts +2 -3
  114. package/out/concepts/CompletionProperty__.js +25 -30
  115. package/out/concepts/CompletionProperty__.js.map +1 -1
  116. package/out/concepts/ConfigGroup__.d.ts +2 -3
  117. package/out/concepts/ConfigGroup__.js +20 -21
  118. package/out/concepts/ConfigGroup__.js.map +1 -1
  119. package/out/concepts/ConfigPropertyValue__.d.ts +2 -3
  120. package/out/concepts/ConfigPropertyValue__.js +16 -16
  121. package/out/concepts/ConfigPropertyValue__.js.map +1 -1
  122. package/out/concepts/ConfigProperty__.d.ts +2 -3
  123. package/out/concepts/ConfigProperty__.js +23 -26
  124. package/out/concepts/ConfigProperty__.js.map +1 -1
  125. package/out/concepts/Configuration__.d.ts +2 -3
  126. package/out/concepts/Configuration__.js +18 -16
  127. package/out/concepts/Configuration__.js.map +1 -1
  128. package/out/concepts/Connection__.d.ts +4 -4
  129. package/out/concepts/Connection__.js +18 -22
  130. package/out/concepts/Connection__.js.map +1 -1
  131. package/out/concepts/ConnectorTrigger__.d.ts +6 -7
  132. package/out/concepts/ConnectorTrigger__.js +21 -22
  133. package/out/concepts/ConnectorTrigger__.js.map +1 -1
  134. package/out/concepts/Connector__.d.ts +33 -139
  135. package/out/concepts/Connector__.js +34 -191
  136. package/out/concepts/Connector__.js.map +1 -1
  137. package/out/concepts/Constant__.d.ts +2 -3
  138. package/out/concepts/Constant__.js +23 -25
  139. package/out/concepts/Constant__.js.map +1 -1
  140. package/out/concepts/DataElement__.d.ts +46 -0
  141. package/out/concepts/DataElement__.js +118 -0
  142. package/out/concepts/DataElement__.js.map +1 -0
  143. package/out/concepts/DataSource__.d.ts +2 -7
  144. package/out/concepts/DataSource__.js +23 -31
  145. package/out/concepts/DataSource__.js.map +1 -1
  146. package/out/concepts/DatabaseTypeAnnotation__.d.ts +4 -5
  147. package/out/concepts/DatabaseTypeAnnotation__.js +18 -18
  148. package/out/concepts/DatabaseTypeAnnotation__.js.map +1 -1
  149. package/out/concepts/Destination__.d.ts +11 -11
  150. package/out/concepts/Destination__.js +89 -39
  151. package/out/concepts/Destination__.js.map +1 -1
  152. package/out/concepts/End__.d.ts +2 -3
  153. package/out/concepts/End__.js +17 -15
  154. package/out/concepts/End__.js.map +1 -1
  155. package/out/concepts/EntityIndex__.d.ts +3 -4
  156. package/out/concepts/EntityIndex__.js +21 -23
  157. package/out/concepts/EntityIndex__.js.map +1 -1
  158. package/out/concepts/EntityProperty__.d.ts +4 -4
  159. package/out/concepts/EntityProperty__.js +67 -51
  160. package/out/concepts/EntityProperty__.js.map +1 -1
  161. package/out/concepts/Entity__.d.ts +3 -3
  162. package/out/concepts/Entity__.js +51 -32
  163. package/out/concepts/Entity__.js.map +1 -1
  164. package/out/concepts/EnumItem__.d.ts +3 -3
  165. package/out/concepts/EnumItem__.js +25 -19
  166. package/out/concepts/EnumItem__.js.map +1 -1
  167. package/out/concepts/Enum__.d.ts +3 -3
  168. package/out/concepts/Enum__.js +35 -23
  169. package/out/concepts/Enum__.js.map +1 -1
  170. package/out/concepts/Event__.d.ts +2 -3
  171. package/out/concepts/Event__.js +21 -24
  172. package/out/concepts/Event__.js.map +1 -1
  173. package/out/concepts/ExternalDestination__.d.ts +5 -6
  174. package/out/concepts/ExternalDestination__.js +25 -25
  175. package/out/concepts/ExternalDestination__.js.map +1 -1
  176. package/out/concepts/ForEachStatement__.d.ts +3 -3
  177. package/out/concepts/ForEachStatement__.js +60 -21
  178. package/out/concepts/ForEachStatement__.js.map +1 -1
  179. package/out/concepts/FrontendLibrary__.d.ts +3 -4
  180. package/out/concepts/FrontendLibrary__.js +25 -27
  181. package/out/concepts/FrontendLibrary__.js.map +1 -1
  182. package/out/concepts/FrontendVariable__.d.ts +3 -4
  183. package/out/concepts/FrontendVariable__.js +12 -12
  184. package/out/concepts/FrontendVariable__.js.map +1 -1
  185. package/out/concepts/Frontend__.d.ts +6 -8
  186. package/out/concepts/Frontend__.js +39 -47
  187. package/out/concepts/Frontend__.js.map +1 -1
  188. package/out/concepts/Function__.d.ts +3 -3
  189. package/out/concepts/Function__.js +60 -37
  190. package/out/concepts/Function__.js.map +1 -1
  191. package/out/concepts/Identifier__.d.ts +3 -4
  192. package/out/concepts/Identifier__.js +29 -30
  193. package/out/concepts/Identifier__.js.map +1 -1
  194. package/out/concepts/IfStatement__.d.ts +3 -3
  195. package/out/concepts/IfStatement__.js +51 -21
  196. package/out/concepts/IfStatement__.js.map +1 -1
  197. package/out/concepts/Integration__.d.ts +2 -93
  198. package/out/concepts/Integration__.js +19 -157
  199. package/out/concepts/Integration__.js.map +1 -1
  200. package/out/concepts/InterfaceParam__.d.ts +4 -30
  201. package/out/concepts/InterfaceParam__.js +24 -58
  202. package/out/concepts/InterfaceParam__.js.map +1 -1
  203. package/out/concepts/Interface__.d.ts +5 -31
  204. package/out/concepts/Interface__.js +34 -89
  205. package/out/concepts/Interface__.js.map +1 -1
  206. package/out/concepts/JSBlock__.d.ts +3 -3
  207. package/out/concepts/JSBlock__.js +24 -17
  208. package/out/concepts/JSBlock__.js.map +1 -1
  209. package/out/concepts/JavaLogic__.d.ts +3 -4
  210. package/out/concepts/JavaLogic__.js +21 -22
  211. package/out/concepts/JavaLogic__.js.map +1 -1
  212. package/out/concepts/LogicItem__.d.ts +8 -3
  213. package/out/concepts/LogicItem__.js +30 -23
  214. package/out/concepts/LogicItem__.js.map +1 -1
  215. package/out/concepts/Logic__.d.ts +18 -17
  216. package/out/concepts/Logic__.js +188 -113
  217. package/out/concepts/Logic__.js.map +1 -1
  218. package/out/concepts/MatchCase__.d.ts +3 -3
  219. package/out/concepts/MatchCase__.js +110 -23
  220. package/out/concepts/MatchCase__.js.map +1 -1
  221. package/out/concepts/Match__.d.ts +3 -3
  222. package/out/concepts/Match__.js +64 -20
  223. package/out/concepts/Match__.js.map +1 -1
  224. package/out/concepts/MemberExpression__.d.ts +3 -3
  225. package/out/concepts/MemberExpression__.js +59 -65
  226. package/out/concepts/MemberExpression__.js.map +1 -1
  227. package/out/concepts/MicroApp__.d.ts +2 -3
  228. package/out/concepts/MicroApp__.js +21 -26
  229. package/out/concepts/MicroApp__.js.map +1 -1
  230. package/out/concepts/Module__.d.ts +47 -219
  231. package/out/concepts/Module__.js +32 -232
  232. package/out/concepts/Module__.js.map +1 -1
  233. package/out/concepts/MsgTriggerEvent__.d.ts +3 -4
  234. package/out/concepts/MsgTriggerEvent__.js +18 -16
  235. package/out/concepts/MsgTriggerEvent__.js.map +1 -1
  236. package/out/concepts/MsgTriggerLauncher__.d.ts +3 -4
  237. package/out/concepts/MsgTriggerLauncher__.js +19 -18
  238. package/out/concepts/MsgTriggerLauncher__.js.map +1 -1
  239. package/out/concepts/Namespace__.d.ts +2 -4
  240. package/out/concepts/Namespace__.js +46 -64
  241. package/out/concepts/Namespace__.js.map +1 -1
  242. package/out/concepts/NewComposite__.d.ts +3 -4
  243. package/out/concepts/NewComposite__.js +133 -71
  244. package/out/concepts/NewComposite__.js.map +1 -1
  245. package/out/concepts/NewList__.d.ts +4 -5
  246. package/out/concepts/NewList__.js +41 -35
  247. package/out/concepts/NewList__.js.map +1 -1
  248. package/out/concepts/NewMap__.d.ts +4 -5
  249. package/out/concepts/NewMap__.js +38 -39
  250. package/out/concepts/NewMap__.js.map +1 -1
  251. package/out/concepts/New__.d.ts +2 -3
  252. package/out/concepts/New__.js +17 -15
  253. package/out/concepts/New__.js.map +1 -1
  254. package/out/concepts/NullLiteral__.d.ts +2 -3
  255. package/out/concepts/NullLiteral__.js +17 -15
  256. package/out/concepts/NullLiteral__.js.map +1 -1
  257. package/out/concepts/NumericLiteral__.d.ts +3 -3
  258. package/out/concepts/NumericLiteral__.js +27 -21
  259. package/out/concepts/NumericLiteral__.js.map +1 -1
  260. package/out/concepts/OqlQueryComponent__.d.ts +3 -3
  261. package/out/concepts/OqlQueryComponent__.js +30 -26
  262. package/out/concepts/OqlQueryComponent__.js.map +1 -1
  263. package/out/concepts/OverriddenLogic__.d.ts +22 -14
  264. package/out/concepts/OverriddenLogic__.js +62 -73
  265. package/out/concepts/OverriddenLogic__.js.map +1 -1
  266. package/out/concepts/Param__.d.ts +3 -3
  267. package/out/concepts/Param__.js +69 -34
  268. package/out/concepts/Param__.js.map +1 -1
  269. package/out/concepts/Point__.d.ts +2 -3
  270. package/out/concepts/Point__.js +16 -16
  271. package/out/concepts/Point__.js.map +1 -1
  272. package/out/concepts/ProcessComponent__.d.ts +2 -3
  273. package/out/concepts/ProcessComponent__.js +22 -24
  274. package/out/concepts/ProcessComponent__.js.map +1 -1
  275. package/out/concepts/ProcessElement__.d.ts +2 -3
  276. package/out/concepts/ProcessElement__.js +46 -61
  277. package/out/concepts/ProcessElement__.js.map +1 -1
  278. package/out/concepts/ProcessOutcome__.d.ts +2 -3
  279. package/out/concepts/ProcessOutcome__.js +18 -17
  280. package/out/concepts/ProcessOutcome__.js.map +1 -1
  281. package/out/concepts/ProcessOutcomes__.d.ts +2 -3
  282. package/out/concepts/ProcessOutcomes__.js +17 -15
  283. package/out/concepts/ProcessOutcomes__.js.map +1 -1
  284. package/out/concepts/Process__.d.ts +7 -5
  285. package/out/concepts/Process__.js +35 -46
  286. package/out/concepts/Process__.js.map +1 -1
  287. package/out/concepts/QueryAggregateExpression__.d.ts +2 -3
  288. package/out/concepts/QueryAggregateExpression__.js +22 -23
  289. package/out/concepts/QueryAggregateExpression__.js.map +1 -1
  290. package/out/concepts/QueryFieldExpression__.d.ts +3 -4
  291. package/out/concepts/QueryFieldExpression__.js +20 -21
  292. package/out/concepts/QueryFieldExpression__.js.map +1 -1
  293. package/out/concepts/QueryFromExpression__.d.ts +3 -4
  294. package/out/concepts/QueryFromExpression__.js +22 -23
  295. package/out/concepts/QueryFromExpression__.js.map +1 -1
  296. package/out/concepts/QueryGroupByExpression__.d.ts +2 -3
  297. package/out/concepts/QueryGroupByExpression__.js +19 -18
  298. package/out/concepts/QueryGroupByExpression__.js.map +1 -1
  299. package/out/concepts/QueryJoinExpression__.d.ts +3 -4
  300. package/out/concepts/QueryJoinExpression__.js +25 -29
  301. package/out/concepts/QueryJoinExpression__.js.map +1 -1
  302. package/out/concepts/QueryLimitExpression__.d.ts +2 -3
  303. package/out/concepts/QueryLimitExpression__.js +22 -22
  304. package/out/concepts/QueryLimitExpression__.js.map +1 -1
  305. package/out/concepts/QueryOrderByExpression__.d.ts +2 -3
  306. package/out/concepts/QueryOrderByExpression__.js +22 -22
  307. package/out/concepts/QueryOrderByExpression__.js.map +1 -1
  308. package/out/concepts/QuerySelectExpression__.d.ts +2 -3
  309. package/out/concepts/QuerySelectExpression__.js +21 -23
  310. package/out/concepts/QuerySelectExpression__.js.map +1 -1
  311. package/out/concepts/Rect__.d.ts +2 -3
  312. package/out/concepts/Rect__.js +18 -20
  313. package/out/concepts/Rect__.js.map +1 -1
  314. package/out/concepts/Return__.d.ts +3 -3
  315. package/out/concepts/Return__.js +45 -29
  316. package/out/concepts/Return__.js.map +1 -1
  317. package/out/concepts/Role__.d.ts +2 -3
  318. package/out/concepts/Role__.js +21 -22
  319. package/out/concepts/Role__.js.map +1 -1
  320. package/out/concepts/SelectMembers__.d.ts +2 -3
  321. package/out/concepts/SelectMembers__.js +21 -20
  322. package/out/concepts/SelectMembers__.js.map +1 -1
  323. package/out/concepts/Slot__.d.ts +2 -3
  324. package/out/concepts/Slot__.js +22 -26
  325. package/out/concepts/Slot__.js.map +1 -1
  326. package/out/concepts/SqlQueryComponent__.d.ts +3 -3
  327. package/out/concepts/SqlQueryComponent__.js +31 -28
  328. package/out/concepts/SqlQueryComponent__.js.map +1 -1
  329. package/out/concepts/Start__.d.ts +2 -3
  330. package/out/concepts/Start__.js +17 -15
  331. package/out/concepts/Start__.js.map +1 -1
  332. package/out/concepts/StringInterpolation__.d.ts +3 -3
  333. package/out/concepts/StringInterpolation__.js +37 -17
  334. package/out/concepts/StringInterpolation__.js.map +1 -1
  335. package/out/concepts/StringLiteral__.d.ts +3 -3
  336. package/out/concepts/StringLiteral__.js +22 -14
  337. package/out/concepts/StringLiteral__.js.map +1 -1
  338. package/out/concepts/StructureProperty__.d.ts +5 -5
  339. package/out/concepts/StructureProperty__.js +40 -33
  340. package/out/concepts/StructureProperty__.js.map +1 -1
  341. package/out/concepts/Structure__.d.ts +12 -3
  342. package/out/concepts/Structure__.js +46 -45
  343. package/out/concepts/Structure__.js.map +1 -1
  344. package/out/concepts/SwitchCase__.d.ts +3 -3
  345. package/out/concepts/SwitchCase__.js +54 -19
  346. package/out/concepts/SwitchCase__.js.map +1 -1
  347. package/out/concepts/SwitchStatement__.d.ts +3 -3
  348. package/out/concepts/SwitchStatement__.js +39 -23
  349. package/out/concepts/SwitchStatement__.js.map +1 -1
  350. package/out/concepts/Theme__.d.ts +2 -3
  351. package/out/concepts/Theme__.js +14 -12
  352. package/out/concepts/Theme__.js.map +1 -1
  353. package/out/concepts/Transactional__.d.ts +2 -3
  354. package/out/concepts/Transactional__.js +17 -18
  355. package/out/concepts/Transactional__.js.map +1 -1
  356. package/out/concepts/TriggerEvent__.d.ts +2 -3
  357. package/out/concepts/TriggerEvent__.js +18 -19
  358. package/out/concepts/TriggerEvent__.js.map +1 -1
  359. package/out/concepts/TriggerLauncher__.d.ts +17 -6
  360. package/out/concepts/TriggerLauncher__.js +63 -26
  361. package/out/concepts/TriggerLauncher__.js.map +1 -1
  362. package/out/concepts/TypeAnnotation__.d.ts +6 -8
  363. package/out/concepts/TypeAnnotation__.js +79 -56
  364. package/out/concepts/TypeAnnotation__.js.map +1 -1
  365. package/out/concepts/TypeParam__.d.ts +3 -3
  366. package/out/concepts/TypeParam__.js +23 -16
  367. package/out/concepts/TypeParam__.js.map +1 -1
  368. package/out/concepts/UnaryExpression__.d.ts +3 -3
  369. package/out/concepts/UnaryExpression__.js +39 -21
  370. package/out/concepts/UnaryExpression__.js.map +1 -1
  371. package/out/concepts/Unparsed__.d.ts +3 -3
  372. package/out/concepts/Unparsed__.js +23 -16
  373. package/out/concepts/Unparsed__.js.map +1 -1
  374. package/out/concepts/UseComponent__.d.ts +2 -3
  375. package/out/concepts/UseComponent__.js +16 -16
  376. package/out/concepts/UseComponent__.js.map +1 -1
  377. package/out/concepts/ValidationRule__.d.ts +16 -17
  378. package/out/concepts/ValidationRule__.js +15 -18
  379. package/out/concepts/ValidationRule__.js.map +1 -1
  380. package/out/concepts/Variable__.d.ts +3 -3
  381. package/out/concepts/Variable__.js +45 -29
  382. package/out/concepts/Variable__.js.map +1 -1
  383. package/out/concepts/ViewBlock__.d.ts +3 -4
  384. package/out/concepts/ViewBlock__.js +19 -20
  385. package/out/concepts/ViewBlock__.js.map +1 -1
  386. package/out/concepts/ViewComponent__.d.ts +31 -32
  387. package/out/concepts/ViewComponent__.js +32 -35
  388. package/out/concepts/ViewComponent__.js.map +1 -1
  389. package/out/concepts/ViewElement__.d.ts +81 -82
  390. package/out/concepts/ViewElement__.js +155 -259
  391. package/out/concepts/ViewElement__.js.map +1 -1
  392. package/out/concepts/View__.d.ts +4 -5
  393. package/out/concepts/View__.js +207 -141
  394. package/out/concepts/View__.js.map +1 -1
  395. package/out/concepts/WhileStatement__.d.ts +3 -3
  396. package/out/concepts/WhileStatement__.js +41 -20
  397. package/out/concepts/WhileStatement__.js.map +1 -1
  398. package/out/concepts/index__.d.ts +1 -0
  399. package/out/concepts/index__.js +1 -0
  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 +0 -2
  403. package/out/decorators/index.js +8 -12
  404. package/out/decorators/index.js.map +1 -1
  405. package/out/generator/genBundleFiles.d.ts +2 -2
  406. package/out/generator/genBundleFiles.js +4 -11
  407. package/out/generator/genBundleFiles.js.map +1 -1
  408. package/out/generator/genReleaseBody.d.ts +2 -4
  409. package/out/generator/genReleaseBody.js +136 -192
  410. package/out/generator/genReleaseBody.js.map +1 -1
  411. package/out/index.d.ts +1 -0
  412. package/out/index.js +1 -0
  413. package/out/index.js.map +1 -1
  414. package/out/natural/RequirementAnalyzer.d.ts +22 -0
  415. package/out/natural/RequirementAnalyzer.js +196 -0
  416. package/out/natural/RequirementAnalyzer.js.map +1 -0
  417. package/out/natural/RequirementExecutor.d.ts +51 -0
  418. package/out/natural/RequirementExecutor.js +692 -0
  419. package/out/natural/RequirementExecutor.js.map +1 -0
  420. package/out/natural/componentData.d.ts +31 -0
  421. package/out/natural/componentData.js +85 -0
  422. package/out/natural/componentData.js.map +1 -0
  423. package/out/natural/genNaturalTS.d.ts +3 -0
  424. package/out/natural/genNaturalTS.js +90 -0
  425. package/out/natural/genNaturalTS.js.map +1 -0
  426. package/out/natural/index.d.ts +4 -0
  427. package/out/natural/index.js +21 -0
  428. package/out/natural/index.js.map +1 -0
  429. package/out/natural/knowledgeMap.d.ts +4 -0
  430. package/out/natural/knowledgeMap.js +40 -0
  431. package/out/natural/knowledgeMap.js.map +1 -0
  432. package/out/natural/naslStdlibMap.d.ts +2 -0
  433. package/out/natural/naslStdlibMap.js +26 -0
  434. package/out/natural/naslStdlibMap.js.map +1 -0
  435. package/out/natural/transformTSCode.d.ts +7 -0
  436. package/out/natural/transformTSCode.js +878 -0
  437. package/out/natural/transformTSCode.js.map +1 -0
  438. package/out/sentry/index.js +2 -2
  439. package/out/sentry/index.js.map +1 -1
  440. package/out/server/createUiTs.js +1 -34
  441. package/out/server/createUiTs.js.map +1 -1
  442. package/out/server/extendBaseNode.js +17 -17
  443. package/out/server/extendBaseNode.js.map +1 -1
  444. package/out/server/formatTsUtils.js +10 -0
  445. package/out/server/formatTsUtils.js.map +1 -1
  446. package/out/server/getConnector.d.ts +0 -3
  447. package/out/server/getConnector.js +1 -38
  448. package/out/server/getConnector.js.map +1 -1
  449. package/out/server/getMemberIdentifier.js +2 -1
  450. package/out/server/getMemberIdentifier.js.map +1 -1
  451. package/out/server/index.js +0 -2
  452. package/out/server/index.js.map +1 -1
  453. package/out/server/naslServer.d.ts +6 -17
  454. package/out/server/naslServer.js +213 -321
  455. package/out/server/naslServer.js.map +1 -1
  456. package/out/server/translator.js +4 -2
  457. package/out/server/translator.js.map +1 -1
  458. package/out/service/creator/add.configs.js +0 -26
  459. package/out/service/creator/add.configs.js.map +1 -1
  460. package/out/service/creator/errHandles.js +3 -5
  461. package/out/service/creator/errHandles.js.map +1 -1
  462. package/out/service/creator/index.js +0 -13
  463. package/out/service/creator/index.js.map +1 -1
  464. package/out/service/storage/init.js +16 -0
  465. package/out/service/storage/init.js.map +1 -1
  466. package/out/service/storage/jsoner.js +1 -1
  467. package/out/service/storage/jsoner.js.map +1 -1
  468. package/out/templator/genCurdEditMultipleKeyBlock.js +3 -3
  469. package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
  470. package/out/templator/genCurdMultipleKeyBlock.js +3 -3
  471. package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
  472. package/out/templator/genTableBlock.js +1 -1
  473. package/out/templator/genTableBlock.js.map +1 -1
  474. package/out/translator/index.d.ts +48 -3
  475. package/out/translator/index.js +110 -17
  476. package/out/translator/index.js.map +1 -1
  477. package/out/translator/lsp.d.ts +45 -0
  478. package/out/translator/lsp.js +6 -0
  479. package/out/translator/lsp.js.map +1 -0
  480. package/out/translator/tsp.d.ts +12 -0
  481. package/out/translator/{types.js → tsp.js} +1 -1
  482. package/out/translator/tsp.js.map +1 -0
  483. package/out/utils/index.d.ts +0 -2
  484. package/out/utils/index.js +0 -2
  485. package/out/utils/index.js.map +1 -1
  486. package/out/utils/logger.d.ts +0 -4
  487. package/out/utils/logger.js +1 -13
  488. package/out/utils/logger.js.map +1 -1
  489. package/out/utils/time-slicing.js +1 -1
  490. package/out/utils/time-slicing.js.map +1 -1
  491. package/package.json +11 -5
  492. package/sandbox/stdlib/nasl.oql.ts +0 -2
  493. package/sandbox/stdlib/nasl.ui.definition.ts +1415 -2218
  494. package/sandbox-natural/stdlib/nasl.core.ts +36 -0
  495. package/sandbox-natural/stdlib/nasl.oql.ts +8 -0
  496. package/sandbox-natural/stdlib/nasl.ui.ts +63 -0
  497. package/sandbox-natural/stdlib/nasl.util.ts +119 -0
  498. package/sandbox-natural/tsconfig.json +12 -0
  499. package/src/bak/translator.js +5 -8
  500. package/src/breakpoint/generator/AfterStartNode.ts +1 -2
  501. package/src/breakpoint/generator/BeforeEndNode.ts +1 -2
  502. package/src/breakpoint/generator/BreakpointNode.ts +9 -36
  503. package/src/breakpoint/shared/constants.ts +0 -7
  504. package/src/breakpoint/shared/utils.ts +3 -36
  505. package/src/common/BaseNode.ts +81 -140
  506. package/src/common/Command.ts +1 -6
  507. package/src/common/EventEmitter.ts +4 -2
  508. package/src/common/classMap.ts +3 -0
  509. package/src/common/index.ts +1 -0
  510. package/src/concepts/Abort__.ts +22 -20
  511. package/src/concepts/Anchor__.ts +38 -23
  512. package/src/concepts/AnonymousFunction__.ts +63 -39
  513. package/src/concepts/App__.ts +314 -364
  514. package/src/concepts/Argument__.ts +44 -27
  515. package/src/concepts/Assignee__.ts +39 -41
  516. package/src/concepts/AssignmentLine__.ts +23 -20
  517. package/src/concepts/Assignment__.ts +58 -54
  518. package/src/concepts/Attribute__.ts +34 -40
  519. package/src/concepts/AuthInterface__.ts +24 -22
  520. package/src/concepts/AuthLogicForCallInterface__.ts +41 -71
  521. package/src/concepts/AuthLogic__.ts +30 -21
  522. package/src/concepts/BackendVariable__.ts +54 -55
  523. package/src/concepts/Backend__.ts +59 -58
  524. package/src/concepts/BatchAssignment__.ts +78 -88
  525. package/src/concepts/BinaryExpression__.ts +66 -72
  526. package/src/concepts/BindAttribute__.ts +155 -135
  527. package/src/concepts/BindDirective__.ts +41 -45
  528. package/src/concepts/BindEvent__.ts +89 -80
  529. package/src/concepts/BindStyle__.ts +36 -37
  530. package/src/concepts/BooleanLiteral__.ts +28 -22
  531. package/src/concepts/CallAuthInterface__.ts +32 -29
  532. package/src/concepts/CallConnector__.ts +41 -50
  533. package/src/concepts/CallFunction__.ts +77 -45
  534. package/src/concepts/CallInterface__.ts +68 -36
  535. package/src/concepts/CallLogic__.ts +213 -166
  536. package/src/concepts/CallQueryComponent__.ts +88 -156
  537. package/src/concepts/Comment__.ts +29 -22
  538. package/src/concepts/CompletionProperty__.ts +30 -34
  539. package/src/concepts/ConfigGroup__.ts +29 -28
  540. package/src/concepts/ConfigPropertyValue__.ts +23 -22
  541. package/src/concepts/ConfigProperty__.ts +36 -42
  542. package/src/concepts/Configuration__.ts +26 -23
  543. package/src/concepts/Connection__.ts +21 -26
  544. package/src/concepts/ConnectorTrigger__.ts +34 -30
  545. package/src/concepts/Connector__.ts +87 -342
  546. package/src/concepts/Constant__.ts +36 -30
  547. package/src/concepts/DataElement__.ts +131 -0
  548. package/src/concepts/DataSource__.ts +33 -37
  549. package/src/concepts/DatabaseTypeAnnotation__.ts +24 -24
  550. package/src/concepts/Destination__.ts +104 -51
  551. package/src/concepts/End__.ts +25 -23
  552. package/src/concepts/EntityIndex__.ts +33 -36
  553. package/src/concepts/EntityProperty__.ts +84 -64
  554. package/src/concepts/Entity__.ts +67 -41
  555. package/src/concepts/EnumItem__.ts +32 -24
  556. package/src/concepts/Enum__.ts +42 -28
  557. package/src/concepts/Event__.ts +33 -33
  558. package/src/concepts/ExternalDestination__.ts +29 -29
  559. package/src/concepts/ForEachStatement__.ts +73 -34
  560. package/src/concepts/FrontendLibrary__.ts +38 -37
  561. package/src/concepts/FrontendVariable__.ts +20 -18
  562. package/src/concepts/Frontend__.ts +62 -66
  563. package/src/concepts/Function__.ts +80 -54
  564. package/src/concepts/Identifier__.ts +34 -37
  565. package/src/concepts/IfStatement__.ts +77 -40
  566. package/src/concepts/Integration__.ts +24 -244
  567. package/src/concepts/InterfaceParam__.ts +33 -69
  568. package/src/concepts/Interface__.ts +46 -104
  569. package/src/concepts/JSBlock__.ts +28 -22
  570. package/src/concepts/JavaLogic__.ts +26 -27
  571. package/src/concepts/LogicItem__.ts +47 -29
  572. package/src/concepts/Logic__.ts +226 -168
  573. package/src/concepts/MatchCase__.ts +128 -38
  574. package/src/concepts/Match__.ts +73 -28
  575. package/src/concepts/MemberExpression__.ts +139 -174
  576. package/src/concepts/MicroApp__.ts +27 -32
  577. package/src/concepts/Module__.ts +107 -527
  578. package/src/concepts/MsgTriggerEvent__.ts +33 -25
  579. package/src/concepts/MsgTriggerLauncher__.ts +30 -27
  580. package/src/concepts/Namespace__.ts +99 -109
  581. package/src/concepts/NewComposite__.ts +161 -130
  582. package/src/concepts/NewList__.ts +51 -45
  583. package/src/concepts/NewMap__.ts +48 -51
  584. package/src/concepts/New__.ts +22 -20
  585. package/src/concepts/NullLiteral__.ts +22 -20
  586. package/src/concepts/NumericLiteral__.ts +31 -26
  587. package/src/concepts/OqlQueryComponent__.ts +34 -33
  588. package/src/concepts/OverriddenLogic__.ts +94 -128
  589. package/src/concepts/Param__.ts +90 -51
  590. package/src/concepts/Point__.ts +22 -22
  591. package/src/concepts/ProcessComponent__.ts +37 -36
  592. package/src/concepts/ProcessElement__.ts +86 -114
  593. package/src/concepts/ProcessOutcome__.ts +23 -22
  594. package/src/concepts/ProcessOutcomes__.ts +22 -20
  595. package/src/concepts/Process__.ts +63 -69
  596. package/src/concepts/QueryAggregateExpression__.ts +27 -28
  597. package/src/concepts/QueryFieldExpression__.ts +25 -26
  598. package/src/concepts/QueryFromExpression__.ts +28 -29
  599. package/src/concepts/QueryGroupByExpression__.ts +23 -22
  600. package/src/concepts/QueryJoinExpression__.ts +41 -62
  601. package/src/concepts/QueryLimitExpression__.ts +27 -27
  602. package/src/concepts/QueryOrderByExpression__.ts +27 -27
  603. package/src/concepts/QuerySelectExpression__.ts +54 -105
  604. package/src/concepts/Rect__.ts +24 -26
  605. package/src/concepts/Return__.ts +67 -42
  606. package/src/concepts/Role__.ts +25 -25
  607. package/src/concepts/SelectMembers__.ts +32 -30
  608. package/src/concepts/Slot__.ts +30 -32
  609. package/src/concepts/SqlQueryComponent__.ts +37 -41
  610. package/src/concepts/Start__.ts +22 -20
  611. package/src/concepts/StringInterpolation__.ts +45 -25
  612. package/src/concepts/StringLiteral__.ts +26 -19
  613. package/src/concepts/StructureProperty__.ts +47 -38
  614. package/src/concepts/Structure__.ts +58 -55
  615. package/src/concepts/SwitchCase__.ts +74 -40
  616. package/src/concepts/SwitchStatement__.ts +44 -29
  617. package/src/concepts/Theme__.ts +21 -18
  618. package/src/concepts/Transactional__.ts +31 -24
  619. package/src/concepts/TriggerEvent__.ts +29 -28
  620. package/src/concepts/TriggerLauncher__.ts +82 -32
  621. package/src/concepts/TypeAnnotation__.ts +98 -92
  622. package/src/concepts/TypeParam__.ts +28 -21
  623. package/src/concepts/UnaryExpression__.ts +45 -26
  624. package/src/concepts/Unparsed__.ts +25 -20
  625. package/src/concepts/UseComponent__.ts +22 -22
  626. package/src/concepts/ValidationRule__.ts +555 -539
  627. package/src/concepts/Variable__.ts +67 -43
  628. package/src/concepts/ViewBlock__.ts +25 -26
  629. package/src/concepts/ViewComponent__.ts +91 -87
  630. package/src/concepts/ViewElement__.ts +2437 -2696
  631. package/src/concepts/View__.ts +407 -345
  632. package/src/concepts/WhileStatement__.ts +59 -36
  633. package/src/concepts/index__.ts +1 -0
  634. package/src/concepts/types__.ts +124 -124
  635. package/src/decorators/index.ts +7 -11
  636. package/src/generator/genBundleFiles.ts +4 -14
  637. package/src/generator/genReleaseBody.ts +182 -198
  638. package/src/index.ts +1 -0
  639. package/src/natural/RequirementAnalyzer.ts +208 -0
  640. package/src/natural/RequirementExecutor.ts +685 -0
  641. package/src/natural/componentData.ts +81 -0
  642. package/src/natural/genNaturalTS.ts +90 -0
  643. package/src/natural/index.ts +4 -0
  644. package/src/natural/knowledgeMap.ts +39 -0
  645. package/src/natural/naslStdlibMap.ts +24 -0
  646. package/src/natural/transformTSCode.ts +834 -0
  647. package/src/sentry/index.ts +2 -2
  648. package/src/server/createUiTs.ts +1 -30
  649. package/src/server/extendBaseNode.ts +18 -18
  650. package/src/server/formatTsUtils.ts +11 -0
  651. package/src/server/getConnector.ts +27 -63
  652. package/src/server/getMemberIdentifier.ts +3 -2
  653. package/src/server/index.ts +1 -4
  654. package/src/server/naslServer.ts +212 -302
  655. package/src/server/translator.ts +3 -1
  656. package/src/service/creator/add.configs.js +1 -26
  657. package/src/service/creator/errHandles.js +4 -5
  658. package/src/service/creator/index.js +0 -12
  659. package/src/service/storage/init.ts +17 -0
  660. package/src/service/storage/jsoner.ts +1 -1
  661. package/src/templator/genCurdEditMultipleKeyBlock.ts +3 -3
  662. package/src/templator/genCurdMultipleKeyBlock.ts +3 -3
  663. package/src/templator/genTableBlock.ts +1 -1
  664. package/src/test/examples/app1.json +1406 -0
  665. package/src/test/fixtures/env.ts +19 -0
  666. package/src/test/integration/connect-create-file.ts +14 -0
  667. package/src/test/integration/connect-file.ts +24 -0
  668. package/src/test/integration/node-nasl-server.ts +14 -0
  669. package/src/test/units/baseTypes/Assignment.spec.ts +20 -0
  670. package/src/test/units/baseTypes/CallLogic.spec.ts +22 -0
  671. package/src/test/units/baseTypes/StringLiteral.spec.ts +60 -0
  672. package/src/test/units/baseTypes/new.spec.ts +13 -0
  673. package/src/test/units/common/Vertex.spec.ts +23 -0
  674. package/src/test/units/data/Entity.spec.ts +10 -0
  675. package/src/test/units/login.spec.ts +10 -0
  676. package/src/test/units/page/Block.spec.ts +15 -0
  677. package/src/test/units/page/Element.spec.ts +45 -0
  678. package/src/test/units/page/example.dashboard.html +46 -0
  679. package/src/test/units/page/example.view1.html +63 -0
  680. package/src/test/units/temp/temp.spec.ts +66 -0
  681. package/src/translator/index.ts +137 -3
  682. package/src/translator/lsp.ts +50 -0
  683. package/src/translator/tsp.ts +14 -0
  684. package/src/utils/index.ts +0 -2
  685. package/src/utils/logger.ts +0 -13
  686. package/src/utils/time-slicing.ts +1 -1
  687. package/test/concepts/call-interface/toEmbeddedTS.spec.ts +6 -6
  688. package/test/concepts/call-interface/toJS.spec.ts +6 -6
  689. package/test/concepts/call-logic/__snapshots__/toEmbeddedTS.spec.ts.snap +0 -45
  690. package/test/concepts/call-logic/__snapshots__/toJS.spec.ts.snap +0 -102
  691. package/test/concepts/call-logic/toEmbeddedTS.spec.ts +6 -6
  692. package/test/concepts/call-logic/toJS.spec.ts +6 -6
  693. package/test/concepts/match/toEmbeddedTS.spec.ts +6 -6
  694. package/test/concepts/match/toJS.spec.ts +6 -6
  695. package/test/concepts/utils.ts +43 -46
  696. package/test/concepts/validation-rule/toEmbeddedTS.spec.ts +6 -6
  697. package/test/concepts/validation-rule/toJS.spec.ts +6 -6
  698. package/test/concepts/validation-rule/validation-rule.spec.ts +8 -8
  699. package/test/concepts/view-element/__snapshots__/toEmbeddedTS.spec.ts.snap +0 -592
  700. package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +0 -308
  701. package/test/concepts/view-element/fixtures/default-not-found.json +313 -313
  702. package/test/concepts/view-element/toEmbeddedTS.spec.ts +6 -6
  703. package/test/concepts/view-element/toVue.spec.ts +6 -6
  704. package/ts-worker/package-lock.json +101 -6663
  705. package/ts-worker/webpack.config.js +1 -1
  706. package/out/translator/constant.d.ts +0 -6
  707. package/out/translator/constant.js +0 -10
  708. package/out/translator/constant.js.map +0 -1
  709. package/out/translator/types.d.ts +0 -32
  710. package/out/translator/types.js.map +0 -1
  711. package/out/translator/utils.d.ts +0 -17
  712. package/out/translator/utils.js +0 -102
  713. package/out/translator/utils.js.map +0 -1
  714. package/out/utils/cookie.d.ts +0 -9
  715. package/out/utils/cookie.js +0 -62
  716. package/out/utils/cookie.js.map +0 -1
  717. package/out/utils/types.d.ts +0 -1
  718. package/out/utils/types.js +0 -3
  719. package/out/utils/types.js.map +0 -1
  720. package/out/utils/window.d.ts +0 -7
  721. package/out/utils/window.js +0 -14
  722. package/out/utils/window.js.map +0 -1
  723. package/src/translator/constant.ts +0 -7
  724. package/src/translator/types.ts +0 -40
  725. package/src/translator/utils.ts +0 -104
  726. package/src/utils/cookie.ts +0 -60
  727. package/src/utils/types.ts +0 -1
  728. package/src/utils/window.ts +0 -9
  729. package/test/concepts/boolean-literal/__snapshots__/toEmbeddedTS.spec.ts.snap +0 -11
  730. package/test/concepts/boolean-literal/__snapshots__/toJS.spec.ts.snap +0 -11
  731. package/test/concepts/boolean-literal/__snapshots__/toVue.spec.ts.snap +0 -11
  732. package/test/concepts/boolean-literal/constant.ts +0 -5
  733. package/test/concepts/boolean-literal/fixtures/false.json +0 -4
  734. package/test/concepts/boolean-literal/fixtures/true.json +0 -4
  735. package/test/concepts/boolean-literal/toEmbeddedTS.spec.ts +0 -14
  736. package/test/concepts/boolean-literal/toJS.spec.ts +0 -14
  737. package/test/concepts/boolean-literal/toVue.spec.ts +0 -14
  738. package/test/concepts/call-logic/__snapshots__/getQuickInfoOffset.spec.ts.snap +0 -106
  739. package/test/concepts/call-logic/fixtures/nested-call-logic.json +0 -860
  740. package/test/concepts/call-logic/getQuickInfoOffset.spec.ts +0 -23
  741. package/test/concepts/identifier/__snapshots__/toEmbeddedTS.spec.ts.snap +0 -16
  742. package/test/concepts/identifier/__snapshots__/toJS.spec.ts.snap +0 -16
  743. package/test/concepts/identifier/__snapshots__/toVue.spec.ts.snap +0 -16
  744. package/test/concepts/identifier/constant.ts +0 -5
  745. package/test/concepts/identifier/fixtures/data-source.json +0 -5
  746. package/test/concepts/identifier/fixtures/no-namespace.json +0 -4
  747. package/test/concepts/identifier/fixtures/view-variable.json +0 -201
  748. package/test/concepts/identifier/toEmbeddedTS.spec.ts +0 -14
  749. package/test/concepts/identifier/toJS.spec.ts +0 -14
  750. package/test/concepts/identifier/toVue.spec.ts +0 -14
  751. package/test/concepts/member-expression/__snapshots__/toEmbeddedTS.spec.ts.snap +0 -21
  752. package/test/concepts/member-expression/__snapshots__/toJS.spec.ts.snap +0 -21
  753. package/test/concepts/member-expression/__snapshots__/toVue.spec.ts.snap +0 -21
  754. package/test/concepts/member-expression/constant.ts +0 -5
  755. package/test/concepts/member-expression/fixtures/app.enums.UserStatusEnum.json +0 -13
  756. package/test/concepts/member-expression/fixtures/elements.table-view.data.json +0 -13
  757. package/test/concepts/member-expression/fixtures/entry.created-by.json +0 -18
  758. package/test/concepts/member-expression/fixtures/nasl.auth.userInfo.json +0 -19
  759. package/test/concepts/member-expression/toEmbeddedTS.spec.ts +0 -14
  760. package/test/concepts/member-expression/toJS.spec.ts +0 -14
  761. package/test/concepts/member-expression/toVue.spec.ts +0 -14
  762. package/test/concepts/null-literal/__snapshots__/toEmbeddedTS.spec.ts.snap +0 -6
  763. package/test/concepts/null-literal/__snapshots__/toJS.spec.ts.snap +0 -6
  764. package/test/concepts/null-literal/__snapshots__/toVue.spec.ts.snap +0 -6
  765. package/test/concepts/null-literal/constant.ts +0 -5
  766. package/test/concepts/null-literal/fixtures/null.json +0 -3
  767. package/test/concepts/null-literal/toEmbeddedTS.spec.ts +0 -14
  768. package/test/concepts/null-literal/toJS.spec.ts +0 -14
  769. package/test/concepts/null-literal/toVue.spec.ts +0 -14
  770. package/test/concepts/numeric-literal/__snapshots__/toEmbeddedTS.spec.ts.snap +0 -6
  771. package/test/concepts/numeric-literal/__snapshots__/toJS.spec.ts.snap +0 -6
  772. package/test/concepts/numeric-literal/__snapshots__/toVue.spec.ts.snap +0 -6
  773. package/test/concepts/numeric-literal/constant.ts +0 -5
  774. package/test/concepts/numeric-literal/fixtures/number.json +0 -10
  775. package/test/concepts/numeric-literal/toEmbeddedTS.spec.ts +0 -14
  776. package/test/concepts/numeric-literal/toJS.spec.ts +0 -14
  777. package/test/concepts/numeric-literal/toVue.spec.ts +0 -14
  778. package/test/concepts/string-literal/__snapshots__/toEmbeddedTS.spec.ts.snap +0 -16
  779. package/test/concepts/string-literal/__snapshots__/toJS.spec.ts.snap +0 -16
  780. package/test/concepts/string-literal/__snapshots__/toVue.spec.ts.snap +0 -16
  781. package/test/concepts/string-literal/constant.ts +0 -5
  782. package/test/concepts/string-literal/fixtures/escape.json +0 -4
  783. package/test/concepts/string-literal/fixtures/space.json +0 -4
  784. package/test/concepts/string-literal/fixtures/string.json +0 -4
  785. package/test/concepts/string-literal/toEmbeddedTS.spec.ts +0 -14
  786. package/test/concepts/string-literal/toJS.spec.ts +0 -14
  787. package/test/concepts/string-literal/toVue.spec.ts +0 -14
  788. package/test/concepts/view-element/fixtures/default-login.json +0 -333
  789. package/test/concepts/view-element/fixtures/with-role-auth.json +0 -148
  790. package/test/concepts/view-element/fixtures/with-table.json +0 -3473
@@ -0,0 +1,685 @@
1
+ import axios from '../service/storage';
2
+ import knowledgeMap, { docsMap } from './knowledgeMap';
3
+ import { componentData } from './componentData';
4
+
5
+ interface GPTExecutorReply {
6
+ thoughts: {
7
+ text: string,
8
+ reasoning: string,
9
+ currentTask: string,
10
+ currentTaskIndex: number,
11
+ totalTaskCount: number,
12
+ criticism: string
13
+ },
14
+ command: {
15
+ name: string,
16
+ args: { [name: string]: any },
17
+ }
18
+ }
19
+
20
+ interface Memory {
21
+ requirement: string,
22
+ reply: GPTExecutorReply,
23
+ result: string
24
+ }
25
+
26
+ function tryFixJSON(str: string) {
27
+ let lastIndex = 0;
28
+ let inQuote = false;
29
+ let output: string = '';
30
+
31
+ str = str.replace(/\\\\"/g, '\\\\\\"');
32
+
33
+ function push(index: number) {
34
+ let part = str.slice(lastIndex, index);
35
+ // console.log('part---', part);
36
+ if (inQuote)
37
+ part = part.replace(/\n/g, '\\n');
38
+
39
+ lastIndex = index + 1;
40
+ output += part + (index === str.length ? '' : '"');
41
+ inQuote = !inQuote;
42
+ }
43
+
44
+ for (let i = 0; i < str.length; i++) {
45
+ if (str[i] === '"')
46
+ push(i);
47
+ }
48
+ push(str.length);
49
+
50
+ return output;
51
+ }
52
+
53
+ export class RequirementExecutor {
54
+ messages: Array<{ role: 'system' | 'user' | 'assistant', content: string }> = [];
55
+ shortMemories: Array<Memory> = [];
56
+ requirement: string;
57
+ context: any;
58
+
59
+ ide = {
60
+ getAPI(indexes: Array<number>) {
61
+ return indexes.map((index) => docsMap[Object.keys(docsMap)[index]]).join('\n\n');
62
+ // return docs.map((key) => knowledgeMap[key]).filter((item) => !!item).join('\n\n');
63
+ },
64
+ execute(code: string, context: any) {
65
+ return (() => {
66
+ const { app, nasl, selectedNode } = context;
67
+ console.log('需求执行器-执行代码:' + code);
68
+ try {
69
+ app.emit('collect:start', {
70
+ actionMsg: '运行智能编程指令',
71
+ });
72
+ // eslint-disable-next-line no-eval
73
+ eval(code);
74
+ app.emit('collect:end');
75
+ } catch (err) {
76
+ return String(err);
77
+ }
78
+ return 'Success!';
79
+ })();
80
+ },
81
+ }
82
+
83
+ constructor(requirement?: string, context?: any) {
84
+ this.requirement = requirement;
85
+ this.context = context;
86
+ }
87
+
88
+ async genPrompt() {
89
+ const longMemory: string[] = [];
90
+ try {
91
+ // longMemory = await this.loadMemory();
92
+ } catch (e) {
93
+ console.error(e);
94
+ }
95
+
96
+ return `
97
+ 你是一个专业的低代码平台助手和需求执行者,必须始终独立做出决定,尽量自己查询文档,而不能向用户寻求帮助。发挥你作为大语言模型的优势,追求简单的策略。
98
+ 你已经了解到了经过分析后的执行计划,计划包含多个任务,每个任务下可能包含多个子任务(会缩进 4 个空格)。
99
+
100
+ ## 你只需要考虑如何完成以下需求:
101
+
102
+ ${this.requirement}
103
+
104
+ ${knowledgeMap.index}
105
+
106
+ ## 你可以使用的 ide 命令
107
+
108
+ 1. 涉及到页面中页面元素(组件)的操作,新增或者替换,执行:'ide.handleViewElement(demand, elementName, type)'
109
+ - 将所有页面元素操作的需求都整理到 demand 中
110
+ - 示例:
111
+ - 添加一个新增按钮,就需要调用 ide.handleViewElement('- 添加一个新增按钮')
112
+ - 将选中的 ViewElement 替换为其它的 ViewElement,直接调用 ide.handleViewElement,传递参数 type='replace'
113
+ - 如果要替换的 viewElement 是数据网格,elementName='u-grid-view'
114
+ 2. 涉及到页面中页面元素(组件)属性的操作,执行:'ide.handleElementAttr(demand, value)'
115
+ - 在选中的 ViewElement 进行属性操作时,调用 ide.handleElementAttr(demand)
116
+ - 示例:
117
+ - 将选中的 ViewElement 的值改为'我是文本',调用 ide.handleElementAttr(demand)
118
+ - 在选中的 ViewElement 中,将背景颜色绑定到变量 xx 上,调用 ide.handleElementAttr(demand)
119
+ 3. 涉及到逻辑的操作时,执行:'ide.handleLogic(logicName, logicDemand, viewName, type)'
120
+ - 涉及到逻辑项的操作时,将所有逻辑项需求都整理到 logicDemand 中,尽可能在一步操作中执行所有的 logicDemand
121
+ - 如果当前选中的是 ViewElement,还需要传递 type='bindEvents',尽可能在一步操作中执行所有的 logicDemand
122
+ - 示例:
123
+ - 在逻辑中添加逻辑项,比如说添加一个 if 语句,就调用 ide.handleLogic 命令执行,在调用 ide.handleLogic 时
124
+ - 为选中的 ViewElement 添加点击事件逻辑并实现逻辑功能,调用 ide.handleLogic 命令执行,并传递 type='bindEvents'
125
+ 4. 查询 API 文档:'ide.getAPI(indexes: Array<number>)',如'ide.getAPI([0, 1, 2])'
126
+ - 当前面的命令无法匹配用户需求时,你可以查询 API 文档,尽可能一次性多的获取相关文档
127
+ - 如果要添加实体属性,需要考虑类型,请加入查询:类型标注相关文档
128
+ - 如果要了解默认数据源在哪里,请加入查询:应用和默认数据库相关文档
129
+ - 当需求中需要考虑类型时,请加入查询:类型标注文档。
130
+ 5. 执行 IDE 的操作,其中代码为 JS 脚本:'ide.execute(code: string)'
131
+ 6. 当完成计划时:command name 及 args 为 'ide.complete(reason: string)'
132
+ 1. 优先执行以上命令,对比原始需求和解决当前需求的短期记忆,如果已经完成原始需求的执行,调用 ide.complete 命令
133
+
134
+ ## 目前 API 文档目录
135
+
136
+ ${Object.keys(docsMap).map((key, index) => `${index}. ${key}`).join('\n')}
137
+
138
+ ### 限制
139
+
140
+ - 由于 8000 左右 token 数的限制,一次处理多个任务、查询多个文档容易溢出,建议一次只处理一个任务。
141
+ - 在记忆中已经查询过的文档不要再去查询了。
142
+ - 你只能使用已列举出的 ide 中的命令
143
+ - ide 下的命令需串行执行,不能嵌套
144
+ - 将 ide.execute 和 ide.handleLogic 分别执行,不要在 ide.execute 中执行 ide.handleLogic 或者 handleLogic 方法以及其他 ide 的命令!
145
+ - 替换组件和绑定变量的操作需要分开执行,依次调用 ide.handleViewElement 和 ide.handleElementAttr
146
+ - 涉及到逻辑的操作,整理逻辑相关的所有需求,调用 ide.handleLogic,在一次命令调用中执行完所有的需求
147
+ - 例如: 为已存在的 ViewElement 添加点击事件并实现事件逻辑,直接执行 ide.handleLogic、传入参数 type='bindEvents' 即可
148
+ - 所有命令传参的值必须匹配正则: /^[a-zA-Z0-9_]+$/,如 viewName、logicName 等
149
+
150
+ ## 你解决当前需求的短期记忆
151
+
152
+ ${this.shortMemories.slice(-9).map((memory, index) => `
153
+
154
+ ### 你的思考和命令${index}
155
+
156
+ ${JSON.stringify(memory.reply, null, 4)}
157
+
158
+ ### 结果${index}
159
+
160
+ ${memory.result}
161
+ `).join('\n') || '暂无'}
162
+
163
+ ## 你曾经解决需求的长期记忆
164
+
165
+ ${(longMemory.join('\n')) || '暂无'}
166
+
167
+ ## 资源
168
+
169
+ - 短期和长期的记忆管理
170
+ - GPT-4
171
+
172
+ ## 要求
173
+
174
+ 1. 在后续的所有回答中,你必须以 JSON 格式回复,内容用中文作答,格式如下:
175
+
176
+ {
177
+ "thoughts": {
178
+ "text": "thought",
179
+ "reasoning": "reasoning",
180
+ "criticism": "我生成的这段代码,可能在 API 中没有定义",
181
+ "currentTask": "- 任务 2\\n - 子任务 1\\n - 子任务 2\\n - 子任务 3"
182
+ },
183
+ "command": {
184
+ "name": "command name",
185
+ "args": {
186
+ "code": "value",
187
+ "logicDemand": "- 子任务 1\\n - 子任务 2\\n - 子任务 3"
188
+ }
189
+ }
190
+ }
191
+
192
+ 1. 按照上述格式,内容用中文作答,把你的思考放在"thoughts.text"字段中
193
+ 2. 确保回复可以被 JavaScript 的 JSON.parse 解析!
194
+ `;
195
+ }
196
+
197
+ async chatWithGPT() {
198
+ const res = await axios.post('/api/gpt/chatGPT', {
199
+ messages: this.messages,
200
+ });
201
+ const result = res.data.result;
202
+ if (result) {
203
+ const answer = result.choices[0]?.message.content.trim() + '\n';
204
+ // this.messages.push({
205
+ // role: 'assistant',
206
+ // content: answer,
207
+ // });
208
+ console.log(result.usage);
209
+ return answer;
210
+ } else {
211
+ console.error(res.data);
212
+ throw new Error(res.data);
213
+ }
214
+ }
215
+
216
+ async saveMemory(memory: Memory) {
217
+ const res = await axios.post('/api/memory/saveMemory', `
218
+ ### 你的思考和命令
219
+ ${JSON.stringify(memory.reply, null, 4)}
220
+
221
+ ### 结果
222
+ ${memory.result}
223
+ `);
224
+ const data = res.data;
225
+ if (data.code === 200) {
226
+ //
227
+ } else {
228
+ console.error(res.data);
229
+ throw new Error(res.data);
230
+ }
231
+ }
232
+
233
+ async loadMemory() {
234
+ const res = await axios.post('/api/memory/loadMemory', {
235
+ text: `### 你的需求
236
+ ${this.requirement}
237
+ ` + this.shortMemories.slice(-9).map((memory, index) => `
238
+ ### 你的思考和命令${index}
239
+ ${JSON.stringify(memory.reply, null, 4)}
240
+
241
+ ### 结果${index}
242
+ ${memory.result}
243
+ `).join('\n'),
244
+ k: 5,
245
+ });
246
+ const data = res.data;
247
+ if (data.code === 200) {
248
+ const result = data.result as string[];
249
+ return result;
250
+ } else {
251
+ console.error(res.data);
252
+ throw new Error(res.data);
253
+ }
254
+ }
255
+
256
+ async chatWithGPTAndParseJSON() {
257
+ const answer = await this.chatWithGPT();
258
+ let json: GPTExecutorReply;
259
+ try {
260
+ json = JSON.parse(answer);
261
+ console.log('需求执行器-回复:' + JSON.stringify(json, null, 4));
262
+ return json;
263
+ } catch (e) {
264
+ const fixed = tryFixJSON(answer);
265
+ try {
266
+ json = JSON.parse(fixed);
267
+ console.log('需求执行器-回复:' + JSON.stringify(json, null, 4));
268
+ return json;
269
+ } catch (ee) {
270
+ console.log(fixed);
271
+ throw e;
272
+ }
273
+ }
274
+ }
275
+
276
+ async next() {
277
+ this.messages = [{
278
+ role: 'system',
279
+ content: await this.genPrompt(),
280
+ }];
281
+
282
+ if (!this.shortMemories.length)
283
+ console.log(this.messages[0].content);
284
+
285
+ return this.chatWithGPTAndParseJSON();
286
+ }
287
+ async execute(context: any, cb?: (reply: GPTExecutorReply) => void) {
288
+ const reply = await this.next();
289
+ cb && cb(reply);
290
+ if (this.shortMemories.length > 10) {
291
+ throw new Error('执行超过10次,可能存在问题!');
292
+ } else if (reply.command.name === 'ide.complete') {
293
+ //
294
+ } else {
295
+ let result: string;
296
+ if (reply.command.name === 'ide.getAPI')
297
+ result = this.ide.getAPI(reply.command.args.indexes);
298
+ else if (reply.command.name === 'ide.execute')
299
+ result = this.ide.execute(reply.command.args.code, context);
300
+ else if (reply.command.name === 'ide.handleLogic')
301
+ result = await this.handleLogic({ ...reply.command.args, context }) as any;
302
+ else if (reply.command.name === 'ide.handleViewElement')
303
+ result = await this.handleViewElement({ ...reply.command.args, context }) as any;
304
+ else if (reply.command.name === 'ide.handleElementAttr')
305
+ result = await this.handleElementAttr({ ...reply.command.args, context }) as any;
306
+
307
+ console.log('需求执行器-执行结果:' + result);
308
+ const memory = { requirement: this.requirement, reply, result };
309
+ this.shortMemories.push(memory);
310
+ // this.shortMemories = this.shortMemories.slice(-2);
311
+ // const lastMemory = this.shortMemories[this.shortMemories.length - 1];
312
+
313
+ if (reply.command.name === 'ide.execute') {
314
+ try {
315
+ await this.saveMemory(memory);
316
+ } catch (e) {}
317
+ // if (result === 'Success!' && reply.thoughts.currentTaskIndex === reply.thoughts.totalTaskCount) {
318
+ // return;
319
+ // }
320
+ }
321
+
322
+ // 重复执行
323
+ await this.execute(context, cb);
324
+ }
325
+ }
326
+
327
+ async handleLogic(logicParams: any) {
328
+ const { logicDemand, context, type } = logicParams;
329
+ let { app, nasl, selectedNode } = context;
330
+ const Window = window as any;
331
+ selectedNode = Window.globalData.$n0;
332
+ const requirements = [
333
+ '如果要查询,则使用 nasl.oql.query,尽量用一句 SQL 包含更多信息',
334
+ '优先使用 nasl.util 中的内置函数',
335
+ '禁止使用 Array 的方法,其中 map 方法请使用 ListTransform',
336
+ '禁止使用 Number 的 toFixed 方法,保留小数使用 FormatNumber',
337
+ '禁止使用 String 的 方法,字符串截取用 SubString 函数',
338
+ '当前日期请使用 CurrDateTime()',
339
+ // '声明过的变量已经初始化',
340
+ '分支情况请使用 switch',
341
+ '数字循环请使用 while',
342
+ '禁止使用 import',
343
+ '禁止打印结果日志',
344
+ '直接输出代码结果,其他描述请以注释的形式出现',
345
+ '返回的实现须为函数并且必须使用符合语法的语句',
346
+ ];
347
+ let logicItem;
348
+ console.log('lemon ~ selectedNode:', selectedNode);
349
+ if (selectedNode.concept === 'Logic') {
350
+ logicItem = selectedNode;
351
+ } else if (selectedNode.concept === 'ViewElement' && type === 'bindEvents') {
352
+ logicItem = selectedNode.addBindEvent('click').addLogic('click');
353
+ }
354
+ const getRequirement = () => `/*
355
+ 有以下要求:
356
+ ${requirements.map((line) => '- ' + line).join('\n')}
357
+
358
+ 请在当前函数的“当前位置”中只要实现:
359
+ ${logicDemand}
360
+
361
+ ## 返回示例1
362
+ // 筛选商品
363
+ function load1(params: nasl.ui.DataSourceParams) {
364
+ result.list = nasl.util.ListFilter(result.list, (item) => item.product.supplierId === id);
365
+ // 不要 return
366
+ }
367
+ ## 返回示例2
368
+ // 校验表单输入
369
+ function formValidate() {
370
+ const validateResult: ValidateEvent = $refs.form1.validate();
371
+ if (validateResult.valid) {
372
+ const newProduct = product;
373
+ newProduct.suppilerId = id;
374
+ ProductEntity.create(newProduct);
375
+ nasl.ui.showMessage("创建成功");
376
+ $refs.modal1.close();
377
+ $refs.gridView.reload();
378
+ } else{
379
+ nasl.ui.showMessage("创建失败");
380
+ }
381
+ }
382
+ */`;
383
+ console.log('lemon', logicItem);
384
+ let prompt = nasl.genNaturalTS(app, logicItem);
385
+ prompt += getRequirement();
386
+ this.messages = [{
387
+ role: 'user',
388
+ content: prompt,
389
+ }];
390
+ const res = await axios.post('/api/gpt/chatGPT', {
391
+ messages: this.messages,
392
+ });
393
+ const result = res.data.result;
394
+ if (result) {
395
+ const answer = result.choices[0]?.message.content.trim() + '\n';
396
+ try {
397
+ await nasl.transformTSCodeEx(answer, logicItem, context);
398
+ return 'Success!';
399
+ } catch (e) {
400
+ console.log('TS 转换 NASL 失败!请检查浏览器日志。');
401
+ return String(e);
402
+ }
403
+ } else {
404
+ return String(res.data);
405
+ }
406
+ }
407
+ // 处理页面上对于元素的操作
408
+ async handleViewElement(elementParams: any) {
409
+ const { demand, context, viewName, elementName = 'uLinearLayout1', type } = elementParams;
410
+ let { app, nasl, selectedNode } = context;
411
+ if (type === 'bindEvents') {
412
+ const result = await this.handleLogic({ context, type, logicDemand: demand });
413
+ return result;
414
+ }
415
+ if (type === 'replace') {
416
+ selectedNode.delete();
417
+ selectedNode = selectedNode.parentNode;
418
+ }
419
+ if (elementParams.elementName === 'u-grid-view') {
420
+ selectedNode.addGridViewByEntity('Product');
421
+ return 'Success';
422
+ }
423
+ let templateList;
424
+ try {
425
+ templateList = await this.getViewElementTemplate(demand, context);
426
+ if (templateList.length <= 0)
427
+ throw new Error('请求失败');
428
+ console.log('lemon ~ templateList:', templateList);
429
+ try {
430
+ const codeList = await this.handleViewElementTemplate(demand, templateList, context);
431
+ console.log('lemon ~ codeList:', codeList);
432
+ let nodePath:string;
433
+ if (viewName && app.findViewByName(viewName)) {
434
+ nodePath = app.findViewByName(viewName).findElementByName(elementName).nodePath;
435
+ } else if (selectedNode.concept === 'View') {
436
+ nodePath = selectedNode.findElementByName(elementName).nodePath;
437
+ } else if (selectedNode.concept === 'ViewElement') {
438
+ nodePath = selectedNode.nodePath;
439
+ } else {
440
+ return 'error';
441
+ }
442
+ const position = 'append';
443
+ codeList.forEach((code: string) => {
444
+ const data = {
445
+ code,
446
+ nodePath,
447
+ position, // 没有时会添加到最顶层
448
+ };
449
+ selectedNode.addBlock(data);
450
+ });
451
+ console.log('lemon', selectedNode);
452
+ return 'Success!';
453
+ } catch (e) {
454
+ return String(e);
455
+ }
456
+ } catch (e) {
457
+ return String(e);
458
+ }
459
+ }
460
+ // 根据用户需求获取到对应的组件 code
461
+ async getViewElementTemplate(demand:string, context: any) {
462
+ this.messages = [{
463
+ role: 'user',
464
+ content: this.getViewPrompt(demand),
465
+ }];
466
+ const res = await axios.post('/api/gpt/chatGPT', {
467
+ messages: this.messages,
468
+ });
469
+ const result = res.data.result;
470
+ if (result) {
471
+ const answer = result.choices[0]?.message.content.trim() + '\n';
472
+ const elementList = Object.keys(JSON.parse(answer));
473
+ console.log('lemon getViewElementTemplate', elementList, answer);
474
+ const templateList = elementList.map((el: any) => {
475
+ const ind = JSON.parse(answer)[el].index;
476
+ const code = context.nasl.config.allNodesAPI[el]?.blocks[ind]?.code;
477
+ if (!code)
478
+ throw new Error('组件名称错误,获取组件模板失败, 请重试');
479
+ return code;
480
+ });
481
+ return templateList;
482
+ }
483
+ }
484
+ getViewPrompt(demand: string): string {
485
+ return `
486
+ ## 组件定义如下:
487
+ ${JSON.stringify(componentData)}
488
+
489
+ ## 用户的需求如下:
490
+ ${demand}
491
+
492
+ ## 注意:
493
+ 1. 你需要根据用户的需求参照组件定义获取到对应的组件名称,除了i-ico之外,其它组件都是 'u-' 的格式
494
+ 1. 必须按照下面指定的格式的格式返回,确保回复可以被 JavaScript 的 JSON.parse 解析!
495
+
496
+ { "componentName": { "reason": "原因", index: "模板索引" } }
497
+
498
+ ## 示例:
499
+ { "i-ico": { "reason": "用于展示刷新图标和文本", "index": 1 } }
500
+ { "u-rate": { "reason": "用于替换文本组件为五星评分组件", "index": 0 } }
501
+ { "u-button": { "reason": "用于添加一个图标按钮组件", "index": 3 } }
502
+ `;
503
+ }
504
+ // 再次处理组件模板,得到与需求融合后的组件模板
505
+ async handleViewElementTemplate(demand: string, templateList: any, context: any) {
506
+ const prompt = `
507
+ ## 组件的 template 如下
508
+ ${JSON.stringify(templateList)}
509
+
510
+ ## 用户的需求如下
511
+ ${demand}
512
+
513
+ ## 注意
514
+ 1. 请根据需求,在 template 基础上仅替换默认文字信息,但是不要修改标签名称
515
+ 1. 仅可以使用template中提供的标签名称,不能修改
516
+ - 例如 不能修改标签组件名称 <u-grid-view>
517
+ 1. 按照提供的原 template 格式返回新的 template!
518
+ eg:
519
+ "[新的template]"
520
+ `;
521
+ this.messages = [{
522
+ role: 'user',
523
+ content: prompt,
524
+ }];
525
+ const res = await axios.post('/api/gpt/chatGPT', {
526
+ messages: this.messages,
527
+ });
528
+ const result = res.data.result;
529
+ if (result) {
530
+ const answer = result.choices[0]?.message.content.trim() + '\n';
531
+ const codeList = JSON.parse(answer);
532
+ return codeList;
533
+ }
534
+ }
535
+ async handleElementAttr(elementParams: any) {
536
+ const { demand, context } = elementParams;
537
+ const { app, nasl, selectedNode } = context;
538
+ try {
539
+ const options = await this.getCorrectParams(demand, selectedNode) as any;
540
+ console.log('lemonhandle-getCorrectParams-传入的option', options);
541
+ try {
542
+ for (let i = 0; i < options.length; i++) {
543
+ let option = options[i];
544
+ option = {
545
+ ...option,
546
+ // eslint-disable-next-line no-await-in-loop
547
+ value: option.type === 'dynamic' ? await this.getExpression(option.demand, context) : option.value,
548
+ };
549
+ console.log('lemonhandle-最终拿到的option', option);
550
+ try {
551
+ selectedNode.updateBindAttr(option);
552
+ } catch (e) {
553
+ return String(e);
554
+ }
555
+ }
556
+ return 'Success';
557
+ } catch (e) {
558
+ return String(e);
559
+ }
560
+ } catch (e) {
561
+ return String(e);
562
+ }
563
+ }
564
+ async getCorrectParams(demand: string, selectedNode: any) {
565
+ const curAttrGroups = selectedNode.getCurrentElementAttrGroups();
566
+ const prompt = `
567
+ ## 组件的所有属性定义如下
568
+ ${JSON.stringify(curAttrGroups)}
569
+
570
+ ## 用户的需求如下
571
+ ${demand}
572
+
573
+ ## 注意
574
+ 1. 请根据需求结合属性定义,分析并返回用户想要修改属性的 name、value,以及所属的 concept
575
+ 2. 如果涉及到表达式或者绑定或者动态的值时,type的值为'dynamic'
576
+ 3. 按照以下格式返回数据,确保回复可以被 JavaScript 的 JSON.parse 解析!
577
+
578
+ [{ concept, type, name, value, demand }]
579
+ `;
580
+ this.messages = [{
581
+ role: 'user',
582
+ content: prompt,
583
+ }];
584
+ const res = await axios.post('/api/gpt/chatGPT', {
585
+ messages: this.messages,
586
+ });
587
+ const result = res.data.result;
588
+ if (result) {
589
+ const answer = result.choices[0]?.message.content.trim() + '\n';
590
+ return JSON.parse(answer);
591
+ }
592
+ }
593
+ async getExpression(demand: string, context: any) {
594
+ const { app, nasl, selectedNode } = context;
595
+ const requirements = [
596
+ '如果要查询,则使用 nasl.oql.query,尽量用一句 SQL 包含更多信息',
597
+ '优先使用 nasl.util 中的内置函数',
598
+ '禁止使用 Array 的方法,其中 map 方法请使用 ListTransform',
599
+ '禁止使用 Number 的 toFixed 方法,保留小数使用 FormatNumber',
600
+ '禁止使用 String 的 方法,字符串截取用 SubString 函数',
601
+ '当前日期请使用 CurrDateTime()',
602
+ '分支情况请使用 switch',
603
+ '禁止使用 import',
604
+ '禁止打印结果日志',
605
+ '不要新建变量',
606
+ '涉及到颜色转换为 HEX 格式的值',
607
+ '直接输出代码结果,其他描述请以注释的形式出现',
608
+ '回复必须是函数并且必须使用符合语法的语句',
609
+ ];
610
+
611
+ const getRequirement = () => `/*
612
+ ## 有以下要求:
613
+ ${requirements.map((line) => '- ' + line).join('\n')}
614
+
615
+ ## 返回示例 1
616
+ export function logic2() {
617
+ return nasl.util.FormatDateTime(variable1, "YYYY-MM-DD HH:mm");
618
+ }
619
+ ## 返回示例 2
620
+ export function setBackgroundColor(): string {
621
+ switch (varibable) {
622
+ case SupplierStatusEnum.enable:
623
+ return "#0f0";
624
+ case SupplierStatusEnum.disable:
625
+ return "#7f827f";
626
+ }
627
+ }
628
+ ## 返回示例 3
629
+ export function bindLevel() {
630
+ return current.item.supplier.level;
631
+ }
632
+
633
+ ## 请在当前函数的“当前位置”中只要实现:
634
+ ${demand}
635
+ */`;
636
+ let prompt = nasl.genNaturalTS(app, selectedNode);
637
+ prompt += getRequirement();
638
+ this.messages = [{
639
+ role: 'user',
640
+ content: prompt,
641
+ }];
642
+ const res = await axios.post('/api/gpt/chatGPT', {
643
+ messages: this.messages,
644
+ });
645
+ const result = res.data.result;
646
+ if (result) {
647
+ const answer = result.choices[0]?.message.content.trim() + '\n';
648
+ console.log('lemon ~ getExpression ~ answer:', answer);
649
+ try {
650
+ const body = nasl.transformTSCodeToExpression(answer, context);
651
+ console.log('lemon ~ RequirementExecutor ~ getExpression ~ body:', body);
652
+ return body[0];
653
+ } catch (e) {
654
+ console.log('TS 转换 NASL 失败!请检查浏览器日志。');
655
+ return String(e);
656
+ }
657
+ }
658
+ }
659
+ }
660
+
661
+ export default RequirementExecutor;
662
+
663
+ // console.log(tryFixJSON(`{
664
+ // {
665
+ // "thoughts": {
666
+ // "text": "thought",
667
+ // "reasoning": "reasoning",
668
+ // "currentTask": "- 任务1
669
+ // - 任务2
670
+ // - 任务3",
671
+ // "criticism": "我生成的这段代码,可能在 API 中没有定义"
672
+ // },
673
+ // "command": {
674
+ // "name": "command name",
675
+ // "args": {
676
+ // "code": "value"
677
+ // }
678
+ // }
679
+ // }
680
+ // }`));
681
+ // - 对于不清楚定义的 API,先不要急着生成执行脚本,考虑是不是要先获取一下 API 文档,然后在后面的步骤中再生成执行脚本
682
+ // - 一般初次执行时,你最好先获取需要的 API 文档。尽可能一次性多的获取相关文档
683
+ // 2. 把当前执行的任务放在"thoughts.currentTask"中,把当前执行的任务的索引(从1开始)放在"thoughts.currentTaskIndex"中
684
+ // "currentTaskIndex": 2,
685
+ // "totalTaskCount": 3,